'use strict';



;define("nomad-ui/abilities/abstract", ["exports", "ember-can", "@ember/service", "@ember/object", "@ember/object/computed"], function (_exports, _emberCan, _service, _object, _computed) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4;

  0; //eaimeta@70e063a35619d71f0,"ember-can",0,"@ember/service",0,"@ember/object",0,"@ember/object/computed",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let Abstract = (_dec = (0, _computed.not)('token.aclEnabled'), _dec2 = (0, _computed.equal)('token.selfToken.type', 'management'), _dec3 = (0, _object.computed)('_namespace', 'token.selfTokenPolicies.[]'), _dec4 = (0, _object.computed)('token.selfTokenPolicies.[]'), _dec5 = (0, _object.computed)('system.features.[]'), classic(_class = (_class2 = class Abstract extends _emberCan.Ability {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "system", _descriptor, this);

      _initializerDefineProperty(this, "token", _descriptor2, this);

      _initializerDefineProperty(this, "bypassAuthorization", _descriptor3, this);

      _initializerDefineProperty(this, "selfTokenIsManagement", _descriptor4, this);

      _defineProperty(this, "namespace", 'default');
    }

    get _namespace() {
      if (!this.namespace) return 'default';
      if (typeof this.namespace === 'string') return this.namespace;
      return (0, _object.get)(this.namespace, 'name');
    }

    get rulesForNamespace() {
      let namespace = this._namespace;
      return (this.get('token.selfTokenPolicies') || []).toArray().reduce((rules, policy) => {
        let policyNamespaces = (0, _object.get)(policy, 'rulesJSON.Namespaces') || [];

        let matchingNamespace = this._findMatchingNamespace(policyNamespaces, namespace);

        if (matchingNamespace) {
          rules.push(policyNamespaces.find(namespace => namespace.Name === matchingNamespace));
        }

        return rules;
      }, []);
    }

    get capabilitiesForAllNamespaces() {
      return (this.get('token.selfTokenPolicies') || []).toArray().reduce((allCapabilities, policy) => {
        ((0, _object.get)(policy, 'rulesJSON.Namespaces') || []).forEach(_ref => {
          let {
            Capabilities
          } = _ref;
          allCapabilities = allCapabilities.concat(Capabilities);
        });
        return allCapabilities;
      }, []);
    }

    namespaceIncludesCapability(capability) {
      return this.rulesForNamespace.some(rules => {
        let capabilities = (0, _object.get)(rules, 'Capabilities') || [];
        return capabilities.includes(capability);
      });
    }

    get features() {
      return this.system.features;
    }

    featureIsPresent(featureName) {
      return this.features.includes(featureName);
    } // Chooses the closest namespace as described at the bottom here:
    // https://learn.hashicorp.com/tutorials/nomad/access-control-policies?in=nomad/access-control#namespace-rules


    _findMatchingNamespace(policyNamespaces, namespace) {
      let namespaceNames = policyNamespaces.mapBy('Name');

      if (namespaceNames.includes(namespace)) {
        return namespace;
      }

      let globNamespaceNames = namespaceNames.filter(namespaceName => namespaceName.includes('*'));
      let matchingNamespaceName = globNamespaceNames.reduce((mostMatching, namespaceName) => {
        // Convert * wildcards to .* for regex matching
        let namespaceNameRegExp = new RegExp(namespaceName.replace(/\*/g, '.*'));
        let characterDifference = namespace.length - namespaceName.length;

        if (characterDifference < mostMatching.mostMatchingCharacterDifference && namespace.match(namespaceNameRegExp)) {
          return {
            mostMatchingNamespaceName: namespaceName,
            mostMatchingCharacterDifference: characterDifference
          };
        } else {
          return mostMatching;
        }
      }, {
        mostMatchingNamespaceName: null,
        mostMatchingCharacterDifference: Number.MAX_SAFE_INTEGER
      }).mostMatchingNamespaceName;

      if (matchingNamespaceName) {
        return matchingNamespaceName;
      } else if (namespaceNames.includes('default')) {
        return 'default';
      }
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "system", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "token", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, "bypassAuthorization", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, "selfTokenIsManagement", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "rulesForNamespace", [_dec3], Object.getOwnPropertyDescriptor(_class2.prototype, "rulesForNamespace"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "capabilitiesForAllNamespaces", [_dec4], Object.getOwnPropertyDescriptor(_class2.prototype, "capabilitiesForAllNamespaces"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "features", [_dec5], Object.getOwnPropertyDescriptor(_class2.prototype, "features"), _class2.prototype)), _class2)) || _class);
  _exports.default = Abstract;
});
;define("nomad-ui/abilities/agent", ["exports", "nomad-ui/abilities/abstract", "@ember/object", "@ember/object/computed"], function (_exports, _abstract, _object, _computed) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _class, _descriptor;

  0; //eaimeta@70e063a35619d71f0,"nomad-ui/abilities/abstract",0,"@ember/object",0,"@ember/object/computed"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let Client = (_dec = (0, _computed.or)('bypassAuthorization', 'selfTokenIsManagement', 'policiesIncludeAgentReadOrWrite'), _dec2 = (0, _object.computed)('token.selfTokenPolicies.[]'), (_class = class Client extends _abstract.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "canRead", _descriptor, this);
    }

    get policiesIncludeAgentReadOrWrite() {
      const policies = ((0, _object.get)(this, 'token.selfTokenPolicies') || []).toArray().map(policy => (0, _object.get)(policy, 'rulesJSON.Agent.Policy')).compact();
      return policies.some(policy => policy === 'read' || policy === 'write');
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "canRead", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class.prototype, "policiesIncludeAgentReadOrWrite", [_dec2], Object.getOwnPropertyDescriptor(_class.prototype, "policiesIncludeAgentReadOrWrite"), _class.prototype)), _class));
  _exports.default = Client;
});
;define("nomad-ui/abilities/allocation", ["exports", "nomad-ui/abilities/abstract", "@ember/object", "@ember/object/computed"], function (_exports, _abstract, _object, _computed) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _class, _descriptor;

  0; //eaimeta@70e063a35619d71f0,"nomad-ui/abilities/abstract",0,"@ember/object",0,"@ember/object/computed"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let Allocation = (_dec = (0, _computed.or)('bypassAuthorization', 'selfTokenIsManagement', 'policiesSupportExec'), _dec2 = (0, _object.computed)('rulesForNamespace.@each.capabilities'), (_class = class Allocation extends _abstract.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "canExec", _descriptor, this);
    }

    get policiesSupportExec() {
      return this.rulesForNamespace.some(rules => {
        let capabilities = (0, _object.get)(rules, 'Capabilities') || [];
        return capabilities.includes('alloc-exec');
      });
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "canExec", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class.prototype, "policiesSupportExec", [_dec2], Object.getOwnPropertyDescriptor(_class.prototype, "policiesSupportExec"), _class.prototype)), _class));
  _exports.default = Allocation;
});
;define("nomad-ui/abilities/client", ["exports", "nomad-ui/abilities/abstract", "@ember/object", "@ember/object/computed"], function (_exports, _abstract, _object, _computed) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _class, _class2, _descriptor, _descriptor2;

  0; //eaimeta@70e063a35619d71f0,"nomad-ui/abilities/abstract",0,"@ember/object",0,"@ember/object/computed",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let Client = (_dec = (0, _computed.or)('bypassAuthorization', 'selfTokenIsManagement', 'policiesIncludeNodeRead'), _dec2 = (0, _computed.or)('bypassAuthorization', 'selfTokenIsManagement', 'policiesIncludeNodeWrite'), _dec3 = (0, _object.computed)('token.selfTokenPolicies.[]'), _dec4 = (0, _object.computed)('token.selfTokenPolicies.[]'), classic(_class = (_class2 = class Client extends _abstract.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "canRead", _descriptor, this);

      _initializerDefineProperty(this, "canWrite", _descriptor2, this);
    }

    get policiesIncludeNodeRead() {
      return policiesIncludePermissions(this.get('token.selfTokenPolicies'), ['read', 'write']);
    }

    get policiesIncludeNodeWrite() {
      return policiesIncludePermissions(this.get('token.selfTokenPolicies'), ['write']);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "canRead", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "canWrite", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "policiesIncludeNodeRead", [_dec3], Object.getOwnPropertyDescriptor(_class2.prototype, "policiesIncludeNodeRead"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "policiesIncludeNodeWrite", [_dec4], Object.getOwnPropertyDescriptor(_class2.prototype, "policiesIncludeNodeWrite"), _class2.prototype)), _class2)) || _class);
  _exports.default = Client;

  function policiesIncludePermissions() {
    let policies = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
    let permissions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
    // For each policy record, extract the Node policy
    const nodePolicies = policies.toArray().map(policy => (0, _object.get)(policy, 'rulesJSON.Node.Policy')).compact(); // Check for requested permissions

    return nodePolicies.some(policy => permissions.includes(policy));
  }
});
;define("nomad-ui/abilities/job", ["exports", "nomad-ui/abilities/abstract", "@ember/object", "@ember/object/computed"], function (_exports, _abstract, _object, _computed) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _class, _descriptor, _descriptor2, _descriptor3, _descriptor4;

  0; //eaimeta@70e063a35619d71f0,"nomad-ui/abilities/abstract",0,"@ember/object",0,"@ember/object/computed"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let Job = (_dec = (0, _computed.or)('bypassAuthorization', 'selfTokenIsManagement', 'policiesSupportRunning'), _dec2 = (0, _computed.or)('bypassAuthorization', 'selfTokenIsManagement', 'specificNamespaceSupportsRunning', 'policiesSupportScaling'), _dec3 = (0, _computed.or)('bypassAuthorization', 'selfTokenIsManagement'), _dec4 = (0, _computed.or)('bypassAuthorization', 'selfTokenIsManagement', 'policiesSupportDispatching'), _dec5 = (0, _object.computed)('token.selfTokenPolicies.[]'), _dec6 = (0, _object.computed)('rulesForNamespace.@each.capabilities'), _dec7 = (0, _object.computed)('rulesForNamespace.@each.capabilities'), _dec8 = (0, _object.computed)('rulesForNamespace.@each.capabilities'), (_class = class Job extends _abstract.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "canRun", _descriptor, this);

      _initializerDefineProperty(this, "canScale", _descriptor2, this);

      _initializerDefineProperty(this, "canListAll", _descriptor3, this);

      _initializerDefineProperty(this, "canDispatch", _descriptor4, this);
    }

    policyNamespacesIncludePermissions() {
      let policies = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
      let permissions = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
      // For each policy record, extract all policies of all namespaces
      const allNamespacePolicies = policies.toArray().filter(policy => (0, _object.get)(policy, 'rulesJSON.Namespaces')).map(policy => (0, _object.get)(policy, 'rulesJSON.Namespaces')).flat().map(function () {
        let namespace = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
        return namespace.Capabilities;
      }).flat().compact(); // Check for requested permissions

      return allNamespacePolicies.some(policy => {
        return permissions.includes(policy);
      });
    }

    get policiesSupportRunning() {
      return this.policyNamespacesIncludePermissions(this.token.selfTokenPolicies, ['submit-job']);
    }

    get specificNamespaceSupportsRunning() {
      return this.namespaceIncludesCapability('submit-job');
    }

    get policiesSupportScaling() {
      return this.namespaceIncludesCapability('scale-job');
    }

    get policiesSupportDispatching() {
      return this.namespaceIncludesCapability('dispatch-job');
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "canRun", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "canScale", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "canListAll", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, "canDispatch", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class.prototype, "policiesSupportRunning", [_dec5], Object.getOwnPropertyDescriptor(_class.prototype, "policiesSupportRunning"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "specificNamespaceSupportsRunning", [_dec6], Object.getOwnPropertyDescriptor(_class.prototype, "specificNamespaceSupportsRunning"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "policiesSupportScaling", [_dec7], Object.getOwnPropertyDescriptor(_class.prototype, "policiesSupportScaling"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "policiesSupportDispatching", [_dec8], Object.getOwnPropertyDescriptor(_class.prototype, "policiesSupportDispatching"), _class.prototype)), _class));
  _exports.default = Job;
});
;define("nomad-ui/abilities/policy", ["exports", "nomad-ui/abilities/abstract", "@ember/object/computed"], function (_exports, _abstract, _computed) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5;

  0; //eaimeta@70e063a35619d71f0,"nomad-ui/abilities/abstract",0,"@ember/object/computed",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let Policy = (_dec = (0, _computed.alias)('selfTokenIsManagement'), _dec2 = (0, _computed.alias)('selfTokenIsManagement'), _dec3 = (0, _computed.alias)('selfTokenIsManagement'), _dec4 = (0, _computed.alias)('selfTokenIsManagement'), _dec5 = (0, _computed.alias)('selfTokenIsManagement'), classic(_class = (_class2 = class Policy extends _abstract.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "canRead", _descriptor, this);

      _initializerDefineProperty(this, "canList", _descriptor2, this);

      _initializerDefineProperty(this, "canWrite", _descriptor3, this);

      _initializerDefineProperty(this, "canUpdate", _descriptor4, this);

      _initializerDefineProperty(this, "canDestroy", _descriptor5, this);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "canRead", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "canList", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, "canWrite", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, "canUpdate", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor5 = _applyDecoratedDescriptor(_class2.prototype, "canDestroy", [_dec5], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class2)) || _class);
  _exports.default = Policy;
});
;define("nomad-ui/abilities/recommendation", ["exports", "nomad-ui/abilities/abstract", "@ember/object", "@ember/object/computed"], function (_exports, _abstract, _object, _computed) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _class, _descriptor, _descriptor2;

  0; //eaimeta@70e063a35619d71f0,"nomad-ui/abilities/abstract",0,"@ember/object",0,"@ember/object/computed"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let Recommendation = (_dec = (0, _computed.and)('dynamicApplicationSizingIsPresent', 'hasPermissions'), _dec2 = (0, _computed.or)('bypassAuthorization', 'selfTokenIsManagement', 'policiesSupportAcceptingOnAnyNamespace'), _dec3 = (0, _object.computed)('capabilitiesForAllNamespaces.[]'), _dec4 = (0, _object.computed)('features.[]'), (_class = class Recommendation extends _abstract.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "canAccept", _descriptor, this);

      _initializerDefineProperty(this, "hasPermissions", _descriptor2, this);
    }

    get policiesSupportAcceptingOnAnyNamespace() {
      return this.capabilitiesForAllNamespaces.includes('submit-job');
    }

    get dynamicApplicationSizingIsPresent() {
      return this.featureIsPresent('Dynamic Application Sizing');
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "canAccept", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "hasPermissions", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class.prototype, "policiesSupportAcceptingOnAnyNamespace", [_dec3], Object.getOwnPropertyDescriptor(_class.prototype, "policiesSupportAcceptingOnAnyNamespace"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "dynamicApplicationSizingIsPresent", [_dec4], Object.getOwnPropertyDescriptor(_class.prototype, "dynamicApplicationSizingIsPresent"), _class.prototype)), _class));
  _exports.default = Recommendation;
});
;define("nomad-ui/abilities/token", ["exports", "nomad-ui/abilities/abstract", "@ember/object/computed"], function (_exports, _abstract, _computed) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5;

  0; //eaimeta@70e063a35619d71f0,"nomad-ui/abilities/abstract",0,"@ember/object/computed"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let _class = (_dec = (0, _computed.alias)('selfTokenIsManagement'), _dec2 = (0, _computed.alias)('selfTokenIsManagement'), _dec3 = (0, _computed.alias)('selfTokenIsManagement'), _dec4 = (0, _computed.alias)('selfTokenIsManagement'), _dec5 = (0, _computed.alias)('selfTokenIsManagement'), (_class2 = class _class2 extends _abstract.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "canRead", _descriptor, this);

      _initializerDefineProperty(this, "canList", _descriptor2, this);

      _initializerDefineProperty(this, "canWrite", _descriptor3, this);

      _initializerDefineProperty(this, "canUpdate", _descriptor4, this);

      _initializerDefineProperty(this, "canDestroy", _descriptor5, this);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "canRead", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "canList", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, "canWrite", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, "canUpdate", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor5 = _applyDecoratedDescriptor(_class2.prototype, "canDestroy", [_dec5], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class2));

  _exports.default = _class;
});
;define("nomad-ui/abilities/variable", ["exports", "@ember/object", "@ember/object/computed", "nomad-ui/abilities/abstract", "nomad-ui/utils/match-glob"], function (_exports, _object, _computed, _abstract, _matchGlob) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _dec9, _class, _descriptor, _descriptor2, _descriptor3, _descriptor4;

  0; //eaimeta@70e063a35619d71f0,"@ember/object",0,"@ember/object/computed",0,"nomad-ui/abilities/abstract",0,"nomad-ui/utils/match-glob"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const WILDCARD_GLOB = '*';
  const WILDCARD_PATTERN = '/';
  const GLOBAL_FLAG = 'g';
  const WILDCARD_PATTERN_REGEX = new RegExp(WILDCARD_PATTERN, GLOBAL_FLAG);
  let Variable = (_dec = (0, _computed.or)('bypassAuthorization', 'selfTokenIsManagement', 'policiesSupportVariableList'), _dec2 = (0, _computed.or)('bypassAuthorization', 'selfTokenIsManagement', 'policiesSupportVariableWriting'), _dec3 = (0, _computed.or)('bypassAuthorization', 'selfTokenIsManagement', 'policiesSupportVariableDestroy'), _dec4 = (0, _computed.or)('bypassAuthorization', 'selfTokenIsManagement', 'policiesSupportVariableRead'), _dec5 = (0, _object.computed)('token.selfTokenPolicies'), _dec6 = (0, _object.computed)('path', 'allPaths'), _dec7 = (0, _object.computed)('allPaths', 'namespace', 'path', 'token.selfTokenPolicies'), _dec8 = (0, _object.computed)('path', 'allPaths'), _dec9 = (0, _object.computed)('token.selfTokenPolicies.[]', 'namespace'), (_class = class Variable extends _abstract.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "path", '*');

      _initializerDefineProperty(this, "canList", _descriptor, this);

      _initializerDefineProperty(this, "canWrite", _descriptor2, this);

      _initializerDefineProperty(this, "canDestroy", _descriptor3, this);

      _initializerDefineProperty(this, "canRead", _descriptor4, this);
    }

    get _path() {
      if (!this.path) return '*';
      return this.path;
    }

    get policiesSupportVariableList() {
      return this.policyNamespacesIncludeVariablesCapabilities(this.token.selfTokenPolicies, ['list', 'read', 'write', 'destroy']);
    }

    get policiesSupportVariableRead() {
      var _this$allPaths$find, _this$allPaths$find$c;

      const matchingPath = this._nearestMatchingPath(this.path);

      return (_this$allPaths$find = this.allPaths.find(path => path.name === matchingPath)) === null || _this$allPaths$find === void 0 ? void 0 : (_this$allPaths$find$c = _this$allPaths$find.capabilities) === null || _this$allPaths$find$c === void 0 ? void 0 : _this$allPaths$find$c.includes('read');
    }
    /**
     *
     * Map to your policy's namespaces,
     * and each of their Variables blocks' paths,
     * and each of their capabilities.
     * Then, check to see if any of the permissions you're looking for
     * are contained within at least one of them.
     *
     * @param {Object} policies
     * @param {string[]} capabilities
     * @returns {boolean}
     */


    policyNamespacesIncludeVariablesCapabilities() {
      let policies = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
      let capabilities = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
      let path = arguments.length > 2 ? arguments[2] : undefined;
      const namespacesWithVariableCapabilities = policies.toArray().filter(policy => (0, _object.get)(policy, 'rulesJSON.Namespaces')).map(policy => (0, _object.get)(policy, 'rulesJSON.Namespaces')).flat().map(function () {
        var _namespace$Variables;

        let namespace = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
        return (_namespace$Variables = namespace.Variables) === null || _namespace$Variables === void 0 ? void 0 : _namespace$Variables.Paths;
      }).flat().compact().filter(function () {
        let varsBlock = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};

        if (!path || path === WILDCARD_GLOB) {
          return true;
        } else {
          return varsBlock.PathSpec === path;
        }
      }).map(function () {
        let varsBlock = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
        return varsBlock.Capabilities;
      }).flat().compact(); // Check for requested permissions

      return namespacesWithVariableCapabilities.some(abilityList => {
        return capabilities.includes(abilityList);
      });
    }

    get policiesSupportVariableWriting() {
      if (this.namespace === WILDCARD_GLOB && this.path === WILDCARD_GLOB) {
        // If you're checking if you can write from root, and you don't specify a namespace,
        // Then if you can write in ANY path in ANY namespace, you can get to /new.
        return this.policyNamespacesIncludeVariablesCapabilities(this.token.selfTokenPolicies, ['write'], this._nearestMatchingPath(this.path));
      } else {
        var _this$allPaths$find2, _this$allPaths$find2$;

        // Checking a specific path in a specific namespace.
        // TODO: This doesn't cover the case when you're checking for the * namespace at a specific path.
        // Right now we require you to specify yournamespace to enable the button.
        const matchingPath = this._nearestMatchingPath(this.path);

        return (_this$allPaths$find2 = this.allPaths.find(path => path.name === matchingPath)) === null || _this$allPaths$find2 === void 0 ? void 0 : (_this$allPaths$find2$ = _this$allPaths$find2.capabilities) === null || _this$allPaths$find2$ === void 0 ? void 0 : _this$allPaths$find2$.includes('write');
      }
    }

    get policiesSupportVariableDestroy() {
      var _this$allPaths$find3, _this$allPaths$find3$;

      const matchingPath = this._nearestMatchingPath(this.path);

      return (_this$allPaths$find3 = this.allPaths.find(path => path.name === matchingPath)) === null || _this$allPaths$find3 === void 0 ? void 0 : (_this$allPaths$find3$ = _this$allPaths$find3.capabilities) === null || _this$allPaths$find3$ === void 0 ? void 0 : _this$allPaths$find3$.includes('destroy');
    }

    get allPaths() {
      return ((0, _object.get)(this, 'token.selfTokenPolicies') || []).toArray().reduce((paths, policy) => {
        var _find, _variables$Paths;

        const namespaces = (0, _object.get)(policy, 'rulesJSON.Namespaces');

        const matchingNamespace = this._nearestMatchingNamespace(namespaces, this.namespace);

        const variables = (_find = (namespaces || []).find(namespace => namespace.Name === matchingNamespace)) === null || _find === void 0 ? void 0 : _find.Variables;
        const pathNames = variables === null || variables === void 0 ? void 0 : (_variables$Paths = variables.Paths) === null || _variables$Paths === void 0 ? void 0 : _variables$Paths.map(path => ({
          name: path.PathSpec,
          capabilities: path.Capabilities
        }));

        if (pathNames) {
          paths = [...paths, ...pathNames];
        }

        return paths;
      }, []);
    }

    _nearestMatchingNamespace(policyNamespaces, namespace) {
      if (!namespace || !policyNamespaces) return 'default';
      return this._findMatchingNamespace(policyNamespaces, namespace);
    }

    _formatMatchingPathRegEx(path) {
      let wildCardPlacement = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'end';

      const replacer = () => '\\/';

      if (wildCardPlacement === 'end') {
        const trimmedPath = path.slice(0, path.length - 1);
        const pattern = trimmedPath.replace(WILDCARD_PATTERN_REGEX, replacer);
        return pattern;
      } else {
        const trimmedPath = path.slice(1, path.length);
        const pattern = trimmedPath.replace(WILDCARD_PATTERN_REGEX, replacer);
        return pattern;
      }
    }

    _computeAllMatchingPaths(pathNames, path) {
      const matches = [];

      for (const pathName of pathNames) {
        if ((0, _matchGlob.default)(pathName, path)) matches.push(pathName);
      }

      return matches;
    }

    _nearestMatchingPath(path) {
      const pathNames = this.allPaths.map(path => path.name);

      if (pathNames.includes(path)) {
        return path;
      }

      const allMatchingPaths = this._computeAllMatchingPaths(pathNames, path);

      if (!allMatchingPaths.length) return WILDCARD_GLOB;
      return this._smallestDifference(allMatchingPaths, path);
    }

    _computeLengthDiff(pattern, path) {
      const countGlobsInPattern = pattern === null || pattern === void 0 ? void 0 : pattern.split('').filter(el => el === WILDCARD_GLOB).length;
      return (path === null || path === void 0 ? void 0 : path.length) - (pattern === null || pattern === void 0 ? void 0 : pattern.length) + countGlobsInPattern;
    }

    _smallestDifference(matches, path) {
      const sortingCallBack = (patternA, patternB) => this._computeLengthDiff(patternA, path) - this._computeLengthDiff(patternB, path);

      const sortedMatches = matches === null || matches === void 0 ? void 0 : matches.sort(sortingCallBack);

      const isTie = this._computeLengthDiff(sortedMatches[0], path) === this._computeLengthDiff(sortedMatches[1], path);

      const doesFirstMatchHaveLeadingGlob = sortedMatches[0][0] === WILDCARD_GLOB;
      return isTie && doesFirstMatchHaveLeadingGlob ? sortedMatches[1] : sortedMatches[0];
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "canList", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "canWrite", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "canDestroy", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, "canRead", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class.prototype, "policiesSupportVariableList", [_dec5], Object.getOwnPropertyDescriptor(_class.prototype, "policiesSupportVariableList"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "policiesSupportVariableRead", [_dec6], Object.getOwnPropertyDescriptor(_class.prototype, "policiesSupportVariableRead"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "policiesSupportVariableWriting", [_dec7], Object.getOwnPropertyDescriptor(_class.prototype, "policiesSupportVariableWriting"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "policiesSupportVariableDestroy", [_dec8], Object.getOwnPropertyDescriptor(_class.prototype, "policiesSupportVariableDestroy"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "allPaths", [_dec9], Object.getOwnPropertyDescriptor(_class.prototype, "allPaths"), _class.prototype)), _class));
  _exports.default = Variable;
});
;define("nomad-ui/adapters/-json-api", ["exports", "@ember-data/adapter/json-api"], function (_exports, _jsonApi) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _jsonApi.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@ember-data/adapter/json-api"eaimeta@70e063a35619d71f
});
;define("nomad-ui/adapters/agent", ["exports", "nomad-ui/adapters/application"], function (_exports, _application) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class;

  0; //eaimeta@70e063a35619d71f0,"nomad-ui/adapters/application",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  const classic = __EMBER_CLASSIC_DECORATOR;

  let AgentAdapter = classic(_class = class AgentAdapter extends _application.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "pathForType", () => 'agent/members');
    }

    urlForFindRecord() {
      const [, ...args] = arguments;
      return this.urlForFindAll(...args);
    }

  }) || _class;

  _exports.default = AgentAdapter;
});
;define("nomad-ui/adapters/allocation", ["exports", "nomad-ui/adapters/watchable", "nomad-ui/utils/add-to-path"], function (_exports, _watchable, _addToPath) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class;

  0; //eaimeta@70e063a35619d71f0,"nomad-ui/adapters/watchable",0,"nomad-ui/utils/add-to-path",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  const classic = __EMBER_CLASSIC_DECORATOR;

  let AllocationAdapter = classic(_class = class AllocationAdapter extends _watchable.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "stop", adapterAction('/stop'));
    }

    restart(allocation, taskName) {
      const prefix = `${this.host || '/'}${this.urlPrefix()}`;
      const url = `${prefix}/client/allocation/${allocation.id}/restart`;
      return this.ajax(url, 'PUT', {
        data: taskName && {
          TaskName: taskName
        }
      });
    }

    restartAll(allocation) {
      const prefix = `${this.host || '/'}${this.urlPrefix()}`;
      const url = `${prefix}/client/allocation/${allocation.id}/restart`;
      return this.ajax(url, 'PUT', {
        data: {
          AllTasks: true
        }
      });
    }

    ls(model, path) {
      return this.token.authorizedRequest(`/v1/client/fs/ls/${model.id}?path=${encodeURIComponent(path)}`).then(handleFSResponse);
    }

    stat(model, path) {
      return this.token.authorizedRequest(`/v1/client/fs/stat/${model.id}?path=${encodeURIComponent(path)}`).then(handleFSResponse);
    }

    async check(model) {
      const res = await this.token.authorizedRequest(`/v1/client/allocation/${model.id}/checks`);
      const data = await res.json(); // Append allocation ID to each check

      Object.values(data).forEach(check => {
        check.Alloc = model.id;
        check.Timestamp = check.Timestamp * 1000; // Convert to milliseconds
      });
      return data;
    }

  }) || _class;

  _exports.default = AllocationAdapter;

  async function handleFSResponse(response) {
    if (response.ok) {
      return response.json();
    } else {
      const body = await response.text();
      throw {
        code: response.status,
        toString: () => body
      };
    }
  }

  function adapterAction(path) {
    let verb = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'POST';
    return function (allocation) {
      const url = (0, _addToPath.default)(this.urlForFindRecord(allocation.id, 'allocation'), path);
      return this.ajax(url, verb);
    };
  }
});
;define("nomad-ui/adapters/application", ["exports", "@ember/service", "@ember/object", "@ember/string", "@ember-data/adapter/rest", "nomad-ui/utils/codes-for-error", "nomad-ui/utils/remove-record", "nomad-ui/utils/no-leader-error"], function (_exports, _service, _object, _string, _rest, _codesForError, _removeRecord, _noLeaderError) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = _exports.namespace = void 0;

  var _dec, _class, _class2, _descriptor, _descriptor2;

  0; //eaimeta@70e063a35619d71f0,"@ember/service",0,"@ember/object",0,"@ember/string",0,"@ember-data/adapter/rest",0,"nomad-ui/utils/codes-for-error",0,"nomad-ui/utils/remove-record",0,"nomad-ui/utils/no-leader-error",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;
  const namespace = 'v1';
  _exports.namespace = namespace;
  let ApplicationAdapter = (_dec = (0, _object.computed)('token.secret'), classic(_class = (_class2 = class ApplicationAdapter extends _rest.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "namespace", namespace);

      _initializerDefineProperty(this, "system", _descriptor, this);

      _initializerDefineProperty(this, "token", _descriptor2, this);
    }

    get headers() {
      const token = this.get('token.secret');

      if (token) {
        return {
          'X-Nomad-Token': token
        };
      }

      return undefined;
    }

    handleResponse(status, headers, payload) {
      if (status === 500 && payload === _noLeaderError.NO_LEADER) {
        return new _noLeaderError.default();
      }

      return super.handleResponse(...arguments);
    }

    findAll() {
      return super.findAll(...arguments).catch(error => {
        const errorCodes = (0, _codesForError.default)(error);
        const isNotImplemented = errorCodes.includes('501') || error.message.includes("rpc: can't find service");

        if (isNotImplemented) {
          return [];
        } // Rethrow to be handled downstream


        throw error;
      });
    }

    ajaxOptions(url, verb) {
      let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
      options.data || (options.data = {});

      if (this.get('system.shouldIncludeRegion')) {
        // Region should only ever be a query param. The default ajaxOptions
        // behavior is to include data attributes in the requestBody for PUT
        // and POST requests. This works around that.
        const region = this.get('system.activeRegion');

        if (region) {
          url = associateRegion(url, region);
        }
      }

      return super.ajaxOptions(url, verb, options);
    } // In order to remove stale records from the store, findHasMany has to unload
    // all records related to the request in question.


    findHasMany(store, snapshot, link, relationship) {
      return super.findHasMany(...arguments).then(payload => {
        const relationshipType = relationship.type;
        const inverse = snapshot.record.inverseFor(relationship.key);

        if (inverse) {
          store.peekAll(relationshipType).filter(record => record.get(`${inverse.name}.id`) === snapshot.id).forEach(record => {
            (0, _removeRecord.default)(store, record);
          });
        }

        return payload;
      });
    } // Single record requests deviate from REST practice by using
    // the singular form of the resource name.
    //
    // REST:  /some-resources/:id
    // Nomad: /some-resource/:id
    //
    // This is the original implementation of _buildURL
    // without the pluralization of modelName


    urlForFindRecord(id, modelName) {
      let path;
      let url = [];
      let host = this.host;
      let prefix = this.urlPrefix();

      if (modelName) {
        path = (0, _string.camelize)(modelName);

        if (path) {
          url.push(path);
        }
      }

      if (id) {
        url.push(encodeURIComponent(id));
      }

      if (prefix) {
        url.unshift(prefix);
      }

      url = url.join('/');

      if (!host && url && url.charAt(0) !== '/') {
        url = '/' + url;
      }

      return url;
    }

    urlForUpdateRecord() {
      return this.urlForFindRecord(...arguments);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "system", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "token", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "headers", [_dec], Object.getOwnPropertyDescriptor(_class2.prototype, "headers"), _class2.prototype)), _class2)) || _class);
  _exports.default = ApplicationAdapter;

  function associateRegion(url, region) {
    return url.indexOf('?') !== -1 ? `${url}&region=${region}` : `${url}?region=${region}`;
  }
});
;define("nomad-ui/adapters/auth-method", ["exports", "nomad-ui/adapters/application", "@ember/string"], function (_exports, _application, _string) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class;

  0; //eaimeta@70e063a35619d71f0,"nomad-ui/adapters/application",0,"@ember/string",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  const classic = __EMBER_CLASSIC_DECORATOR;

  let AuthMethodAdapter = classic(_class = class AuthMethodAdapter extends _application.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "namespace", `${_application.namespace}/acl`);
    }

    /**
     * @param {string} modelName
     * @returns {string}
     */
    urlForFindAll(modelName) {
      return (0, _string.dasherize)(this.buildURL(modelName));
    }
    /**
     * @typedef {Object} ACLOIDCAuthURLParams
     * @property {string} AuthMethodName
     * @property {string} RedirectUri
     * @property {string} ClientNonce
     * @property {Object[]} Meta // NOTE: unsure if array of objects or kv pairs
     */

    /**
     * @param {ACLOIDCAuthURLParams} params
     * @returns
     */


    getAuthURL(_ref) {
      let {
        AuthMethodName,
        RedirectUri,
        ClientNonce,
        Meta
      } = _ref;
      const url = `/${this.namespace}/oidc/auth-url`;
      return this.ajax(url, 'POST', {
        data: {
          AuthMethodName,
          RedirectUri,
          ClientNonce,
          Meta
        }
      });
    }

  }) || _class;

  _exports.default = AuthMethodAdapter;
});
;define("nomad-ui/adapters/deployment", ["exports", "nomad-ui/adapters/watchable"], function (_exports, _watchable) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class;

  0; //eaimeta@70e063a35619d71f0,"nomad-ui/adapters/watchable",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  const classic = __EMBER_CLASSIC_DECORATOR;

  let DeploymentAdapter = classic(_class = class DeploymentAdapter extends _watchable.default {
    fail(deployment) {
      const id = deployment.get('id');
      const url = urlForAction(this.urlForFindRecord(id, 'deployment'), '/fail');
      return this.ajax(url, 'POST', {
        data: {
          DeploymentId: id
        }
      });
    }

    promote(deployment) {
      const id = deployment.get('id');
      const url = urlForAction(this.urlForFindRecord(id, 'deployment'), '/promote');
      return this.ajax(url, 'POST', {
        data: {
          DeploymentId: id,
          All: true
        }
      });
    }

  }) || _class;

  _exports.default = DeploymentAdapter;

  // The deployment action API endpoints all end with the ID
  // /deployment/:action/:deployment_id instead of /deployment/:deployment_id/:action
  function urlForAction(url) {
    let extension = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
    const [path, params] = url.split('?');
    const pathParts = path.split('/');
    const idPart = pathParts.pop();
    let newUrl = `${pathParts.join('/')}${extension}/${idPart}`;

    if (params) {
      newUrl += `?${params}`;
    }

    return newUrl;
  }
});
;define("nomad-ui/adapters/evaluation", ["exports", "nomad-ui/adapters/application"], function (_exports, _application) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class;

  0; //eaimeta@70e063a35619d71f0,"nomad-ui/adapters/application",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  const classic = __EMBER_CLASSIC_DECORATOR;

  let EvaluationAdapter = classic(_class = class EvaluationAdapter extends _application.default {
    handleResponse(_status, headers) {
      const result = super.handleResponse(...arguments);
      result.meta = {
        nextToken: headers['x-nomad-nexttoken']
      };
      return result;
    }

    urlForFindRecord(_id, _modelName, snapshot) {
      var _snapshot$adapterOpti;

      const namespace = snapshot.attr('namespace') || 'default';
      const baseURL = super.urlForFindRecord(...arguments);
      const url = `${baseURL}?namespace=${namespace}`;

      if ((_snapshot$adapterOpti = snapshot.adapterOptions) !== null && _snapshot$adapterOpti !== void 0 && _snapshot$adapterOpti.related) {
        return `${url}&related=true`;
      }

      return url;
    }

  }) || _class;

  _exports.default = EvaluationAdapter;
});
;define("nomad-ui/adapters/job-scale", ["exports", "nomad-ui/adapters/watchable-namespace-ids"], function (_exports, _watchableNamespaceIds) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class;

  0; //eaimeta@70e063a35619d71f0,"nomad-ui/adapters/watchable-namespace-ids",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  const classic = __EMBER_CLASSIC_DECORATOR;

  let JobScaleAdapter = classic(_class = class JobScaleAdapter extends _watchableNamespaceIds.default {
    urlForFindRecord(id, type, hash) {
      return super.urlForFindRecord(id, 'job', hash, 'scale');
    }

  }) || _class;

  _exports.default = JobScaleAdapter;
});
;define("nomad-ui/adapters/job-summary", ["exports", "nomad-ui/adapters/watchable-namespace-ids"], function (_exports, _watchableNamespaceIds) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class;

  0; //eaimeta@70e063a35619d71f0,"nomad-ui/adapters/watchable-namespace-ids",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  const classic = __EMBER_CLASSIC_DECORATOR;

  let JobSummaryAdapter = classic(_class = class JobSummaryAdapter extends _watchableNamespaceIds.default {
    urlForFindRecord(id, type, hash) {
      return super.urlForFindRecord(id, 'job', hash, 'summary');
    }

  }) || _class;

  _exports.default = JobSummaryAdapter;
});
;define("nomad-ui/adapters/job-version", ["exports", "nomad-ui/adapters/application", "nomad-ui/utils/add-to-path"], function (_exports, _application, _addToPath) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class;

  0; //eaimeta@70e063a35619d71f0,"nomad-ui/adapters/application",0,"nomad-ui/utils/add-to-path",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  const classic = __EMBER_CLASSIC_DECORATOR;

  let JobVersionAdapter = classic(_class = class JobVersionAdapter extends _application.default {
    revertTo(jobVersion) {
      const jobAdapter = this.store.adapterFor('job');
      const url = (0, _addToPath.default)(jobAdapter.urlForFindRecord(jobVersion.get('job.id'), 'job'), '/revert');
      const [jobName] = JSON.parse(jobVersion.get('job.id'));
      return this.ajax(url, 'POST', {
        data: {
          JobID: jobName,
          JobVersion: jobVersion.number
        }
      });
    }

  }) || _class;

  _exports.default = JobVersionAdapter;
});
;define("nomad-ui/adapters/job", ["exports", "nomad-ui/adapters/watchable-namespace-ids", "nomad-ui/utils/add-to-path", "nomad-ui/utils/encode"], function (_exports, _watchableNamespaceIds, _addToPath, _encode) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class;

  0; //eaimeta@70e063a35619d71f0,"nomad-ui/adapters/watchable-namespace-ids",0,"nomad-ui/utils/add-to-path",0,"nomad-ui/utils/encode",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  const classic = __EMBER_CLASSIC_DECORATOR;

  let JobAdapter = classic(_class = class JobAdapter extends _watchableNamespaceIds.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "relationshipFallbackLinks", {
        summary: '/summary'
      });
    }

    fetchRawDefinition(job) {
      const url = this.urlForFindRecord(job.get('id'), 'job');
      return this.ajax(url, 'GET');
    }

    fetchRawSpecification(job) {
      const url = (0, _addToPath.default)(this.urlForFindRecord(job.get('id'), 'job', null, 'submission'), '', 'version=' + job.get('version'));
      return this.ajax(url, 'GET');
    }

    forcePeriodic(job) {
      if (job.get('periodic')) {
        const url = (0, _addToPath.default)(this.urlForFindRecord(job.get('id'), 'job'), '/periodic/force');
        return this.ajax(url, 'POST');
      }
    }

    stop(job) {
      const url = this.urlForFindRecord(job.get('id'), 'job');
      return this.ajax(url, 'DELETE');
    }

    purge(job) {
      const url = this.urlForFindRecord(job.get('id'), 'job') + '?purge=true';
      return this.ajax(url, 'DELETE');
    }

    parse(spec, jobVars) {
      const url = (0, _addToPath.default)(this.urlForFindAll('job'), '/parse?namespace=*');
      return this.ajax(url, 'POST', {
        data: {
          JobHCL: spec,
          Variables: jobVars,
          Canonicalize: true
        }
      });
    }

    plan(job) {
      const jobId = job.get('id') || job.get('_idBeforeSaving');
      const store = this.store;
      const url = (0, _addToPath.default)(this.urlForFindRecord(jobId, 'job'), '/plan');
      return this.ajax(url, 'POST', {
        data: {
          Job: job.get('_newDefinitionJSON'),
          Diff: true
        }
      }).then(json => {
        json.ID = jobId;
        store.pushPayload('job-plan', {
          jobPlans: [json]
        });
        return store.peekRecord('job-plan', jobId);
      });
    } // Running a job doesn't follow REST create semantics so it's easier to
    // treat it as an action.


    run(job) {
      let Submission;

      try {
        JSON.parse(job.get('_newDefinition'));
        Submission = {
          Source: job.get('_newDefinition'),
          Format: 'json'
        };
      } catch {
        Submission = {
          Source: job.get('_newDefinition'),
          Format: 'hcl2',
          Variables: job.get('_newDefinitionVariables')
        };
      }

      return this.ajax(this.urlForCreateRecord('job'), 'POST', {
        data: {
          Job: job.get('_newDefinitionJSON'),
          Submission
        }
      });
    }

    update(job) {
      const jobId = job.get('id') || job.get('_idBeforeSaving');
      let Submission;

      try {
        JSON.parse(job.get('_newDefinition'));
        Submission = {
          Source: job.get('_newDefinition'),
          Format: 'json'
        };
      } catch {
        Submission = {
          Source: job.get('_newDefinition'),
          Format: 'hcl2',
          Variables: job.get('_newDefinitionVariables')
        };
      }

      return this.ajax(this.urlForUpdateRecord(jobId, 'job'), 'POST', {
        data: {
          Job: job.get('_newDefinitionJSON'),
          Submission
        }
      });
    }

    scale(job, group, count, message) {
      const url = (0, _addToPath.default)(this.urlForFindRecord(job.get('id'), 'job'), '/scale');
      return this.ajax(url, 'POST', {
        data: {
          Count: count,
          Message: message,
          Target: {
            Group: group
          },
          Meta: {
            Source: 'nomad-ui'
          }
        }
      });
    }

    dispatch(job, meta, payload) {
      const url = (0, _addToPath.default)(this.urlForFindRecord(job.get('id'), 'job'), '/dispatch');
      return this.ajax(url, 'POST', {
        data: {
          Payload: (0, _encode.base64EncodeString)(payload),
          Meta: meta
        }
      });
    }

  }) || _class;

  _exports.default = JobAdapter;
});
;define("nomad-ui/adapters/namespace", ["exports", "nomad-ui/adapters/watchable", "nomad-ui/utils/codes-for-error"], function (_exports, _watchable, _codesForError) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class;

  0; //eaimeta@70e063a35619d71f0,"nomad-ui/adapters/watchable",0,"nomad-ui/utils/codes-for-error",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  const classic = __EMBER_CLASSIC_DECORATOR;

  let NamespaceAdapter = classic(_class = class NamespaceAdapter extends _watchable.default {
    findRecord(store, modelClass, id) {
      return super.findRecord(...arguments).catch(error => {
        const errorCodes = (0, _codesForError.default)(error);

        if (errorCodes.includes('501')) {
          return {
            Name: id
          };
        }
      });
    }

  }) || _class;

  _exports.default = NamespaceAdapter;
});
;define("nomad-ui/adapters/node-pool", ["exports", "nomad-ui/adapters/application", "ember-inflector"], function (_exports, _application, _emberInflector) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class;

  0; //eaimeta@70e063a35619d71f0,"nomad-ui/adapters/application",0,"ember-classic-decorator",0,"ember-inflector"eaimeta@70e063a35619d71f

  const classic = __EMBER_CLASSIC_DECORATOR;

  let NodePoolAdapter = classic(_class = class NodePoolAdapter extends _application.default {
    urlForFindAll(modelName) {
      let [relationshipResource, resource] = modelName.split('-');
      resource = (0, _emberInflector.pluralize)(resource);
      return `/v1/${relationshipResource}/${resource}`;
    }

    findAll() {
      return super.findAll(...arguments).catch(error => {
        // Handle the case where the node pool request is sent to a region that
        // doesn't have node pools and the request is handled by the nodes
        // endpoint.
        const isNodeRequest = error.message.includes('node lookup failed: index error: UUID must be 36 characters');

        if (isNodeRequest) {
          return [];
        } // Rethrow to be handled downstream.


        throw error;
      });
    }

  }) || _class;

  _exports.default = NodePoolAdapter;
});
;define("nomad-ui/adapters/node", ["exports", "nomad-ui/adapters/watchable", "nomad-ui/utils/add-to-path"], function (_exports, _watchable, _addToPath) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class;

  0; //eaimeta@70e063a35619d71f0,"nomad-ui/adapters/watchable",0,"nomad-ui/utils/add-to-path",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  const classic = __EMBER_CLASSIC_DECORATOR;

  let NodeAdapter = classic(_class = class NodeAdapter extends _watchable.default {
    setEligible(node) {
      return this.setEligibility(node, true);
    }

    setIneligible(node) {
      return this.setEligibility(node, false);
    }

    setEligibility(node, isEligible) {
      const url = (0, _addToPath.default)(this.urlForFindRecord(node.id, 'node'), '/eligibility');
      return this.ajax(url, 'POST', {
        data: {
          NodeID: node.id,
          Eligibility: isEligible ? 'eligible' : 'ineligible'
        }
      });
    } // Force: -1s deadline
    // No Deadline: 0 deadline


    drain(node, drainSpec) {
      const url = (0, _addToPath.default)(this.urlForFindRecord(node.id, 'node'), '/drain');
      return this.ajax(url, 'POST', {
        data: {
          NodeID: node.id,
          DrainSpec: Object.assign({
            Deadline: 0,
            IgnoreSystemJobs: true
          }, drainSpec)
        }
      });
    }

    forceDrain(node, drainSpec) {
      return this.drain(node, Object.assign({}, drainSpec, {
        Deadline: -1
      }));
    }

    cancelDrain(node) {
      const url = (0, _addToPath.default)(this.urlForFindRecord(node.id, 'node'), '/drain');
      return this.ajax(url, 'POST', {
        data: {
          NodeID: node.id,
          DrainSpec: null
        }
      });
    }

    addMeta(node, newMeta) {
      const url = `/v1/client/metadata?node_id=${node.id}`;
      return this.ajax(url, 'POST', {
        data: {
          Meta: newMeta
        }
      });
    }

  }) || _class;

  _exports.default = NodeAdapter;
});
;define("nomad-ui/adapters/plugin", ["exports", "nomad-ui/adapters/watchable"], function (_exports, _watchable) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class;

  0; //eaimeta@70e063a35619d71f0,"nomad-ui/adapters/watchable",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  const classic = __EMBER_CLASSIC_DECORATOR;

  let PluginAdapter = classic(_class = class PluginAdapter extends _watchable.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "queryParamsToAttrs", {
        type: 'type'
      });
    }

  }) || _class;

  _exports.default = PluginAdapter;
});
;define("nomad-ui/adapters/policy", ["exports", "nomad-ui/adapters/application"], function (_exports, _application) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class;

  0; //eaimeta@70e063a35619d71f0,"nomad-ui/adapters/application",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  const classic = __EMBER_CLASSIC_DECORATOR;

  let PolicyAdapter = classic(_class = class PolicyAdapter extends _application.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "namespace", _application.namespace + '/acl');
    }

    urlForCreateRecord(_modelName, model) {
      return this.urlForUpdateRecord(model.attr('name'), 'policy');
    }

    urlForDeleteRecord(id) {
      return this.urlForUpdateRecord(id, 'policy');
    }

  }) || _class;

  _exports.default = PolicyAdapter;
});
;define("nomad-ui/adapters/recommendation-summary", ["exports", "nomad-ui/adapters/application"], function (_exports, _application) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class;

  0; //eaimeta@70e063a35619d71f0,"nomad-ui/adapters/application",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  const classic = __EMBER_CLASSIC_DECORATOR;

  let RecommendationSummaryAdapter = classic(_class = class RecommendationSummaryAdapter extends _application.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "pathForType", () => 'recommendations');
    }

    urlForFindAll() {
      const url = super.urlForFindAll(...arguments);
      return `${url}?namespace=*`;
    }

    updateRecord(store, type, snapshot) {
      const url = `${super.urlForCreateRecord('recommendations', snapshot)}/apply`;
      const allRecommendationIds = snapshot.hasMany('recommendations').mapBy('id');
      const excludedRecommendationIds = (snapshot.hasMany('excludedRecommendations') || []).mapBy('id');
      const includedRecommendationIds = allRecommendationIds.removeObjects(excludedRecommendationIds);
      const data = {
        Apply: includedRecommendationIds,
        Dismiss: excludedRecommendationIds
      };
      return this.ajax(url, 'POST', {
        data
      });
    }

  }) || _class;

  _exports.default = RecommendationSummaryAdapter;
});
;define("nomad-ui/adapters/service", ["exports", "nomad-ui/adapters/watchable"], function (_exports, _watchable) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class;

  0; //eaimeta@70e063a35619d71f0,"nomad-ui/adapters/watchable",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  const classic = __EMBER_CLASSIC_DECORATOR;

  let ServiceAdapter = classic(_class = class ServiceAdapter extends _watchable.default {}) || _class;

  _exports.default = ServiceAdapter;
});
;define("nomad-ui/adapters/token", ["exports", "@ember/service", "nomad-ui/adapters/application", "nomad-ui/utils/ott-exchange-error", "ember-inflector"], function (_exports, _service, _application, _ottExchangeError, _emberInflector) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _class2, _descriptor;

  0; //eaimeta@70e063a35619d71f0,"@ember/service",0,"nomad-ui/adapters/application",0,"nomad-ui/utils/ott-exchange-error",0,"ember-classic-decorator",0,"ember-inflector"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;

  let TokenAdapter = classic(_class = (_class2 = class TokenAdapter extends _application.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "store", _descriptor, this);

      _defineProperty(this, "namespace", _application.namespace + '/acl');
    }

    createRecord(_store, type, snapshot) {
      let data = this.serialize(snapshot);
      data.Policies = data.PolicyIDs;
      return this.ajax(`${this.buildURL()}/token`, 'POST', {
        data
      });
    } // Delete at /token instead of /tokens


    urlForDeleteRecord(identifier, modelName) {
      return `${this.buildURL()}/${(0, _emberInflector.singularize)(modelName)}/${identifier}`;
    }

    async findSelf() {
      const response = await this.ajax(`${this.buildURL()}/token/self`, 'GET');
      const normalized = this.store.normalize('token', response);
      const tokenRecord = this.store.push(normalized);
      return tokenRecord;
    }

    async loginJWT(LoginToken, AuthMethodName) {
      const response = await this.ajax(`${this.buildURL()}/login`, 'POST', {
        data: {
          AuthMethodName,
          LoginToken
        }
      });
      const normalized = this.store.normalize('token', response);
      const tokenRecord = this.store.push(normalized);
      return tokenRecord;
    }

    exchangeOneTimeToken(oneTimeToken) {
      return this.ajax(`${this.buildURL()}/token/onetime/exchange`, 'POST', {
        data: {
          OneTimeSecretID: oneTimeToken
        }
      }).then(_ref => {
        let {
          Token: token
        } = _ref;
        const store = this.store;
        store.pushPayload('token', {
          tokens: [token]
        });
        return store.peekRecord('token', store.normalize('token', token).data.id);
      }).catch(() => {
        throw new _ottExchangeError.default();
      });
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "store", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class2)) || _class;

  _exports.default = TokenAdapter;
});
;define("nomad-ui/adapters/variable", ["exports", "nomad-ui/adapters/application", "@ember-data/adapter/error", "ember-inflector", "nomad-ui/utils/default-job-templates", "@ember/service"], function (_exports, _application, _error, _emberInflector, _defaultJobTemplates, _service) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _class2, _descriptor;

  0; //eaimeta@70e063a35619d71f0,"nomad-ui/adapters/application",0,"@ember-data/adapter/error",0,"ember-inflector",0,"ember-classic-decorator",0,"@ember-data/adapter/error",0,"nomad-ui/utils/default-job-templates",0,"@ember/service"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;

  let VariableAdapter = classic(_class = (_class2 = class VariableAdapter extends _application.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "store", _descriptor, this);

      _defineProperty(this, "pathForType", () => 'var');
    }

    // PUT instead of POST on create;
    // /v1/var instead of /v1/vars on create (urlForFindRecord)
    createRecord(_store, type, snapshot) {
      let data = this.serialize(snapshot);
      let baseUrl = this.buildURL(type.modelName, data.ID);
      const checkAndSetValue = (snapshot === null || snapshot === void 0 ? void 0 : snapshot.attr('modifyIndex')) || 0;
      return this.ajax(`${baseUrl}?cas=${checkAndSetValue}`, 'PUT', {
        data
      });
    }
    /**
     * Query for job templates, both defaults and variables at the nomad/job-templates path.
     * @returns {Promise<{variables: Variable[], default: Variable[]}>}
     */


    async getJobTemplates() {
      await this.populateDefaultJobTemplates();
      const jobTemplateVariables = await this.store.query('variable', {
        prefix: 'nomad/job-templates',
        namespace: '*'
      }); // Ensure we run a findRecord on each to get its keyValues

      await Promise.all(jobTemplateVariables.map(t => this.store.findRecord('variable', t.id)));
      const defaultTemplates = this.store.peekAll('variable').filter(t => t.isDefaultJobTemplate);
      return {
        variables: jobTemplateVariables,
        default: defaultTemplates
      };
    }

    async populateDefaultJobTemplates() {
      await Promise.all(_defaultJobTemplates.default.map(template => {
        if (!this.store.peekRecord('variable', template.id)) {
          let variableSerializer = this.store.serializerFor('variable');
          let normalized = variableSerializer.normalizeDefaultJobTemplate(template);
          return this.store.createRecord('variable', normalized);
        }

        return null;
      }));
    }
    /**
     * @typedef Variable
     * @type {object}
     */

    /**
     * Lookup a job template variable by ID/path.
     * @param {string} templateID
     * @returns {Promise<Variable>}
     */


    async getJobTemplate(templateID) {
      await this.populateDefaultJobTemplates();
      const defaultJobs = this.store.peekAll('variable').filter(template => template.isDefaultJobTemplate);

      if (defaultJobs.find(job => job.id === templateID)) {
        return defaultJobs.find(job => job.id === templateID);
      } else {
        return this.store.findRecord('variable', templateID);
      }
    }

    urlForFindAll(modelName) {
      let baseUrl = this.buildURL(modelName);
      return (0, _emberInflector.pluralize)(baseUrl);
    }

    urlForQuery(_query, modelName) {
      let baseUrl = this.buildURL(modelName);
      return (0, _emberInflector.pluralize)(baseUrl);
    }

    urlForFindRecord(identifier, modelName) {
      let path,
          namespace = null; // TODO: Variables are namespaced. This Adapter should extend the WatchableNamespaceId Adapter.
      // When that happens, we will need to refactor this to accept JSON tuple like we do for jobs.

      const delimiter = identifier.lastIndexOf('@');

      if (delimiter !== -1) {
        path = identifier.slice(0, delimiter);
        namespace = identifier.slice(delimiter + 1);
      } else {
        path = identifier;
        namespace = 'default';
      }

      let baseUrl = this.buildURL(modelName, path);
      return `${baseUrl}?namespace=${namespace}`;
    }

    urlForUpdateRecord(identifier, modelName, snapshot) {
      var _snapshot$adapterOpti;

      const {
        id
      } = _extractIDAndNamespace(identifier, snapshot);

      let baseUrl = this.buildURL(modelName, id);

      if (snapshot !== null && snapshot !== void 0 && (_snapshot$adapterOpti = snapshot.adapterOptions) !== null && _snapshot$adapterOpti !== void 0 && _snapshot$adapterOpti.overwrite) {
        return `${baseUrl}`;
      } else {
        const checkAndSetValue = (snapshot === null || snapshot === void 0 ? void 0 : snapshot.attr('modifyIndex')) || 0;
        return `${baseUrl}?cas=${checkAndSetValue}`;
      }
    }

    urlForDeleteRecord(identifier, modelName, snapshot) {
      const {
        namespace,
        id
      } = _extractIDAndNamespace(identifier, snapshot);

      const baseUrl = this.buildURL(modelName, id);
      return `${baseUrl}?namespace=${namespace}`;
    }

    handleResponse(status, _, payload) {
      if (status === 404) {
        return new _error.default([{
          detail: payload,
          status: 404
        }]);
      }

      if (status === 409) {
        return new _error.ConflictError([{
          detail: _normalizeConflictErrorObject(payload),
          status: 409
        }]);
      }

      return super.handleResponse(...arguments);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "store", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class2)) || _class;

  _exports.default = VariableAdapter;

  function _extractIDAndNamespace(identifier, snapshot) {
    const namespace = (snapshot === null || snapshot === void 0 ? void 0 : snapshot.attr('namespace')) || 'default';
    const id = (snapshot === null || snapshot === void 0 ? void 0 : snapshot.attr('path')) || identifier;
    return {
      namespace,
      id
    };
  }

  function _normalizeConflictErrorObject(conflictingVariable) {
    return {
      modifyTime: Math.floor(conflictingVariable.ModifyTime / 1000000),
      items: conflictingVariable.Items
    };
  }
});
;define("nomad-ui/adapters/volume", ["exports", "nomad-ui/adapters/watchable-namespace-ids"], function (_exports, _watchableNamespaceIds) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class;

  0; //eaimeta@70e063a35619d71f0,"nomad-ui/adapters/watchable-namespace-ids",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  const classic = __EMBER_CLASSIC_DECORATOR;

  let VolumeAdapter = classic(_class = class VolumeAdapter extends _watchableNamespaceIds.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "queryParamsToAttrs", {
        type: 'type',
        plugin_id: 'plugin.id'
      });
    }

  }) || _class;

  _exports.default = VolumeAdapter;
});
;define("nomad-ui/adapters/watchable-namespace-ids", ["exports", "@ember/service", "nomad-ui/adapters/watchable"], function (_exports, _service, _watchable) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _class2, _descriptor;

  0; //eaimeta@70e063a35619d71f0,"@ember/service",0,"nomad-ui/adapters/watchable",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;

  let WatchableNamespaceIDs = classic(_class = (_class2 = class WatchableNamespaceIDs extends _watchable.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "system", _descriptor, this);
    }

    findAll() {
      return super.findAll(...arguments).then(data => {
        data.forEach(record => {
          record.Namespace = 'default';
        });
        return data;
      });
    }

    query(store, type, _ref) {
      let {
        namespace
      } = _ref;
      return super.query(...arguments).then(data => {
        data.forEach(record => {
          if (!record.Namespace) record.Namespace = namespace;
        });
        return data;
      });
    }

    findRecord(store, type, id, snapshot) {
      const [, namespace] = JSON.parse(id);
      const namespaceQuery = namespace && namespace !== 'default' ? {
        namespace
      } : {};
      return super.findRecord(store, type, id, snapshot, namespaceQuery);
    }

    urlForFindAll() {
      const url = super.urlForFindAll(...arguments);
      return associateNamespace(url);
    }

    urlForQuery() {
      const url = super.urlForQuery(...arguments);
      return associateNamespace(url);
    }

    urlForFindRecord(id, type, hash, pathSuffix) {
      const [name, namespace] = JSON.parse(id);
      let url = super.urlForFindRecord(name, type, hash);
      if (pathSuffix) url += `/${pathSuffix}`;
      return associateNamespace(url, namespace);
    }

    xhrKey(url, method) {
      let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
      const plainKey = super.xhrKey(...arguments);
      const namespace = options.data && options.data.namespace;
      return associateNamespace(plainKey, namespace);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "system", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class2)) || _class;

  _exports.default = WatchableNamespaceIDs;

  function associateNamespace(url, namespace) {
    if (namespace && namespace !== 'default') {
      url += `?namespace=${namespace}`;
    }

    return url;
  }
});
;define("nomad-ui/adapters/watchable", ["exports", "@ember/object", "@ember/polyfills", "@ember/service", "@ember-data/adapter/error", "query-string", "nomad-ui/adapters/application", "nomad-ui/utils/remove-record"], function (_exports, _object, _polyfills, _service, _error, _queryString, _application, _removeRecord) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _class2, _descriptor, _descriptor2;

  0; //eaimeta@70e063a35619d71f0,"@ember/object",0,"@ember/polyfills",0,"@ember/service",0,"@ember-data/adapter/error",0,"query-string",0,"nomad-ui/adapters/application",0,"nomad-ui/utils/remove-record",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }

  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;

  let Watchable = classic(_class = (_class2 = class Watchable extends _application.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "watchList", _descriptor, this);

      _initializerDefineProperty(this, "store", _descriptor2, this);
    }

    // Overriding ajax is not advised, but this is a minimal modification
    // that sets off a series of events that results in query params being
    // available in handleResponse below. Unfortunately, this is the only
    // place where what becomes requestData can be modified.
    //
    // It's either this weird side-effecting thing that also requires a change
    // to ajaxOptions or overriding ajax completely.
    ajax(url, type, options) {
      const hasParams = hasNonBlockingQueryParams(options);
      if (!hasParams || type !== 'GET') return super.ajax(url, type, options);

      const params = _objectSpread({}, options.data);

      delete params.index; // Options data gets appended as query params as part of ajaxOptions.
      // In order to prevent doubling params, data should only include index
      // at this point since everything else is added to the URL in advance.

      options.data = options.data.index ? {
        index: options.data.index
      } : {};
      return super.ajax(`${url}?${_queryString.default.stringify(params)}`, type, options);
    }

    findAll(store, type, sinceToken, snapshotRecordArray) {
      let additionalParams = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};
      const params = (0, _polyfills.assign)(this.buildQuery(), additionalParams);
      const url = this.urlForFindAll(type.modelName);

      if ((0, _object.get)(snapshotRecordArray || {}, 'adapterOptions.watch')) {
        params.index = this.watchList.getIndexFor(url);
      }

      const signal = (0, _object.get)(snapshotRecordArray || {}, 'adapterOptions.abortController.signal');
      return this.ajax(url, 'GET', {
        signal,
        data: params
      });
    }

    findRecord(store, type, id, snapshot) {
      let additionalParams = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {};
      const originalUrl = this.buildURL(type.modelName, id, snapshot, 'findRecord');
      let [url, params] = originalUrl.split('?');
      params = (0, _polyfills.assign)(_queryString.default.parse(params) || {}, this.buildQuery(), additionalParams);

      if ((0, _object.get)(snapshot || {}, 'adapterOptions.watch')) {
        params.index = this.watchList.getIndexFor(originalUrl);
      }

      const signal = (0, _object.get)(snapshot || {}, 'adapterOptions.abortController.signal');
      return this.ajax(url, 'GET', {
        signal,
        data: params
      }).catch(error => {
        if (error instanceof _error.AbortError || error.name == 'AbortError') {
          return;
        }

        throw error;
      });
    }

    query(store, type, query, snapshotRecordArray, options) {
      let additionalParams = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};
      const url = this.buildURL(type.modelName, null, null, 'query', query);
      let [urlPath, params] = url.split('?');
      params = (0, _polyfills.assign)(_queryString.default.parse(params) || {}, this.buildQuery(), additionalParams, query);

      if ((0, _object.get)(options, 'adapterOptions.watch')) {
        // The intended query without additional blocking query params is used
        // to track the appropriate query index.
        params.index = this.watchList.getIndexFor(`${urlPath}?${_queryString.default.stringify(query)}`);
      }

      const signal = (0, _object.get)(options, 'adapterOptions.abortController.signal');
      return this.ajax(urlPath, 'GET', {
        signal,
        data: params
      }).then(payload => {
        const adapter = store.adapterFor(type.modelName); // Query params may not necessarily map one-to-one to attribute names.
        // Adapters are responsible for declaring param mappings.

        const queryParamsToAttrs = Object.keys(adapter.queryParamsToAttrs || {}).map(key => ({
          queryParam: key,
          attr: adapter.queryParamsToAttrs[key]
        })); // Remove existing records that match this query. This way if server-side
        // deletes have occurred, the store won't have stale records.

        store.peekAll(type.modelName).filter(record => queryParamsToAttrs.some(mapping => (0, _object.get)(record, mapping.attr) === query[mapping.queryParam])).forEach(record => {
          (0, _removeRecord.default)(store, record);
        });
        return payload;
      });
    }

    reloadRelationship(model, relationshipName) {
      let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {
        watch: false,
        abortController: null,
        replace: false
      };
      const {
        watch,
        abortController,
        replace
      } = options;
      const relationship = model.relationshipFor(relationshipName);

      if (relationship.kind !== 'belongsTo' && relationship.kind !== 'hasMany') {
        throw new Error(`${relationship.key} must be a belongsTo or hasMany, instead it was ${relationship.kind}`);
      } else {
        const url = model[relationship.kind](relationship.key).link();
        let params = {};

        if (watch) {
          params.index = this.watchList.getIndexFor(url);
        } // Avoid duplicating existing query params by passing them to ajax
        // in the URL and in options.data


        if (url.includes('?')) {
          const paramsInUrl = _queryString.default.parse(url.split('?')[1]);

          Object.keys(paramsInUrl).forEach(key => {
            delete params[key];
          });
        }

        return this.ajax(url, 'GET', {
          signal: abortController && abortController.signal,
          data: params
        }).then(json => {
          const store = this.store;
          const normalizeMethod = relationship.kind === 'belongsTo' ? 'normalizeFindBelongsToResponse' : 'normalizeFindHasManyResponse';
          const serializer = store.serializerFor(relationship.type);
          const modelClass = store.modelFor(relationship.type);
          const normalizedData = serializer[normalizeMethod](store, modelClass, json);

          if (replace) {
            store.unloadAll(relationship.type);
          }

          store.push(normalizedData);
        }, error => {
          if (error instanceof _error.AbortError || error.name === 'AbortError') {
            return relationship.kind === 'belongsTo' ? {} : [];
          }

          throw error;
        });
      }
    }

    handleResponse(status, headers, payload, requestData) {
      // Some browsers lowercase all headers. Others keep them
      // case sensitive.
      const newIndex = headers['x-nomad-index'] || headers['X-Nomad-Index'];

      if (newIndex) {
        this.watchList.setIndexFor(requestData.url, newIndex);
      }

      return super.handleResponse(...arguments);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "watchList", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "store", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class2)) || _class;

  _exports.default = Watchable;

  function hasNonBlockingQueryParams(options) {
    if (!options || !options.data) return false;
    const keys = Object.keys(options.data);
    if (!keys.length) return false;
    if (keys.length === 1 && keys[0] === 'index') return false;
    return true;
  }
});
;define("nomad-ui/app", ["exports", "@ember/application", "ember-resolver", "ember-load-initializers", "nomad-ui/config/environment"], function (_exports, _application, _emberResolver, _emberLoadInitializers, _environment) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/application",0,"ember-resolver",0,"ember-load-initializers",0,"nomad-ui/config/environment"eaimeta@70e063a35619d71f

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  class App extends _application.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "modulePrefix", _environment.default.modulePrefix);

      _defineProperty(this, "podModulePrefix", _environment.default.podModulePrefix);

      _defineProperty(this, "Resolver", _emberResolver.default);
    }

  }

  _exports.default = App;

  window.__CLASSIC_OWN_CLASSES__.set(App, true);

  (0, _emberLoadInitializers.default)(App, _environment.default.modulePrefix);
});
;define("nomad-ui/breakpoints", ["exports"], function (_exports) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71feaimeta@70e063a35619d71f

  /**
   * Copyright (c) HashiCorp, Inc.
   * SPDX-License-Identifier: MPL-2.0
   */
  // Breakpoints are meant to match Bulma's breakpoints and any additional custom breakpoints
  // https://github.com/jgthms/bulma/blob/6ad2e3df0589e5d6ff7a9c03ee1c78a546bedeaf/sass/utilities/initial-variables.sass#L48-L59
  // https://github.com/jgthms/bulma/blob/6ad2e3df0589e5d6ff7a9c03ee1c78a546bedeaf/sass/utilities/mixins.sass#L71-L130
  var _default = {
    mobile: '(max-width: 768px)',
    tablet: '(min-width: 769px)',
    desktop: '(min-width: 1088px)',
    gutterless: '(max-width: 960px)'
  };
  _exports.default = _default;
});
;define("nomad-ui/component-managers/glimmer", ["exports", "@glimmer/component/-private/ember-component-manager"], function (_exports, _emberComponentManager) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _emberComponentManager.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@glimmer/component/-private/ember-component-manager"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/-dynamic-element-alt", ["exports", "@ember/component"], function (_exports, _component) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/component"eaimeta@70e063a35619d71f

  // This component is not needed anymore. However we can only safely remove it once we have an Embroider release that
  // has the special dependency rule for this addon removed:
  // https://github.com/embroider-build/embroider/blob/4fad67f16f811e7f93199a1ee92dba8254c42978/packages/compat/src/addon-dependency-rules/ember-element-helper.ts
  var _default = _component.default.extend();

  _exports.default = _default;
});
;define("nomad-ui/components/-dynamic-element", ["exports", "@ember/component"], function (_exports, _component) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/component"eaimeta@70e063a35619d71f

  // This component is not needed anymore. However we can only safely remove it once we have an Embroider release that
  // has the special dependency rule for this addon removed:
  // https://github.com/embroider-build/embroider/blob/4fad67f16f811e7f93199a1ee92dba8254c42978/packages/compat/src/addon-dependency-rules/ember-element-helper.ts
  var _default = _component.default.extend();

  _exports.default = _default;
});
;define("nomad-ui/components/addon-copy-button", ["exports", "ember-cli-clipboard/components/copy-button"], function (_exports, _copyButton) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _copyButton.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-cli-clipboard/components/copy-button"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/agent-monitor", ["exports", "@ember/service", "@ember/component", "@ember/object", "@ember/debug", "@ember-decorators/component", "nomad-ui/utils/classes/log"], function (_exports, _service, _component, _object, _debug, _component2, _log) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _class, _class2, _descriptor;

  0; //eaimeta@70e063a35619d71f0,"@ember/service",0,"@ember/component",0,"@ember/object",0,"@ember/debug",0,"@ember-decorators/component",0,"ember-classic-decorator",0,"nomad-ui/utils/classes/log"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;
  const LEVELS = ['error', 'warn', 'info', 'debug', 'trace'];
  let AgentMonitor = (_dec = (0, _component2.tagName)(''), _dec2 = (0, _object.computed)('client.id', 'level', 'server.{id,region}'), classic(_class = _dec(_class = (_class2 = class AgentMonitor extends _component.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "token", _descriptor, this);

      _defineProperty(this, "client", null);

      _defineProperty(this, "server", null);

      _defineProperty(this, "level", LEVELS[2]);

      _defineProperty(this, "levels", LEVELS);

      _defineProperty(this, "monitorUrl", '/v1/agent/monitor');

      _defineProperty(this, "isStreaming", true);

      _defineProperty(this, "logger", null);
    }

    onLevelChange() {}

    get monitorParams() {
      (true && !(this.server != null || this.client != null) && (0, _debug.assert)('Provide a client OR a server to AgentMonitor, not both.', this.server != null || this.client != null));
      const type = this.server ? 'server_id' : 'client_id';
      const id = this.server ? this.server.id : this.client && this.client.id;
      const params = {
        log_level: this.level,
        [type]: id
      };

      if (this.server) {
        params.region = this.server.region;
      }

      return params;
    }

    didInsertElement() {
      super.didInsertElement(...arguments);
      this.updateLogger();
    }

    updateLogger() {
      let currentTail = this.logger ? this.logger.tail : '';

      if (currentTail) {
        currentTail += `\n...changing log level to ${this.level}...\n\n`;
      }

      this.set('logger', _log.default.create({
        logFetch: url => this.token.authorizedRequest(url),
        params: this.monitorParams,
        url: this.monitorUrl,
        tail: currentTail
      }));
    }

    setLevel(level) {
      this.logger.stop();
      this.set('level', level);
      this.onLevelChange(level);
      this.updateLogger();
    }

    toggleStream() {
      this.set('streamMode', 'streaming');
      this.toggleProperty('isStreaming');
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "token", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "monitorParams", [_dec2], Object.getOwnPropertyDescriptor(_class2.prototype, "monitorParams"), _class2.prototype)), _class2)) || _class) || _class);
  _exports.default = AgentMonitor;
});
;define("nomad-ui/components/allocation-row", ["exports", "ember", "@ember/service", "@ember/component", "@ember/object", "ember-overridable-computed", "@ember/object/computed", "@ember/runloop", "ember-concurrency", "nomad-ui/helpers/lazy-click", "nomad-ui/utils/classes/allocation-stats-tracker", "@ember-decorators/component"], function (_exports, _ember, _service, _component, _object, _emberOverridableComputed, _computed, _runloop, _emberConcurrency, _lazyClick, _allocationStatsTracker, _component2) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6;

  0; //eaimeta@70e063a35619d71f0,"ember",0,"@ember/service",0,"@ember/component",0,"@ember/object",0,"ember-overridable-computed",0,"@ember/object/computed",0,"@ember/runloop",0,"ember-concurrency",0,"nomad-ui/helpers/lazy-click",0,"nomad-ui/utils/classes/allocation-stats-tracker",0,"ember-classic-decorator",0,"@ember-decorators/component"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let AllocationRow = (_dec = (0, _component2.tagName)('tr'), _dec2 = (0, _component2.classNames)('allocation-row', 'is-interactive'), _dec3 = (0, _component2.attributeBindings)('data-test-allocation', 'data-test-write-allocation', 'data-test-read-allocation'), _dec4 = (0, _emberOverridableComputed.computed)(() => !_ember.default.testing), _dec5 = (0, _object.computed)('allocation', 'allocation.isRunning'), _dec6 = (0, _computed.alias)('stats.cpu.lastObject'), _dec7 = (0, _computed.alias)('stats.memory.lastObject'), _dec8 = (0, _emberConcurrency.task)(function* () {
    do {
      if (this.stats) {
        try {
          yield this.get('stats.poll').linked().perform();
          this.set('statsError', false);
        } catch (error) {
          this.set('statsError', true);
        }
      }

      yield (0, _emberConcurrency.timeout)(500);
    } while (this.enablePolling);
  }).drop(), classic(_class = _dec(_class = _dec2(_class = _dec3(_class = (_class2 = class AllocationRow extends _component.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "store", _descriptor, this);

      _initializerDefineProperty(this, "token", _descriptor2, this);

      _defineProperty(this, "allocation", null);

      _defineProperty(this, "context", null);

      _defineProperty(this, "statsError", false);

      _initializerDefineProperty(this, "enablePolling", _descriptor3, this);

      _initializerDefineProperty(this, "cpu", _descriptor4, this);

      _initializerDefineProperty(this, "memory", _descriptor5, this);

      _initializerDefineProperty(this, "fetchStats", _descriptor6, this);
    }

    get stats() {
      if (!this.get('allocation.isRunning')) return undefined;
      return _allocationStatsTracker.default.create({
        fetch: url => this.token.authorizedRequest(url),
        allocation: this.allocation
      });
    }

    onClick() {}

    click(event) {
      (0, _lazyClick.lazyClick)([this.onClick, event]);
    }

    didReceiveAttrs() {
      super.didReceiveAttrs();
      this.updateStatsTracker();
    }

    updateStatsTracker() {
      const allocation = this.allocation;

      if (allocation) {
        (0, _runloop.scheduleOnce)('afterRender', this, qualifyAllocation);
      } else {
        this.fetchStats.cancelAll();
      }
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "store", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "token", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, "enablePolling", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "stats", [_dec5], Object.getOwnPropertyDescriptor(_class2.prototype, "stats"), _class2.prototype), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, "cpu", [_dec6], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor5 = _applyDecoratedDescriptor(_class2.prototype, "memory", [_dec7], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor6 = _applyDecoratedDescriptor(_class2.prototype, "fetchStats", [_dec8], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class2)) || _class) || _class) || _class) || _class);
  _exports.default = AllocationRow;

  async function qualifyAllocation() {
    const allocation = this.allocation; // Make sure the allocation is a complete record and not a partial so we
    // can show information such as preemptions and rescheduled allocation.

    if (allocation.isPartial) {
      await this.store.findRecord('allocation', allocation.id, {
        backgroundReload: false
      });
    }

    if (allocation.get('job.isPending')) {
      // Make sure the job is loaded before starting the stats tracker
      await allocation.get('job');
    } else if (!allocation.get('taskGroup')) {
      // Make sure that the job record in the store for this allocation
      // is complete and not a partial from the list endpoint
      const job = allocation.get('job.content');
      if (job.isPartial) await job.reload();
    }

    this.fetchStats.perform();
  }
});
;define("nomad-ui/components/allocation-service-sidebar", ["exports", "@ember/component", "@ember/template-factory", "@glimmer/component", "@ember/service"], function (_exports, _component, _templateFactory, _component2, _service) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _descriptor, _descriptor2;

  0; //eaimeta@70e063a35619d71f0,"@glimmer/component",0,"@ember/service",0,"@ember/template-factory"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const __COLOCATED_TEMPLATE__ = (0, _templateFactory.createTemplateFactory)(
  /*
    {{!
    Copyright (c) HashiCorp, Inc.
    SPDX-License-Identifier: MPL-2.0
  ~}}
  
  <div
    class="sidebar has-subnav service-sidebar {{if this.isSideBarOpen "open"}}"
    {{on-click-outside
      @fns.closeSidebar
      capture=true
    }}
  >
    {{#if @service}}
      {{keyboard-commands this.keyCommands}}
      <header class="detail-header">
        <h1 class="title">
          {{@service.name}}
          {{#if (not-eq @service.provider "consul")}}
            <span class="aggregate-status">
              {{#if (eq this.aggregateStatus 'Unhealthy')}}
                <FlightIcon @name="x-square-fill" @color="#c84034" />
                Unhealthy
              {{else if (eq this.aggregateStatus 'Unknown')}}
              <Tooltip @text="The parent allocation for this service is not running" @isFullText={{true}}>
                <FlightIcon @name="help" @color="#999999" />
                Health Unknown
              </Tooltip>
              {{else}}
                <FlightIcon @name="check-square-fill" @color="#25ba81" />
                Healthy
              {{/if}}
            </span>
          {{/if}}
        </h1>
        <button
          data-test-close-service-sidebar
          class="button is-borderless"
          type="button"
          {{on "click" @fns.closeSidebar}}
        >
          {{x-icon "cancel"}}
        </button>
      </header>
  
      <div class="boxed-section is-small">
        <div
          class="boxed-section-body inline-definitions"
        >
          <span class="label">
            Service Details
          </span>
  
          <div>
            {{#if @service.connect}}
              <span class="pair">
                <span class="term">
                  Connect
                </span>
                <span>True</span>
              </span>
            {{/if}}
            <span class="pair">
              <span class="term">
                Allocation
              </span>
              <LinkTo
                @route="allocations.allocation"
                @model={{@allocation}}
                @query={{hash service=""}}
              >
                {{@allocation.shortId}}
              </LinkTo>
            </span>
            <span class="pair">
              <span class="term">
                IP Address &amp; Port
              </span>
              <a
                href="http://{{this.address}}"
                target="_blank"
                rel="noopener noreferrer"
              >
                {{this.address}}
              </a>
            </span>
            <span class="pair">
              <span class="term">
                Client
              </span>
              <Tooltip @text={{@allocation.node.name}}>
                <LinkTo
                  @route="clients.client"
                  @model={{@allocation.node}}
                >
                  {{@allocation.node.shortId}}
                </LinkTo>
              </Tooltip>
            </span>
            {{#if @service.tags.length}}
              <span class="pair is-wrappable">
                <span class="term">
                  Tags
                </span>
                {{#each @service.tags as |tag|}}
                  <span class="tag is-service">{{tag}}</span>
                {{/each}}
                {{#each @service.canary_tags as |tag|}}
                  <span class="tag canary is-service">{{tag}}</span>
                {{/each}}
              </span>
            {{/if}}
          </div>
        </div>
      </div>
      {{#if this.checks.length}}
        <ListTable class="health-checks" @source={{this.checks}} as |t|>
          <t.head>
            <th class="name">
              Check Name
            </th>
            <th class="status">
              Status
            </th>
            <td class="output">
              Output
            </td>
          </t.head>
          <t.body as |row|>
            <tr data-service-health={{row.model.Status}}>
              <td class="name">
                <span title={{row.model.Check}}>{{row.model.Check}}</span>
              </td>
              <td class="status">
                <span>
                  {{#if (eq row.model.Status "success")}}
                    <FlightIcon @name="check-square-fill" @color="#25ba81" />
                    Healthy
                  {{else if (eq row.model.Status "failure")}}
                    <FlightIcon @name="x-square-fill" @color="#c84034" />
                    Unhealthy
                  {{else if (eq row.model.Status "pending")}}
                    Pending
                  {{/if}}
                </span>
              </td>
              <td class="service-output">
                <code>
                  {{row.model.Output}}
                </code>
              </td>
            </tr>
            <tr class="service-status-indicators">
              <td colspan="3">
                <div>
                  {{#each (dedupe-by-property (filter-by "Check" row.model.Check @service.healthChecks) prop="Timestamp") as |check|}}
                    <ServiceStatusIndicator @check={{check}} />
                  {{/each}}
                </div>
              </td>
            </tr>
          </t.body>
        </ListTable>
      {{/if}}
      {{#if (eq @service.provider "consul")}}
      <table class="table is-fixed connect-info">
        <tbody>
          {{#if @service.onUpdate}}
            <tr>
              <td><strong>On Update</strong></td>
              <td>{{@service.onUpdate}}</td>
            </tr>
          {{/if}}
          {{#if @service.connect.sidecarService.proxy.upstreams}}
            <tr>
              <td><strong>Upstreams</strong></td>
              <td>
                  {{#each
                    @service.connect.sidecarService.proxy.upstreams as |upstream|
                  }}
                    <span class="tag">{{upstream.destinationName}}:{{upstream.localBindPort}}</span>
                  {{/each}}
              </td>
            </tr>
          {{/if}}
        </tbody>
      </table>
      {{/if}}
      {{#if (and (eq @service.provider "consul") this.consulRedirectLink)}}
      <div data-test-consul-link-notice class="notification is-info">
        <p>
          Nomad cannot read health check information from Consul services, but you can <a href={{this.consulRedirectLink}} target="_blank" rel="noopener noreferrer">view this information in your Consul UI</a>.
        </p>
      </div>
      {{/if}}
    {{/if}}
  </div>
  
  */
  {
    "id": "vGga1cib",
    "block": "[[[11,0],[16,0,[29,[\"sidebar has-subnav service-sidebar \",[52,[30,0,[\"isSideBarOpen\"]],\"open\"]]]],[4,[38,1],[[30,1,[\"closeSidebar\"]]],[[\"capture\"],[true]]],[12],[1,\"\\n\"],[41,[30,2],[[[1,\"    \"],[1,[28,[35,2],[[30,0,[\"keyCommands\"]]],null]],[1,\"\\n    \"],[10,\"header\"],[14,0,\"detail-header\"],[12],[1,\"\\n      \"],[10,\"h1\"],[14,0,\"title\"],[12],[1,\"\\n        \"],[1,[30,2,[\"name\"]]],[1,\"\\n\"],[41,[28,[37,3],[[30,2,[\"provider\"]],\"consul\"],null],[[[1,\"          \"],[10,1],[14,0,\"aggregate-status\"],[12],[1,\"\\n\"],[41,[28,[37,4],[[30,0,[\"aggregateStatus\"]],\"Unhealthy\"],null],[[[1,\"              \"],[8,[39,5],null,[[\"@name\",\"@color\"],[\"x-square-fill\",\"#c84034\"]],null],[1,\"\\n              Unhealthy\\n\"]],[]],[[[41,[28,[37,4],[[30,0,[\"aggregateStatus\"]],\"Unknown\"],null],[[[1,\"            \"],[8,[39,6],null,[[\"@text\",\"@isFullText\"],[\"The parent allocation for this service is not running\",true]],[[\"default\"],[[[[1,\"\\n              \"],[8,[39,5],null,[[\"@name\",\"@color\"],[\"help\",\"#999999\"]],null],[1,\"\\n              Health Unknown\\n            \"]],[]]]]],[1,\"\\n\"]],[]],[[[1,\"              \"],[8,[39,5],null,[[\"@name\",\"@color\"],[\"check-square-fill\",\"#25ba81\"]],null],[1,\"\\n              Healthy\\n            \"]],[]]]],[]]],[1,\"          \"],[13],[1,\"\\n\"]],[]],null],[1,\"      \"],[13],[1,\"\\n      \"],[11,\"button\"],[24,0,\"button is-borderless\"],[24,4,\"button\"],[4,[38,7],[\"click\",[30,1,[\"closeSidebar\"]]],null],[12],[1,\"\\n        \"],[1,[28,[35,8],[\"cancel\"],null]],[1,\"\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n\\n    \"],[10,0],[14,0,\"boxed-section is-small\"],[12],[1,\"\\n      \"],[10,0],[14,0,\"boxed-section-body inline-definitions\"],[12],[1,\"\\n        \"],[10,1],[14,0,\"label\"],[12],[1,\"\\n          Service Details\\n        \"],[13],[1,\"\\n\\n        \"],[10,0],[12],[1,\"\\n\"],[41,[30,2,[\"connect\"]],[[[1,\"            \"],[10,1],[14,0,\"pair\"],[12],[1,\"\\n              \"],[10,1],[14,0,\"term\"],[12],[1,\"\\n                Connect\\n              \"],[13],[1,\"\\n              \"],[10,1],[12],[1,\"True\"],[13],[1,\"\\n            \"],[13],[1,\"\\n\"]],[]],null],[1,\"          \"],[10,1],[14,0,\"pair\"],[12],[1,\"\\n            \"],[10,1],[14,0,\"term\"],[12],[1,\"\\n              Allocation\\n            \"],[13],[1,\"\\n            \"],[8,[39,9],null,[[\"@route\",\"@model\",\"@query\"],[\"allocations.allocation\",[30,3],[28,[37,10],null,[[\"service\"],[\"\"]]]]],[[\"default\"],[[[[1,\"\\n              \"],[1,[30,3,[\"shortId\"]]],[1,\"\\n            \"]],[]]]]],[1,\"\\n          \"],[13],[1,\"\\n          \"],[10,1],[14,0,\"pair\"],[12],[1,\"\\n            \"],[10,1],[14,0,\"term\"],[12],[1,\"\\n              IP Address & Port\\n            \"],[13],[1,\"\\n            \"],[10,3],[15,6,[29,[\"http://\",[30,0,[\"address\"]]]]],[14,\"target\",\"_blank\"],[14,\"rel\",\"noopener noreferrer\"],[12],[1,\"\\n              \"],[1,[30,0,[\"address\"]]],[1,\"\\n            \"],[13],[1,\"\\n          \"],[13],[1,\"\\n          \"],[10,1],[14,0,\"pair\"],[12],[1,\"\\n            \"],[10,1],[14,0,\"term\"],[12],[1,\"\\n              Client\\n            \"],[13],[1,\"\\n            \"],[8,[39,6],null,[[\"@text\"],[[30,3,[\"node\",\"name\"]]]],[[\"default\"],[[[[1,\"\\n              \"],[8,[39,9],null,[[\"@route\",\"@model\"],[\"clients.client\",[30,3,[\"node\"]]]],[[\"default\"],[[[[1,\"\\n                \"],[1,[30,3,[\"node\",\"shortId\"]]],[1,\"\\n              \"]],[]]]]],[1,\"\\n            \"]],[]]]]],[1,\"\\n          \"],[13],[1,\"\\n\"],[41,[30,2,[\"tags\",\"length\"]],[[[1,\"            \"],[10,1],[14,0,\"pair is-wrappable\"],[12],[1,\"\\n              \"],[10,1],[14,0,\"term\"],[12],[1,\"\\n                Tags\\n              \"],[13],[1,\"\\n\"],[42,[28,[37,12],[[28,[37,12],[[30,2,[\"tags\"]]],null]],null],null,[[[1,\"                \"],[10,1],[14,0,\"tag is-service\"],[12],[1,[30,4]],[13],[1,\"\\n\"]],[4]],null],[42,[28,[37,12],[[28,[37,12],[[30,2,[\"canary_tags\"]]],null]],null],null,[[[1,\"                \"],[10,1],[14,0,\"tag canary is-service\"],[12],[1,[30,5]],[13],[1,\"\\n\"]],[5]],null],[1,\"            \"],[13],[1,\"\\n\"]],[]],null],[1,\"        \"],[13],[1,\"\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n\"],[41,[30,0,[\"checks\",\"length\"]],[[[1,\"      \"],[8,[39,13],[[24,0,\"health-checks\"]],[[\"@source\"],[[30,0,[\"checks\"]]]],[[\"default\"],[[[[1,\"\\n        \"],[8,[30,6,[\"head\"]],null,null,[[\"default\"],[[[[1,\"\\n          \"],[10,\"th\"],[14,0,\"name\"],[12],[1,\"\\n            Check Name\\n          \"],[13],[1,\"\\n          \"],[10,\"th\"],[14,0,\"status\"],[12],[1,\"\\n            Status\\n          \"],[13],[1,\"\\n          \"],[10,\"td\"],[14,0,\"output\"],[12],[1,\"\\n            Output\\n          \"],[13],[1,\"\\n        \"]],[]]]]],[1,\"\\n        \"],[8,[30,6,[\"body\"]],null,null,[[\"default\"],[[[[1,\"\\n          \"],[10,\"tr\"],[15,\"data-service-health\",[30,7,[\"model\",\"Status\"]]],[12],[1,\"\\n            \"],[10,\"td\"],[14,0,\"name\"],[12],[1,\"\\n              \"],[10,1],[15,\"title\",[30,7,[\"model\",\"Check\"]]],[12],[1,[30,7,[\"model\",\"Check\"]]],[13],[1,\"\\n            \"],[13],[1,\"\\n            \"],[10,\"td\"],[14,0,\"status\"],[12],[1,\"\\n              \"],[10,1],[12],[1,\"\\n\"],[41,[28,[37,4],[[30,7,[\"model\",\"Status\"]],\"success\"],null],[[[1,\"                  \"],[8,[39,5],null,[[\"@name\",\"@color\"],[\"check-square-fill\",\"#25ba81\"]],null],[1,\"\\n                  Healthy\\n\"]],[]],[[[41,[28,[37,4],[[30,7,[\"model\",\"Status\"]],\"failure\"],null],[[[1,\"                  \"],[8,[39,5],null,[[\"@name\",\"@color\"],[\"x-square-fill\",\"#c84034\"]],null],[1,\"\\n                  Unhealthy\\n\"]],[]],[[[41,[28,[37,4],[[30,7,[\"model\",\"Status\"]],\"pending\"],null],[[[1,\"                  Pending\\n                \"]],[]],null]],[]]]],[]]],[1,\"              \"],[13],[1,\"\\n            \"],[13],[1,\"\\n            \"],[10,\"td\"],[14,0,\"service-output\"],[12],[1,\"\\n              \"],[10,\"code\"],[12],[1,\"\\n                \"],[1,[30,7,[\"model\",\"Output\"]]],[1,\"\\n              \"],[13],[1,\"\\n            \"],[13],[1,\"\\n          \"],[13],[1,\"\\n          \"],[10,\"tr\"],[14,0,\"service-status-indicators\"],[12],[1,\"\\n            \"],[10,\"td\"],[14,\"colspan\",\"3\"],[12],[1,\"\\n              \"],[10,0],[12],[1,\"\\n\"],[42,[28,[37,12],[[28,[37,12],[[28,[37,14],[[28,[37,15],[\"Check\",[30,7,[\"model\",\"Check\"]],[30,2,[\"healthChecks\"]]],null]],[[\"prop\"],[\"Timestamp\"]]]],null]],null],null,[[[1,\"                  \"],[8,[39,16],null,[[\"@check\"],[[30,8]]],null],[1,\"\\n\"]],[8]],null],[1,\"              \"],[13],[1,\"\\n            \"],[13],[1,\"\\n          \"],[13],[1,\"\\n        \"]],[7]]]]],[1,\"\\n      \"]],[6]]]]],[1,\"\\n\"]],[]],null],[41,[28,[37,4],[[30,2,[\"provider\"]],\"consul\"],null],[[[1,\"    \"],[10,\"table\"],[14,0,\"table is-fixed connect-info\"],[12],[1,\"\\n      \"],[10,\"tbody\"],[12],[1,\"\\n\"],[41,[30,2,[\"onUpdate\"]],[[[1,\"          \"],[10,\"tr\"],[12],[1,\"\\n            \"],[10,\"td\"],[12],[10,\"strong\"],[12],[1,\"On Update\"],[13],[13],[1,\"\\n            \"],[10,\"td\"],[12],[1,[30,2,[\"onUpdate\"]]],[13],[1,\"\\n          \"],[13],[1,\"\\n\"]],[]],null],[41,[30,2,[\"connect\",\"sidecarService\",\"proxy\",\"upstreams\"]],[[[1,\"          \"],[10,\"tr\"],[12],[1,\"\\n            \"],[10,\"td\"],[12],[10,\"strong\"],[12],[1,\"Upstreams\"],[13],[13],[1,\"\\n            \"],[10,\"td\"],[12],[1,\"\\n\"],[42,[28,[37,12],[[28,[37,12],[[30,2,[\"connect\",\"sidecarService\",\"proxy\",\"upstreams\"]]],null]],null],null,[[[1,\"                  \"],[10,1],[14,0,\"tag\"],[12],[1,[30,9,[\"destinationName\"]]],[1,\":\"],[1,[30,9,[\"localBindPort\"]]],[13],[1,\"\\n\"]],[9]],null],[1,\"            \"],[13],[1,\"\\n          \"],[13],[1,\"\\n\"]],[]],null],[1,\"      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n\"]],[]],null],[41,[28,[37,17],[[28,[37,4],[[30,2,[\"provider\"]],\"consul\"],null],[30,0,[\"consulRedirectLink\"]]],null],[[[1,\"    \"],[10,0],[14,0,\"notification is-info\"],[12],[1,\"\\n      \"],[10,2],[12],[1,\"\\n        Nomad cannot read health check information from Consul services, but you can \"],[10,3],[15,6,[30,0,[\"consulRedirectLink\"]]],[14,\"target\",\"_blank\"],[14,\"rel\",\"noopener noreferrer\"],[12],[1,\"view this information in your Consul UI\"],[13],[1,\".\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n\"]],[]],null]],[]],null],[13],[1,\"\\n\"]],[\"@fns\",\"@service\",\"@allocation\",\"tag\",\"tag\",\"t\",\"row\",\"check\",\"upstream\"],false,[\"if\",\"on-click-outside\",\"keyboard-commands\",\"not-eq\",\"eq\",\"flight-icon\",\"tooltip\",\"on\",\"x-icon\",\"link-to\",\"hash\",\"each\",\"-track-array\",\"list-table\",\"dedupe-by-property\",\"filter-by\",\"service-status-indicator\",\"and\"]]",
    "moduleName": "nomad-ui/components/allocation-service-sidebar.hbs",
    "isStrictMode": false
  });
  /**
   * Copyright (c) HashiCorp, Inc.
   * SPDX-License-Identifier: MPL-2.0
   */


  let AllocationServiceSidebarComponent = (_class = class AllocationServiceSidebarComponent extends _component2.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "store", _descriptor, this);

      _initializerDefineProperty(this, "system", _descriptor2, this);

      _defineProperty(this, "keyCommands", [{
        label: 'Close Service Sidebar',
        pattern: ['Escape'],
        action: () => this.args.fns.closeSidebar()
      }]);
    }

    get isSideBarOpen() {
      return !!this.args.service;
    }

    get service() {
      return this.store.query('service-fragment', {
        refID: this.args.serviceID
      });
    }

    get address() {
      var _this$args$allocation, _this$args$allocation2, _this$args$allocation3;

      const port = (_this$args$allocation = this.args.allocation) === null || _this$args$allocation === void 0 ? void 0 : (_this$args$allocation2 = _this$args$allocation.allocatedResources) === null || _this$args$allocation2 === void 0 ? void 0 : (_this$args$allocation3 = _this$args$allocation2.ports) === null || _this$args$allocation3 === void 0 ? void 0 : _this$args$allocation3.findBy('label', this.args.service.portLabel);

      if (port) {
        return `${port.hostIp}:${port.value}`;
      } else {
        return null;
      }
    }

    get aggregateStatus() {
      var _this$args$allocation4;

      if (((_this$args$allocation4 = this.args.allocation) === null || _this$args$allocation4 === void 0 ? void 0 : _this$args$allocation4.clientStatus) !== 'running') return 'Unknown';
      return this.checks.any(check => check.Status === 'failure') ? 'Unhealthy' : 'Healthy';
    }

    get consulRedirectLink() {
      var _this$system$agent$ge, _this$system$agent$ge2, _this$system$agent$ge3;

      return (_this$system$agent$ge = this.system.agent.get('config')) === null || _this$system$agent$ge === void 0 ? void 0 : (_this$system$agent$ge2 = _this$system$agent$ge.UI) === null || _this$system$agent$ge2 === void 0 ? void 0 : (_this$system$agent$ge3 = _this$system$agent$ge2.Consul) === null || _this$system$agent$ge3 === void 0 ? void 0 : _this$system$agent$ge3.BaseUIURL;
    }

    get checks() {
      if (!this.args.service || !this.args.allocation) return [];
      let allocID = this.args.allocation.id; // Our UI checks run every 2 seconds; but a check itself may only update every, say, minute.
      // Therefore, we'll have duplicate checks in a service's healthChecks array.
      // Only get the most recent check for each check.

      return (this.args.service.healthChecks || []).filterBy('Alloc', allocID).sortBy('Timestamp').reverse().uniqBy('Check').sortBy('Check');
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "store", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "system", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class);
  _exports.default = AllocationServiceSidebarComponent;
  (0, _component.setComponentTemplate)(__COLOCATED_TEMPLATE__, AllocationServiceSidebarComponent);
});
;define("nomad-ui/components/allocation-stat", ["exports", "@ember/component", "@ember/object", "@ember/object/computed", "nomad-ui/utils/units", "@ember-decorators/component"], function (_exports, _component, _object, _computed, _units, _component2) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _class, _class2, _descriptor, _descriptor2;

  0; //eaimeta@70e063a35619d71f0,"@ember/component",0,"@ember/object",0,"@ember/object/computed",0,"nomad-ui/utils/units",0,"@ember-decorators/component",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let AllocationStat = (_dec = (0, _component2.tagName)(''), _dec2 = (0, _object.computed)('metric'), _dec3 = (0, _computed.alias)('statsTracker.cpu.lastObject'), _dec4 = (0, _computed.alias)('statsTracker.memory.lastObject'), _dec5 = (0, _object.computed)('metric', 'cpu', 'memory'), _dec6 = (0, _object.computed)('metric', 'stat.used'), _dec7 = (0, _object.computed)('metric', 'statsTracker.{reservedMemory,reservedCPU}'), classic(_class = _dec(_class = (_class2 = class AllocationStat extends _component.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "allocation", null);

      _defineProperty(this, "statsTracker", null);

      _defineProperty(this, "isLoading", false);

      _defineProperty(this, "error", null);

      _defineProperty(this, "metric", 'memory');

      _initializerDefineProperty(this, "cpu", _descriptor, this);

      _initializerDefineProperty(this, "memory", _descriptor2, this);
    }

    // Either memory or cpu
    get statClass() {
      return this.metric === 'cpu' ? 'is-info' : 'is-danger';
    }

    get stat() {
      const {
        metric
      } = this;

      if (metric === 'cpu' || metric === 'memory') {
        return this[this.metric];
      }

      return undefined;
    }

    get formattedStat() {
      if (!this.stat) return undefined;
      if (this.metric === 'memory') return (0, _units.formatBytes)(this.stat.used);
      if (this.metric === 'cpu') return (0, _units.formatHertz)(this.stat.used, 'MHz');
      return undefined;
    }

    get formattedReserved() {
      if (this.metric === 'memory') return (0, _units.formatBytes)(this.statsTracker.reservedMemory, 'MiB');
      if (this.metric === 'cpu') return (0, _units.formatHertz)(this.statsTracker.reservedCPU, 'MHz');
      return undefined;
    }

  }, (_applyDecoratedDescriptor(_class2.prototype, "statClass", [_dec2], Object.getOwnPropertyDescriptor(_class2.prototype, "statClass"), _class2.prototype), _descriptor = _applyDecoratedDescriptor(_class2.prototype, "cpu", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "memory", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "stat", [_dec5], Object.getOwnPropertyDescriptor(_class2.prototype, "stat"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "formattedStat", [_dec6], Object.getOwnPropertyDescriptor(_class2.prototype, "formattedStat"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "formattedReserved", [_dec7], Object.getOwnPropertyDescriptor(_class2.prototype, "formattedReserved"), _class2.prototype)), _class2)) || _class) || _class);
  _exports.default = AllocationStat;
});
;define("nomad-ui/components/allocation-status-bar", ["exports", "@ember/object", "nomad-ui/components/distribution-bar", "@ember-decorators/component"], function (_exports, _object, _distributionBar, _component) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _class, _class2;

  0; //eaimeta@70e063a35619d71f0,"@ember/object",0,"nomad-ui/components/distribution-bar",0,"@ember-decorators/component",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let AllocationStatusBar = (_dec = (0, _component.attributeBindings)('data-test-allocation-status-bar'), _dec2 = (0, _object.computed)('allocationContainer.{queuedAllocs,completeAllocs,failedAllocs,runningAllocs,startingAllocs,lostAllocs,unknownAllocs}', 'job.namespace'), classic(_class = _dec(_class = (_class2 = class AllocationStatusBar extends _distributionBar.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "layoutName", 'components/distribution-bar');

      _defineProperty(this, "allocationContainer", null);

      _defineProperty(this, "job", null);

      _defineProperty(this, 'data-test-allocation-status-bar', true);
    }

    generateLegendLink(job, status) {
      if (!job || status === 'queued') return null;
      return {
        queryParams: {
          status: JSON.stringify([status]),
          namespace: job.belongsTo('namespace').id()
        }
      };
    }

    get data() {
      if (!this.allocationContainer) {
        return [];
      }

      const allocs = this.allocationContainer.getProperties('queuedAllocs', 'completeAllocs', 'failedAllocs', 'runningAllocs', 'startingAllocs', 'lostAllocs', 'unknownAllocs');
      return [{
        label: 'Queued',
        value: allocs.queuedAllocs,
        className: 'queued',
        legendLink: this.generateLegendLink(this.job, 'queued')
      }, {
        label: 'Starting',
        value: allocs.startingAllocs,
        className: 'starting',
        layers: 2,
        legendLink: this.generateLegendLink(this.job, 'starting')
      }, {
        label: 'Running',
        value: allocs.runningAllocs,
        className: 'running',
        legendLink: this.generateLegendLink(this.job, 'running')
      }, {
        label: 'Complete',
        value: allocs.completeAllocs,
        className: 'complete',
        legendLink: this.generateLegendLink(this.job, 'complete')
      }, {
        label: 'Unknown',
        value: allocs.unknownAllocs,
        className: 'unknown',
        legendLink: this.generateLegendLink(this.job, 'unknown'),
        help: 'Allocation is unknown since its node is disconnected.'
      }, {
        label: 'Failed',
        value: allocs.failedAllocs,
        className: 'failed',
        legendLink: this.generateLegendLink(this.job, 'failed')
      }, {
        label: 'Lost',
        value: allocs.lostAllocs,
        className: 'lost',
        legendLink: this.generateLegendLink(this.job, 'lost')
      }];
    }

  }, (_applyDecoratedDescriptor(_class2.prototype, "data", [_dec2], Object.getOwnPropertyDescriptor(_class2.prototype, "data"), _class2.prototype)), _class2)) || _class) || _class);
  _exports.default = AllocationStatusBar;
});
;define("nomad-ui/components/allocation-subnav", ["exports", "@ember/component", "@ember/service", "@ember/object/computed", "@ember-decorators/component"], function (_exports, _component, _service, _computed, _component2) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5;

  0; //eaimeta@70e063a35619d71f0,"@ember/component",0,"@ember/service",0,"@ember/object/computed",0,"@ember-decorators/component",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let AllocationSubnav = (_dec = (0, _component2.tagName)(''), _dec2 = (0, _computed.equal)('router.currentRouteName', 'allocations.allocation.fs'), _dec3 = (0, _computed.equal)('router.currentRouteName', 'allocations.allocation.fs-root'), _dec4 = (0, _computed.or)('fsIsActive', 'fsRootIsActive'), classic(_class = _dec(_class = (_class2 = class AllocationSubnav extends _component.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "router", _descriptor, this);

      _initializerDefineProperty(this, "keyboard", _descriptor2, this);

      _initializerDefineProperty(this, "fsIsActive", _descriptor3, this);

      _initializerDefineProperty(this, "fsRootIsActive", _descriptor4, this);

      _initializerDefineProperty(this, "filesLinkActive", _descriptor5, this);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "router", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "keyboard", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, "fsIsActive", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, "fsRootIsActive", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor5 = _applyDecoratedDescriptor(_class2.prototype, "filesLinkActive", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class2)) || _class) || _class);
  _exports.default = AllocationSubnav;
});
;define("nomad-ui/components/app-breadcrumbs", ["exports", "@glimmer/component"], function (_exports, _component) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@glimmer/component"eaimeta@70e063a35619d71f

  class AppBreadcrumbsComponent extends _component.default {
    isOneCrumbUp() {
      let iter = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
      let totalNum = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
      return iter === totalNum - 2;
    }

  }

  _exports.default = AppBreadcrumbsComponent;

  window.__CLASSIC_OWN_CLASSES__.set(AppBreadcrumbsComponent, true);
});
;define("nomad-ui/components/attributes-section", ["exports", "@ember/component", "@ember-decorators/component"], function (_exports, _component, _component2) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _class;

  0; //eaimeta@70e063a35619d71f0,"@ember/component",0,"@ember-decorators/component",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  const classic = __EMBER_CLASSIC_DECORATOR;
  let AttributesSection = (_dec = (0, _component2.tagName)(''), classic(_class = _dec(_class = class AttributesSection extends _component.default {}) || _class) || _class);
  _exports.default = AttributesSection;
});
;define("nomad-ui/components/basic-dropdown-content", ["exports", "ember-basic-dropdown/components/basic-dropdown-content"], function (_exports, _basicDropdownContent) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _basicDropdownContent.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-basic-dropdown/components/basic-dropdown-content"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/basic-dropdown-trigger", ["exports", "ember-basic-dropdown/components/basic-dropdown-trigger"], function (_exports, _basicDropdownTrigger) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _basicDropdownTrigger.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-basic-dropdown/components/basic-dropdown-trigger"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/basic-dropdown", ["exports", "ember-basic-dropdown/components/basic-dropdown"], function (_exports, _basicDropdown) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _basicDropdown.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-basic-dropdown/components/basic-dropdown"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/breadcrumb", ["exports", "@ember/debug", "@ember/object", "@ember/service", "@glimmer/component"], function (_exports, _debug, _object, _service, _component) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _descriptor;

  0; //eaimeta@70e063a35619d71f0,"@ember/debug",0,"@ember/object",0,"@ember/service",0,"@glimmer/component"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let Breadcrumb = (_class = class Breadcrumb extends _component.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "breadcrumbs", _descriptor, this);

      (true && !(this.args.crumb) && (0, _debug.assert)('Provide a valid breadcrumb argument', this.args.crumb));
      this.register();
    }

    register() {
      this.breadcrumbs.registerBreadcrumb(this);
    }

    deregister() {
      this.breadcrumbs.deregisterBreadcrumb(this);
    }

    willDestroy() {
      super.willDestroy();
      this.deregister();
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "breadcrumbs", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class.prototype, "register", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "register"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "deregister", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "deregister"), _class.prototype)), _class);
  _exports.default = Breadcrumb;
});
;define("nomad-ui/components/breadcrumbs", ["exports", "@ember/component", "@ember/template-factory", "@glimmer/component", "@ember/service"], function (_exports, _component, _templateFactory, _component2, _service) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _descriptor;

  0; //eaimeta@70e063a35619d71f0,"@glimmer/component",0,"@ember/service",0,"@ember/template-factory"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const __COLOCATED_TEMPLATE__ = (0, _templateFactory.createTemplateFactory)(
  /*
    {{!
    Copyright (c) HashiCorp, Inc.
    SPDX-License-Identifier: MPL-2.0
  ~}}
  
  {{yield this.crumbs}}
  */
  {
    "id": "Jm671BV3",
    "block": "[[[18,1,[[30,0,[\"crumbs\"]]]]],[\"&default\"],false,[\"yield\"]]",
    "moduleName": "nomad-ui/components/breadcrumbs.hbs",
    "isStrictMode": false
  });
  /**
   * Copyright (c) HashiCorp, Inc.
   * SPDX-License-Identifier: MPL-2.0
   */


  let Breadcrumbs = (_class = class Breadcrumbs extends _component2.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "breadcrumbs", _descriptor, this);
    }

    get crumbs() {
      return this.breadcrumbs.crumbs;
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "breadcrumbs", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class);
  _exports.default = Breadcrumbs;
  (0, _component.setComponentTemplate)(__COLOCATED_TEMPLATE__, Breadcrumbs);
});
;define("nomad-ui/components/breadcrumbs/default", ["exports", "@ember/component", "@ember/template-factory", "@ember/object", "@glimmer/component", "nomad-ui/modifiers/keyboard-shortcut", "@ember/service"], function (_exports, _component, _templateFactory, _object, _component2, _keyboardShortcut, _service) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _descriptor;

  0; //eaimeta@70e063a35619d71f0,"@ember/object",0,"@glimmer/component",0,"nomad-ui/modifiers/keyboard-shortcut",0,"@ember/service",0,"@ember/template-factory"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const __COLOCATED_TEMPLATE__ = (0, _templateFactory.createTemplateFactory)(
  /*
    {{!
    Copyright (c) HashiCorp, Inc.
    SPDX-License-Identifier: MPL-2.0
  ~}}
  
  {{! template-lint-disable no-unknown-arguments-for-builtin-components }}
  <li data-test-breadcrumb-default
    {{(modifier
      this.maybeKeyboardShortcut
      label="Go up a level"
      pattern=(array "u")
      menuLevel=true
      action=(action this.traverseUpALevel @crumb.args)
      exclusive=true
    )}}
  >
    <LinkTo
      @params={{@crumb.args}}
      data-test-breadcrumb={{@crumb.args.firstObject}}>
      {{#if @crumb.title}}
        <dl>
          <dt>
            {{@crumb.title}}
          </dt>
          <dd>
            {{@crumb.label}}
          </dd>
        </dl>
      {{else}}
        {{@crumb.label}}
      {{/if}}
    </LinkTo>
  </li>
  */
  {
    "id": "x7rrFXDR",
    "block": "[[[11,\"li\"],[4,[50,[28,[37,1],[[30,0,[\"maybeKeyboardShortcut\"]]],[[\"type\",\"loc\",\"original\"],[\"modifier\",\"('nomad-ui/components/breadcrumbs/default.hbs' @ L8:C4) \",\"this.maybeKeyboardShortcut\"]]],2,null,[[\"label\",\"pattern\",\"menuLevel\",\"action\",\"exclusive\"],[\"Go up a level\",[28,[37,2],[\"u\"],null],true,[28,[37,3],[[30,0],[30,0,[\"traverseUpALevel\"]],[30,1,[\"args\"]]],null],true]]],null,null],[12],[1,\"\\n  \"],[8,[39,4],null,[[\"@params\"],[[30,1,[\"args\"]]]],[[\"default\"],[[[[1,\"\\n\"],[41,[30,1,[\"title\"]],[[[1,\"      \"],[10,\"dl\"],[12],[1,\"\\n        \"],[10,\"dt\"],[12],[1,\"\\n          \"],[1,[30,1,[\"title\"]]],[1,\"\\n        \"],[13],[1,\"\\n        \"],[10,\"dd\"],[12],[1,\"\\n          \"],[1,[30,1,[\"label\"]]],[1,\"\\n        \"],[13],[1,\"\\n      \"],[13],[1,\"\\n\"]],[]],[[[1,\"      \"],[1,[30,1,[\"label\"]]],[1,\"\\n\"]],[]]],[1,\"  \"]],[]]]]],[1,\"\\n\"],[13]],[\"@crumb\"],false,[\"modifier\",\"-disallow-dynamic-resolution\",\"array\",\"action\",\"link-to\",\"if\"]]",
    "moduleName": "nomad-ui/components/breadcrumbs/default.hbs",
    "isStrictMode": false
  });
  /**
   * Copyright (c) HashiCorp, Inc.
   * SPDX-License-Identifier: MPL-2.0
   */


  let BreadcrumbsTemplate = (_class = class BreadcrumbsTemplate extends _component2.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "router", _descriptor, this);
    }

    traverseUpALevel(args) {
      const [path, ...rest] = args;
      this.router.transitionTo(path, ...rest);
    }

    get maybeKeyboardShortcut() {
      return this.args.isOneCrumbUp() ? _keyboardShortcut.default : null;
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "router", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class.prototype, "traverseUpALevel", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "traverseUpALevel"), _class.prototype)), _class);
  _exports.default = BreadcrumbsTemplate;
  (0, _component.setComponentTemplate)(__COLOCATED_TEMPLATE__, BreadcrumbsTemplate);
});
;define("nomad-ui/components/breadcrumbs/job", ["exports", "@ember/component", "@ember/template-factory", "@ember/debug", "@ember/object", "nomad-ui/components/breadcrumbs/default"], function (_exports, _component, _templateFactory, _debug, _object, _default) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class;

  0; //eaimeta@70e063a35619d71f0,"@ember/debug",0,"@ember/object",0,"nomad-ui/components/breadcrumbs/default",0,"@ember/template-factory"eaimeta@70e063a35619d71f

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  const __COLOCATED_TEMPLATE__ = (0, _templateFactory.createTemplateFactory)(
  /*
    {{!
    Copyright (c) HashiCorp, Inc.
    SPDX-License-Identifier: MPL-2.0
  ~}}
  
  <Trigger @onError={{action this.onError}} @do={{this.fetchParent}} as |trigger|>
    {{did-insert trigger.fns.do}}
    {{#if trigger.data.isBusy}}
      <li>
        <a href="#" aria-label="loading" data-test-breadcrumb="loading">
          …
        </a>
      </li>
    {{/if}}
    {{#if trigger.data.isSuccess}}
      {{#if (and trigger.data.result this.hasParent)}}
        <li>
          <LinkTo
            @route="jobs.job.index"
            @model={{trigger.data.result}}
            data-test-breadcrumb={{"jobs.job.index"}}
          >
            <dl>
              <dt>
                Parent Job
              </dt>
              <dd>
                {{trigger.data.result.trimmedName}}
              </dd>
            </dl>
          </LinkTo>
        </li>
      {{/if}}
      <li
        {{(modifier
          this.maybeKeyboardShortcut
          label="Go up a level"
          pattern=(array "u")
          menuLevel=true
          action=(action this.traverseUpALevel (array "jobs.job" this.job.idWithNamespace))
          exclusive=true
        )}}
      >
        <LinkTo
          @route="jobs.job.index"
          @model={{this.job}}
          data-test-breadcrumb={{"jobs.job.index"}}
          data-test-job-breadcrumb
        >
          <dl>
            <dt>
              {{if this.job.hasChildren "Parent Job" "Job"}}
            </dt>
            <dd>
              {{this.job.trimmedName}}
            </dd>
          </dl>
        </LinkTo>
      </li>
    {{/if}}
  </Trigger>
  */
  {
    "id": "7ThgXJW0",
    "block": "[[[8,[39,0],null,[[\"@onError\",\"@do\"],[[28,[37,1],[[30,0],[30,0,[\"onError\"]]],null],[30,0,[\"fetchParent\"]]]],[[\"default\"],[[[[1,\"\\n  \"],[1,[28,[35,2],[[30,1,[\"fns\",\"do\"]]],null]],[1,\"\\n\"],[41,[30,1,[\"data\",\"isBusy\"]],[[[1,\"    \"],[10,\"li\"],[12],[1,\"\\n      \"],[10,3],[14,6,\"#\"],[14,\"aria-label\",\"loading\"],[12],[1,\"\\n        …\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n\"]],[]],null],[41,[30,1,[\"data\",\"isSuccess\"]],[[[41,[28,[37,4],[[30,1,[\"data\",\"result\"]],[30,0,[\"hasParent\"]]],null],[[[1,\"      \"],[10,\"li\"],[12],[1,\"\\n        \"],[8,[39,5],null,[[\"@route\",\"@model\"],[\"jobs.job.index\",[30,1,[\"data\",\"result\"]]]],[[\"default\"],[[[[1,\"\\n          \"],[10,\"dl\"],[12],[1,\"\\n            \"],[10,\"dt\"],[12],[1,\"\\n              Parent Job\\n            \"],[13],[1,\"\\n            \"],[10,\"dd\"],[12],[1,\"\\n              \"],[1,[30,1,[\"data\",\"result\",\"trimmedName\"]]],[1,\"\\n            \"],[13],[1,\"\\n          \"],[13],[1,\"\\n        \"]],[]]]]],[1,\"\\n      \"],[13],[1,\"\\n\"]],[]],null],[1,\"    \"],[11,\"li\"],[4,[50,[28,[37,7],[[30,0,[\"maybeKeyboardShortcut\"]]],[[\"type\",\"loc\",\"original\"],[\"modifier\",\"('nomad-ui/components/breadcrumbs/job.hbs' @ L35:C8) \",\"this.maybeKeyboardShortcut\"]]],2,null,[[\"label\",\"pattern\",\"menuLevel\",\"action\",\"exclusive\"],[\"Go up a level\",[28,[37,8],[\"u\"],null],true,[28,[37,1],[[30,0],[30,0,[\"traverseUpALevel\"]],[28,[37,8],[\"jobs.job\",[30,0,[\"job\",\"idWithNamespace\"]]],null]],null],true]]],null,null],[12],[1,\"\\n      \"],[8,[39,5],null,[[\"@route\",\"@model\"],[\"jobs.job.index\",[30,0,[\"job\"]]]],[[\"default\"],[[[[1,\"\\n        \"],[10,\"dl\"],[12],[1,\"\\n          \"],[10,\"dt\"],[12],[1,\"\\n            \"],[1,[52,[30,0,[\"job\",\"hasChildren\"]],\"Parent Job\",\"Job\"]],[1,\"\\n          \"],[13],[1,\"\\n          \"],[10,\"dd\"],[12],[1,\"\\n            \"],[1,[30,0,[\"job\",\"trimmedName\"]]],[1,\"\\n          \"],[13],[1,\"\\n        \"],[13],[1,\"\\n      \"]],[]]]]],[1,\"\\n    \"],[13],[1,\"\\n\"]],[]],null]],[1]]]]]],[\"trigger\"],false,[\"trigger\",\"action\",\"did-insert\",\"if\",\"and\",\"link-to\",\"modifier\",\"-disallow-dynamic-resolution\",\"array\"]]",
    "moduleName": "nomad-ui/components/breadcrumbs/job.hbs",
    "isStrictMode": false
  });
  /**
   * Copyright (c) HashiCorp, Inc.
   * SPDX-License-Identifier: MPL-2.0
   */


  let BreadcrumbsJob = (_class = class BreadcrumbsJob extends _default.default {
    get job() {
      return this.args.crumb.job;
    }

    get hasParent() {
      return !!this.job.belongsTo('parent').id();
    }

    onError(err) {
      (true && !(false) && (0, _debug.assert)(`Error:  ${err.message}`));
    }

    fetchParent() {
      if (this.hasParent) {
        return this.job.get('parent');
      }
    }

  }, (_applyDecoratedDescriptor(_class.prototype, "onError", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "onError"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "fetchParent", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "fetchParent"), _class.prototype)), _class);
  _exports.default = BreadcrumbsJob;
  (0, _component.setComponentTemplate)(__COLOCATED_TEMPLATE__, BreadcrumbsJob);
});
;define("nomad-ui/components/chart-primitives/area", ["exports", "@ember/component", "@ember/template-factory", "@glimmer/component", "@ember/debug", "d3-shape", "nomad-ui/utils/properties/uniquely"], function (_exports, _component, _templateFactory, _component2, _debug, _d3Shape, _uniquely) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _class, _descriptor, _descriptor2;

  0; //eaimeta@70e063a35619d71f0,"@glimmer/component",0,"@ember/debug",0,"d3-shape",0,"nomad-ui/utils/properties/uniquely",0,"@ember/template-factory"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const __COLOCATED_TEMPLATE__ = (0, _templateFactory.createTemplateFactory)(
  /*
    {{!
    Copyright (c) HashiCorp, Inc.
    SPDX-License-Identifier: MPL-2.0
  ~}}
  
  <defs>
    <linearGradient x1="0" x2="0" y1="0" y2="1" class="{{this.colorClass}}" id="{{this.fillId}}">
      <stop class="start" offset="0%" />
      <stop class="end" offset="100%" />
    </linearGradient>
    <clipPath id="{{this.maskId}}">
      <path class="fill" d="{{this.area}}" />
    </clipPath>
  </defs>
  <g data-test-chart-area class="area {{this.colorClass}}" ...attributes>
    <path class="line" d="{{this.line}}" />
    <rect class="fill" x="0" y="0" width="{{@width}}" height="{{@height}}" fill="url(#{{this.fillId}})" clip-path="url(#{{this.maskId}})" />
  </g>
  
  */
  {
    "id": "SOVgf5tM",
    "block": "[[[10,\"defs\"],[12],[1,\"\\n  \"],[10,\"linearGradient\"],[14,\"x1\",\"0\"],[14,\"x2\",\"0\"],[14,\"y1\",\"0\"],[14,\"y2\",\"1\"],[15,0,[29,[[30,0,[\"colorClass\"]]]]],[15,1,[29,[[30,0,[\"fillId\"]]]]],[12],[1,\"\\n    \"],[10,\"stop\"],[14,0,\"start\"],[14,\"offset\",\"0%\"],[12],[13],[1,\"\\n    \"],[10,\"stop\"],[14,0,\"end\"],[14,\"offset\",\"100%\"],[12],[13],[1,\"\\n  \"],[13],[1,\"\\n  \"],[10,\"clipPath\"],[15,1,[29,[[30,0,[\"maskId\"]]]]],[12],[1,\"\\n    \"],[10,\"path\"],[14,0,\"fill\"],[15,\"d\",[29,[[30,0,[\"area\"]]]]],[12],[13],[1,\"\\n  \"],[13],[1,\"\\n\"],[13],[1,\"\\n\"],[11,\"g\"],[16,0,[29,[\"area \",[30,0,[\"colorClass\"]]]]],[17,1],[12],[1,\"\\n  \"],[10,\"path\"],[14,0,\"line\"],[15,\"d\",[29,[[30,0,[\"line\"]]]]],[12],[13],[1,\"\\n  \"],[10,\"rect\"],[14,0,\"fill\"],[14,\"x\",\"0\"],[14,\"y\",\"0\"],[15,\"width\",[29,[[30,2]]]],[15,\"height\",[29,[[30,3]]]],[15,\"fill\",[29,[\"url(#\",[30,0,[\"fillId\"]],\")\"]]],[15,\"clip-path\",[29,[\"url(#\",[30,0,[\"maskId\"]],\")\"]]],[12],[13],[1,\"\\n\"],[13],[1,\"\\n\"]],[\"&attrs\",\"@width\",\"@height\"],false,[]]",
    "moduleName": "nomad-ui/components/chart-primitives/area.hbs",
    "isStrictMode": false
  });
  /**
   * Copyright (c) HashiCorp, Inc.
   * SPDX-License-Identifier: MPL-2.0
   */


  let ChartPrimitiveArea = (_dec = (0, _uniquely.default)('area-mask'), _dec2 = (0, _uniquely.default)('area-fill'), (_class = class ChartPrimitiveArea extends _component2.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "maskId", _descriptor, this);

      _initializerDefineProperty(this, "fillId", _descriptor2, this);
    }

    get colorClass() {
      if (this.args.colorClass) return this.args.colorClass;
      if (this.args.colorScale && this.args.index != null) return `${this.args.colorScale} ${this.args.colorScale}-${this.args.index + 1}`;
      return 'is-primary';
    }

    get curveMethod() {
      const mappings = {
        linear: 'curveLinear',
        stepAfter: 'curveStepAfter'
      };
      (true && !(mappings[this.args.curve]) && (0, _debug.assert)(`Provided curve "${this.curve}" is not an allowed curve type`, mappings[this.args.curve]));
      return mappings[this.args.curve];
    }

    get line() {
      const {
        xScale,
        yScale,
        xProp,
        yProp
      } = this.args;
      const builder = (0, _d3Shape.line)().curve(_d3Shape.default[this.curveMethod]).defined(d => d[yProp] != null).x(d => xScale(d[xProp])).y(d => yScale(d[yProp]));
      return builder(this.args.data);
    }

    get area() {
      const {
        xScale,
        yScale,
        xProp,
        yProp
      } = this.args;
      const builder = (0, _d3Shape.area)().curve(_d3Shape.default[this.curveMethod]).defined(d => d[yProp] != null).x(d => xScale(d[xProp])).y0(yScale(0)).y1(d => yScale(d[yProp]));
      return builder(this.args.data);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "maskId", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "fillId", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class));
  _exports.default = ChartPrimitiveArea;
  (0, _component.setComponentTemplate)(__COLOCATED_TEMPLATE__, ChartPrimitiveArea);
});
;define("nomad-ui/components/chart-primitives/h-annotations", ["exports", "@ember/component", "@ember/template-factory", "@glimmer/component", "@ember/template", "@ember/object", "nomad-ui/utils/properties/glimmer-style-string"], function (_exports, _component, _templateFactory, _component2, _template, _object, _glimmerStyleString) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class;

  0; //eaimeta@70e063a35619d71f0,"@glimmer/component",0,"@ember/template",0,"@ember/object",0,"nomad-ui/utils/properties/glimmer-style-string",0,"@ember/template-factory"eaimeta@70e063a35619d71f

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  const __COLOCATED_TEMPLATE__ = (0, _templateFactory.createTemplateFactory)(
  /*
    {{!
    Copyright (c) HashiCorp, Inc.
    SPDX-License-Identifier: MPL-2.0
  ~}}
  
  <div data-test-annotations class="line-chart-annotations" style={{this.chartAnnotationsStyle}} ...attributes>
    {{#each this.processed key=@key as |annotation|}}
      <div data-test-annotation class="chart-horizontal-annotation" style={{annotation.style}}>
        <button
          type="button"
          title={{annotation.a11yLabel}}
          class="indicator {{if annotation.isActive "is-active"}}"
          {{on "click" (fn this.selectAnnotation annotation.annotation)}}>
          {{annotation.label}}
        </button>
        <div class="line" />
      </div>
    {{/each}}
  </div>
  
  */
  {
    "id": "iCrqI9po",
    "block": "[[[11,0],[24,0,\"line-chart-annotations\"],[16,5,[30,0,[\"chartAnnotationsStyle\"]]],[17,1],[12],[1,\"\\n\"],[42,[28,[37,1],[[28,[37,1],[[30,0,[\"processed\"]]],null]],null],[30,2],[[[1,\"    \"],[10,0],[14,0,\"chart-horizontal-annotation\"],[15,5,[30,3,[\"style\"]]],[12],[1,\"\\n      \"],[11,\"button\"],[16,\"title\",[30,3,[\"a11yLabel\"]]],[16,0,[29,[\"indicator \",[52,[30,3,[\"isActive\"]],\"is-active\"]]]],[24,4,\"button\"],[4,[38,3],[\"click\",[28,[37,4],[[30,0,[\"selectAnnotation\"]],[30,3,[\"annotation\"]]],null]],null],[12],[1,\"\\n        \"],[1,[30,3,[\"label\"]]],[1,\"\\n      \"],[13],[1,\"\\n      \"],[10,0],[14,0,\"line\"],[12],[13],[1,\"\\n    \"],[13],[1,\"\\n\"]],[3]],null],[13],[1,\"\\n\"]],[\"&attrs\",\"@key\",\"annotation\"],false,[\"each\",\"-track-array\",\"if\",\"on\",\"fn\"]]",
    "moduleName": "nomad-ui/components/chart-primitives/h-annotations.hbs",
    "isStrictMode": false
  });
  /**
   * Copyright (c) HashiCorp, Inc.
   * SPDX-License-Identifier: MPL-2.0
   */


  let ChartPrimitiveVAnnotations = (_class = class ChartPrimitiveVAnnotations extends _component2.default {
    get chartAnnotationsStyle() {
      return {
        width: this.args.width,
        left: this.args.left
      };
    }

    get processed() {
      const {
        scale,
        prop,
        annotations,
        format,
        labelProp
      } = this.args;
      if (!annotations || !annotations.length) return null;
      let sortedAnnotations = annotations.sortBy(prop).reverse();
      return sortedAnnotations.map(annotation => {
        const y = scale(annotation[prop]);
        const x = 0;
        const formattedY = format()(annotation[prop]);
        return {
          annotation,
          style: (0, _template.htmlSafe)(`transform:translate(${x}px,${y}px)`),
          label: annotation[labelProp],
          a11yLabel: `${annotation[labelProp]} at ${formattedY}`,
          isActive: this.annotationIsActive(annotation)
        };
      });
    }

    annotationIsActive(annotation) {
      const {
        key,
        activeAnnotation
      } = this.args;
      if (!activeAnnotation) return false;
      if (key) return (0, _object.get)(annotation, key) === (0, _object.get)(activeAnnotation, key);
      return annotation === activeAnnotation;
    }

    selectAnnotation(annotation) {
      if (this.args.annotationClick) this.args.annotationClick(annotation);
    }

  }, (_applyDecoratedDescriptor(_class.prototype, "chartAnnotationsStyle", [_glimmerStyleString.default], Object.getOwnPropertyDescriptor(_class.prototype, "chartAnnotationsStyle"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "selectAnnotation", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "selectAnnotation"), _class.prototype)), _class);
  _exports.default = ChartPrimitiveVAnnotations;
  (0, _component.setComponentTemplate)(__COLOCATED_TEMPLATE__, ChartPrimitiveVAnnotations);
});
;define("nomad-ui/components/chart-primitives/tooltip", ["exports", "@ember/component", "@ember/template-factory", "@ember/component/template-only"], function (_exports, _component, _templateFactory, _templateOnly) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/component/template-only",0,"@ember/template-factory"eaimeta@70e063a35619d71f

  const __COLOCATED_TEMPLATE__ = (0, _templateFactory.createTemplateFactory)(
  /*
    {{!
    Copyright (c) HashiCorp, Inc.
    SPDX-License-Identifier: MPL-2.0
  ~}}
  
  <div data-test-chart-tooltip class="chart-tooltip {{if @active "active" "inactive"}}" style={{@style}} ...attributes>
    <ol>
      {{#each @data as |props|}}
        {{yield props.series props.datum (inc props.index)}}
      {{/each}}
    </ol>
  </div>
  
  */
  {
    "id": "4E5ABwx3",
    "block": "[[[11,0],[16,0,[29,[\"chart-tooltip \",[52,[30,1],\"active\",\"inactive\"]]]],[16,5,[30,2]],[17,3],[12],[1,\"\\n  \"],[10,\"ol\"],[12],[1,\"\\n\"],[42,[28,[37,2],[[28,[37,2],[[30,4]],null]],null],null,[[[1,\"      \"],[18,6,[[30,5,[\"series\"]],[30,5,[\"datum\"]],[28,[37,4],[[30,5,[\"index\"]]],null]]],[1,\"\\n\"]],[5]],null],[1,\"  \"],[13],[1,\"\\n\"],[13],[1,\"\\n\"]],[\"@active\",\"@style\",\"&attrs\",\"@data\",\"props\",\"&default\"],false,[\"if\",\"each\",\"-track-array\",\"yield\",\"inc\"]]",
    "moduleName": "nomad-ui/components/chart-primitives/tooltip.hbs",
    "isStrictMode": false
  });

  var _default = (0, _component.setComponentTemplate)(__COLOCATED_TEMPLATE__, (0, _templateOnly.default)());

  _exports.default = _default;
});
;define("nomad-ui/components/chart-primitives/v-annotations", ["exports", "@ember/component", "@ember/template-factory", "@glimmer/component", "@ember/template", "@ember/object", "nomad-ui/utils/properties/glimmer-style-string"], function (_exports, _component, _templateFactory, _component2, _template, _object, _glimmerStyleString) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class;

  0; //eaimeta@70e063a35619d71f0,"@glimmer/component",0,"@ember/template",0,"@ember/object",0,"nomad-ui/utils/properties/glimmer-style-string",0,"@ember/template-factory"eaimeta@70e063a35619d71f

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  const __COLOCATED_TEMPLATE__ = (0, _templateFactory.createTemplateFactory)(
  /*
    {{!
    Copyright (c) HashiCorp, Inc.
    SPDX-License-Identifier: MPL-2.0
  ~}}
  
  <div data-test-annotations class="line-chart-annotations" style={{this.chartAnnotationsStyle}} ...attributes>
    {{#each this.processed key=@key as |annotation|}}
      <div data-test-annotation class="chart-vertical-annotation {{annotation.iconClass}} {{annotation.staggerClass}}" style={{annotation.style}}>
        <button
          type="button"
          title={{annotation.label}}
          class="indicator {{if annotation.isActive "is-active"}}"
          {{on "click" (fn this.selectAnnotation annotation.annotation)}}>
          {{x-icon annotation.icon}}
        </button>
        <div class="line" />
      </div>
    {{/each}}
  </div>
  
  */
  {
    "id": "ixB0ci7i",
    "block": "[[[11,0],[24,0,\"line-chart-annotations\"],[16,5,[30,0,[\"chartAnnotationsStyle\"]]],[17,1],[12],[1,\"\\n\"],[42,[28,[37,1],[[28,[37,1],[[30,0,[\"processed\"]]],null]],null],[30,2],[[[1,\"    \"],[10,0],[15,0,[29,[\"chart-vertical-annotation \",[30,3,[\"iconClass\"]],\" \",[30,3,[\"staggerClass\"]]]]],[15,5,[30,3,[\"style\"]]],[12],[1,\"\\n      \"],[11,\"button\"],[16,\"title\",[30,3,[\"label\"]]],[16,0,[29,[\"indicator \",[52,[30,3,[\"isActive\"]],\"is-active\"]]]],[24,4,\"button\"],[4,[38,3],[\"click\",[28,[37,4],[[30,0,[\"selectAnnotation\"]],[30,3,[\"annotation\"]]],null]],null],[12],[1,\"\\n        \"],[1,[28,[35,5],[[30,3,[\"icon\"]]],null]],[1,\"\\n      \"],[13],[1,\"\\n      \"],[10,0],[14,0,\"line\"],[12],[13],[1,\"\\n    \"],[13],[1,\"\\n\"]],[3]],null],[13],[1,\"\\n\"]],[\"&attrs\",\"@key\",\"annotation\"],false,[\"each\",\"-track-array\",\"if\",\"on\",\"fn\",\"x-icon\"]]",
    "moduleName": "nomad-ui/components/chart-primitives/v-annotations.hbs",
    "isStrictMode": false
  });
  /**
   * Copyright (c) HashiCorp, Inc.
   * SPDX-License-Identifier: MPL-2.0
   */


  const iconFor = {
    error: 'cancel-circle-fill',
    info: 'info-circle-fill'
  };
  const iconClassFor = {
    error: 'is-danger',
    info: ''
  };
  let ChartPrimitiveVAnnotations = (_class = class ChartPrimitiveVAnnotations extends _component2.default {
    get chartAnnotationsStyle() {
      return {
        height: this.args.height
      };
    }

    get processed() {
      const {
        scale,
        prop,
        annotations,
        timeseries,
        format
      } = this.args;
      if (!annotations || !annotations.length) return null;
      let sortedAnnotations = annotations.sortBy(prop);

      if (timeseries) {
        sortedAnnotations = sortedAnnotations.reverse();
      }

      let prevX = 0;
      let prevHigh = false;
      return sortedAnnotations.map(annotation => {
        const x = scale(annotation[prop]);

        if (prevX && !prevHigh && Math.abs(x - prevX) < 30) {
          prevHigh = true;
        } else if (prevHigh) {
          prevHigh = false;
        }

        const y = prevHigh ? -15 : 0;
        const formattedX = format(timeseries)(annotation[prop]);
        prevX = x;
        return {
          annotation,
          style: (0, _template.htmlSafe)(`transform:translate(${x}px,${y}px)`),
          icon: iconFor[annotation.type],
          iconClass: iconClassFor[annotation.type],
          staggerClass: prevHigh ? 'is-staggered' : '',
          label: `${annotation.type} event at ${formattedX}`,
          isActive: this.annotationIsActive(annotation)
        };
      });
    }

    annotationIsActive(annotation) {
      const {
        key,
        activeAnnotation
      } = this.args;
      if (!activeAnnotation) return false;
      if (key) return (0, _object.get)(annotation, key) === (0, _object.get)(activeAnnotation, key);
      return annotation === activeAnnotation;
    }

    selectAnnotation(annotation) {
      if (this.args.annotationClick) this.args.annotationClick(annotation);
    }

  }, (_applyDecoratedDescriptor(_class.prototype, "chartAnnotationsStyle", [_glimmerStyleString.default], Object.getOwnPropertyDescriptor(_class.prototype, "chartAnnotationsStyle"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "selectAnnotation", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "selectAnnotation"), _class.prototype)), _class);
  _exports.default = ChartPrimitiveVAnnotations;
  (0, _component.setComponentTemplate)(__COLOCATED_TEMPLATE__, ChartPrimitiveVAnnotations);
});
;define("nomad-ui/components/children-status-bar", ["exports", "@ember/object", "nomad-ui/components/distribution-bar", "@ember-decorators/component"], function (_exports, _object, _distributionBar, _component) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _class, _class2;

  0; //eaimeta@70e063a35619d71f0,"@ember/object",0,"nomad-ui/components/distribution-bar",0,"ember-classic-decorator",0,"@ember-decorators/component"eaimeta@70e063a35619d71f

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let ChildrenStatusBar = (_dec = (0, _component.attributeBindings)('data-test-children-status-bar'), _dec2 = (0, _object.computed)('job.{pendingChildren,runningChildren,deadChildren}'), classic(_class = _dec(_class = (_class2 = class ChildrenStatusBar extends _distributionBar.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "layoutName", 'components/distribution-bar');

      _defineProperty(this, "job", null);

      _defineProperty(this, 'data-test-children-status-bar', true);
    }

    get data() {
      if (!this.job) {
        return [];
      }

      const children = this.job.getProperties('pendingChildren', 'runningChildren', 'deadChildren');
      return [{
        label: 'Pending',
        value: children.pendingChildren,
        className: 'queued'
      }, {
        label: 'Running',
        value: children.runningChildren,
        className: 'running'
      }, {
        label: 'Dead',
        value: children.deadChildren,
        className: 'complete'
      }];
    }

  }, (_applyDecoratedDescriptor(_class2.prototype, "data", [_dec2], Object.getOwnPropertyDescriptor(_class2.prototype, "data"), _class2.prototype)), _class2)) || _class) || _class);
  _exports.default = ChildrenStatusBar;
});
;define("nomad-ui/components/click-outside", ["exports", "ember-click-outside/component"], function (_exports, _component) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _component.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-click-outside/component"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/client-node-row", ["exports", "@ember/service", "@ember/component", "nomad-ui/helpers/lazy-click", "nomad-ui/utils/properties/watch", "nomad-ui/mixins/with-component-visibility-detection", "@ember/object", "@ember-decorators/component"], function (_exports, _service, _component, _lazyClick, _watch, _withComponentVisibilityDetection, _object, _component2) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _class, _class2, _descriptor, _descriptor2;

  0; //eaimeta@70e063a35619d71f0,"@ember/service",0,"@ember/component",0,"nomad-ui/helpers/lazy-click",0,"nomad-ui/utils/properties/watch",0,"nomad-ui/mixins/with-component-visibility-detection",0,"@ember/object",0,"@ember-decorators/component",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let ClientNodeRow = (_dec = (0, _component2.tagName)('tr'), _dec2 = (0, _component2.classNames)('client-node-row', 'is-interactive'), _dec3 = (0, _watch.watchRelationship)('allocations'), _dec4 = (0, _object.computed)('node.compositeStatus'), classic(_class = _dec(_class = _dec2(_class = (_class2 = class ClientNodeRow extends _component.default.extend(_withComponentVisibilityDetection.default) {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "store", _descriptor, this);

      _defineProperty(this, "node", null);

      _initializerDefineProperty(this, "watch", _descriptor2, this);
    }

    onClick() {}

    click(event) {
      (0, _lazyClick.lazyClick)([this.onClick, event]);
    }

    didReceiveAttrs() {
      super.didReceiveAttrs(); // Reload the node in order to get detail information

      const node = this.node;

      if (node) {
        node.reload().then(() => {
          this.watch.perform(node, 100);
        });
      }
    }

    visibilityHandler() {
      if (document.hidden) {
        this.watch.cancelAll();
      } else {
        const node = this.node;

        if (node) {
          this.watch.perform(node, 100);
        }
      }
    }

    willDestroy() {
      this.watch.cancelAll();
      super.willDestroy(...arguments);
    }

    get compositeStatusClass() {
      let compositeStatus = this.get('node.compositeStatus');

      if (compositeStatus === 'draining') {
        return 'status-text is-info';
      } else if (compositeStatus === 'ineligible') {
        return 'status-text is-warning';
      } else if (compositeStatus === 'down') {
        return 'status-text is-danger';
      } else {
        return '';
      }
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "store", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "watch", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "compositeStatusClass", [_dec4], Object.getOwnPropertyDescriptor(_class2.prototype, "compositeStatusClass"), _class2.prototype)), _class2)) || _class) || _class) || _class);
  _exports.default = ClientNodeRow;
});
;define("nomad-ui/components/client-subnav", ["exports", "@ember/component", "@ember-decorators/component", "@ember/service"], function (_exports, _component, _component2, _service) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _class, _class2, _descriptor;

  0; //eaimeta@70e063a35619d71f0,"@ember/component",0,"@ember-decorators/component",0,"@ember/service"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let ClientSubnav = (_dec = (0, _component2.tagName)(''), _dec(_class = (_class2 = class ClientSubnav extends _component.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "keyboard", _descriptor, this);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "keyboard", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class2)) || _class);
  _exports.default = ClientSubnav;
});
;define("nomad-ui/components/conditional-link-to", ["exports", "@ember/component", "@ember/template-factory", "@glimmer/component"], function (_exports, _component, _templateFactory, _component2) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@glimmer/component",0,"@ember/template-factory"eaimeta@70e063a35619d71f

  const __COLOCATED_TEMPLATE__ = (0, _templateFactory.createTemplateFactory)(
  /*
    {{!
    Copyright (c) HashiCorp, Inc.
    SPDX-License-Identifier: MPL-2.0
  ~}}
  
  {{#if @condition}}
    <LinkTo @route={{@route}} @model={{@model}} @query={{this.query}} class={{@class}} aria-label={{@label}}>
      {{yield}}
    </LinkTo>
  {{else}}
    <span class={{@class}}>
      {{yield}}
    </span>
  {{/if}}
  */
  {
    "id": "s5EEAX10",
    "block": "[[[41,[30,1],[[[1,\"  \"],[8,[39,1],[[16,0,[30,2]],[16,\"aria-label\",[30,3]]],[[\"@route\",\"@model\",\"@query\"],[[30,4],[30,5],[30,0,[\"query\"]]]],[[\"default\"],[[[[1,\"\\n    \"],[18,6,null],[1,\"\\n  \"]],[]]]]],[1,\"\\n\"]],[]],[[[1,\"  \"],[10,1],[15,0,[30,2]],[12],[1,\"\\n    \"],[18,6,null],[1,\"\\n  \"],[13],[1,\"\\n\"]],[]]]],[\"@condition\",\"@class\",\"@label\",\"@route\",\"@model\",\"&default\"],false,[\"if\",\"link-to\",\"yield\"]]",
    "moduleName": "nomad-ui/components/conditional-link-to.hbs",
    "isStrictMode": false
  });
  /**
   * Copyright (c) HashiCorp, Inc.
   * SPDX-License-Identifier: MPL-2.0
   */


  class ConditionalLinkToComponent extends _component2.default {
    get query() {
      return this.args.query || {};
    }

  }

  _exports.default = ConditionalLinkToComponent;

  window.__CLASSIC_OWN_CLASSES__.set(ConditionalLinkToComponent, true);

  (0, _component.setComponentTemplate)(__COLOCATED_TEMPLATE__, ConditionalLinkToComponent);
});
;define("nomad-ui/components/copy-button", ["exports", "@glimmer/component", "@glimmer/tracking", "ember-concurrency"], function (_exports, _component, _tracking, _emberConcurrency) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _class, _descriptor, _descriptor2;

  0; //eaimeta@70e063a35619d71f0,"@glimmer/component",0,"@glimmer/tracking",0,"ember-concurrency"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let CopyButton = (_dec = (0, _emberConcurrency.task)(function* () {
    this.state = 'success';
    yield (0, _emberConcurrency.timeout)(2000);
    this.state = null;
  }).restartable(), (_class = class CopyButton extends _component.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "state", _descriptor, this);

      _initializerDefineProperty(this, "indicateSuccess", _descriptor2, this);
    }

    get text() {
      if (typeof this.args.clipboardText === 'function') return this.args.clipboardText;
      if (typeof this.args.clipboardText === 'string') return this.args.clipboardText;
      return String(this.args.clipboardText);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "state", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return null;
    }
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "indicateSuccess", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class));
  _exports.default = CopyButton;
});
;define("nomad-ui/components/das/accepted", ["exports", "@ember/component", "@ember/template-factory", "@ember/component/template-only"], function (_exports, _component, _templateFactory, _templateOnly) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/component/template-only",0,"@ember/template-factory"eaimeta@70e063a35619d71f

  const __COLOCATED_TEMPLATE__ = (0, _templateFactory.createTemplateFactory)(
  /*
    {{!
    Copyright (c) HashiCorp, Inc.
    SPDX-License-Identifier: MPL-2.0
  ~}}
  
  <section class="das-accepted">
    <main>
      <h3>Recommendation accepted</h3>
      <p>A new version of this job will now be deployed.</p>
    </main>
    {{x-icon "check-circle-fill"}}
  </section>
  */
  {
    "id": "Su+e+GbG",
    "block": "[[[10,\"section\"],[14,0,\"das-accepted\"],[12],[1,\"\\n  \"],[10,\"main\"],[12],[1,\"\\n    \"],[10,\"h3\"],[12],[1,\"Recommendation accepted\"],[13],[1,\"\\n    \"],[10,2],[12],[1,\"A new version of this job will now be deployed.\"],[13],[1,\"\\n  \"],[13],[1,\"\\n  \"],[1,[28,[35,0],[\"check-circle-fill\"],null]],[1,\"\\n\"],[13]],[],false,[\"x-icon\"]]",
    "moduleName": "nomad-ui/components/das/accepted.hbs",
    "isStrictMode": false
  });

  var _default = (0, _component.setComponentTemplate)(__COLOCATED_TEMPLATE__, (0, _templateOnly.default)());

  _exports.default = _default;
});
;define("nomad-ui/components/das/diffs-table", ["exports", "@ember/component", "@ember/template-factory", "@glimmer/component", "nomad-ui/utils/resources-diffs"], function (_exports, _component, _templateFactory, _component2, _resourcesDiffs) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@glimmer/component",0,"nomad-ui/utils/resources-diffs",0,"@ember/template-factory"eaimeta@70e063a35619d71f

  const __COLOCATED_TEMPLATE__ = (0, _templateFactory.createTemplateFactory)(
  /*
    {{!
    Copyright (c) HashiCorp, Inc.
    SPDX-License-Identifier: MPL-2.0
  ~}}
  
  <table class='diffs-table' ...attributes>
    <tbody>
      <tr data-test-current>
        <th>Current</th>
        <td data-test-cpu>{{@model.reservedCPU}} MHz</td>
        <td data-test-memory>{{@model.reservedMemory}} MiB</td>
        <th class='diff'>Difference</th>
        <td class='diff' data-test-cpu-unit-diff>{{this.diffs.cpu.signedDiff}}</td>
        <td class='diff' data-test-memory-unit-diff>{{this.diffs.memory.signedDiff}}</td>
      </tr>
      <tr data-test-recommended>
        <th>Recommended</th>
        <td data-test-cpu class={{this.cpuClass}}>{{this.diffs.cpu.recommended}} MHz</td>
        <td data-test-memory class={{this.memoryClass}}>{{this.diffs.memory.recommended}} MiB</td>
        <th class='diff'>% Difference</th>
        <td class='diff' data-test-cpu-percent-diff>{{this.diffs.cpu.percentDiff}}</td>
        <td class='diff' data-test-memory-percent-diff>{{this.diffs.memory.percentDiff}}</td>
      </tr>
    </tbody>
  </table>
  
  */
  {
    "id": "dA2y5x4j",
    "block": "[[[11,\"table\"],[24,0,\"diffs-table\"],[17,1],[12],[1,\"\\n  \"],[10,\"tbody\"],[12],[1,\"\\n    \"],[10,\"tr\"],[12],[1,\"\\n      \"],[10,\"th\"],[12],[1,\"Current\"],[13],[1,\"\\n      \"],[10,\"td\"],[12],[1,[30,2,[\"reservedCPU\"]]],[1,\" MHz\"],[13],[1,\"\\n      \"],[10,\"td\"],[12],[1,[30,2,[\"reservedMemory\"]]],[1,\" MiB\"],[13],[1,\"\\n      \"],[10,\"th\"],[14,0,\"diff\"],[12],[1,\"Difference\"],[13],[1,\"\\n      \"],[10,\"td\"],[14,0,\"diff\"],[12],[1,[30,0,[\"diffs\",\"cpu\",\"signedDiff\"]]],[13],[1,\"\\n      \"],[10,\"td\"],[14,0,\"diff\"],[12],[1,[30,0,[\"diffs\",\"memory\",\"signedDiff\"]]],[13],[1,\"\\n    \"],[13],[1,\"\\n    \"],[10,\"tr\"],[12],[1,\"\\n      \"],[10,\"th\"],[12],[1,\"Recommended\"],[13],[1,\"\\n      \"],[10,\"td\"],[15,0,[30,0,[\"cpuClass\"]]],[12],[1,[30,0,[\"diffs\",\"cpu\",\"recommended\"]]],[1,\" MHz\"],[13],[1,\"\\n      \"],[10,\"td\"],[15,0,[30,0,[\"memoryClass\"]]],[12],[1,[30,0,[\"diffs\",\"memory\",\"recommended\"]]],[1,\" MiB\"],[13],[1,\"\\n      \"],[10,\"th\"],[14,0,\"diff\"],[12],[1,\"% Difference\"],[13],[1,\"\\n      \"],[10,\"td\"],[14,0,\"diff\"],[12],[1,[30,0,[\"diffs\",\"cpu\",\"percentDiff\"]]],[13],[1,\"\\n      \"],[10,\"td\"],[14,0,\"diff\"],[12],[1,[30,0,[\"diffs\",\"memory\",\"percentDiff\"]]],[13],[1,\"\\n    \"],[13],[1,\"\\n  \"],[13],[1,\"\\n\"],[13],[1,\"\\n\"]],[\"&attrs\",\"@model\"],false,[]]",
    "moduleName": "nomad-ui/components/das/diffs-table.hbs",
    "isStrictMode": false
  });
  /**
   * Copyright (c) HashiCorp, Inc.
   * SPDX-License-Identifier: MPL-2.0
   */


  class DasResourceTotalsComponent extends _component2.default {
    get diffs() {
      return new _resourcesDiffs.default(this.args.model, 1, this.args.recommendations, this.args.excludedRecommendations);
    }

    get cpuClass() {
      return classForDelta(this.diffs.cpu.delta);
    }

    get memoryClass() {
      return classForDelta(this.diffs.memory.delta);
    }

  }

  _exports.default = DasResourceTotalsComponent;

  window.__CLASSIC_OWN_CLASSES__.set(DasResourceTotalsComponent, true);

  function classForDelta(delta) {
    if (delta > 0) {
      return 'increase';
    } else if (delta < 0) {
      return 'decrease';
    }

    return '';
  }

  (0, _component.setComponentTemplate)(__COLOCATED_TEMPLATE__, DasResourceTotalsComponent);
});
;define("nomad-ui/components/das/dismissed", ["exports", "@ember/component", "@ember/template-factory", "@glimmer/component", "nomad-ui/utils/properties/local-storage", "@glimmer/tracking", "@ember/object"], function (_exports, _component, _templateFactory, _component2, _localStorage, _tracking, _object) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _class, _descriptor, _descriptor2;

  0; //eaimeta@70e063a35619d71f0,"@glimmer/component",0,"nomad-ui/utils/properties/local-storage",0,"@glimmer/tracking",0,"@ember/object",0,"@ember/template-factory"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const __COLOCATED_TEMPLATE__ = (0, _templateFactory.createTemplateFactory)(
  /*
    {{!
    Copyright (c) HashiCorp, Inc.
    SPDX-License-Identifier: MPL-2.0
  ~}}
  
  <section class="das-dismissed {{if this.explanationUnderstood 'understood'}}">
    {{#if this.explanationUnderstood}}
      <h3 {{did-insert this.proceedAutomatically}}>Recommendation dismissed</h3>
    {{else}}
      <section>
        <h3>Recommendation dismissed</h3>
  
        <p>Nomad will not apply these resource change recommendations.</p>
  
        <p>To never get recommendations for this task group again, disable dynamic application sizing in the job definition.</p>
      </section>
  
      <section class="actions">
        <button
          data-test-understood
          class='button is-info'
          type='button'
          {{on 'click' this.understoodClicked}}
        >Understood</button>
        <label>
          <input
            type="checkbox"
            checked={{this.dismissInTheFuture}}
            onchange={{toggle-action 'dismissInTheFuture' this}}
          />
          Don’t show this again
        </label>
      </section>
    {{/if}}
  </section>
  */
  {
    "id": "K7RBK70W",
    "block": "[[[10,\"section\"],[15,0,[29,[\"das-dismissed \",[52,[30,0,[\"explanationUnderstood\"]],\"understood\"]]]],[12],[1,\"\\n\"],[41,[30,0,[\"explanationUnderstood\"]],[[[1,\"    \"],[11,\"h3\"],[4,[38,1],[[30,0,[\"proceedAutomatically\"]]],null],[12],[1,\"Recommendation dismissed\"],[13],[1,\"\\n\"]],[]],[[[1,\"    \"],[10,\"section\"],[12],[1,\"\\n      \"],[10,\"h3\"],[12],[1,\"Recommendation dismissed\"],[13],[1,\"\\n\\n      \"],[10,2],[12],[1,\"Nomad will not apply these resource change recommendations.\"],[13],[1,\"\\n\\n      \"],[10,2],[12],[1,\"To never get recommendations for this task group again, disable dynamic application sizing in the job definition.\"],[13],[1,\"\\n    \"],[13],[1,\"\\n\\n    \"],[10,\"section\"],[14,0,\"actions\"],[12],[1,\"\\n      \"],[11,\"button\"],[24,0,\"button is-info\"],[24,4,\"button\"],[4,[38,2],[\"click\",[30,0,[\"understoodClicked\"]]],null],[12],[1,\"Understood\"],[13],[1,\"\\n      \"],[10,\"label\"],[12],[1,\"\\n        \"],[10,\"input\"],[15,\"checked\",[30,0,[\"dismissInTheFuture\"]]],[15,\"onchange\",[28,[37,3],[\"dismissInTheFuture\",[30,0]],null]],[14,4,\"checkbox\"],[12],[13],[1,\"\\n        Don’t show this again\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n\"]],[]]],[13]],[],false,[\"if\",\"did-insert\",\"on\",\"toggle-action\"]]",
    "moduleName": "nomad-ui/components/das/dismissed.hbs",
    "isStrictMode": false
  });
  /**
   * Copyright (c) HashiCorp, Inc.
   * SPDX-License-Identifier: MPL-2.0
   */


  let DasDismissedComponent = (_dec = (0, _localStorage.default)('nomadRecommendationDismssalUnderstood', false), (_class = class DasDismissedComponent extends _component2.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "explanationUnderstood", _descriptor, this);

      _initializerDefineProperty(this, "dismissInTheFuture", _descriptor2, this);
    }

    proceedAutomatically() {
      this.args.proceed({
        manuallyDismissed: false
      });
    }

    understoodClicked() {
      this.explanationUnderstood = this.dismissInTheFuture;
      this.args.proceed({
        manuallyDismissed: true
      });
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "explanationUnderstood", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "dismissInTheFuture", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return false;
    }
  }), _applyDecoratedDescriptor(_class.prototype, "proceedAutomatically", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "proceedAutomatically"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "understoodClicked", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "understoodClicked"), _class.prototype)), _class));
  _exports.default = DasDismissedComponent;
  (0, _component.setComponentTemplate)(__COLOCATED_TEMPLATE__, DasDismissedComponent);
});
;define("nomad-ui/components/das/error", ["exports", "@ember/component", "@ember/template-factory", "@glimmer/component", "@ember/object"], function (_exports, _component, _templateFactory, _component2, _object) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class;

  0; //eaimeta@70e063a35619d71f0,"@glimmer/component",0,"@ember/object",0,"@ember/template-factory"eaimeta@70e063a35619d71f

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  const __COLOCATED_TEMPLATE__ = (0, _templateFactory.createTemplateFactory)(
  /*
    {{!
    Copyright (c) HashiCorp, Inc.
    SPDX-License-Identifier: MPL-2.0
  ~}}
  
  <section class="das-error" data-test-recommendation-error>
    <section>
      <h3 data-test-headline>Recommendation error</h3>
  
      <p>
        There were errors processing applications:
      </p>
  
      <pre data-test-errors>{{@error}}</pre>
    </section>
  
    {{x-icon "alert-circle-fill"}}
  
    <section class="actions">
      <button
        data-test-dismiss
        class='button is-light'
        type='button'
        {{on 'click' this.dismissClicked}}
      >Okay</button>
    </section>
  </section>
  */
  {
    "id": "v+eLrX1S",
    "block": "[[[10,\"section\"],[14,0,\"das-error\"],[12],[1,\"\\n  \"],[10,\"section\"],[12],[1,\"\\n    \"],[10,\"h3\"],[12],[1,\"Recommendation error\"],[13],[1,\"\\n\\n    \"],[10,2],[12],[1,\"\\n      There were errors processing applications:\\n    \"],[13],[1,\"\\n\\n    \"],[10,\"pre\"],[12],[1,[30,1]],[13],[1,\"\\n  \"],[13],[1,\"\\n\\n  \"],[1,[28,[35,0],[\"alert-circle-fill\"],null]],[1,\"\\n\\n  \"],[10,\"section\"],[14,0,\"actions\"],[12],[1,\"\\n    \"],[11,\"button\"],[24,0,\"button is-light\"],[24,4,\"button\"],[4,[38,1],[\"click\",[30,0,[\"dismissClicked\"]]],null],[12],[1,\"Okay\"],[13],[1,\"\\n  \"],[13],[1,\"\\n\"],[13]],[\"@error\"],false,[\"x-icon\",\"on\"]]",
    "moduleName": "nomad-ui/components/das/error.hbs",
    "isStrictMode": false
  });
  /**
   * Copyright (c) HashiCorp, Inc.
   * SPDX-License-Identifier: MPL-2.0
   */


  let DasErrorComponent = (_class = class DasErrorComponent extends _component2.default {
    dismissClicked() {
      this.args.proceed({
        manuallyDismissed: true
      });
    }

  }, (_applyDecoratedDescriptor(_class.prototype, "dismissClicked", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "dismissClicked"), _class.prototype)), _class);
  _exports.default = DasErrorComponent;
  (0, _component.setComponentTemplate)(__COLOCATED_TEMPLATE__, DasErrorComponent);
});
;define("nomad-ui/components/das/recommendation-accordion", ["exports", "@ember/component", "@ember/template-factory", "@glimmer/component", "@ember/object", "@glimmer/tracking", "ember-concurrency", "@ember/template", "ember", "nomad-ui/utils/resources-diffs"], function (_exports, _component, _templateFactory, _component2, _object, _tracking, _emberConcurrency, _template, _ember, _resourcesDiffs) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _class, _descriptor, _descriptor2, _descriptor3, _descriptor4;

  0; //eaimeta@70e063a35619d71f0,"@glimmer/component",0,"@ember/object",0,"@glimmer/tracking",0,"ember-concurrency",0,"@ember/template",0,"ember",0,"nomad-ui/utils/resources-diffs",0,"@ember/template-factory"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const __COLOCATED_TEMPLATE__ = (0, _templateFactory.createTemplateFactory)(
  /*
    {{!
    Copyright (c) HashiCorp, Inc.
    SPDX-License-Identifier: MPL-2.0
  ~}}
  
  {{#if this.show}}
    <ListAccordion
      data-test-recommendation-accordion
      class="recommendation-accordion boxed-section {{if this.closing 'closing'}}"
      @source={{array @summary}}
      @key="id"
      {{did-insert this.inserted}}
      as |a|
    >
      {{#if a.isOpen}}
        <div class="animation-container" style={{this.animationContainerStyle}}>
          <Das::RecommendationCard
            @summary={{@summary}}
            @proceed={{this.proceed}}
            @onCollapse={{a.close}}
            @skipReset={{true}}
          />
        </div>
      {{else}}
        <a.head @buttonLabel={{unless a.isOpen "Show"}}>
          <section class="left">
            {{x-icon "info-circle-fill"}}
            <span>Resource Recommendation</span>
            <span data-test-group class="group">{{@summary.taskGroup.name}}</span>
          </section>
  
          <section class="diffs">
            {{#if this.diffs.cpu.delta}}
              <section>
                <span class="resource">CPU</span>
                {{this.diffs.cpu.signedDiff}}
                <span class="percent">{{this.diffs.cpu.percentDiff}}</span>
              </section>
            {{/if}}
  
            {{#if this.diffs.memory.delta}}
              <section>
                <span class="resource">Mem</span>
                {{this.diffs.memory.signedDiff}}
                <span class="percent">{{this.diffs.memory.percentDiff}}</span>
              </section>
            {{/if}}
          </section>
        </a.head>
      {{/if}}
    </ListAccordion>
  {{/if}}
  */
  {
    "id": "3ZOt5T1X",
    "block": "[[[41,[30,0,[\"show\"]],[[[1,\"  \"],[8,[39,1],[[16,0,[29,[\"recommendation-accordion boxed-section \",[52,[30,0,[\"closing\"]],\"closing\"]]]],[4,[38,3],[[30,0,[\"inserted\"]]],null]],[[\"@source\",\"@key\"],[[28,[37,2],[[30,1]],null],\"id\"]],[[\"default\"],[[[[1,\"\\n\"],[41,[30,2,[\"isOpen\"]],[[[1,\"      \"],[10,0],[14,0,\"animation-container\"],[15,5,[30,0,[\"animationContainerStyle\"]]],[12],[1,\"\\n        \"],[8,[39,4],null,[[\"@summary\",\"@proceed\",\"@onCollapse\",\"@skipReset\"],[[30,1],[30,0,[\"proceed\"]],[30,2,[\"close\"]],true]],null],[1,\"\\n      \"],[13],[1,\"\\n\"]],[]],[[[1,\"      \"],[8,[30,2,[\"head\"]],null,[[\"@buttonLabel\"],[[52,[51,[30,2,[\"isOpen\"]]],\"Show\"]]],[[\"default\"],[[[[1,\"\\n        \"],[10,\"section\"],[14,0,\"left\"],[12],[1,\"\\n          \"],[1,[28,[35,6],[\"info-circle-fill\"],null]],[1,\"\\n          \"],[10,1],[12],[1,\"Resource Recommendation\"],[13],[1,\"\\n          \"],[10,1],[14,0,\"group\"],[12],[1,[30,1,[\"taskGroup\",\"name\"]]],[13],[1,\"\\n        \"],[13],[1,\"\\n\\n        \"],[10,\"section\"],[14,0,\"diffs\"],[12],[1,\"\\n\"],[41,[30,0,[\"diffs\",\"cpu\",\"delta\"]],[[[1,\"            \"],[10,\"section\"],[12],[1,\"\\n              \"],[10,1],[14,0,\"resource\"],[12],[1,\"CPU\"],[13],[1,\"\\n              \"],[1,[30,0,[\"diffs\",\"cpu\",\"signedDiff\"]]],[1,\"\\n              \"],[10,1],[14,0,\"percent\"],[12],[1,[30,0,[\"diffs\",\"cpu\",\"percentDiff\"]]],[13],[1,\"\\n            \"],[13],[1,\"\\n\"]],[]],null],[1,\"\\n\"],[41,[30,0,[\"diffs\",\"memory\",\"delta\"]],[[[1,\"            \"],[10,\"section\"],[12],[1,\"\\n              \"],[10,1],[14,0,\"resource\"],[12],[1,\"Mem\"],[13],[1,\"\\n              \"],[1,[30,0,[\"diffs\",\"memory\",\"signedDiff\"]]],[1,\"\\n              \"],[10,1],[14,0,\"percent\"],[12],[1,[30,0,[\"diffs\",\"memory\",\"percentDiff\"]]],[13],[1,\"\\n            \"],[13],[1,\"\\n\"]],[]],null],[1,\"        \"],[13],[1,\"\\n      \"]],[]]]]],[1,\"\\n\"]],[]]],[1,\"  \"]],[2]]]]],[1,\"\\n\"]],[]],null]],[\"@summary\",\"a\"],false,[\"if\",\"list-accordion\",\"array\",\"did-insert\",\"das/recommendation-card\",\"unless\",\"x-icon\"]]",
    "moduleName": "nomad-ui/components/das/recommendation-accordion.hbs",
    "isStrictMode": false
  });
  /**
   * Copyright (c) HashiCorp, Inc.
   * SPDX-License-Identifier: MPL-2.0
   */


  let DasRecommendationAccordionComponent = (_dec = (0, _emberConcurrency.task)(function* () {
    this.closing = true;
    this.animationContainerStyle = (0, _template.htmlSafe)(`height: ${this.accordionElement.clientHeight}px`);
    yield (0, _emberConcurrency.timeout)(10);
    this.animationContainerStyle = (0, _template.htmlSafe)('height: 0px'); // The 450ms for the animation to complete, set in CSS as $timing-slow

    yield (0, _emberConcurrency.timeout)(_ember.default.testing ? 0 : 450);
    this.waitingToProceed = false;
  }).drop(), (_class = class DasRecommendationAccordionComponent extends _component2.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "waitingToProceed", _descriptor, this);

      _initializerDefineProperty(this, "closing", _descriptor2, this);

      _initializerDefineProperty(this, "animationContainerStyle", _descriptor3, this);

      _initializerDefineProperty(this, "proceed", _descriptor4, this);
    }

    inserted(element) {
      this.accordionElement = element;
      this.waitingToProceed = true;
    }

    get show() {
      return !this.args.summary.isProcessed || this.waitingToProceed;
    }

    get diffs() {
      const summary = this.args.summary;
      const taskGroup = summary.taskGroup;
      return new _resourcesDiffs.default(taskGroup, taskGroup.count, this.args.summary.recommendations, this.args.summary.excludedRecommendations);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "waitingToProceed", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return false;
    }
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "closing", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return false;
    }
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "animationContainerStyle", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return (0, _template.htmlSafe)('');
    }
  }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, "proceed", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class.prototype, "inserted", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "inserted"), _class.prototype)), _class));
  _exports.default = DasRecommendationAccordionComponent;
  (0, _component.setComponentTemplate)(__COLOCATED_TEMPLATE__, DasRecommendationAccordionComponent);
});
;define("nomad-ui/components/das/recommendation-card", ["exports", "@ember/component", "@ember/template-factory", "@glimmer/component", "@ember/service", "@glimmer/tracking", "@ember/object", "nomad-ui/utils/resources-diffs", "@ember/template", "ember-concurrency", "ember"], function (_exports, _component, _templateFactory, _component2, _service, _tracking, _object, _resourcesDiffs, _template, _emberConcurrency, _ember) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _class, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8, _descriptor9, _descriptor10, _descriptor11;

  0; //eaimeta@70e063a35619d71f0,"@glimmer/component",0,"@ember/service",0,"@glimmer/tracking",0,"@ember/object",0,"nomad-ui/utils/resources-diffs",0,"@ember/template",0,"ember-concurrency",0,"ember",0,"@ember/template-factory"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const __COLOCATED_TEMPLATE__ = (0, _templateFactory.createTemplateFactory)(
  /*
    {{!
    Copyright (c) HashiCorp, Inc.
    SPDX-License-Identifier: MPL-2.0
  ~}}
  
  {{! template-lint-disable no-duplicate-landmark-elements}}
  {{#if this.interstitialComponent}}
    <section class="das-interstitial" style={{this.interstitialStyle}}>
      {{component
        (concat "das/" this.interstitialComponent)
        proceed=this.proceedPromiseResolve
        error=this.error
      }}
    </section>
  {{else if @summary.taskGroup}}
    <section
      ...attributes
      data-test-task-group-recommendations
      class="recommendation-card"
      {{did-insert this.cardInserted}}
    >
  
      <h2 class="top overview inner-container">Resource Recommendation</h2>
  
      <header class="overview inner-container">
        <h3 class="slug">
          <span
            class="job"
            data-test-job-name
          >{{@summary.taskGroup.job.name}}</span>
          <span
            class="group"
            data-test-task-group-name
          >{{@summary.taskGroup.name}}</span>
        </h3>
        <h4 class="namespace">
          <span class="namespace-label">Namespace:</span>
          <span data-test-namespace>{{@summary.jobNamespace}}</span>
        </h4>
      </header>
  
      <section class="diffs overview inner-container">
        <Das::DiffsTable
          data-test-group-totals
          @model={{@summary.taskGroup}}
          @recommendations={{@summary.recommendations}}
          @excludedRecommendations={{@summary.excludedRecommendations}}
        />
      </section>
  
      <section class="narrative overview inner-container">
        <p data-test-narrative>{{this.narrative}}</p>
      </section>
  
      <section class="main overview inner-container task-toggles">
        <table data-test-toggles-table>
          <thead data-test-tasks-head>
            <tr>
              {{#if this.showToggleAllToggles}}
                <th>Task</th>
                <th class="toggle-all">Toggle All</th>
                <th class="toggle-cell">
                  <Toggle
                    data-test-cpu-toggle
                    @isActive={{and
                      this.allCpuToggleActive
                      (not this.allCpuToggleDisabled)
                    }}
                    @isDisabled={{this.allCpuToggleDisabled}}
                    @onToggle={{action
                      this.toggleAllRecommendationsForResource
                      "CPU"
                    }}
                    title="Toggle CPU recommendations for all tasks"
                  >
                    <div class="label-wrapper">CPU</div>
                  </Toggle>
                </th>
                <th class="toggle-cell">
                  <Toggle
                    data-test-memory-toggle
                    @isActive={{and
                      this.allMemoryToggleActive
                      (not this.allMemoryToggleDisabled)
                    }}
                    @isDisabled={{this.allMemoryToggleDisabled}}
                    @onToggle={{action
                      this.toggleAllRecommendationsForResource
                      "MemoryMB"
                    }}
                    title="Toggle memory recommendations for all tasks"
                  >
                    <div class="label-wrapper">Mem</div>
                  </Toggle>
                </th>
              {{else}}
                <th colspan="2">Task</th>
                <th class="toggle-cell">CPU</th>
                <th class="toggle-cell">Mem</th>
              {{/if}}
            </tr>
          </thead>
          <tbody>
            {{#each this.taskToggleRows key="task.name" as |taskToggleRow index|}}
              <Das::TaskRow
                @task={{taskToggleRow.task}}
                @active={{eq this.activeTaskToggleRowIndex index}}
                @cpu={{taskToggleRow.cpu}}
                @memory={{taskToggleRow.memory}}
                @onClick={{action (mut this.activeTaskToggleRowIndex) index}}
                @toggleRecommendation={{@summary.toggleRecommendation}}
              />
            {{/each}}
          </tbody>
        </table>
      </section>
  
      <section class="actions overview inner-container">
        <button
          class="button is-primary"
          type="button"
          disabled={{this.cannotAccept}}
          data-test-accept
          {{on "click" this.accept}}
        >Accept</button>
        <button
          class="button is-light"
          type="button"
          data-test-dismiss
          {{on "click" this.dismiss}}
        >Dismiss</button>
      </section>
  
      <section class="active-task-group" data-test-active-task>
        <section class="top active-task inner-container">
          <CopyButton
            data-test-copy-button
            @clipboardText={{this.copyButtonLink}}
          >
            {{@summary.taskGroup.job.name}}
            /
            {{@summary.taskGroup.name}}
          </CopyButton>
  
          {{#if @onCollapse}}
            <button
              data-test-accordion-toggle
              class="button is-light is-compact pull-right accordion-toggle"
              {{on "click" @onCollapse}}
              type="button"
            >
              Collapse
            </button>
          {{/if}}
        </section>
  
        <header class="active-task inner-container">
          <h3 data-test-task-name>{{this.activeTask.name}} task</h3>
        </header>
  
        <section class="diffs active-task inner-container">
          <Das::DiffsTable
            @model={{this.activeTask}}
            @recommendations={{this.activeTaskToggleRow.recommendations}}
            @excludedRecommendations={{@summary.excludedRecommendations}}
          />
        </section>
  
        <ul class="main active-task inner-container">
          {{#each this.activeTaskToggleRow.recommendations as |recommendation|}}
            <li data-test-recommendation>
              <Das::RecommendationChart
                data-test-chart-for={{recommendation.resource}}
                @resource={{recommendation.resource}}
                @currentValue={{recommendation.currentValue}}
                @recommendedValue={{recommendation.value}}
                @stats={{recommendation.stats}}
                @disabled={{includes
                  recommendation
                  @summary.excludedRecommendations
                }}
              />
            </li>
          {{/each}}
        </ul>
      </section>
  
    </section>
  {{/if}}
  */
  {
    "id": "GsBuhgBL",
    "block": "[[[41,[30,0,[\"interstitialComponent\"]],[[[1,\"  \"],[10,\"section\"],[14,0,\"das-interstitial\"],[15,5,[30,0,[\"interstitialStyle\"]]],[12],[1,\"\\n    \"],[46,[28,[37,2],[\"das/\",[30,0,[\"interstitialComponent\"]]],null],null,[[\"proceed\",\"error\"],[[30,0,[\"proceedPromiseResolve\"]],[30,0,[\"error\"]]]],null],[1,\"\\n  \"],[13],[1,\"\\n\"]],[]],[[[41,[30,1,[\"taskGroup\"]],[[[1,\"  \"],[11,\"section\"],[17,2],[24,0,\"recommendation-card\"],[4,[38,3],[[30,0,[\"cardInserted\"]]],null],[12],[1,\"\\n\\n    \"],[10,\"h2\"],[14,0,\"top overview inner-container\"],[12],[1,\"Resource Recommendation\"],[13],[1,\"\\n\\n    \"],[10,\"header\"],[14,0,\"overview inner-container\"],[12],[1,\"\\n      \"],[10,\"h3\"],[14,0,\"slug\"],[12],[1,\"\\n        \"],[10,1],[14,0,\"job\"],[12],[1,[30,1,[\"taskGroup\",\"job\",\"name\"]]],[13],[1,\"\\n        \"],[10,1],[14,0,\"group\"],[12],[1,[30,1,[\"taskGroup\",\"name\"]]],[13],[1,\"\\n      \"],[13],[1,\"\\n      \"],[10,\"h4\"],[14,0,\"namespace\"],[12],[1,\"\\n        \"],[10,1],[14,0,\"namespace-label\"],[12],[1,\"Namespace:\"],[13],[1,\"\\n        \"],[10,1],[12],[1,[30,1,[\"jobNamespace\"]]],[13],[1,\"\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n\\n    \"],[10,\"section\"],[14,0,\"diffs overview inner-container\"],[12],[1,\"\\n      \"],[8,[39,4],null,[[\"@model\",\"@recommendations\",\"@excludedRecommendations\"],[[30,1,[\"taskGroup\"]],[30,1,[\"recommendations\"]],[30,1,[\"excludedRecommendations\"]]]],null],[1,\"\\n    \"],[13],[1,\"\\n\\n    \"],[10,\"section\"],[14,0,\"narrative overview inner-container\"],[12],[1,\"\\n      \"],[10,2],[12],[1,[30,0,[\"narrative\"]]],[13],[1,\"\\n    \"],[13],[1,\"\\n\\n    \"],[10,\"section\"],[14,0,\"main overview inner-container task-toggles\"],[12],[1,\"\\n      \"],[10,\"table\"],[12],[1,\"\\n        \"],[10,\"thead\"],[12],[1,\"\\n          \"],[10,\"tr\"],[12],[1,\"\\n\"],[41,[30,0,[\"showToggleAllToggles\"]],[[[1,\"              \"],[10,\"th\"],[12],[1,\"Task\"],[13],[1,\"\\n              \"],[10,\"th\"],[14,0,\"toggle-all\"],[12],[1,\"Toggle All\"],[13],[1,\"\\n              \"],[10,\"th\"],[14,0,\"toggle-cell\"],[12],[1,\"\\n                \"],[8,[39,5],[[24,\"title\",\"Toggle CPU recommendations for all tasks\"]],[[\"@isActive\",\"@isDisabled\",\"@onToggle\"],[[28,[37,6],[[30,0,[\"allCpuToggleActive\"]],[28,[37,7],[[30,0,[\"allCpuToggleDisabled\"]]],null]],null],[30,0,[\"allCpuToggleDisabled\"]],[28,[37,8],[[30,0],[30,0,[\"toggleAllRecommendationsForResource\"]],\"CPU\"],null]]],[[\"default\"],[[[[1,\"\\n                  \"],[10,0],[14,0,\"label-wrapper\"],[12],[1,\"CPU\"],[13],[1,\"\\n                \"]],[]]]]],[1,\"\\n              \"],[13],[1,\"\\n              \"],[10,\"th\"],[14,0,\"toggle-cell\"],[12],[1,\"\\n                \"],[8,[39,5],[[24,\"title\",\"Toggle memory recommendations for all tasks\"]],[[\"@isActive\",\"@isDisabled\",\"@onToggle\"],[[28,[37,6],[[30,0,[\"allMemoryToggleActive\"]],[28,[37,7],[[30,0,[\"allMemoryToggleDisabled\"]]],null]],null],[30,0,[\"allMemoryToggleDisabled\"]],[28,[37,8],[[30,0],[30,0,[\"toggleAllRecommendationsForResource\"]],\"MemoryMB\"],null]]],[[\"default\"],[[[[1,\"\\n                  \"],[10,0],[14,0,\"label-wrapper\"],[12],[1,\"Mem\"],[13],[1,\"\\n                \"]],[]]]]],[1,\"\\n              \"],[13],[1,\"\\n\"]],[]],[[[1,\"              \"],[10,\"th\"],[14,\"colspan\",\"2\"],[12],[1,\"Task\"],[13],[1,\"\\n              \"],[10,\"th\"],[14,0,\"toggle-cell\"],[12],[1,\"CPU\"],[13],[1,\"\\n              \"],[10,\"th\"],[14,0,\"toggle-cell\"],[12],[1,\"Mem\"],[13],[1,\"\\n\"]],[]]],[1,\"          \"],[13],[1,\"\\n        \"],[13],[1,\"\\n        \"],[10,\"tbody\"],[12],[1,\"\\n\"],[42,[28,[37,10],[[28,[37,10],[[30,0,[\"taskToggleRows\"]]],null]],null],\"task.name\",[[[1,\"            \"],[8,[39,11],null,[[\"@task\",\"@active\",\"@cpu\",\"@memory\",\"@onClick\",\"@toggleRecommendation\"],[[30,3,[\"task\"]],[28,[37,12],[[30,0,[\"activeTaskToggleRowIndex\"]],[30,4]],null],[30,3,[\"cpu\"]],[30,3,[\"memory\"]],[28,[37,8],[[30,0],[28,[37,13],[[30,0,[\"activeTaskToggleRowIndex\"]]],null],[30,4]],null],[30,1,[\"toggleRecommendation\"]]]],null],[1,\"\\n\"]],[3,4]],null],[1,\"        \"],[13],[1,\"\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n\\n    \"],[10,\"section\"],[14,0,\"actions overview inner-container\"],[12],[1,\"\\n      \"],[11,\"button\"],[24,0,\"button is-primary\"],[16,\"disabled\",[30,0,[\"cannotAccept\"]]],[24,4,\"button\"],[4,[38,14],[\"click\",[30,0,[\"accept\"]]],null],[12],[1,\"Accept\"],[13],[1,\"\\n      \"],[11,\"button\"],[24,0,\"button is-light\"],[24,4,\"button\"],[4,[38,14],[\"click\",[30,0,[\"dismiss\"]]],null],[12],[1,\"Dismiss\"],[13],[1,\"\\n    \"],[13],[1,\"\\n\\n    \"],[10,\"section\"],[14,0,\"active-task-group\"],[12],[1,\"\\n      \"],[10,\"section\"],[14,0,\"top active-task inner-container\"],[12],[1,\"\\n        \"],[8,[39,15],null,[[\"@clipboardText\"],[[30,0,[\"copyButtonLink\"]]]],[[\"default\"],[[[[1,\"\\n          \"],[1,[30,1,[\"taskGroup\",\"job\",\"name\"]]],[1,\"\\n          /\\n          \"],[1,[30,1,[\"taskGroup\",\"name\"]]],[1,\"\\n        \"]],[]]]]],[1,\"\\n\\n\"],[41,[30,5],[[[1,\"          \"],[11,\"button\"],[24,0,\"button is-light is-compact pull-right accordion-toggle\"],[24,4,\"button\"],[4,[38,14],[\"click\",[30,5]],null],[12],[1,\"\\n            Collapse\\n          \"],[13],[1,\"\\n\"]],[]],null],[1,\"      \"],[13],[1,\"\\n\\n      \"],[10,\"header\"],[14,0,\"active-task inner-container\"],[12],[1,\"\\n        \"],[10,\"h3\"],[12],[1,[30,0,[\"activeTask\",\"name\"]]],[1,\" task\"],[13],[1,\"\\n      \"],[13],[1,\"\\n\\n      \"],[10,\"section\"],[14,0,\"diffs active-task inner-container\"],[12],[1,\"\\n        \"],[8,[39,4],null,[[\"@model\",\"@recommendations\",\"@excludedRecommendations\"],[[30,0,[\"activeTask\"]],[30,0,[\"activeTaskToggleRow\",\"recommendations\"]],[30,1,[\"excludedRecommendations\"]]]],null],[1,\"\\n      \"],[13],[1,\"\\n\\n      \"],[10,\"ul\"],[14,0,\"main active-task inner-container\"],[12],[1,\"\\n\"],[42,[28,[37,10],[[28,[37,10],[[30,0,[\"activeTaskToggleRow\",\"recommendations\"]]],null]],null],null,[[[1,\"          \"],[10,\"li\"],[12],[1,\"\\n            \"],[8,[39,16],null,[[\"@resource\",\"@currentValue\",\"@recommendedValue\",\"@stats\",\"@disabled\"],[[30,6,[\"resource\"]],[30,6,[\"currentValue\"]],[30,6,[\"value\"]],[30,6,[\"stats\"]],[28,[37,17],[[30,6],[30,1,[\"excludedRecommendations\"]]],null]]],null],[1,\"\\n          \"],[13],[1,\"\\n\"]],[6]],null],[1,\"      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n\\n  \"],[13],[1,\"\\n\"]],[]],null]],[]]]],[\"@summary\",\"&attrs\",\"taskToggleRow\",\"index\",\"@onCollapse\",\"recommendation\"],false,[\"if\",\"component\",\"concat\",\"did-insert\",\"das/diffs-table\",\"toggle\",\"and\",\"not\",\"action\",\"each\",\"-track-array\",\"das/task-row\",\"eq\",\"mut\",\"on\",\"copy-button\",\"das/recommendation-chart\",\"includes\"]]",
    "moduleName": "nomad-ui/components/das/recommendation-card.hbs",
    "isStrictMode": false
  });
  /**
   * Copyright (c) HashiCorp, Inc.
   * SPDX-License-Identifier: MPL-2.0
   */


  let DasRecommendationCardComponent = (_dec = (0, _emberConcurrency.task)(function* () {
    this.interstitialComponent = 'accepted';
    yield (0, _emberConcurrency.timeout)(_ember.default.testing ? 0 : 2000);
    this.args.proceed.perform();
    this.resetInterstitial();
  }).drop(), _dec2 = (0, _emberConcurrency.task)(function* () {
    const {
      manuallyDismissed
    } = yield new Promise(resolve => {
      this.proceedPromiseResolve = resolve;
      this.interstitialComponent = 'dismissed';
    });

    if (!manuallyDismissed) {
      yield (0, _emberConcurrency.timeout)(_ember.default.testing ? 0 : 2000);
    }

    this.args.proceed.perform();
    this.resetInterstitial();
  }).drop(), _dec3 = (0, _emberConcurrency.task)(function* (error) {
    yield new Promise(resolve => {
      this.proceedPromiseResolve = resolve;
      this.interstitialComponent = 'error';
      this.error = error.toString();
    });
    this.args.proceed.perform();
    this.resetInterstitial();
  }).drop(), (_class = class DasRecommendationCardComponent extends _component2.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "router", _descriptor, this);

      _initializerDefineProperty(this, "allCpuToggleActive", _descriptor2, this);

      _initializerDefineProperty(this, "allMemoryToggleActive", _descriptor3, this);

      _initializerDefineProperty(this, "activeTaskToggleRowIndex", _descriptor4, this);

      _defineProperty(this, "element", null);

      _initializerDefineProperty(this, "cardHeight", _descriptor5, this);

      _initializerDefineProperty(this, "interstitialComponent", _descriptor6, this);

      _initializerDefineProperty(this, "error", _descriptor7, this);

      _initializerDefineProperty(this, "proceedPromiseResolve", _descriptor8, this);

      _initializerDefineProperty(this, "onApplied", _descriptor9, this);

      _initializerDefineProperty(this, "onDismissed", _descriptor10, this);

      _initializerDefineProperty(this, "onError", _descriptor11, this);
    }

    get activeTaskToggleRow() {
      return this.taskToggleRows[this.activeTaskToggleRowIndex];
    }

    get activeTask() {
      return this.activeTaskToggleRow.task;
    }

    get narrative() {
      const summary = this.args.summary;
      const taskGroup = summary.taskGroup;
      const diffs = new _resourcesDiffs.default(taskGroup, taskGroup.count, this.args.summary.recommendations, this.args.summary.excludedRecommendations);
      const cpuDelta = diffs.cpu.delta;
      const memoryDelta = diffs.memory.delta;
      const aggregate = taskGroup.count > 1;
      const aggregateString = aggregate ? ' an aggregate' : '';

      if (cpuDelta || memoryDelta) {
        const deltasSameDirection = cpuDelta < 0 && memoryDelta < 0 || cpuDelta > 0 && memoryDelta > 0;
        let narrative = 'Applying the selected recommendations will';

        if (deltasSameDirection) {
          narrative += ` ${verbForDelta(cpuDelta)} ${aggregateString}`;
        }

        if (cpuDelta) {
          if (!deltasSameDirection) {
            narrative += ` ${verbForDelta(cpuDelta)} ${aggregateString}`;
          }

          narrative += ` <strong>${diffs.cpu.absoluteAggregateDiff} of CPU</strong>`;
        }

        if (cpuDelta && memoryDelta) {
          narrative += ' and';
        }

        if (memoryDelta) {
          if (!deltasSameDirection) {
            narrative += ` ${verbForDelta(memoryDelta)} ${aggregateString}`;
          }

          narrative += ` <strong>${diffs.memory.absoluteAggregateDiff} of memory</strong>`;
        }

        if (taskGroup.count === 1) {
          narrative += '.';
        } else {
          narrative += ` across <strong>${taskGroup.count} allocations</strong>.`;
        }

        return (0, _template.htmlSafe)(narrative);
      } else {
        return '';
      }
    }

    get taskToggleRows() {
      const taskNameToTaskToggles = {};
      return this.args.summary.recommendations.reduce((taskToggleRows, recommendation) => {
        let taskToggleRow = taskNameToTaskToggles[recommendation.task.name];

        if (!taskToggleRow) {
          taskToggleRow = {
            recommendations: [],
            task: recommendation.task
          };
          taskNameToTaskToggles[recommendation.task.name] = taskToggleRow;
          taskToggleRows.push(taskToggleRow);
        }

        const isCpu = recommendation.resource === 'CPU';
        const rowResourceProperty = isCpu ? 'cpu' : 'memory';
        taskToggleRow[rowResourceProperty] = {
          recommendation,
          isActive: !this.args.summary.excludedRecommendations.includes(recommendation)
        };

        if (isCpu) {
          taskToggleRow.recommendations.unshift(recommendation);
        } else {
          taskToggleRow.recommendations.push(recommendation);
        }

        return taskToggleRows;
      }, []);
    }

    get showToggleAllToggles() {
      return this.taskToggleRows.length > 1;
    }

    get allCpuToggleDisabled() {
      return !this.args.summary.recommendations.filterBy('resource', 'CPU').length;
    }

    get allMemoryToggleDisabled() {
      return !this.args.summary.recommendations.filterBy('resource', 'MemoryMB').length;
    }

    get cannotAccept() {
      return this.args.summary.excludedRecommendations.length == this.args.summary.recommendations.length;
    }

    get copyButtonLink() {
      const path = this.router.urlFor('optimize.summary', this.args.summary.slug, {
        queryParams: {
          namespace: this.args.summary.jobNamespace
        }
      });
      const {
        origin
      } = window.location;
      return `${origin}${path}`;
    }

    toggleAllRecommendationsForResource(resource) {
      let enabled;

      if (resource === 'CPU') {
        this.allCpuToggleActive = !this.allCpuToggleActive;
        enabled = this.allCpuToggleActive;
      } else {
        this.allMemoryToggleActive = !this.allMemoryToggleActive;
        enabled = this.allMemoryToggleActive;
      }

      this.args.summary.toggleAllRecommendationsForResource(resource, enabled);
    }

    accept() {
      this.storeCardHeight();
      this.args.summary.save().then(() => this.onApplied.perform(), e => this.onError.perform(e)).catch(e => {
        if (!(0, _emberConcurrency.didCancel)(e)) {
          throw e;
        }
      });
    }

    async dismiss() {
      this.storeCardHeight();
      const recommendations = await this.args.summary.recommendations;
      this.args.summary.excludedRecommendations.pushObjects(recommendations);
      this.args.summary.save().then(() => this.onDismissed.perform(), e => this.onError.perform(e)).catch(e => {
        if (!(0, _emberConcurrency.didCancel)(e)) {
          throw e;
        }
      });
    }

    get interstitialStyle() {
      return (0, _template.htmlSafe)(`height: ${this.cardHeight}px`);
    }

    resetInterstitial() {
      if (!this.args.skipReset) {
        this.interstitialComponent = undefined;
        this.error = undefined;
      }
    }

    cardInserted(element) {
      this.element = element;
    }

    storeCardHeight() {
      this.cardHeight = this.element.clientHeight;
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "router", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "allCpuToggleActive", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return true;
    }
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "allMemoryToggleActive", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return true;
    }
  }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, "activeTaskToggleRowIndex", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return 0;
    }
  }), _descriptor5 = _applyDecoratedDescriptor(_class.prototype, "cardHeight", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor6 = _applyDecoratedDescriptor(_class.prototype, "interstitialComponent", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor7 = _applyDecoratedDescriptor(_class.prototype, "error", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor8 = _applyDecoratedDescriptor(_class.prototype, "proceedPromiseResolve", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class.prototype, "toggleAllRecommendationsForResource", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "toggleAllRecommendationsForResource"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "accept", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "accept"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "dismiss", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "dismiss"), _class.prototype), _descriptor9 = _applyDecoratedDescriptor(_class.prototype, "onApplied", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor10 = _applyDecoratedDescriptor(_class.prototype, "onDismissed", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor11 = _applyDecoratedDescriptor(_class.prototype, "onError", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class.prototype, "cardInserted", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "cardInserted"), _class.prototype)), _class));
  _exports.default = DasRecommendationCardComponent;

  function verbForDelta(delta) {
    if (delta > 0) {
      return 'add';
    } else {
      return 'save';
    }
  }

  (0, _component.setComponentTemplate)(__COLOCATED_TEMPLATE__, DasRecommendationCardComponent);
});
;define("nomad-ui/components/das/recommendation-chart", ["exports", "@ember/component", "@ember/template-factory", "@glimmer/component", "@ember/object", "@glimmer/tracking", "@ember/runloop", "@ember/string", "d3-scale", "d3-format"], function (_exports, _component, _templateFactory, _component2, _object, _tracking, _runloop, _string, _d3Scale, _d3Format) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6;

  0; //eaimeta@70e063a35619d71f0,"@glimmer/component",0,"@ember/object",0,"@glimmer/tracking",0,"@ember/runloop",0,"@ember/string",0,"@ember/object",0,"d3-scale",0,"d3-format",0,"@ember/template-factory"eaimeta@70e063a35619d71f

  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }

  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const __COLOCATED_TEMPLATE__ = (0, _templateFactory.createTemplateFactory)(
  /*
    {{!
    Copyright (c) HashiCorp, Inc.
    SPDX-License-Identifier: MPL-2.0
  ~}}
  
  <div
    ...attributes
    class="chart recommendation-chart {{this.directionClass}}"
    {{did-insert this.onResize}}
    {{window-resize this.onResize}}
    {{on "mousemove" this.setLegendPosition}}
    {{on "mouseleave" (action (mut this.showLegend) false)}}
  >
  
    <svg
      class="chart"
      height={{this.chartHeight}}
      {{did-insert this.storeSvgElement}}
    >
      <svg
        class="icon delta"
        x={{this.icon.x}}
        y={{this.icon.y}}
        width={{this.icon.width}}
        height={{this.icon.height}}
      >
        {{x-icon this.icon.name}}
      </svg>
  
      <text
        class="resource"
        x={{this.resourceLabel.x}}
        y={{this.resourceLabel.y}}
      >
        {{this.resourceLabel.text}}
      </text>
  
      {{#if this.center}}
        <line
          class="center"
          x1={{this.center.x1}}
          y1={{this.center.y1}}
          x2={{this.center.x2}}
          y2={{this.center.y2}}
        ></line>
      {{/if}}
  
      {{#each this.statsShapes as |shapes|}}
        <text
          class="stats-label {{shapes.text.class}}"
          text-anchor="end"
          x={{shapes.text.x}}
          y={{shapes.text.y}}
          data-test-label={{shapes.class}}
          {{on "mouseenter" (fn this.setActiveLegendRow shapes.text.label)}}
          {{on "mouseleave" this.unsetActiveLegendRow}}
        >
          {{shapes.text.label}}
        </text>
  
        <rect
          class="stat {{shapes.class}}"
          x={{shapes.rect.x}}
          width={{shapes.rect.width}}
          y={{shapes.rect.y}}
          height={{shapes.rect.height}}
          {{on "mouseenter" (fn this.setActiveLegendRow shapes.text.label)}}
          {{on "mouseleave" this.unsetActiveLegendRow}}
        ></rect>
  
        <line
          class="stat {{shapes.class}}"
          x1={{shapes.line.x1}}
          y1={{shapes.line.y1}}
          x2={{shapes.line.x2}}
          y2={{shapes.line.y2}}
          {{on "mouseenter" (fn this.setActiveLegendRow shapes.text.label)}}
          {{on "mouseleave" this.unsetActiveLegendRow}}
        ></line>
      {{/each}}
  
      {{#unless @disabled}}
        {{#if this.deltaRect.x}}
          <rect
            {{did-insert this.isShown}}
            class="delta"
            x={{this.deltaRect.x}}
            y={{this.deltaRect.y}}
            width={{this.deltaRect.width}}
            height={{this.deltaRect.height}}
          ></rect>
  
          <polygon
            class="delta"
            style={{this.deltaTriangle.style}}
            points={{this.deltaTriangle.points}}
          ></polygon>
  
          <line
            class="changes delta"
            style={{this.deltaLines.delta.style}}
            x1={{0}}
            y1={{this.edgeTickY1}}
            x2={{0}}
            y2={{this.edgeTickY2}}
            {{on "mouseenter" (fn this.setActiveLegendRow "New")}}
            {{on "mouseleave" this.unsetActiveLegendRow}}
          ></line>
  
          <line
            class="changes"
            x1={{this.deltaLines.original.x}}
            y1={{this.edgeTickY1}}
            x2={{this.deltaLines.original.x}}
            y2={{this.edgeTickY2}}
            {{on "mouseenter" (fn this.setActiveLegendRow "Current")}}
            {{on "mouseleave" this.unsetActiveLegendRow}}
          ></line>
  
          <text
            class="changes"
            text-anchor="{{this.deltaText.original.anchor}}"
            x={{this.deltaText.original.x}}
            y={{this.deltaText.original.y}}
            {{on "mouseenter" (fn this.setActiveLegendRow "Current")}}
            {{on "mouseleave" this.unsetActiveLegendRow}}
          >
            Current
          </text>
  
          <text
            class="changes new"
            text-anchor="{{this.deltaText.delta.anchor}}"
            x={{this.deltaText.delta.x}}
            y={{this.deltaText.delta.y}}
            {{on "mouseenter" (fn this.setActiveLegendRow "New")}}
            {{on "mouseleave" this.unsetActiveLegendRow}}
          >
            New
          </text>
  
          <text
            class="changes percent"
            x={{this.deltaText.percent.x}}
            y={{this.deltaText.percent.y}}
          >
            {{this.deltaText.percent.text}}
          </text>
        {{/if}}
      {{/unless}}
  
      <line
        class="zero"
        x1={{this.gutterWidthLeft}}
        y1={{this.edgeTickY1}}
        x2={{this.gutterWidthLeft}}
        y2={{this.edgeTickY2}}
      ></line>
    </svg>
  
    <div
      class="chart-tooltip {{if this.showLegend 'active' 'inactive'}}"
      style={{this.tooltipStyle}}
    >
      <ol>
        {{#each this.sortedStats as |stat|}}
          <li class={{if (eq this.activeLegendRow stat.label) "active"}}>
            <span class="label">
              {{stat.label}}
            </span>
            <span class="value">{{stat.value}}</span>
          </li>
        {{/each}}
      </ol>
    </div>
  
  </div>
  */
  {
    "id": "mKHoaqFv",
    "block": "[[[11,0],[17,1],[16,0,[29,[\"chart recommendation-chart \",[30,0,[\"directionClass\"]]]]],[4,[38,0],[[30,0,[\"onResize\"]]],null],[4,[38,1],[[30,0,[\"onResize\"]]],null],[4,[38,2],[\"mousemove\",[30,0,[\"setLegendPosition\"]]],null],[4,[38,2],[\"mouseleave\",[28,[37,3],[[30,0],[28,[37,4],[[30,0,[\"showLegend\"]]],null],false],null]],null],[12],[1,\"\\n\\n  \"],[11,\"svg\"],[24,0,\"chart\"],[16,\"height\",[30,0,[\"chartHeight\"]]],[4,[38,0],[[30,0,[\"storeSvgElement\"]]],null],[12],[1,\"\\n    \"],[10,\"svg\"],[14,0,\"icon delta\"],[15,\"x\",[30,0,[\"icon\",\"x\"]]],[15,\"y\",[30,0,[\"icon\",\"y\"]]],[15,\"width\",[30,0,[\"icon\",\"width\"]]],[15,\"height\",[30,0,[\"icon\",\"height\"]]],[12],[1,\"\\n      \"],[1,[28,[35,5],[[30,0,[\"icon\",\"name\"]]],null]],[1,\"\\n    \"],[13],[1,\"\\n\\n    \"],[10,\"text\"],[14,0,\"resource\"],[15,\"x\",[30,0,[\"resourceLabel\",\"x\"]]],[15,\"y\",[30,0,[\"resourceLabel\",\"y\"]]],[12],[1,\"\\n      \"],[1,[30,0,[\"resourceLabel\",\"text\"]]],[1,\"\\n    \"],[13],[1,\"\\n\\n\"],[41,[30,0,[\"center\"]],[[[1,\"      \"],[10,\"line\"],[14,0,\"center\"],[15,\"x1\",[30,0,[\"center\",\"x1\"]]],[15,\"y1\",[30,0,[\"center\",\"y1\"]]],[15,\"x2\",[30,0,[\"center\",\"x2\"]]],[15,\"y2\",[30,0,[\"center\",\"y2\"]]],[12],[13],[1,\"\\n\"]],[]],null],[1,\"\\n\"],[42,[28,[37,8],[[28,[37,8],[[30,0,[\"statsShapes\"]]],null]],null],null,[[[1,\"      \"],[11,\"text\"],[16,0,[29,[\"stats-label \",[30,2,[\"text\",\"class\"]]]]],[24,\"text-anchor\",\"end\"],[16,\"x\",[30,2,[\"text\",\"x\"]]],[16,\"y\",[30,2,[\"text\",\"y\"]]],[4,[38,2],[\"mouseenter\",[28,[37,9],[[30,0,[\"setActiveLegendRow\"]],[30,2,[\"text\",\"label\"]]],null]],null],[4,[38,2],[\"mouseleave\",[30,0,[\"unsetActiveLegendRow\"]]],null],[12],[1,\"\\n        \"],[1,[30,2,[\"text\",\"label\"]]],[1,\"\\n      \"],[13],[1,\"\\n\\n      \"],[11,\"rect\"],[16,0,[29,[\"stat \",[30,2,[\"class\"]]]]],[16,\"x\",[30,2,[\"rect\",\"x\"]]],[16,\"width\",[30,2,[\"rect\",\"width\"]]],[16,\"y\",[30,2,[\"rect\",\"y\"]]],[16,\"height\",[30,2,[\"rect\",\"height\"]]],[4,[38,2],[\"mouseenter\",[28,[37,9],[[30,0,[\"setActiveLegendRow\"]],[30,2,[\"text\",\"label\"]]],null]],null],[4,[38,2],[\"mouseleave\",[30,0,[\"unsetActiveLegendRow\"]]],null],[12],[13],[1,\"\\n\\n      \"],[11,\"line\"],[16,0,[29,[\"stat \",[30,2,[\"class\"]]]]],[16,\"x1\",[30,2,[\"line\",\"x1\"]]],[16,\"y1\",[30,2,[\"line\",\"y1\"]]],[16,\"x2\",[30,2,[\"line\",\"x2\"]]],[16,\"y2\",[30,2,[\"line\",\"y2\"]]],[4,[38,2],[\"mouseenter\",[28,[37,9],[[30,0,[\"setActiveLegendRow\"]],[30,2,[\"text\",\"label\"]]],null]],null],[4,[38,2],[\"mouseleave\",[30,0,[\"unsetActiveLegendRow\"]]],null],[12],[13],[1,\"\\n\"]],[2]],null],[1,\"\\n\"],[41,[51,[30,3]],[[[41,[30,0,[\"deltaRect\",\"x\"]],[[[1,\"        \"],[11,\"rect\"],[24,0,\"delta\"],[16,\"x\",[30,0,[\"deltaRect\",\"x\"]]],[16,\"y\",[30,0,[\"deltaRect\",\"y\"]]],[16,\"width\",[30,0,[\"deltaRect\",\"width\"]]],[16,\"height\",[30,0,[\"deltaRect\",\"height\"]]],[4,[38,0],[[30,0,[\"isShown\"]]],null],[12],[13],[1,\"\\n\\n        \"],[10,\"polygon\"],[14,0,\"delta\"],[15,5,[30,0,[\"deltaTriangle\",\"style\"]]],[15,\"points\",[30,0,[\"deltaTriangle\",\"points\"]]],[12],[13],[1,\"\\n\\n        \"],[11,\"line\"],[24,0,\"changes delta\"],[16,5,[30,0,[\"deltaLines\",\"delta\",\"style\"]]],[16,\"x1\",0],[16,\"y1\",[30,0,[\"edgeTickY1\"]]],[16,\"x2\",0],[16,\"y2\",[30,0,[\"edgeTickY2\"]]],[4,[38,2],[\"mouseenter\",[28,[37,9],[[30,0,[\"setActiveLegendRow\"]],\"New\"],null]],null],[4,[38,2],[\"mouseleave\",[30,0,[\"unsetActiveLegendRow\"]]],null],[12],[13],[1,\"\\n\\n        \"],[11,\"line\"],[24,0,\"changes\"],[16,\"x1\",[30,0,[\"deltaLines\",\"original\",\"x\"]]],[16,\"y1\",[30,0,[\"edgeTickY1\"]]],[16,\"x2\",[30,0,[\"deltaLines\",\"original\",\"x\"]]],[16,\"y2\",[30,0,[\"edgeTickY2\"]]],[4,[38,2],[\"mouseenter\",[28,[37,9],[[30,0,[\"setActiveLegendRow\"]],\"Current\"],null]],null],[4,[38,2],[\"mouseleave\",[30,0,[\"unsetActiveLegendRow\"]]],null],[12],[13],[1,\"\\n\\n        \"],[11,\"text\"],[24,0,\"changes\"],[16,\"text-anchor\",[29,[[30,0,[\"deltaText\",\"original\",\"anchor\"]]]]],[16,\"x\",[30,0,[\"deltaText\",\"original\",\"x\"]]],[16,\"y\",[30,0,[\"deltaText\",\"original\",\"y\"]]],[4,[38,2],[\"mouseenter\",[28,[37,9],[[30,0,[\"setActiveLegendRow\"]],\"Current\"],null]],null],[4,[38,2],[\"mouseleave\",[30,0,[\"unsetActiveLegendRow\"]]],null],[12],[1,\"\\n          Current\\n        \"],[13],[1,\"\\n\\n        \"],[11,\"text\"],[24,0,\"changes new\"],[16,\"text-anchor\",[29,[[30,0,[\"deltaText\",\"delta\",\"anchor\"]]]]],[16,\"x\",[30,0,[\"deltaText\",\"delta\",\"x\"]]],[16,\"y\",[30,0,[\"deltaText\",\"delta\",\"y\"]]],[4,[38,2],[\"mouseenter\",[28,[37,9],[[30,0,[\"setActiveLegendRow\"]],\"New\"],null]],null],[4,[38,2],[\"mouseleave\",[30,0,[\"unsetActiveLegendRow\"]]],null],[12],[1,\"\\n          New\\n        \"],[13],[1,\"\\n\\n        \"],[10,\"text\"],[14,0,\"changes percent\"],[15,\"x\",[30,0,[\"deltaText\",\"percent\",\"x\"]]],[15,\"y\",[30,0,[\"deltaText\",\"percent\",\"y\"]]],[12],[1,\"\\n          \"],[1,[30,0,[\"deltaText\",\"percent\",\"text\"]]],[1,\"\\n        \"],[13],[1,\"\\n\"]],[]],null]],[]],null],[1,\"\\n    \"],[10,\"line\"],[14,0,\"zero\"],[15,\"x1\",[30,0,[\"gutterWidthLeft\"]]],[15,\"y1\",[30,0,[\"edgeTickY1\"]]],[15,\"x2\",[30,0,[\"gutterWidthLeft\"]]],[15,\"y2\",[30,0,[\"edgeTickY2\"]]],[12],[13],[1,\"\\n  \"],[13],[1,\"\\n\\n  \"],[10,0],[15,0,[29,[\"chart-tooltip \",[52,[30,0,[\"showLegend\"]],\"active\",\"inactive\"]]]],[15,5,[30,0,[\"tooltipStyle\"]]],[12],[1,\"\\n    \"],[10,\"ol\"],[12],[1,\"\\n\"],[42,[28,[37,8],[[28,[37,8],[[30,0,[\"sortedStats\"]]],null]],null],null,[[[1,\"        \"],[10,\"li\"],[15,0,[52,[28,[37,11],[[30,0,[\"activeLegendRow\"]],[30,4,[\"label\"]]],null],\"active\"]],[12],[1,\"\\n          \"],[10,1],[14,0,\"label\"],[12],[1,\"\\n            \"],[1,[30,4,[\"label\"]]],[1,\"\\n          \"],[13],[1,\"\\n          \"],[10,1],[14,0,\"value\"],[12],[1,[30,4,[\"value\"]]],[13],[1,\"\\n        \"],[13],[1,\"\\n\"]],[4]],null],[1,\"    \"],[13],[1,\"\\n  \"],[13],[1,\"\\n\\n\"],[13]],[\"&attrs\",\"shapes\",\"@disabled\",\"stat\"],false,[\"did-insert\",\"window-resize\",\"on\",\"action\",\"mut\",\"x-icon\",\"if\",\"each\",\"-track-array\",\"fn\",\"unless\",\"eq\"]]",
    "moduleName": "nomad-ui/components/das/recommendation-chart.hbs",
    "isStrictMode": false
  });
  /**
   * Copyright (c) HashiCorp, Inc.
   * SPDX-License-Identifier: MPL-2.0
   */


  const statsKeyToLabel = {
    min: 'Min',
    median: 'Median',
    mean: 'Mean',
    p99: '99th',
    max: 'Max',
    current: 'Current',
    recommended: 'New'
  };

  const formatPercent = _d3Format.default.format('+.0%');

  let RecommendationChartComponent = (_class = class RecommendationChartComponent extends _component2.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "width", _descriptor, this);

      _initializerDefineProperty(this, "height", _descriptor2, this);

      _initializerDefineProperty(this, "shown", _descriptor3, this);

      _initializerDefineProperty(this, "showLegend", _descriptor4, this);

      _initializerDefineProperty(this, "mouseX", _descriptor5, this);

      _initializerDefineProperty(this, "activeLegendRow", _descriptor6, this);

      _defineProperty(this, "gutterWidthLeft", 62);

      _defineProperty(this, "gutterWidthRight", 50);

      _defineProperty(this, "gutterWidth", this.gutterWidthLeft + this.gutterWidthRight);

      _defineProperty(this, "iconHeight", 21);

      _defineProperty(this, "tickTextHeight", 15);

      _defineProperty(this, "edgeTickHeight", 23);

      _defineProperty(this, "centerTickOffset", 6);

      _defineProperty(this, "centerY", this.tickTextHeight + this.centerTickOffset + this.edgeTickHeight / 2);

      _defineProperty(this, "edgeTickY1", this.tickTextHeight + this.centerTickOffset);

      _defineProperty(this, "edgeTickY2", this.tickTextHeight + this.edgeTickHeight + this.centerTickOffset);

      _defineProperty(this, "deltaTextY", this.edgeTickY2);

      _defineProperty(this, "meanHeight", this.edgeTickHeight * 0.6);

      _defineProperty(this, "p99Height", this.edgeTickHeight * 0.48);

      _defineProperty(this, "maxHeight", this.edgeTickHeight * 0.4);

      _defineProperty(this, "deltaTriangleHeight", this.edgeTickHeight / 2.5);
    }

    get isIncrease() {
      return this.args.currentValue < this.args.recommendedValue;
    }

    get directionClass() {
      if (this.args.disabled) {
        return 'disabled';
      } else if (this.isIncrease) {
        return 'increase';
      } else {
        return 'decrease';
      }
    }

    get icon() {
      return {
        x: 0,
        y: this.resourceLabel.y - this.iconHeight / 2,
        width: 20,
        height: this.iconHeight,
        name: this.isIncrease ? 'arrow-up' : 'arrow-down'
      };
    }

    get statsShapes() {
      if (this.width) {
        const maxShapes = this.shapesFor('max');
        const p99Shapes = this.shapesFor('p99');
        const meanShapes = this.shapesFor('mean');
        const labelProximityThreshold = 25;

        if (p99Shapes.text.x + labelProximityThreshold > maxShapes.text.x) {
          maxShapes.text.class = 'right';
        }

        if (meanShapes.text.x + labelProximityThreshold > p99Shapes.text.x) {
          p99Shapes.text.class = 'right';
        }

        if (meanShapes.text.x + labelProximityThreshold * 2 > maxShapes.text.x) {
          p99Shapes.text.class = 'hidden';
        }

        return [maxShapes, p99Shapes, meanShapes];
      } else {
        return [];
      }
    }

    shapesFor(key) {
      const stat = this.args.stats[key];
      const rectWidth = this.xScale(stat);
      const rectHeight = this[`${key}Height`];
      const tickX = rectWidth + this.gutterWidthLeft;
      const label = statsKeyToLabel[key];
      return {
        class: key,
        text: {
          label,
          x: tickX,
          y: this.tickTextHeight - 5,
          class: '' // overridden in statsShapes to align/hide based on proximity

        },
        line: {
          x1: tickX,
          y1: this.tickTextHeight,
          x2: tickX,
          y2: this.centerY - 2
        },
        rect: {
          x: this.gutterWidthLeft,
          y: (this.edgeTickHeight - rectHeight) / 2 + this.centerTickOffset + this.tickTextHeight,
          width: rectWidth,
          height: rectHeight
        }
      };
    }

    get barWidth() {
      return this.width - this.gutterWidth;
    }

    get higherValue() {
      return Math.max(this.args.currentValue, this.args.recommendedValue);
    }

    get maximumX() {
      return Math.max(this.higherValue, (0, _object.get)(this.args.stats, 'max') || Number.MIN_SAFE_INTEGER);
    }

    get lowerValue() {
      return Math.min(this.args.currentValue, this.args.recommendedValue);
    }

    get xScale() {
      return (0, _d3Scale.scaleLinear)().domain([0, this.maximumX]).rangeRound([0, this.barWidth]);
    }

    get lowerValueWidth() {
      return this.gutterWidthLeft + this.xScale(this.lowerValue);
    }

    get higherValueWidth() {
      return this.gutterWidthLeft + this.xScale(this.higherValue);
    }

    get center() {
      if (this.width) {
        return {
          x1: this.gutterWidthLeft,
          y1: this.centerY,
          x2: this.width - this.gutterWidthRight,
          y2: this.centerY
        };
      } else {
        return null;
      }
    }

    get resourceLabel() {
      const text = this.args.resource === 'CPU' ? 'CPU' : 'Mem';
      return {
        text,
        x: this.gutterWidthLeft - 10,
        y: this.centerY
      };
    }

    get deltaRect() {
      if (this.isIncrease) {
        return {
          x: this.lowerValueWidth,
          y: this.edgeTickY1,
          width: this.shown ? this.higherValueWidth - this.lowerValueWidth : 0,
          height: this.edgeTickHeight
        };
      } else {
        return {
          x: this.shown ? this.lowerValueWidth : this.higherValueWidth,
          y: this.edgeTickY1,
          width: this.shown ? this.higherValueWidth - this.lowerValueWidth : 0,
          height: this.edgeTickHeight
        };
      }
    }

    get deltaTriangle() {
      const directionXMultiplier = this.isIncrease ? 1 : -1;
      let translateX;

      if (this.shown) {
        translateX = this.isIncrease ? this.higherValueWidth : this.lowerValueWidth;
      } else {
        translateX = this.isIncrease ? this.lowerValueWidth : this.higherValueWidth;
      }

      return {
        style: (0, _string.htmlSafe)(`transform: translateX(${translateX}px)`),
        points: `
        0,${this.center.y1}
        0,${this.center.y1 - this.deltaTriangleHeight / 2}
        ${directionXMultiplier * this.deltaTriangleHeight / 2},${this.center.y1}
        0,${this.center.y1 + this.deltaTriangleHeight / 2}
      `
      };
    }

    get deltaLines() {
      if (this.isIncrease) {
        return {
          original: {
            x: this.lowerValueWidth
          },
          delta: {
            style: (0, _string.htmlSafe)(`transform: translateX(${this.shown ? this.higherValueWidth : this.lowerValueWidth}px)`)
          }
        };
      } else {
        return {
          original: {
            x: this.higherValueWidth
          },
          delta: {
            style: (0, _string.htmlSafe)(`transform: translateX(${this.shown ? this.lowerValueWidth : this.higherValueWidth}px)`)
          }
        };
      }
    }

    get deltaText() {
      const yOffset = 17;
      const y = this.deltaTextY + yOffset;
      const lowerValueText = {
        anchor: 'end',
        x: this.lowerValueWidth,
        y
      };
      const higherValueText = {
        anchor: 'start',
        x: this.higherValueWidth,
        y
      };
      const percentText = formatPercent((this.args.recommendedValue - this.args.currentValue) / this.args.currentValue);
      const percent = {
        x: (lowerValueText.x + higherValueText.x) / 2,
        y,
        text: percentText
      };

      if (this.isIncrease) {
        return {
          original: lowerValueText,
          delta: higherValueText,
          percent
        };
      } else {
        return {
          original: higherValueText,
          delta: lowerValueText,
          percent
        };
      }
    }

    get chartHeight() {
      return this.deltaText.original.y + 1;
    }

    get tooltipStyle() {
      if (this.showLegend) {
        return (0, _string.htmlSafe)(`left: ${this.mouseX}px`);
      }

      return undefined;
    }

    get sortedStats() {
      if (this.args.stats) {
        const statsWithCurrentAndRecommended = _objectSpread(_objectSpread({}, this.args.stats), {}, {
          current: this.args.currentValue,
          recommended: this.args.recommendedValue
        });

        return Object.keys(statsWithCurrentAndRecommended).map(key => ({
          label: statsKeyToLabel[key],
          value: statsWithCurrentAndRecommended[key]
        })).sortBy('value');
      } else {
        return [];
      }
    }

    isShown() {
      (0, _runloop.next)(() => {
        this.shown = true;
      });
    }

    onResize() {
      this.width = this.svgElement.clientWidth;
      this.height = this.svgElement.clientHeight;
    }

    storeSvgElement(element) {
      this.svgElement = element;
    }

    setLegendPosition(mouseMoveEvent) {
      this.showLegend = true;
      this.mouseX = mouseMoveEvent.layerX;
    }

    setActiveLegendRow(row) {
      this.activeLegendRow = row;
    }

    unsetActiveLegendRow() {
      this.activeLegendRow = undefined;
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "width", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "height", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "shown", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return false;
    }
  }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, "showLegend", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return false;
    }
  }), _descriptor5 = _applyDecoratedDescriptor(_class.prototype, "mouseX", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor6 = _applyDecoratedDescriptor(_class.prototype, "activeLegendRow", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class.prototype, "isShown", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "isShown"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "onResize", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "onResize"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "storeSvgElement", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "storeSvgElement"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "setLegendPosition", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "setLegendPosition"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "setActiveLegendRow", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "setActiveLegendRow"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "unsetActiveLegendRow", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "unsetActiveLegendRow"), _class.prototype)), _class);
  _exports.default = RecommendationChartComponent;
  (0, _component.setComponentTemplate)(__COLOCATED_TEMPLATE__, RecommendationChartComponent);
});
;define("nomad-ui/components/das/recommendation-row", ["exports", "@ember/component", "@ember/template-factory", "@glimmer/component", "nomad-ui/utils/resources-diffs", "@ember/object", "@glimmer/tracking"], function (_exports, _component, _templateFactory, _component2, _resourcesDiffs, _object, _tracking) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _descriptor, _descriptor2;

  0; //eaimeta@70e063a35619d71f0,"@glimmer/component",0,"nomad-ui/utils/resources-diffs",0,"@ember/object",0,"@glimmer/tracking",0,"@ember/template-factory"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const __COLOCATED_TEMPLATE__ = (0, _templateFactory.createTemplateFactory)(
  /*
    {{!
    Copyright (c) HashiCorp, Inc.
    SPDX-License-Identifier: MPL-2.0
  ~}}
  
  {{#if @summary.taskGroup.allocations.length}}
    {{! Prevent storing aggregate diffs until allocation count is known }}
    <tr
      class="recommendation-row"
      ...attributes
      data-test-recommendation-summary-row
      {{did-insert this.storeDiffs}}
    >
      <td>
        <div data-test-slug>
          <span class="job">{{@summary.taskGroup.job.name}}</span>
          /
          <span class="task-group">{{@summary.taskGroup.name}}</span>
        </div>
        <div class="namespace">
          Namespace:
          <span data-test-namespace>{{@summary.jobNamespace}}</span>
        </div>
      </td>
      <td data-test-date>
        {{format-month-ts @summary.submitTime}}
      </td>
      <td data-test-allocation-count>
        {{@summary.taskGroup.count}}
      </td>
      <td data-test-cpu>
        {{#if this.cpu.delta}}
          {{this.cpu.signedDiff}}
          <span class="percent">{{this.cpu.percentDiff}}</span>
        {{/if}}
      </td>
      <td data-test-memory>
        {{#if this.memory.delta}}
          {{this.memory.signedDiff}}
          <span class="percent">{{this.memory.percentDiff}}</span>
        {{/if}}
      </td>
      <td data-test-aggregate-cpu>
        {{#if this.cpu.delta}}
          {{this.cpu.signedAggregateDiff}}
        {{/if}}
      </td>
      <td data-test-aggregate-memory>
        {{#if this.memory.delta}}
          {{this.memory.signedAggregateDiff}}
        {{/if}}
      </td>
    </tr>
  {{/if}}
  */
  {
    "id": "8HbOcQ0Q",
    "block": "[[[41,[30,1,[\"taskGroup\",\"allocations\",\"length\"]],[[[1,\"  \"],[11,\"tr\"],[24,0,\"recommendation-row\"],[17,2],[4,[38,1],[[30,0,[\"storeDiffs\"]]],null],[12],[1,\"\\n    \"],[10,\"td\"],[12],[1,\"\\n      \"],[10,0],[12],[1,\"\\n        \"],[10,1],[14,0,\"job\"],[12],[1,[30,1,[\"taskGroup\",\"job\",\"name\"]]],[13],[1,\"\\n        /\\n        \"],[10,1],[14,0,\"task-group\"],[12],[1,[30,1,[\"taskGroup\",\"name\"]]],[13],[1,\"\\n      \"],[13],[1,\"\\n      \"],[10,0],[14,0,\"namespace\"],[12],[1,\"\\n        Namespace:\\n        \"],[10,1],[12],[1,[30,1,[\"jobNamespace\"]]],[13],[1,\"\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n    \"],[10,\"td\"],[12],[1,\"\\n      \"],[1,[28,[35,2],[[30,1,[\"submitTime\"]]],null]],[1,\"\\n    \"],[13],[1,\"\\n    \"],[10,\"td\"],[12],[1,\"\\n      \"],[1,[30,1,[\"taskGroup\",\"count\"]]],[1,\"\\n    \"],[13],[1,\"\\n    \"],[10,\"td\"],[12],[1,\"\\n\"],[41,[30,0,[\"cpu\",\"delta\"]],[[[1,\"        \"],[1,[30,0,[\"cpu\",\"signedDiff\"]]],[1,\"\\n        \"],[10,1],[14,0,\"percent\"],[12],[1,[30,0,[\"cpu\",\"percentDiff\"]]],[13],[1,\"\\n\"]],[]],null],[1,\"    \"],[13],[1,\"\\n    \"],[10,\"td\"],[12],[1,\"\\n\"],[41,[30,0,[\"memory\",\"delta\"]],[[[1,\"        \"],[1,[30,0,[\"memory\",\"signedDiff\"]]],[1,\"\\n        \"],[10,1],[14,0,\"percent\"],[12],[1,[30,0,[\"memory\",\"percentDiff\"]]],[13],[1,\"\\n\"]],[]],null],[1,\"    \"],[13],[1,\"\\n    \"],[10,\"td\"],[12],[1,\"\\n\"],[41,[30,0,[\"cpu\",\"delta\"]],[[[1,\"        \"],[1,[30,0,[\"cpu\",\"signedAggregateDiff\"]]],[1,\"\\n\"]],[]],null],[1,\"    \"],[13],[1,\"\\n    \"],[10,\"td\"],[12],[1,\"\\n\"],[41,[30,0,[\"memory\",\"delta\"]],[[[1,\"        \"],[1,[30,0,[\"memory\",\"signedAggregateDiff\"]]],[1,\"\\n\"]],[]],null],[1,\"    \"],[13],[1,\"\\n  \"],[13],[1,\"\\n\"]],[]],null]],[\"@summary\",\"&attrs\"],false,[\"if\",\"did-insert\",\"format-month-ts\"]]",
    "moduleName": "nomad-ui/components/das/recommendation-row.hbs",
    "isStrictMode": false
  });
  /**
   * Copyright (c) HashiCorp, Inc.
   * SPDX-License-Identifier: MPL-2.0
   */


  let DasRecommendationRow = (_class = class DasRecommendationRow extends _component2.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "cpu", _descriptor, this);

      _initializerDefineProperty(this, "memory", _descriptor2, this);
    }

    storeDiffs() {
      // Prevent resource toggling from affecting the summary diffs
      const diffs = new _resourcesDiffs.default(this.args.summary.taskGroup, 1, this.args.summary.recommendations, this.args.summary.excludedRecommendations);
      const aggregateDiffs = new _resourcesDiffs.default(this.args.summary.taskGroup, this.args.summary.taskGroup.count, this.args.summary.recommendations, this.args.summary.excludedRecommendations);
      this.cpu = {
        delta: diffs.cpu.delta,
        signedDiff: diffs.cpu.signedDiff,
        percentDiff: diffs.cpu.percentDiff,
        signedAggregateDiff: aggregateDiffs.cpu.signedDiff
      };
      this.memory = {
        delta: diffs.memory.delta,
        signedDiff: diffs.memory.signedDiff,
        percentDiff: diffs.memory.percentDiff,
        signedAggregateDiff: aggregateDiffs.memory.signedDiff
      };
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "cpu", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "memory", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class.prototype, "storeDiffs", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "storeDiffs"), _class.prototype)), _class);
  _exports.default = DasRecommendationRow;
  (0, _component.setComponentTemplate)(__COLOCATED_TEMPLATE__, DasRecommendationRow);
});
;define("nomad-ui/components/das/task-row", ["exports", "@ember/component", "@ember/template-factory", "@glimmer/component", "@ember/object", "@glimmer/tracking"], function (_exports, _component, _templateFactory, _component2, _object, _tracking) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _descriptor;

  0; //eaimeta@70e063a35619d71f0,"@glimmer/component",0,"@ember/object",0,"@glimmer/tracking",0,"@ember/template-factory"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const __COLOCATED_TEMPLATE__ = (0, _templateFactory.createTemplateFactory)(
  /*
    {{!
    Copyright (c) HashiCorp, Inc.
    SPDX-License-Identifier: MPL-2.0
  ~}}
  
  <tr
    class={{if @active 'active'}}
    {{on 'click' @onClick}}
    {{did-insert this.calculateHeight}}
    data-test-task-toggles
  >
    <td class="task-cell" data-test-name colspan="2">{{@task.name}}</td>
    <td class="toggle-cell">
      <Toggle
        data-test-cpu-toggle
        @isActive={{@cpu.isActive}}
        @onToggle={{action @toggleRecommendation @cpu.recommendation}}
        @isDisabled={{not @cpu.recommendation}}
        title={{concat 'CPU for ' @task.name}}
      />
    </td>
    <td class="toggle-cell">
      <Toggle
        data-test-memory-toggle
        @isActive={{@memory.isActive}}
        @onToggle={{action @toggleRecommendation @memory.recommendation}}
        @isDisabled={{not @memory.recommendation}}
        title={{concat 'Memory for ' @task.name}}
      />
  
      {{#if (and @active this.height)}}
        <svg width={{this.height}} height={{this.height}}>
          <rect class="border-cover" x="0" y="1" height={{this.borderCoverHeight}} />
          <polyline class="triangle" points="1 1 {{this.half}} {{this.half}} 1 {{this.height}}" />
        </svg>
      {{/if}}
    </td>
  </tr>
  
  */
  {
    "id": "rNyIsmR8",
    "block": "[[[11,\"tr\"],[16,0,[52,[30,1],\"active\"]],[4,[38,1],[\"click\",[30,2]],null],[4,[38,2],[[30,0,[\"calculateHeight\"]]],null],[12],[1,\"\\n  \"],[10,\"td\"],[14,0,\"task-cell\"],[14,\"colspan\",\"2\"],[12],[1,[30,3,[\"name\"]]],[13],[1,\"\\n  \"],[10,\"td\"],[14,0,\"toggle-cell\"],[12],[1,\"\\n    \"],[8,[39,3],[[16,\"title\",[28,[37,4],[\"CPU for \",[30,3,[\"name\"]]],null]]],[[\"@isActive\",\"@onToggle\",\"@isDisabled\"],[[30,4,[\"isActive\"]],[28,[37,5],[[30,0],[30,5],[30,4,[\"recommendation\"]]],null],[28,[37,6],[[30,4,[\"recommendation\"]]],null]]],null],[1,\"\\n  \"],[13],[1,\"\\n  \"],[10,\"td\"],[14,0,\"toggle-cell\"],[12],[1,\"\\n    \"],[8,[39,3],[[16,\"title\",[28,[37,4],[\"Memory for \",[30,3,[\"name\"]]],null]]],[[\"@isActive\",\"@onToggle\",\"@isDisabled\"],[[30,6,[\"isActive\"]],[28,[37,5],[[30,0],[30,5],[30,6,[\"recommendation\"]]],null],[28,[37,6],[[30,6,[\"recommendation\"]]],null]]],null],[1,\"\\n\\n\"],[41,[28,[37,7],[[30,1],[30,0,[\"height\"]]],null],[[[1,\"      \"],[10,\"svg\"],[15,\"width\",[30,0,[\"height\"]]],[15,\"height\",[30,0,[\"height\"]]],[12],[1,\"\\n        \"],[10,\"rect\"],[14,0,\"border-cover\"],[14,\"x\",\"0\"],[14,\"y\",\"1\"],[15,\"height\",[30,0,[\"borderCoverHeight\"]]],[12],[13],[1,\"\\n        \"],[10,\"polyline\"],[14,0,\"triangle\"],[15,\"points\",[29,[\"1 1 \",[30,0,[\"half\"]],\" \",[30,0,[\"half\"]],\" 1 \",[30,0,[\"height\"]]]]],[12],[13],[1,\"\\n      \"],[13],[1,\"\\n\"]],[]],null],[1,\"  \"],[13],[1,\"\\n\"],[13],[1,\"\\n\"]],[\"@active\",\"@onClick\",\"@task\",\"@cpu\",\"@toggleRecommendation\",\"@memory\"],false,[\"if\",\"on\",\"did-insert\",\"toggle\",\"concat\",\"action\",\"not\",\"and\"]]",
    "moduleName": "nomad-ui/components/das/task-row.hbs",
    "isStrictMode": false
  });
  /**
   * Copyright (c) HashiCorp, Inc.
   * SPDX-License-Identifier: MPL-2.0
   */


  let DasTaskRowComponent = (_class = class DasTaskRowComponent extends _component2.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "height", _descriptor, this);
    }

    get half() {
      return this.height / 2;
    }

    get borderCoverHeight() {
      return this.height - 2;
    }

    calculateHeight(element) {
      this.height = element.clientHeight + 1;
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "height", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class.prototype, "calculateHeight", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "calculateHeight"), _class.prototype)), _class);
  _exports.default = DasTaskRowComponent;
  (0, _component.setComponentTemplate)(__COLOCATED_TEMPLATE__, DasTaskRowComponent);
});
;define("nomad-ui/components/distribution-bar", ["exports", "@ember/component", "@ember/object", "@ember-decorators/object", "@ember/runloop", "@ember/polyfills", "@ember/object/internals", "ember-copy", "ember-overridable-computed", "d3-selection", "d3-transition", "nomad-ui/mixins/window-resizable", "nomad-ui/utils/properties/style-string", "@ember-decorators/component"], function (_exports, _component, _object, _object2, _runloop, _polyfills, _internals, _emberCopy, _emberOverridableComputed, _d3Selection, _d3Transition, _windowResizable, _styleString, _component2) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _class, _class2, _descriptor, _descriptor2;

  0; //eaimeta@70e063a35619d71f0,"@ember/component",0,"@ember/object",0,"@ember-decorators/object",0,"@ember/runloop",0,"@ember/polyfills",0,"@ember/object/internals",0,"ember-copy",0,"ember-overridable-computed",0,"d3-selection",0,"d3-transition",0,"nomad-ui/mixins/window-resizable",0,"nomad-ui/utils/properties/style-string",0,"@ember-decorators/component",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;

  const sumAggregate = (total, val) => total + val;

  let DistributionBar = (_dec = (0, _component2.classNames)('chart', 'distribution-bar'), _dec2 = (0, _component2.classNameBindings)('isNarrow:is-narrow'), _dec3 = (0, _emberOverridableComputed.computed)(() => null), _dec4 = (0, _styleString.default)('tooltipPosition'), _dec5 = (0, _object.computed)('data'), _dec6 = (0, _object2.observes)('_data.@each.{value,label,className}'), classic(_class = _dec(_class = _dec2(_class = (_class2 = class DistributionBar extends _component.default.extend(_windowResizable.default) {
    constructor() {
      super(...arguments);

      _defineProperty(this, "chart", null);

      _initializerDefineProperty(this, "data", _descriptor, this);

      _defineProperty(this, "onSliceClick", null);

      _defineProperty(this, "activeDatum", null);

      _defineProperty(this, "isNarrow", false);

      _initializerDefineProperty(this, "tooltipStyle", _descriptor2, this);

      _defineProperty(this, "maskId", null);
    }

    get _data() {
      const data = (0, _emberCopy.copy)(this.data, true);
      const sum = data.mapBy('value').reduce(sumAggregate, 0);
      return data.map((_ref, index) => {
        let {
          label,
          value,
          className,
          layers,
          legendLink,
          help
        } = _ref;
        return {
          label,
          value,
          className,
          layers,
          legendLink,
          help,
          index,
          percent: value / sum,
          offset: data.slice(0, index).mapBy('value').reduce(sumAggregate, 0) / sum
        };
      });
    }

    didInsertElement() {
      super.didInsertElement(...arguments);
      const svg = this.element.querySelector('svg');

      const chart = _d3Selection.default.select(svg);

      const maskId = `dist-mask-${(0, _internals.guidFor)(this)}`;
      this.setProperties({
        chart,
        maskId
      });
      svg.querySelector('clipPath').setAttribute('id', maskId);
      chart.on('mouseleave', () => {
        (0, _runloop.run)(() => {
          this.set('isActive', false);
          this.set('activeDatum', null);
          chart.selectAll('g').classed('active', false).classed('inactive', false);
        });
      });
      this.renderChart();
    }

    didUpdateAttrs() {
      super.didUpdateAttrs();
      this.renderChart();
    }

    updateChart() {
      this.renderChart();
    } // prettier-ignore

    /* eslint-disable */


    renderChart() {
      const {
        chart,
        _data,
        isNarrow
      } = this;
      const width = this.element.querySelector('svg').clientWidth;

      const filteredData = _data.filter(d => d.value > 0);

      filteredData.forEach((d, index) => {
        (0, _object.set)(d, 'index', index);
      });
      let slices = chart.select('.bars').selectAll('g').data(filteredData, d => d.label);
      let sliceCount = filteredData.length;
      slices.exit().remove();
      let slicesEnter = slices.enter().append('g').on('mouseenter', (ev, d) => {
        (0, _runloop.run)(() => {
          const slices = this.slices;
          const slice = slices.filter(datum => datum.label === d.label);
          slices.classed('active', false).classed('inactive', true);
          slice.classed('active', true).classed('inactive', false);
          this.set('activeDatum', d);
          const box = slice.node().getBBox();
          const pos = box.x + box.width / 2; // Ensure that the position is set before the tooltip is visible

          _runloop.run.schedule('afterRender', this, () => this.set('isActive', true));

          this.set('tooltipPosition', {
            left: pos
          });
        });
      });
      slices = slices.merge(slicesEnter);
      slices.attr('class', d => {
        const className = d.className || `slice-${_data.indexOf(d)}`;
        const activeDatum = this.activeDatum;
        const isActive = activeDatum && activeDatum.label === d.label;
        const isInactive = activeDatum && activeDatum.label !== d.label;
        const isClickable = !!this.onSliceClick;
        return [className, isActive && 'active', isInactive && 'inactive', isClickable && 'clickable'].compact().join(' ');
      }).attr('data-test-slice-label', d => d.className);
      this.set('slices', slices);

      const setWidth = d => {
        // Remove a pixel from either side of the slice
        let modifier = 2;
        if (d.index === 0) modifier--; // But not the left side

        if (d.index === sliceCount - 1) modifier--; // But not the right side

        return `${width * d.percent - modifier}px`;
      };

      const setOffset = d => `${width * d.offset + (d.index === 0 ? 0 : 1)}px`;

      let hoverTargets = slices.selectAll('.target').data(d => [d]);
      hoverTargets.enter().append('rect').attr('class', 'target').attr('width', setWidth).attr('height', '100%').attr('x', setOffset).merge(hoverTargets).transition().duration(200).attr('width', setWidth).attr('x', setOffset);
      let layers = slices.selectAll('.bar').data((d, i) => {
        return new Array(d.layers || 1).fill((0, _polyfills.assign)({
          index: i
        }, d));
      });
      layers.enter().append('rect').attr('width', setWidth).attr('x', setOffset).attr('y', () => isNarrow ? '50%' : 0).attr('clip-path', `url(#${this.maskId})`).attr('height', () => isNarrow ? '6px' : '100%').attr('transform', () => isNarrow ? 'translate(0, -3)' : '').merge(layers).attr('class', (d, i) => `bar layer-${i}`).transition().duration(200).attr('width', setWidth).attr('x', setOffset);

      if (isNarrow) {
        _d3Selection.default.select(this.element).select('.mask').attr('height', '6px').attr('y', '50%');
      }

      if (this.onSliceClick) {
        slices.on('click', this.onSliceClick);
      }
    }
    /* eslint-enable */


    windowResizeHandler() {
      (0, _runloop.once)(this, this.renderChart);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "data", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "tooltipStyle", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "_data", [_dec5], Object.getOwnPropertyDescriptor(_class2.prototype, "_data"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "updateChart", [_dec6], Object.getOwnPropertyDescriptor(_class2.prototype, "updateChart"), _class2.prototype)), _class2)) || _class) || _class) || _class);
  _exports.default = DistributionBar;
});
;define("nomad-ui/components/drain-popover", ["exports", "@ember/component", "@ember/object", "@ember/object/computed", "ember-overridable-computed", "ember-concurrency", "duration-js", "@ember-decorators/component", "nomad-ui/utils/properties/local-storage"], function (_exports, _component, _object, _computed, _emberOverridableComputed, _emberConcurrency, _durationJs, _component2, _localStorage) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4;

  0; //eaimeta@70e063a35619d71f0,"@ember/component",0,"@ember/object",0,"@ember/object/computed",0,"ember-overridable-computed",0,"ember-concurrency",0,"duration-js",0,"@ember-decorators/component",0,"ember-classic-decorator",0,"nomad-ui/utils/properties/local-storage"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let DrainPopover = (_dec = (0, _component2.tagName)(''), _dec2 = (0, _localStorage.default)('nomadDrainOptions', {}), _dec3 = (0, _emberOverridableComputed.computed)(function () {
    return this.durationQuickOptions[0];
  }), _dec4 = (0, _computed.equal)('selectedDurationQuickOption.value', 'custom'), _dec5 = (0, _object.computed)('deadlineEnabled', 'durationIsCustom', 'customDuration', 'selectedDurationQuickOption.value'), _dec6 = (0, _emberConcurrency.task)(function* (close) {
    if (!this.client) return;
    const isUpdating = this.client.isDraining;
    let deadline;

    try {
      deadline = new _durationJs.default(this.deadline).nanoseconds();
    } catch (err) {
      this.set('parseError', err.message);
      return;
    }

    const spec = {
      Deadline: deadline,
      IgnoreSystemJobs: !this.drainSystemJobs
    };
    this.drainOptions = {
      deadlineEnabled: this.deadlineEnabled,
      customDuration: this.deadline,
      selectedDurationQuickOption: this.selectedDurationQuickOption,
      drainSystemJobs: this.drainSystemJobs,
      forceDrain: this.forceDrain
    };
    close();

    try {
      if (this.forceDrain) {
        yield this.client.forceDrain(spec);
      } else {
        yield this.client.drain(spec);
      }

      this.onDrain(isUpdating);
    } catch (err) {
      this.onError(err);
    }
  }), classic(_class = _dec(_class = (_class2 = class DrainPopover extends _component.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "client", null);

      _defineProperty(this, "isDisabled", false);

      _defineProperty(this, "parseError", '');

      _defineProperty(this, "deadlineEnabled", false);

      _defineProperty(this, "forceDrain", false);

      _defineProperty(this, "drainSystemJobs", true);

      _initializerDefineProperty(this, "drainOptions", _descriptor, this);

      _initializerDefineProperty(this, "selectedDurationQuickOption", _descriptor2, this);

      _initializerDefineProperty(this, "durationIsCustom", _descriptor3, this);

      _defineProperty(this, "customDuration", '');

      _initializerDefineProperty(this, "drain", _descriptor4, this);
    }

    onError() {}

    onDrain() {}

    didReceiveAttrs() {
      super.didReceiveAttrs(); // Load drain config values from local storage if availabe.

      ['deadlineEnabled', 'customDuration', 'forceDrain', 'drainSystemJobs', 'selectedDurationQuickOption'].forEach(k => {
        if (k in this.drainOptions) {
          this[k] = this.drainOptions[k];
        }
      });
    }

    get durationQuickOptions() {
      return [{
        label: '1 Hour',
        value: '1h'
      }, {
        label: '4 Hours',
        value: '4h'
      }, {
        label: '8 Hours',
        value: '8h'
      }, {
        label: '12 Hours',
        value: '12h'
      }, {
        label: '1 Day',
        value: '1d'
      }, {
        label: 'Custom',
        value: 'custom'
      }];
    }

    get deadline() {
      if (!this.deadlineEnabled) return 0;
      if (this.durationIsCustom) return this.customDuration;
      return this.selectedDurationQuickOption.value;
    }

    preventDefault(e) {
      e.preventDefault();
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "drainOptions", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "selectedDurationQuickOption", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, "durationIsCustom", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "durationQuickOptions", [_object.computed], Object.getOwnPropertyDescriptor(_class2.prototype, "durationQuickOptions"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "deadline", [_dec5], Object.getOwnPropertyDescriptor(_class2.prototype, "deadline"), _class2.prototype), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, "drain", [_dec6], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class2)) || _class) || _class);
  _exports.default = DrainPopover;
});
;define("nomad-ui/components/evaluation-sidebar/detail", ["exports", "@ember/component", "@ember/template-factory", "@ember/object", "@glimmer/component", "@glimmer/tracking", "d3", "ember-statecharts"], function (_exports, _component, _templateFactory, _object, _component2, _tracking, _d, _emberStatecharts) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _class, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6;

  0; //eaimeta@70e063a35619d71f0,"@ember/object",0,"@glimmer/component",0,"@glimmer/tracking",0,"d3",0,"ember-statecharts",0,"@ember/template-factory"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const __COLOCATED_TEMPLATE__ = (0, _templateFactory.createTemplateFactory)(
  /*
    {{!
    Copyright (c) HashiCorp, Inc.
    SPDX-License-Identifier: MPL-2.0
  ~}}
  
  {{#let this.currentEvalDetail as |evaluation|}}
    {{#if this.isSideBarOpen}}
      {{keyboard-commands this.keyCommands}}
    {{/if}}
    <Portal @target="eval-detail-portal">
      <div
        data-test-eval-detail
        data-test-eval-detail-is-open={{this.isSideBarOpen}}
        class="sidebar {{if this.isSideBarOpen "open"}} evaluations-sidebar"
        {{on-click-outside
          this.closeSidebar
          capture=true
          exceptSelector="tr[data-eval-row]"
        }}
      >
        {{#if this.isLoading}}
          <div data-test-eval-loading>
            <section class="section has-text-centered">
              <LoadingSpinner />
            </section>
          </div>
        {{/if}}
        {{#if this.isError}}
          <div data-test-eval-detail-header class="error-header">
            <button
              data-test-eval-sidebar-x
              class="button is-borderless"
              type="button"
              {{on "click" this.closeSidebar}}
            >
              {{x-icon "cancel"}}
            </button>
          </div>
          <div class="error-container">
            <div data-test-eval-error class="error-message">
              <h1 data-test-error-title class="title is-spaced">
                Not Found
              </h1>
              <p data-test-error-message class="subtitle">
                The requested evaluation could not be found. You may not be authorized to view this evaluation, it may have been garbage collected, or the ID is invalid.
              </p>
            </div>
          </div>
        {{/if}}
        {{#if this.isSuccess}}
          {{! Evaluation Detail Header}}
          <div data-test-eval-detail-header class="detail-header">
            <h1 data-test-title class="title">
              {{evaluation.shortId}}
              <span class="bumper-left tag is-primary">
                {{evaluation.status}}
              </span>
            </h1>
            <button
              data-test-eval-sidebar-x
              class="button is-borderless"
              type="button"
              {{on "click" this.closeSidebar}}
            >
              {{x-icon "cancel"}}
            </button>
          </div>
          {{! Start Evaluation Stats}}
          <div class="boxed-section is-small">
            <div
              class="boxed-section-body inline-definitions"
              style="display: flex;"
            >
              <span class="label" style="width: 6.125rem;">
                Evaluation Details
              </span>
              <div style="display: flex; flex-direction: column">
                <span class="pair">
                  <span class="term">
                    Job
                  </span>
                  <LinkTo
                    data-test-evaluation-job
                    @model={{concat evaluation.plainJobId "@" evaluation.namespace
                    }}
                    @route="jobs.job"
                  >
                    {{evaluation.plainJobId}}
                  </LinkTo>
                </span>
                <span class="pair">
                  <span class="term">
                    Triggered By
                  </span>
                  {{evaluation.triggeredBy}}
                </span>
              </div>
              <div style="display: flex; flex-direction: column">
                <span class="pair">
                  <span class="term">
                    Priority
                  </span>
                  {{evaluation.priority}}
                </span>
              </div>
              <div style="display: flex; flex-direction: column">
                <span class="pair">
                  <span class="term">
                    Created
                  </span>
                  {{format-month-ts evaluation.createTime}}
                </span>
                <span class="pair">
                  <span class="term">
                    Placement Failure
                  </span>
                  {{evaluation.hasPlacementFailures}}
                </span>
              </div>
            </div>
          </div>
          {{! Placement Failures}}
          {{#if evaluation.failedTGAllocs}}
            <div class="boxed-section is-danger">
              <div class="boxed-section-head">
                Placement Failures
              </div>
              <div class="boxed-section-body">
                {{#each evaluation.failedTGAllocs as |placementFailure|}}
                  <PlacementFailure @failedTGAlloc={{placementFailure}} />
                {{/each}}
              </div>
            </div>
          {{/if}}
          {{! Related Evaluations}}
          {{#if this.descendentsMap}}
            <EvaluationSidebar::RelatedEvaluations
              @fns={{hash
                handleResize=this.handleResize
                handleEvaluationClick=@fns.handleEvaluationClick
              }}
              @data={{hash
                width=this.width
                height=this.height
                parentEvaluation=this.parentEvaluation
                descendentsMap=this.descendentsMap
                activeEvaluationID=this.currentEvalDetail.id
              }}
            />
          {{else}}
            <div class="boxed-section">
              <div class="boxed-section-head">
                Related Evaluations
              </div>
              <div class="boxed-section-body">
                <div data-test-eval-error class="error-message title">
                  <p data-test-error-message class="subtitle">
                    The related evaluations cannot be visualized.
                  </p>
                </div>
              </div>
            </div>
          {{/if}}
          {{! Evaluation JSON Response}}
          <div class="boxed-section evaluation-response">
            <div class="boxed-section-head">
              Evaluation Response
            </div>
            <div class="boxed-section-body is-full-bleed">
              <JsonViewer @json={{evaluation}} />
            </div>
          </div>
        {{/if}}
      </div>
    </Portal>
  {{/let}}
  */
  {
    "id": "9tZ8hi/R",
    "block": "[[[44,[[30,0,[\"currentEvalDetail\"]]],[[[41,[30,0,[\"isSideBarOpen\"]],[[[1,\"    \"],[1,[28,[35,2],[[30,0,[\"keyCommands\"]]],null]],[1,\"\\n\"]],[]],null],[1,\"  \"],[8,[39,3],null,[[\"@target\"],[\"eval-detail-portal\"]],[[\"default\"],[[[[1,\"\\n    \"],[11,0],[16,0,[29,[\"sidebar \",[52,[30,0,[\"isSideBarOpen\"]],\"open\"],\" evaluations-sidebar\"]]],[4,[38,4],[[30,0,[\"closeSidebar\"]]],[[\"capture\",\"exceptSelector\"],[true,\"tr[data-eval-row]\"]]],[12],[1,\"\\n\"],[41,[30,0,[\"isLoading\"]],[[[1,\"        \"],[10,0],[12],[1,\"\\n          \"],[10,\"section\"],[14,0,\"section has-text-centered\"],[12],[1,\"\\n            \"],[8,[39,5],null,null,null],[1,\"\\n          \"],[13],[1,\"\\n        \"],[13],[1,\"\\n\"]],[]],null],[41,[30,0,[\"isError\"]],[[[1,\"        \"],[10,0],[14,0,\"error-header\"],[12],[1,\"\\n          \"],[11,\"button\"],[24,0,\"button is-borderless\"],[24,4,\"button\"],[4,[38,6],[\"click\",[30,0,[\"closeSidebar\"]]],null],[12],[1,\"\\n            \"],[1,[28,[35,7],[\"cancel\"],null]],[1,\"\\n          \"],[13],[1,\"\\n        \"],[13],[1,\"\\n        \"],[10,0],[14,0,\"error-container\"],[12],[1,\"\\n          \"],[10,0],[14,0,\"error-message\"],[12],[1,\"\\n            \"],[10,\"h1\"],[14,0,\"title is-spaced\"],[12],[1,\"\\n              Not Found\\n            \"],[13],[1,\"\\n            \"],[10,2],[14,0,\"subtitle\"],[12],[1,\"\\n              The requested evaluation could not be found. You may not be authorized to view this evaluation, it may have been garbage collected, or the ID is invalid.\\n            \"],[13],[1,\"\\n          \"],[13],[1,\"\\n        \"],[13],[1,\"\\n\"]],[]],null],[41,[30,0,[\"isSuccess\"]],[[[1,\"        \"],[10,0],[14,0,\"detail-header\"],[12],[1,\"\\n          \"],[10,\"h1\"],[14,0,\"title\"],[12],[1,\"\\n            \"],[1,[30,1,[\"shortId\"]]],[1,\"\\n            \"],[10,1],[14,0,\"bumper-left tag is-primary\"],[12],[1,\"\\n              \"],[1,[30,1,[\"status\"]]],[1,\"\\n            \"],[13],[1,\"\\n          \"],[13],[1,\"\\n          \"],[11,\"button\"],[24,0,\"button is-borderless\"],[24,4,\"button\"],[4,[38,6],[\"click\",[30,0,[\"closeSidebar\"]]],null],[12],[1,\"\\n            \"],[1,[28,[35,7],[\"cancel\"],null]],[1,\"\\n          \"],[13],[1,\"\\n        \"],[13],[1,\"\\n\"],[1,\"        \"],[10,0],[14,0,\"boxed-section is-small\"],[12],[1,\"\\n          \"],[10,0],[14,0,\"boxed-section-body inline-definitions\"],[14,5,\"display: flex;\"],[12],[1,\"\\n            \"],[10,1],[14,0,\"label\"],[14,5,\"width: 6.125rem;\"],[12],[1,\"\\n              Evaluation Details\\n            \"],[13],[1,\"\\n            \"],[10,0],[14,5,\"display: flex; flex-direction: column\"],[12],[1,\"\\n              \"],[10,1],[14,0,\"pair\"],[12],[1,\"\\n                \"],[10,1],[14,0,\"term\"],[12],[1,\"\\n                  Job\\n                \"],[13],[1,\"\\n                \"],[8,[39,8],null,[[\"@model\",\"@route\"],[[28,[37,9],[[30,1,[\"plainJobId\"]],\"@\",[30,1,[\"namespace\"]]],null],\"jobs.job\"]],[[\"default\"],[[[[1,\"\\n                  \"],[1,[30,1,[\"plainJobId\"]]],[1,\"\\n                \"]],[]]]]],[1,\"\\n              \"],[13],[1,\"\\n              \"],[10,1],[14,0,\"pair\"],[12],[1,\"\\n                \"],[10,1],[14,0,\"term\"],[12],[1,\"\\n                  Triggered By\\n                \"],[13],[1,\"\\n                \"],[1,[30,1,[\"triggeredBy\"]]],[1,\"\\n              \"],[13],[1,\"\\n            \"],[13],[1,\"\\n            \"],[10,0],[14,5,\"display: flex; flex-direction: column\"],[12],[1,\"\\n              \"],[10,1],[14,0,\"pair\"],[12],[1,\"\\n                \"],[10,1],[14,0,\"term\"],[12],[1,\"\\n                  Priority\\n                \"],[13],[1,\"\\n                \"],[1,[30,1,[\"priority\"]]],[1,\"\\n              \"],[13],[1,\"\\n            \"],[13],[1,\"\\n            \"],[10,0],[14,5,\"display: flex; flex-direction: column\"],[12],[1,\"\\n              \"],[10,1],[14,0,\"pair\"],[12],[1,\"\\n                \"],[10,1],[14,0,\"term\"],[12],[1,\"\\n                  Created\\n                \"],[13],[1,\"\\n                \"],[1,[28,[35,10],[[30,1,[\"createTime\"]]],null]],[1,\"\\n              \"],[13],[1,\"\\n              \"],[10,1],[14,0,\"pair\"],[12],[1,\"\\n                \"],[10,1],[14,0,\"term\"],[12],[1,\"\\n                  Placement Failure\\n                \"],[13],[1,\"\\n                \"],[1,[30,1,[\"hasPlacementFailures\"]]],[1,\"\\n              \"],[13],[1,\"\\n            \"],[13],[1,\"\\n          \"],[13],[1,\"\\n        \"],[13],[1,\"\\n\"],[41,[30,1,[\"failedTGAllocs\"]],[[[1,\"          \"],[10,0],[14,0,\"boxed-section is-danger\"],[12],[1,\"\\n            \"],[10,0],[14,0,\"boxed-section-head\"],[12],[1,\"\\n              Placement Failures\\n            \"],[13],[1,\"\\n            \"],[10,0],[14,0,\"boxed-section-body\"],[12],[1,\"\\n\"],[42,[28,[37,12],[[28,[37,12],[[30,1,[\"failedTGAllocs\"]]],null]],null],null,[[[1,\"                \"],[8,[39,13],null,[[\"@failedTGAlloc\"],[[30,2]]],null],[1,\"\\n\"]],[2]],null],[1,\"            \"],[13],[1,\"\\n          \"],[13],[1,\"\\n\"]],[]],null],[41,[30,0,[\"descendentsMap\"]],[[[1,\"          \"],[8,[39,14],null,[[\"@fns\",\"@data\"],[[28,[37,15],null,[[\"handleResize\",\"handleEvaluationClick\"],[[30,0,[\"handleResize\"]],[30,3,[\"handleEvaluationClick\"]]]]],[28,[37,15],null,[[\"width\",\"height\",\"parentEvaluation\",\"descendentsMap\",\"activeEvaluationID\"],[[30,0,[\"width\"]],[30,0,[\"height\"]],[30,0,[\"parentEvaluation\"]],[30,0,[\"descendentsMap\"]],[30,0,[\"currentEvalDetail\",\"id\"]]]]]]],null],[1,\"\\n\"]],[]],[[[1,\"          \"],[10,0],[14,0,\"boxed-section\"],[12],[1,\"\\n            \"],[10,0],[14,0,\"boxed-section-head\"],[12],[1,\"\\n              Related Evaluations\\n            \"],[13],[1,\"\\n            \"],[10,0],[14,0,\"boxed-section-body\"],[12],[1,\"\\n              \"],[10,0],[14,0,\"error-message title\"],[12],[1,\"\\n                \"],[10,2],[14,0,\"subtitle\"],[12],[1,\"\\n                  The related evaluations cannot be visualized.\\n                \"],[13],[1,\"\\n              \"],[13],[1,\"\\n            \"],[13],[1,\"\\n          \"],[13],[1,\"\\n\"]],[]]],[1,\"        \"],[10,0],[14,0,\"boxed-section evaluation-response\"],[12],[1,\"\\n          \"],[10,0],[14,0,\"boxed-section-head\"],[12],[1,\"\\n            Evaluation Response\\n          \"],[13],[1,\"\\n          \"],[10,0],[14,0,\"boxed-section-body is-full-bleed\"],[12],[1,\"\\n            \"],[8,[39,16],null,[[\"@json\"],[[30,1]]],null],[1,\"\\n          \"],[13],[1,\"\\n        \"],[13],[1,\"\\n\"]],[]],null],[1,\"    \"],[13],[1,\"\\n  \"]],[]]]]],[1,\"\\n\"]],[1]]]],[\"evaluation\",\"placementFailure\",\"@fns\"],false,[\"let\",\"if\",\"keyboard-commands\",\"portal\",\"on-click-outside\",\"loading-spinner\",\"on\",\"x-icon\",\"link-to\",\"concat\",\"format-month-ts\",\"each\",\"-track-array\",\"placement-failure\",\"evaluation-sidebar/related-evaluations\",\"hash\",\"json-viewer\"]]",
    "moduleName": "nomad-ui/components/evaluation-sidebar/detail.hbs",
    "isStrictMode": false
  });
  /**
   * Copyright (c) HashiCorp, Inc.
   * SPDX-License-Identifier: MPL-2.0
   */


  let Detail = (_dec = (0, _emberStatecharts.matchesState)({
    sidebar: 'open'
  }), _dec2 = (0, _emberStatecharts.matchesState)({
    sidebar: {
      open: 'success'
    }
  }), _dec3 = (0, _emberStatecharts.matchesState)({
    sidebar: {
      open: 'busy'
    }
  }), _dec4 = (0, _emberStatecharts.matchesState)({
    sidebar: {
      open: 'error'
    }
  }), (_class = class Detail extends _component2.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "isSideBarOpen", _descriptor, this);

      _initializerDefineProperty(this, "isSuccess", _descriptor2, this);

      _initializerDefineProperty(this, "isLoading", _descriptor3, this);

      _initializerDefineProperty(this, "isError", _descriptor4, this);

      _initializerDefineProperty(this, "width", _descriptor5, this);

      _initializerDefineProperty(this, "height", _descriptor6, this);

      _defineProperty(this, "keyCommands", [{
        label: 'Close Evaluations Sidebar',
        pattern: ['Escape'],
        action: () => this.closeSidebar()
      }]);
    }

    get statechart() {
      return this.args.statechart;
    }

    handleResize(_ref2) {
      let {
        target: {
          scrollWidth: width,
          scrollHeight: height
        }
      } = _ref2;
      if (width === this.width || height === this.height) return;
      this.height = height;
      this.width = width;
    }

    get currentEvalDetail() {
      return this.statechart.state.context.evaluation;
    }

    get hierarchy() {
      try {
        var _this$currentEvalDeta;

        const data = (_this$currentEvalDeta = this.currentEvalDetail) === null || _this$currentEvalDeta === void 0 ? void 0 : _this$currentEvalDeta.relatedEvals;

        if (data) {
          return _d.default.stratify().id(d => {
            return d.id;
          }).parentId(d => d.previousEval)([...data.toArray(), this.currentEvalDetail]);
        }
      } catch (e) {
        console.error(`\n\nRelated Evaluation Error:   ${e.message}`);
      }

      return null;
    }

    get descendentsMap() {
      var _this$hierarchy;

      return (_this$hierarchy = this.hierarchy) === null || _this$hierarchy === void 0 ? void 0 : _this$hierarchy.descendants().map(d => d.children).compact();
    }

    get parentEvaluation() {
      var _this$hierarchy2;

      return (_this$hierarchy2 = this.hierarchy) === null || _this$hierarchy2 === void 0 ? void 0 : _this$hierarchy2.data;
    }

    get error() {
      return this.statechart.state.context.error;
    }

    closeSidebar() {
      return this.statechart.send('MODAL_CLOSE');
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "isSideBarOpen", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "isSuccess", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "isLoading", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, "isError", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor5 = _applyDecoratedDescriptor(_class.prototype, "width", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return null;
    }
  }), _descriptor6 = _applyDecoratedDescriptor(_class.prototype, "height", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return null;
    }
  }), _applyDecoratedDescriptor(_class.prototype, "handleResize", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "handleResize"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "closeSidebar", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "closeSidebar"), _class.prototype)), _class));
  _exports.default = Detail;
  (0, _component.setComponentTemplate)(__COLOCATED_TEMPLATE__, Detail);
});
;define("nomad-ui/components/evaluation-sidebar/related-evaluations", ["exports", "@ember/component", "@ember/template-factory", "@ember/component/template-only"], function (_exports, _component, _templateFactory, _templateOnly) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/component/template-only",0,"@ember/template-factory"eaimeta@70e063a35619d71f

  const __COLOCATED_TEMPLATE__ = (0, _templateFactory.createTemplateFactory)(
  /*
    {{!
    Copyright (c) HashiCorp, Inc.
    SPDX-License-Identifier: MPL-2.0
  ~}}
  
  <div class="boxed-section">
    <div class="boxed-section-head">
      Related Evaluations
    </div>
    <div class="boxed-section-body related-evaluations" data-test-eval-container>
      <div class="sidebar-content" {{on-resize @fns.handleResize}}>
        {{#if (and @data.width @data.height)}}
          <Providers::ActorsRelationships as |actors|>
            <svg
              width={{@data.width}}
              height="100%"
              style="z-index: 10; inset: 0; position: absolute; pointer-events: none"
              {{did-update actors.fns.recalcCurves @data.width}}
            >
              {{#each actors.data.relationships as |r|}}
                <path
                  d={{r.d}}
                  stroke="#7E8FA8"
                  strokeWidth="1"
                  fill="none"
                ></path>
                <circle
                  cx={{r.sx}}
                  cy={{r.sy}}
                  r="4"
                  fill="white"
                  stroke="black"
                ></circle>
                <circle
                  cx={{r.ex}}
                  cy={{r.ey}}
                  r="4"
                  fill="white"
                  stroke="black"
                ></circle>
              {{/each}}
            </svg>
          </Providers::ActorsRelationships>
        {{/if}}
        <div>
          <EvaluationSidebar::EvaluationActor
            @eval={{@data.parentEvaluation}}
            @activeEvaluationID={{@data.activeEvaluationID}}
            @onClick={{fn @fns.handleEvaluationClick @data.parentEvaluation}}
          />
        </div>
        {{#each @data.descendentsMap as |evals|}}
          <div class="evaluation-actors">
            {{#each evals as |eval|}}
              <EvaluationSidebar::EvaluationActor
                @eval={{eval.data}}
                @activeEvaluationID={{@data.activeEvaluationID}}
                @onClick={{fn @fns.handleEvaluationClick eval.data}}
              />
            {{/each}}
          </div>
        {{/each}}
      </div>
    </div>
  </div>
  */
  {
    "id": "jYLcsv6A",
    "block": "[[[10,0],[14,0,\"boxed-section\"],[12],[1,\"\\n  \"],[10,0],[14,0,\"boxed-section-head\"],[12],[1,\"\\n    Related Evaluations\\n  \"],[13],[1,\"\\n  \"],[10,0],[14,0,\"boxed-section-body related-evaluations\"],[12],[1,\"\\n    \"],[11,0],[24,0,\"sidebar-content\"],[4,[38,0],[[30,1,[\"handleResize\"]]],null],[12],[1,\"\\n\"],[41,[28,[37,2],[[30,2,[\"width\"]],[30,2,[\"height\"]]],null],[[[1,\"        \"],[8,[39,3],null,null,[[\"default\"],[[[[1,\"\\n          \"],[11,\"svg\"],[16,\"width\",[30,2,[\"width\"]]],[24,\"height\",\"100%\"],[24,5,\"z-index: 10; inset: 0; position: absolute; pointer-events: none\"],[4,[38,4],[[30,3,[\"fns\",\"recalcCurves\"]],[30,2,[\"width\"]]],null],[12],[1,\"\\n\"],[42,[28,[37,6],[[28,[37,6],[[30,3,[\"data\",\"relationships\"]]],null]],null],null,[[[1,\"              \"],[10,\"path\"],[15,\"d\",[30,4,[\"d\"]]],[14,\"stroke\",\"#7E8FA8\"],[14,\"strokeWidth\",\"1\"],[14,\"fill\",\"none\"],[12],[13],[1,\"\\n              \"],[10,\"circle\"],[15,\"cx\",[30,4,[\"sx\"]]],[15,\"cy\",[30,4,[\"sy\"]]],[14,\"r\",\"4\"],[14,\"fill\",\"white\"],[14,\"stroke\",\"black\"],[12],[13],[1,\"\\n              \"],[10,\"circle\"],[15,\"cx\",[30,4,[\"ex\"]]],[15,\"cy\",[30,4,[\"ey\"]]],[14,\"r\",\"4\"],[14,\"fill\",\"white\"],[14,\"stroke\",\"black\"],[12],[13],[1,\"\\n\"]],[4]],null],[1,\"          \"],[13],[1,\"\\n        \"]],[3]]]]],[1,\"\\n\"]],[]],null],[1,\"      \"],[10,0],[12],[1,\"\\n        \"],[8,[39,7],null,[[\"@eval\",\"@activeEvaluationID\",\"@onClick\"],[[30,2,[\"parentEvaluation\"]],[30,2,[\"activeEvaluationID\"]],[28,[37,8],[[30,1,[\"handleEvaluationClick\"]],[30,2,[\"parentEvaluation\"]]],null]]],null],[1,\"\\n      \"],[13],[1,\"\\n\"],[42,[28,[37,6],[[28,[37,6],[[30,2,[\"descendentsMap\"]]],null]],null],null,[[[1,\"        \"],[10,0],[14,0,\"evaluation-actors\"],[12],[1,\"\\n\"],[42,[28,[37,6],[[28,[37,6],[[30,5]],null]],null],null,[[[1,\"            \"],[8,[39,7],null,[[\"@eval\",\"@activeEvaluationID\",\"@onClick\"],[[30,6,[\"data\"]],[30,2,[\"activeEvaluationID\"]],[28,[37,8],[[30,1,[\"handleEvaluationClick\"]],[30,6,[\"data\"]]],null]]],null],[1,\"\\n\"]],[6]],null],[1,\"        \"],[13],[1,\"\\n\"]],[5]],null],[1,\"    \"],[13],[1,\"\\n  \"],[13],[1,\"\\n\"],[13]],[\"@fns\",\"@data\",\"actors\",\"r\",\"evals\",\"eval\"],false,[\"on-resize\",\"if\",\"and\",\"providers/actors-relationships\",\"did-update\",\"each\",\"-track-array\",\"evaluation-sidebar/evaluation-actor\",\"fn\"]]",
    "moduleName": "nomad-ui/components/evaluation-sidebar/related-evaluations.hbs",
    "isStrictMode": false
  });

  var _default = (0, _component.setComponentTemplate)(__COLOCATED_TEMPLATE__, (0, _templateOnly.default)());

  _exports.default = _default;
});
;define("nomad-ui/components/exec-terminal", ["exports", "@ember/component", "xterm-addon-fit", "nomad-ui/mixins/window-resizable", "@ember-decorators/component"], function (_exports, _component, _xtermAddonFit, _windowResizable, _component2) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _class;

  0; //eaimeta@70e063a35619d71f0,"@ember/component",0,"xterm-addon-fit",0,"nomad-ui/mixins/window-resizable",0,"@ember-decorators/component",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  const classic = __EMBER_CLASSIC_DECORATOR;
  let ExecTerminal = (_dec = (0, _component2.classNames)('terminal-container'), classic(_class = _dec(_class = class ExecTerminal extends _component.default.extend(_windowResizable.default) {
    didInsertElement() {
      super.didInsertElement(...arguments);
      let fitAddon = new _xtermAddonFit.FitAddon();
      this.fitAddon = fitAddon;
      this.terminal.loadAddon(fitAddon);
      this.terminal.open(this.element.querySelector('.terminal'));
      fitAddon.fit();
    }

    windowResizeHandler(e) {
      this.fitAddon.fit();

      if (this.terminal.resized) {
        this.terminal.resized(e);
      }
    }

  }) || _class) || _class);
  _exports.default = ExecTerminal;
});
;define("nomad-ui/components/exec/open-button", ["exports", "@ember/component", "@ember/object", "@ember/service", "nomad-ui/utils/generate-exec-url", "nomad-ui/utils/open-exec-url", "@ember-decorators/component"], function (_exports, _component, _object, _service, _generateExecUrl, _openExecUrl, _component2) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _class, _class2, _descriptor;

  0; //eaimeta@70e063a35619d71f0,"@ember/component",0,"@ember/object",0,"@ember/service",0,"nomad-ui/utils/generate-exec-url",0,"nomad-ui/utils/open-exec-url",0,"@ember-decorators/component",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let OpenButton = (_dec = (0, _component2.tagName)(''), classic(_class = _dec(_class = (_class2 = class OpenButton extends _component.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "router", _descriptor, this);
    }

    open() {
      (0, _openExecUrl.default)(this.generateUrl());
    }

    generateUrl() {
      return (0, _generateExecUrl.default)(this.router, {
        job: this.job,
        taskGroup: this.taskGroup,
        task: this.task,
        allocation: this.allocation
      });
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "router", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "open", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "open"), _class2.prototype)), _class2)) || _class) || _class);
  _exports.default = OpenButton;
});
;define("nomad-ui/components/exec/task-contents", ["exports", "@ember/component", "@ember-decorators/component"], function (_exports, _component, _component2) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _class;

  0; //eaimeta@70e063a35619d71f0,"@ember/component",0,"@ember-decorators/component",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  const classic = __EMBER_CLASSIC_DECORATOR;
  let TaskContents = (_dec = (0, _component2.tagName)(''), classic(_class = _dec(_class = class TaskContents extends _component.default {}) || _class) || _class);
  _exports.default = TaskContents;
});
;define("nomad-ui/components/exec/task-group-parent", ["exports", "@ember/component", "@ember/service", "@ember/object", "@ember/object/computed", "nomad-ui/utils/generate-exec-url", "nomad-ui/utils/open-exec-url"], function (_exports, _component, _service, _object, _computed, _generateExecUrl, _openExecUrl) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _dec9, _dec10, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7;

  0; //eaimeta@70e063a35619d71f0,"@ember/component",0,"@ember/service",0,"@ember/object",0,"@ember/object/computed",0,"nomad-ui/utils/generate-exec-url",0,"nomad-ui/utils/open-exec-url",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let TaskGroupParent = (_dec = (0, _computed.or)('clickedOpen', 'currentRouteIsThisTaskGroup'), _dec2 = (0, _object.computed)('router.currentRoute', 'taskGroup.{job.name,name}'), _dec3 = (0, _object.computed)('taskGroup.allocations.@each.clientStatus'), _dec4 = (0, _computed.mapBy)('taskGroup.allocations', 'states'), _dec5 = (0, _object.computed)('allocationTaskStatesRecordArrays.[]'), _dec6 = (0, _computed.filterBy)('allocationTaskStates', 'isActive'), _dec7 = (0, _computed.mapBy)('activeTaskStates', 'task'), _dec8 = (0, _computed.mapBy)('activeTasks', 'taskGroup'), _dec9 = (0, _object.computed)('activeTaskGroups.@each.name', 'activeTaskStates.@each.name', 'activeTasks.@each.name', 'taskGroup.{name,tasks}'), _dec10 = (0, _computed.sort)('tasksWithRunningStates', 'taskSorting'), classic(_class = (_class2 = class TaskGroupParent extends _component.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "router", _descriptor, this);

      _initializerDefineProperty(this, "isOpen", _descriptor2, this);

      _initializerDefineProperty(this, "allocationTaskStatesRecordArrays", _descriptor3, this);

      _initializerDefineProperty(this, "activeTaskStates", _descriptor4, this);

      _initializerDefineProperty(this, "activeTasks", _descriptor5, this);

      _initializerDefineProperty(this, "activeTaskGroups", _descriptor6, this);

      _defineProperty(this, "taskSorting", ['name']);

      _initializerDefineProperty(this, "sortedTasks", _descriptor7, this);

      _defineProperty(this, "clickedOpen", false);
    }

    get currentRouteIsThisTaskGroup() {
      const route = this.router.currentRoute;

      if (route.name.includes('task-group')) {
        const taskGroupRoute = route.parent;
        const execRoute = taskGroupRoute.parent;
        return execRoute.params.job_name === this.taskGroup.job.name && taskGroupRoute.params.task_group_name === this.taskGroup.name;
      } else {
        return false;
      }
    }

    get hasPendingAllocations() {
      return this.taskGroup.allocations.any(allocation => allocation.clientStatus === 'pending');
    }

    get allocationTaskStates() {
      const flattenRecordArrays = (accumulator, recordArray) => accumulator.concat(recordArray.toArray());

      return this.allocationTaskStatesRecordArrays.reduce(flattenRecordArrays, []);
    }

    get tasksWithRunningStates() {
      const activeTaskStateNames = this.activeTaskStates.filter(taskState => {
        return taskState.task && taskState.task.taskGroup.name === this.taskGroup.name;
      }).mapBy('name');
      return this.taskGroup.tasks.filter(task => activeTaskStateNames.includes(task.name));
    }

    toggleOpen() {
      this.toggleProperty('clickedOpen');
    }

    openInNewWindow(job, taskGroup, task) {
      let url = (0, _generateExecUrl.default)(this.router, {
        job,
        taskGroup,
        task
      });
      (0, _openExecUrl.default)(url);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "router", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "isOpen", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "currentRouteIsThisTaskGroup", [_dec2], Object.getOwnPropertyDescriptor(_class2.prototype, "currentRouteIsThisTaskGroup"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "hasPendingAllocations", [_dec3], Object.getOwnPropertyDescriptor(_class2.prototype, "hasPendingAllocations"), _class2.prototype), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, "allocationTaskStatesRecordArrays", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "allocationTaskStates", [_dec5], Object.getOwnPropertyDescriptor(_class2.prototype, "allocationTaskStates"), _class2.prototype), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, "activeTaskStates", [_dec6], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor5 = _applyDecoratedDescriptor(_class2.prototype, "activeTasks", [_dec7], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor6 = _applyDecoratedDescriptor(_class2.prototype, "activeTaskGroups", [_dec8], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "tasksWithRunningStates", [_dec9], Object.getOwnPropertyDescriptor(_class2.prototype, "tasksWithRunningStates"), _class2.prototype), _descriptor7 = _applyDecoratedDescriptor(_class2.prototype, "sortedTasks", [_dec10], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "toggleOpen", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "toggleOpen"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "openInNewWindow", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "openInNewWindow"), _class2.prototype)), _class2)) || _class);
  _exports.default = TaskGroupParent;
});
;define("nomad-ui/components/flash-message", ["exports", "ember-cli-flash/components/flash-message"], function (_exports, _flashMessage) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _flashMessage.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-cli-flash/components/flash-message"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/flex-masonry", ["exports", "@glimmer/component", "@glimmer/tracking", "@ember/runloop", "@ember/object", "d3-array"], function (_exports, _component, _tracking, _runloop, _object, _d3Array) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _descriptor;

  0; //eaimeta@70e063a35619d71f0,"@glimmer/component",0,"@glimmer/tracking",0,"@ember/runloop",0,"@ember/object",0,"d3-array"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let FlexMasonry = (_class = class FlexMasonry extends _component.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "element", _descriptor, this);
    }

    captureElement(element) {
      this.element = element;
    }

    reflow() {
      (0, _runloop.next)(() => {
        // There's nothing to do if there is no element
        if (!this.element) return;
        const items = this.element.querySelectorAll(':scope > .flex-masonry-item'); // Clear out specified order and flex-basis values in case this was once a multi-column layout

        if (this.args.columns === 1 || !this.args.columns) {
          for (let item of items) {
            item.style.flexBasis = null;
            item.style.order = null;
          }

          this.element.style.maxHeight = null;
          return;
        }

        const columns = new Array(this.args.columns).fill(null).map(() => ({
          height: 0,
          elements: []
        })); // First pass: assign each element to a column based on the running heights of each column

        for (let item of items) {
          const styles = window.getComputedStyle(item);
          const marginTop = parseFloat(styles.marginTop);
          const marginBottom = parseFloat(styles.marginBottom);
          const height = item.clientHeight; // Pick the shortest column accounting for margins

          const column = columns[(0, _d3Array.minIndex)(columns, c => c.height)]; // Add the new element's height to the column height

          column.height += marginTop + height + marginBottom;
          column.elements.push(item);
        } // Second pass: assign an order to each element based on their column and position in the column


        columns.mapBy('elements').flat().forEach((dc, index) => {
          dc.style.order = index;
        }); // Guarantee column wrapping as predicted (if the first item of a column is shorter than the difference
        // beteen the height of the column and the previous column, then flexbox will naturally place the first
        // item at the end of the previous column).

        columns.forEach((column, index) => {
          const nextHeight = index < columns.length - 1 ? columns[index + 1].height : 0;
          const item = column.elements.lastObject;

          if (item) {
            item.style.flexBasis = item.clientHeight + Math.max(0, nextHeight - column.height) + 'px';
          }
        }); // Set the max height of the container to the height of the tallest column

        this.element.style.maxHeight = (0, _d3Array.max)(columns.mapBy('height')) + 1 + 'px';
      });
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "element", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return null;
    }
  }), _applyDecoratedDescriptor(_class.prototype, "captureElement", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "captureElement"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "reflow", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "reflow"), _class.prototype)), _class);
  _exports.default = FlexMasonry;
});
;define("nomad-ui/components/flight-icon", ["exports", "@hashicorp/ember-flight-icons/components/flight-icon"], function (_exports, _flightIcon) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _flightIcon.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/ember-flight-icons/components/flight-icon"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/forbidden-message", ["exports", "@ember/component", "@ember-decorators/component", "@ember/service"], function (_exports, _component, _component2, _service) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _class, _class2, _descriptor, _descriptor2;

  0; //eaimeta@70e063a35619d71f0,"@ember/component",0,"@ember-decorators/component",0,"@ember/service"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let ForbiddenMessage = (_dec = (0, _component2.tagName)(''), _dec(_class = (_class2 = class ForbiddenMessage extends _component.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "token", _descriptor, this);

      _initializerDefineProperty(this, "store", _descriptor2, this);
    }

    get authMethods() {
      return this.store.findAll('auth-method');
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "token", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "store", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class2)) || _class);
  _exports.default = ForbiddenMessage;
});
;define("nomad-ui/components/fs/breadcrumbs", ["exports", "@ember/component", "@ember/object", "@ember/utils", "@ember-decorators/component"], function (_exports, _component, _object, _utils, _component2) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _class, _class2;

  0; //eaimeta@70e063a35619d71f0,"@ember/component",0,"@ember/object",0,"@ember/utils",0,"@ember-decorators/component",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let Breadcrumbs = (_dec = (0, _component2.tagName)('nav'), _dec2 = (0, _component2.classNames)('breadcrumb'), _dec3 = (0, _component2.attributeBindings)('data-test-fs-breadcrumbs'), _dec4 = (0, _object.computed)('path'), classic(_class = _dec(_class = _dec2(_class = _dec3(_class = (_class2 = class Breadcrumbs extends _component.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, 'data-test-fs-breadcrumbs', true);

      _defineProperty(this, "allocation", null);

      _defineProperty(this, "taskState", null);

      _defineProperty(this, "path", null);
    }

    get breadcrumbs() {
      const breadcrumbs = this.path.split('/').reject(_utils.isEmpty).reduce((breadcrumbs, pathSegment, index) => {
        let breadcrumbPath;

        if (index > 0) {
          const lastBreadcrumb = breadcrumbs[index - 1];
          breadcrumbPath = `${lastBreadcrumb.path}/${pathSegment}`;
        } else {
          breadcrumbPath = pathSegment;
        }

        breadcrumbs.push({
          name: pathSegment,
          path: breadcrumbPath
        });
        return breadcrumbs;
      }, []);

      if (breadcrumbs.length) {
        breadcrumbs[breadcrumbs.length - 1].isLast = true;
      }

      return breadcrumbs;
    }

  }, (_applyDecoratedDescriptor(_class2.prototype, "breadcrumbs", [_dec4], Object.getOwnPropertyDescriptor(_class2.prototype, "breadcrumbs"), _class2.prototype)), _class2)) || _class) || _class) || _class) || _class);
  _exports.default = Breadcrumbs;
});
;define("nomad-ui/components/fs/browser", ["exports", "@ember/component", "@ember/object", "@ember/object/computed", "@ember-decorators/component"], function (_exports, _component, _object, _computed, _component2) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _class, _class2, _descriptor, _descriptor2;

  0; //eaimeta@70e063a35619d71f0,"@ember/component",0,"@ember/object",0,"@ember/object/computed",0,"@ember-decorators/component",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let Browser = (_dec = (0, _component2.tagName)(''), _dec2 = (0, _object.computed)('model.allocation'), _dec3 = (0, _object.computed)('model.allocation'), _dec4 = (0, _object.computed)('taskState'), _dec5 = (0, _computed.filterBy)('directoryEntries', 'IsDir'), _dec6 = (0, _computed.filterBy)('directoryEntries', 'IsDir', false), _dec7 = (0, _object.computed)('directories', 'directoryEntries.[]', 'files', 'sortDescending', 'sortProperty'), classic(_class = _dec(_class = (_class2 = class Browser extends _component.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "model", null);

      _initializerDefineProperty(this, "directories", _descriptor, this);

      _initializerDefineProperty(this, "files", _descriptor2, this);
    }

    get allocation() {
      if (this.model.allocation) {
        return this.model.allocation;
      } else {
        return this.model;
      }
    }

    get taskState() {
      if (this.model.allocation) {
        return this.model;
      }

      return undefined;
    }

    get type() {
      if (this.taskState) {
        return 'task';
      } else {
        return 'allocation';
      }
    }

    get sortedDirectoryEntries() {
      const sortProperty = this.sortProperty;
      const directorySortProperty = sortProperty === 'Size' ? 'Name' : sortProperty;
      const sortedDirectories = this.directories.sortBy(directorySortProperty);
      const sortedFiles = this.files.sortBy(sortProperty);
      const sortedDirectoryEntries = sortedDirectories.concat(sortedFiles);

      if (this.sortDescending) {
        return sortedDirectoryEntries.reverse();
      } else {
        return sortedDirectoryEntries;
      }
    }

  }, (_applyDecoratedDescriptor(_class2.prototype, "allocation", [_dec2], Object.getOwnPropertyDescriptor(_class2.prototype, "allocation"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "taskState", [_dec3], Object.getOwnPropertyDescriptor(_class2.prototype, "taskState"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "type", [_dec4], Object.getOwnPropertyDescriptor(_class2.prototype, "type"), _class2.prototype), _descriptor = _applyDecoratedDescriptor(_class2.prototype, "directories", [_dec5], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "files", [_dec6], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "sortedDirectoryEntries", [_dec7], Object.getOwnPropertyDescriptor(_class2.prototype, "sortedDirectoryEntries"), _class2.prototype)), _class2)) || _class) || _class);
  _exports.default = Browser;
});
;define("nomad-ui/components/fs/directory-entry", ["exports", "@ember/component", "@ember/object", "@ember/utils", "@ember-decorators/component"], function (_exports, _component, _object, _utils, _component2) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _class, _class2;

  0; //eaimeta@70e063a35619d71f0,"@ember/component",0,"@ember/object",0,"@ember/utils",0,"@ember-decorators/component",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let DirectoryEntry = (_dec = (0, _component2.tagName)(''), _dec2 = (0, _object.computed)('path', 'entry.Name'), classic(_class = _dec(_class = (_class2 = class DirectoryEntry extends _component.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "allocation", null);

      _defineProperty(this, "taskState", null);
    }

    get pathToEntry() {
      const pathWithNoLeadingSlash = this.path.replace(/^\//, '');
      const name = encodeURIComponent(this.get('entry.Name'));

      if ((0, _utils.isEmpty)(pathWithNoLeadingSlash)) {
        return name;
      } else {
        return `${pathWithNoLeadingSlash}/${name}`;
      }
    }

  }, (_applyDecoratedDescriptor(_class2.prototype, "pathToEntry", [_dec2], Object.getOwnPropertyDescriptor(_class2.prototype, "pathToEntry"), _class2.prototype)), _class2)) || _class) || _class);
  _exports.default = DirectoryEntry;
});
;define("nomad-ui/components/fs/file", ["exports", "ember", "@ember/service", "@ember/component", "@ember/object", "@ember/object/computed", "rsvp", "nomad-ui/utils/classes/log", "nomad-ui/utils/timeout", "@ember-decorators/component"], function (_exports, _ember, _service, _component, _object, _computed, _rsvp, _log, _timeout, _component2) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _dec9, _dec10, _dec11, _dec12, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5;

  0; //eaimeta@70e063a35619d71f0,"ember",0,"@ember/service",0,"@ember/component",0,"@ember/object",0,"@ember/object/computed",0,"rsvp",0,"nomad-ui/utils/classes/log",0,"nomad-ui/utils/timeout",0,"@ember-decorators/component",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let File = (_dec = (0, _component2.classNames)('boxed-section', 'task-log'), _dec2 = (0, _component2.attributeBindings)('data-test-file-viewer'), _dec3 = (0, _object.computed)('stat.ContentType'), _dec4 = (0, _computed.gt)('stat.Size', 50000), _dec5 = (0, _computed.equal)('fileComponent', 'unknown'), _dec6 = (0, _computed.equal)('fileComponent', 'stream'), _dec7 = (0, _object.computed)('allocation.id', 'taskState.name', 'file'), _dec8 = (0, _object.computed)('catUrlWithoutRegion', 'system.{activeRegion,shouldIncludeRegion}'), _dec9 = (0, _object.computed)('isLarge', 'mode'), _dec10 = (0, _object.computed)('allocation.{id,node.httpAddr}', 'fetchMode', 'useServer'), _dec11 = (0, _object.computed)('file', 'mode', 'stat.Size', 'taskState.name'), _dec12 = (0, _object.computed)('clientTimeout', 'fileParams', 'fileUrl', 'mode', 'serverTimeout', 'useServer'), classic(_class = _dec(_class = _dec2(_class = (_class2 = class File extends _component.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "token", _descriptor, this);

      _initializerDefineProperty(this, "system", _descriptor2, this);

      _defineProperty(this, 'data-test-file-viewer', true);

      _defineProperty(this, "allocation", null);

      _defineProperty(this, "taskState", null);

      _defineProperty(this, "file", null);

      _defineProperty(this, "stat", null);

      _defineProperty(this, "useServer", false);

      _defineProperty(this, "noConnection", false);

      _defineProperty(this, "clientTimeout", 1000);

      _defineProperty(this, "serverTimeout", 5000);

      _defineProperty(this, "mode", 'head');

      _initializerDefineProperty(this, "isLarge", _descriptor3, this);

      _initializerDefineProperty(this, "fileTypeIsUnknown", _descriptor4, this);

      _initializerDefineProperty(this, "isStreamable", _descriptor5, this);

      _defineProperty(this, "isStreaming", false);
    }

    get fileComponent() {
      const contentType = this.stat.ContentType || '';

      if (contentType.startsWith('image/')) {
        return 'image';
      } else if (contentType.startsWith('text/') || contentType.startsWith('application/json')) {
        return 'stream';
      } else {
        return 'unknown';
      }
    }

    get catUrlWithoutRegion() {
      const taskUrlPrefix = this.taskState ? `${this.taskState.name}/` : '';
      const encodedPath = encodeURIComponent(`${taskUrlPrefix}${this.file}`);
      return `/v1/client/fs/cat/${this.allocation.id}?path=${encodedPath}`;
    }

    get catUrl() {
      let apiPath = this.catUrlWithoutRegion;

      if (this.system.shouldIncludeRegion) {
        apiPath += `&region=${this.system.activeRegion}`;
      }

      return apiPath;
    }

    get fetchMode() {
      if (this.mode === 'streaming') {
        return 'stream';
      }

      if (!this.isLarge) {
        return 'cat';
      } else if (this.mode === 'head' || this.mode === 'tail') {
        return 'readat';
      }

      return undefined;
    }

    get fileUrl() {
      const address = this.get('allocation.node.httpAddr');
      const url = `/v1/client/fs/${this.fetchMode}/${this.allocation.id}`;
      return this.useServer ? url : `//${address}${url}`;
    }

    get fileParams() {
      // The Log class handles encoding query params
      const taskUrlPrefix = this.taskState ? `${this.taskState.name}/` : '';
      const path = `${taskUrlPrefix}${this.file}`;

      switch (this.mode) {
        case 'head':
          return {
            path,
            offset: 0,
            limit: 50000
          };

        case 'tail':
          return {
            path,
            offset: this.stat.Size - 50000,
            limit: 50000
          };

        case 'streaming':
          return {
            path,
            offset: 50000,
            origin: 'end'
          };

        default:
          return {
            path
          };
      }
    }

    get logger() {
      // The cat and readat APIs are in plainText while the stream API is always encoded.
      const plainText = this.mode === 'head' || this.mode === 'tail'; // If the file request can't settle in one second, the client
      // must be unavailable and the server should be used instead

      const timing = this.useServer ? this.serverTimeout : this.clientTimeout;

      const logFetch = url => _rsvp.default.race([this.token.authorizedRequest(url), (0, _timeout.default)(timing)]).then(response => {
        if (!response || !response.ok) {
          this.nextErrorState(response);
        }

        return response;
      }, error => this.nextErrorState(error));

      return _log.default.create({
        logFetch,
        plainText,
        params: this.fileParams,
        url: this.fileUrl
      });
    }

    nextErrorState(error) {
      if (this.useServer) {
        this.set('noConnection', true);
      } else {
        this.send('failoverToServer');
      }

      throw error;
    }

    toggleStream() {
      this.set('mode', 'streaming');
      this.toggleProperty('isStreaming');
    }

    gotoHead() {
      this.set('mode', 'head');
      this.set('isStreaming', false);
    }

    gotoTail() {
      this.set('mode', 'tail');
      this.set('isStreaming', false);
    }

    failoverToServer() {
      this.set('useServer', true);
    }

    async downloadFile() {
      const timing = this.useServer ? this.serverTimeout : this.clientTimeout;

      try {
        const response = await _rsvp.default.race([this.token.authorizedRequest(this.catUrlWithoutRegion), (0, _timeout.default)(timing)]);
        if (!response || !response.ok) throw new Error('file download timeout'); // Don't download in tests. Unfortunately, since the download is triggered
        // by the download attribute of the ephemeral anchor element, there's no
        // way to stub this in tests.

        if (_ember.default.testing) return;
        const blob = await response.blob();
        const url = window.URL.createObjectURL(blob);
        const downloadAnchor = document.createElement('a');
        downloadAnchor.href = url;
        downloadAnchor.target = '_blank';
        downloadAnchor.rel = 'noopener noreferrer';
        downloadAnchor.download = this.file; // Appending the element to the DOM is required for Firefox support

        document.body.appendChild(downloadAnchor);
        downloadAnchor.click();
        downloadAnchor.remove();
        window.URL.revokeObjectURL(url);
      } catch (err) {
        this.nextErrorState(err);
      }
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "token", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "system", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "fileComponent", [_dec3], Object.getOwnPropertyDescriptor(_class2.prototype, "fileComponent"), _class2.prototype), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, "isLarge", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, "fileTypeIsUnknown", [_dec5], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor5 = _applyDecoratedDescriptor(_class2.prototype, "isStreamable", [_dec6], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "catUrlWithoutRegion", [_dec7], Object.getOwnPropertyDescriptor(_class2.prototype, "catUrlWithoutRegion"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "catUrl", [_dec8], Object.getOwnPropertyDescriptor(_class2.prototype, "catUrl"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "fetchMode", [_dec9], Object.getOwnPropertyDescriptor(_class2.prototype, "fetchMode"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "fileUrl", [_dec10], Object.getOwnPropertyDescriptor(_class2.prototype, "fileUrl"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "fileParams", [_dec11], Object.getOwnPropertyDescriptor(_class2.prototype, "fileParams"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "logger", [_dec12], Object.getOwnPropertyDescriptor(_class2.prototype, "logger"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "toggleStream", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "toggleStream"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "gotoHead", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "gotoHead"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "gotoTail", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "gotoTail"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "failoverToServer", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "failoverToServer"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "downloadFile", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "downloadFile"), _class2.prototype)), _class2)) || _class) || _class) || _class);
  _exports.default = File;
});
;define("nomad-ui/components/fs/link", ["exports", "@ember/component", "@ember-decorators/component"], function (_exports, _component, _component2) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _class;

  0; //eaimeta@70e063a35619d71f0,"@ember/component",0,"@ember-decorators/component",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let Link = (_dec = (0, _component2.tagName)(''), classic(_class = _dec(_class = class Link extends _component.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "allocation", null);

      _defineProperty(this, "taskState", null);
    }

  }) || _class) || _class);
  _exports.default = Link;
});
;define("nomad-ui/components/gauge-chart", ["exports", "@ember/component", "@ember/object", "@ember/debug", "@ember/object/internals", "@ember/runloop", "d3-shape", "nomad-ui/mixins/window-resizable", "@ember-decorators/component"], function (_exports, _component, _object, _debug, _internals, _runloop, _d3Shape, _windowResizable, _component2) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _class, _class2;

  0; //eaimeta@70e063a35619d71f0,"@ember/component",0,"@ember/object",0,"@ember/debug",0,"@ember/object/internals",0,"@ember/runloop",0,"d3-shape",0,"nomad-ui/mixins/window-resizable",0,"@ember-decorators/component",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let GaugeChart = (_dec = (0, _component2.classNames)('chart', 'gauge-chart'), _dec2 = (0, _object.computed)('value', 'complement', 'total'), _dec3 = (0, _object.computed)('width'), _dec4 = (0, _object.computed)('radius', 'weight'), _dec5 = (0, _object.computed)('radius', 'weight', 'percent'), classic(_class = _dec(_class = (_class2 = class GaugeChart extends _component.default.extend(_windowResizable.default) {
    constructor() {
      super(...arguments);

      _defineProperty(this, "value", null);

      _defineProperty(this, "complement", null);

      _defineProperty(this, "total", null);

      _defineProperty(this, "chartClass", 'is-info');

      _defineProperty(this, "width", 0);

      _defineProperty(this, "height", 0);

      _defineProperty(this, "weight", 4);
    }

    get percent() {
      (true && !(this.complement != null || this.total != null) && (0, _debug.assert)('Provide complement OR total to GaugeChart, not both.', this.complement != null || this.total != null));

      if (this.complement != null) {
        return this.value / (this.value + this.complement);
      }

      return this.value / this.total;
    }

    get fillId() {
      return `gauge-chart-fill-${(0, _internals.guidFor)(this)}`;
    }

    get maskId() {
      return `gauge-chart-mask-${(0, _internals.guidFor)(this)}`;
    }

    get radius() {
      return this.width / 2;
    }

    get backgroundArc() {
      const {
        radius,
        weight
      } = this;

      const arc = _d3Shape.default.arc().outerRadius(radius).innerRadius(radius - weight).cornerRadius(weight).startAngle(-Math.PI / 2).endAngle(Math.PI / 2);

      return arc();
    }

    get valueArc() {
      const {
        radius,
        weight,
        percent
      } = this;

      const arc = _d3Shape.default.arc().outerRadius(radius).innerRadius(radius - weight).cornerRadius(weight).startAngle(-Math.PI / 2).endAngle(-Math.PI / 2 + Math.PI * percent);

      return arc();
    }

    didInsertElement() {
      super.didInsertElement(...arguments);
      this.updateDimensions();
    }

    updateDimensions() {
      const width = this.element.querySelector('svg').clientWidth;
      this.setProperties({
        width,
        height: width / 2
      });
    }

    windowResizeHandler() {
      (0, _runloop.once)(this, this.updateDimensions);
    }

  }, (_applyDecoratedDescriptor(_class2.prototype, "percent", [_dec2], Object.getOwnPropertyDescriptor(_class2.prototype, "percent"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "fillId", [_object.computed], Object.getOwnPropertyDescriptor(_class2.prototype, "fillId"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "maskId", [_object.computed], Object.getOwnPropertyDescriptor(_class2.prototype, "maskId"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "radius", [_dec3], Object.getOwnPropertyDescriptor(_class2.prototype, "radius"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "backgroundArc", [_dec4], Object.getOwnPropertyDescriptor(_class2.prototype, "backgroundArc"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "valueArc", [_dec5], Object.getOwnPropertyDescriptor(_class2.prototype, "valueArc"), _class2.prototype)), _class2)) || _class) || _class);
  _exports.default = GaugeChart;
});
;define("nomad-ui/components/global-header", ["exports", "@ember/component", "@ember/service", "@ember-decorators/component", "@ember/template"], function (_exports, _component, _service, _component2, _template) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _class, _class2, _descriptor, _descriptor2;

  0; //eaimeta@70e063a35619d71f0,"@ember/component",0,"ember-classic-decorator",0,"@ember/service",0,"@ember-decorators/component",0,"@ember/template"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let GlobalHeader = (_dec = (0, _component2.attributeBindings)('data-test-global-header'), classic(_class = _dec(_class = (_class2 = class GlobalHeader extends _component.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "config", _descriptor, this);

      _initializerDefineProperty(this, "system", _descriptor2, this);

      _defineProperty(this, 'data-test-global-header', true);
    }

    onHamburgerClick() {} // Show sign-in if:
    // - User can't load agent config (meaning ACLs are enabled but they're not signed in)
    // - User can load agent config in and ACLs are enabled (meaning ACLs are enabled and they're signed in)
    // The excluded case here is if there is both an agent config and ACLs are disabled


    get shouldShowProfileNav() {
      var _this$system$agent, _this$system$agent2;

      return !((_this$system$agent = this.system.agent) !== null && _this$system$agent !== void 0 && _this$system$agent.get('config')) || ((_this$system$agent2 = this.system.agent) === null || _this$system$agent2 === void 0 ? void 0 : _this$system$agent2.get('config.ACL.Enabled')) === true;
    }

    get labelStyles() {
      var _this$system$agent$ge, _this$system$agent$ge2, _this$system$agent$ge3, _this$system$agent$ge4, _this$system$agent$ge5, _this$system$agent$ge6;

      return (0, _template.htmlSafe)(`
        color: ${(_this$system$agent$ge = this.system.agent.get('config')) === null || _this$system$agent$ge === void 0 ? void 0 : (_this$system$agent$ge2 = _this$system$agent$ge.UI) === null || _this$system$agent$ge2 === void 0 ? void 0 : (_this$system$agent$ge3 = _this$system$agent$ge2.Label) === null || _this$system$agent$ge3 === void 0 ? void 0 : _this$system$agent$ge3.TextColor};
        background-color: ${(_this$system$agent$ge4 = this.system.agent.get('config')) === null || _this$system$agent$ge4 === void 0 ? void 0 : (_this$system$agent$ge5 = _this$system$agent$ge4.UI) === null || _this$system$agent$ge5 === void 0 ? void 0 : (_this$system$agent$ge6 = _this$system$agent$ge5.Label) === null || _this$system$agent$ge6 === void 0 ? void 0 : _this$system$agent$ge6.BackgroundColor};
      `);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "config", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "system", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class2)) || _class) || _class);
  _exports.default = GlobalHeader;
});
;define("nomad-ui/components/global-search/control", ["exports", "@ember/component", "@ember-decorators/component", "ember-concurrency", "@ember/object", "@ember/service", "@ember/runloop"], function (_exports, _component, _component2, _emberConcurrency, _object, _service, _runloop) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4;

  0; //eaimeta@70e063a35619d71f0,"@ember/component",0,"@ember-decorators/component",0,"ember-concurrency",0,"@ember/object",0,"@ember/service",0,"@ember/runloop"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const SLASH_KEY = '/';
  const MAXIMUM_RESULTS = 10;
  let GlobalSearchControl = (_dec = (0, _component2.classNames)('global-search-container'), _dec2 = (0, _component2.attributeBindings)('data-test-search-parent'), _dec3 = (0, _emberConcurrency.task)(function* (string) {
    const searchResponse = yield this.token.authorizedRequest('/v1/search/fuzzy', {
      method: 'POST',
      body: JSON.stringify({
        Text: string,
        Context: 'all',
        Namespace: '*'
      })
    });
    const results = yield searchResponse.json();
    const allJobResults = results.Matches.jobs || [];
    const allNodeResults = results.Matches.nodes || [];
    const allAllocationResults = results.Matches.allocs || [];
    const allTaskGroupResults = results.Matches.groups || [];
    const allCSIPluginResults = results.Matches.plugins || [];
    const jobResults = allJobResults.slice(0, MAXIMUM_RESULTS).map(_ref => {
      let {
        ID: name,
        Scope: [namespace, id]
      } = _ref;
      return {
        type: 'job',
        id,
        namespace,
        label: `${namespace} > ${name}`
      };
    });
    const nodeResults = allNodeResults.slice(0, MAXIMUM_RESULTS).map(_ref2 => {
      let {
        ID: name,
        Scope: [id]
      } = _ref2;
      return {
        type: 'node',
        id,
        label: name
      };
    });
    const allocationResults = allAllocationResults.slice(0, MAXIMUM_RESULTS).map(_ref3 => {
      let {
        ID: name,
        Scope: [namespace, id]
      } = _ref3;
      return {
        type: 'allocation',
        id,
        label: `${namespace} > ${name}`
      };
    });
    const taskGroupResults = allTaskGroupResults.slice(0, MAXIMUM_RESULTS).map(_ref4 => {
      let {
        ID: id,
        Scope: [namespace, jobId]
      } = _ref4;
      return {
        type: 'task-group',
        id,
        namespace,
        jobId,
        label: `${namespace} > ${jobId} > ${id}`
      };
    });
    const csiPluginResults = allCSIPluginResults.slice(0, MAXIMUM_RESULTS).map(_ref5 => {
      let {
        ID: id
      } = _ref5;
      return {
        type: 'plugin',
        id,
        label: id
      };
    });
    const {
      jobs: jobsTruncated,
      nodes: nodesTruncated,
      allocs: allocationsTruncated,
      groups: taskGroupsTruncated,
      plugins: csiPluginsTruncated
    } = results.Truncations;
    return [{
      groupName: resultsGroupLabel('Jobs', jobResults, allJobResults, jobsTruncated),
      options: jobResults
    }, {
      groupName: resultsGroupLabel('Clients', nodeResults, allNodeResults, nodesTruncated),
      options: nodeResults
    }, {
      groupName: resultsGroupLabel('Allocations', allocationResults, allAllocationResults, allocationsTruncated),
      options: allocationResults
    }, {
      groupName: resultsGroupLabel('Task Groups', taskGroupResults, allTaskGroupResults, taskGroupsTruncated),
      options: taskGroupResults
    }, {
      groupName: resultsGroupLabel('CSI Plugins', csiPluginResults, allCSIPluginResults, csiPluginsTruncated),
      options: csiPluginResults
    }];
  }), _dec(_class = _dec2(_class = (_class2 = class GlobalSearchControl extends _component.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "router", _descriptor, this);

      _initializerDefineProperty(this, "token", _descriptor2, this);

      _initializerDefineProperty(this, "store", _descriptor3, this);

      _defineProperty(this, "searchString", null);

      _initializerDefineProperty(this, "search", _descriptor4, this);

      this['data-test-search-parent'] = true;
    }

    keyDownHandler(e) {
      const targetElementName = e.target.nodeName.toLowerCase();

      if (targetElementName != 'input' && targetElementName != 'textarea') {
        if (e.key === SLASH_KEY) {
          e.preventDefault();
          this.open();
        }
      }
    }

    didInsertElement() {
      super.didInsertElement(...arguments);
      (0, _object.set)(this, '_keyDownHandler', this.keyDownHandler.bind(this));
      document.addEventListener('keydown', this._keyDownHandler);
    }

    willDestroyElement() {
      super.willDestroyElement(...arguments);
      document.removeEventListener('keydown', this._keyDownHandler);
    }

    open() {
      if (this.select) {
        this.select.actions.open();
      }
    }

    ensureMinimumLength(string) {
      return string.length > 1;
    }

    selectOption(model) {
      if (model.type === 'job') {
        const fullId = JSON.stringify([model.id, model.namespace]);
        this.store.findRecord('job', fullId).then(job => {
          this.router.transitionTo('jobs.job', job.idWithNamespace);
        });
      } else if (model.type === 'node') {
        this.router.transitionTo('clients.client', model.id);
      } else if (model.type === 'task-group') {
        const fullJobId = JSON.stringify([model.jobId, model.namespace]);
        this.store.findRecord('job', fullJobId).then(job => {
          this.router.transitionTo('jobs.job.task-group', job.idWithNamespace, model.id);
        });
      } else if (model.type === 'plugin') {
        this.router.transitionTo('csi.plugins.plugin', model.id);
      } else if (model.type === 'allocation') {
        this.router.transitionTo('allocations.allocation', model.id);
      }
    }

    storeSelect(select) {
      if (select) {
        this.select = select;
      }
    }

    openOnClickOrTab(select, _ref6) {
      let {
        target
      } = _ref6;
      // Bypass having to press enter to access search after clicking/tabbing
      const targetClassList = target.classList;
      const targetIsTrigger = targetClassList.contains('ember-power-select-trigger'); // Allow tabbing out of search

      const triggerIsNotActive = !targetClassList.contains('ember-power-select-trigger--active');

      if (targetIsTrigger && triggerIsNotActive) {
        (0, _runloop.debounce)(this, this.open, 150);
      }
    }

    onCloseEvent(select, event) {
      if (event.key === 'Escape') {
        (0, _runloop.next)(() => {
          this.element.querySelector('.ember-power-select-trigger').blur();
        });
      }
    }

    calculatePosition(trigger) {
      const {
        top,
        left,
        width
      } = trigger.getBoundingClientRect();
      return {
        style: {
          left,
          width,
          top
        }
      };
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "router", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "token", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, "store", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, "search", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "open", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "open"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "ensureMinimumLength", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "ensureMinimumLength"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "selectOption", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "selectOption"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "storeSelect", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "storeSelect"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "openOnClickOrTab", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "openOnClickOrTab"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "onCloseEvent", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "onCloseEvent"), _class2.prototype)), _class2)) || _class) || _class);
  _exports.default = GlobalSearchControl;

  function resultsGroupLabel(type, renderedResults, allResults, truncated) {
    let countString;

    if (renderedResults.length < allResults.length) {
      countString = `showing ${renderedResults.length} of ${allResults.length}`;
    } else {
      countString = renderedResults.length;
    }

    const truncationIndicator = truncated ? '+' : '';
    return `${type} (${countString}${truncationIndicator})`;
  }
});
;define("nomad-ui/components/gutter-menu", ["exports", "@ember/service", "@ember/component", "@ember/object"], function (_exports, _service, _component, _object) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _class, _class2, _descriptor, _descriptor2, _descriptor3;

  0; //eaimeta@70e063a35619d71f0,"@ember/service",0,"@ember/component",0,"@ember/object",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let GutterMenu = (_dec = (0, _object.computed)('system.namespaces.@each.name'), classic(_class = (_class2 = class GutterMenu extends _component.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "system", _descriptor, this);

      _initializerDefineProperty(this, "router", _descriptor2, this);

      _initializerDefineProperty(this, "keyboard", _descriptor3, this);
    }

    get sortedNamespaces() {
      const namespaces = this.get('system.namespaces').toArray() || [];
      return namespaces.sort((a, b) => {
        const aName = a.get('name');
        const bName = b.get('name'); // Make sure the default namespace is always first in the list

        if (aName === 'default') {
          return -1;
        }

        if (bName === 'default') {
          return 1;
        }

        if (aName < bName) {
          return -1;
        }

        if (aName > bName) {
          return 1;
        }

        return 0;
      });
    }

    onHamburgerClick() {} // Seemingly redundant, but serves to ensure the action is passed to the keyboard service correctly


    transitionTo(destination) {
      return this.router.transitionTo(destination);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "system", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "router", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, "keyboard", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "sortedNamespaces", [_dec], Object.getOwnPropertyDescriptor(_class2.prototype, "sortedNamespaces"), _class2.prototype)), _class2)) || _class);
  _exports.default = GutterMenu;
});
;define("nomad-ui/components/hamburger-menu", ["exports", "@ember/component", "@ember-decorators/component"], function (_exports, _component, _component2) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _class;

  0; //eaimeta@70e063a35619d71f0,"@ember/component",0,"@ember-decorators/component"eaimeta@70e063a35619d71f

  let HamburgerMenu = (_dec = (0, _component2.tagName)(''), _dec(_class = class HamburgerMenu extends _component.default {}) || _class);
  _exports.default = HamburgerMenu;
});
;define("nomad-ui/components/hds/alert/description", ["exports", "@hashicorp/design-system-components/components/hds/alert/description"], function (_exports, _description) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _description.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/alert/description"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/alert/index", ["exports", "@hashicorp/design-system-components/components/hds/alert/index"], function (_exports, _index) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _index.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/alert/index"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/alert/title", ["exports", "@hashicorp/design-system-components/components/hds/alert/title"], function (_exports, _title) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _title.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/alert/title"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/app-frame/index", ["exports", "@hashicorp/design-system-components/components/hds/app-frame/index"], function (_exports, _index) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _index.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/app-frame/index"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/app-frame/parts/footer", ["exports", "@hashicorp/design-system-components/components/hds/app-frame/parts/footer"], function (_exports, _footer) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _footer.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/app-frame/parts/footer"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/app-frame/parts/header", ["exports", "@hashicorp/design-system-components/components/hds/app-frame/parts/header"], function (_exports, _header) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _header.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/app-frame/parts/header"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/app-frame/parts/main", ["exports", "@hashicorp/design-system-components/components/hds/app-frame/parts/main"], function (_exports, _main) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _main.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/app-frame/parts/main"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/app-frame/parts/modals", ["exports", "@hashicorp/design-system-components/components/hds/app-frame/parts/modals"], function (_exports, _modals) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _modals.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/app-frame/parts/modals"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/app-frame/parts/sidebar", ["exports", "@hashicorp/design-system-components/components/hds/app-frame/parts/sidebar"], function (_exports, _sidebar) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _sidebar.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/app-frame/parts/sidebar"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/application-state/body", ["exports", "@hashicorp/design-system-components/components/hds/application-state/body"], function (_exports, _body) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _body.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/application-state/body"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/application-state/footer", ["exports", "@hashicorp/design-system-components/components/hds/application-state/footer"], function (_exports, _footer) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _footer.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/application-state/footer"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/application-state/header", ["exports", "@hashicorp/design-system-components/components/hds/application-state/header"], function (_exports, _header) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _header.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/application-state/header"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/application-state/index", ["exports", "@hashicorp/design-system-components/components/hds/application-state/index"], function (_exports, _index) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _index.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/application-state/index"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/avatar/index", ["exports", "@hashicorp/design-system-components/components/hds/avatar/index"], function (_exports, _index) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _index.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/avatar/index"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/badge-count/index", ["exports", "@hashicorp/design-system-components/components/hds/badge-count/index"], function (_exports, _index) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _index.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/badge-count/index"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/badge/index", ["exports", "@hashicorp/design-system-components/components/hds/badge/index"], function (_exports, _index) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _index.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/badge/index"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/breadcrumb/index", ["exports", "@hashicorp/design-system-components/components/hds/breadcrumb/index"], function (_exports, _index) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _index.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/breadcrumb/index"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/breadcrumb/item", ["exports", "@hashicorp/design-system-components/components/hds/breadcrumb/item"], function (_exports, _item) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _item.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/breadcrumb/item"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/breadcrumb/truncation", ["exports", "@hashicorp/design-system-components/components/hds/breadcrumb/truncation"], function (_exports, _truncation) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _truncation.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/breadcrumb/truncation"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/button-set/index", ["exports", "@hashicorp/design-system-components/components/hds/button-set/index"], function (_exports, _index) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _index.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/button-set/index"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/button/index", ["exports", "@hashicorp/design-system-components/components/hds/button/index"], function (_exports, _index) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _index.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/button/index"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/card/container", ["exports", "@hashicorp/design-system-components/components/hds/card/container"], function (_exports, _container) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _container.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/card/container"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/disclosure-primitive/index", ["exports", "@hashicorp/design-system-components/components/hds/disclosure-primitive/index"], function (_exports, _index) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _index.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/disclosure-primitive/index"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/dismiss-button/index", ["exports", "@hashicorp/design-system-components/components/hds/dismiss-button/index"], function (_exports, _index) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _index.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/dismiss-button/index"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/dropdown/footer", ["exports", "@hashicorp/design-system-components/components/hds/dropdown/footer"], function (_exports, _footer) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _footer.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/dropdown/footer"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/dropdown/header", ["exports", "@hashicorp/design-system-components/components/hds/dropdown/header"], function (_exports, _header) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _header.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/dropdown/header"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/dropdown/index", ["exports", "@hashicorp/design-system-components/components/hds/dropdown/index"], function (_exports, _index) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _index.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/dropdown/index"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/dropdown/list-item/checkbox", ["exports", "@hashicorp/design-system-components/components/hds/dropdown/list-item/checkbox"], function (_exports, _checkbox) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _checkbox.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/dropdown/list-item/checkbox"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/dropdown/list-item/checkmark", ["exports", "@hashicorp/design-system-components/components/hds/dropdown/list-item/checkmark"], function (_exports, _checkmark) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _checkmark.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/dropdown/list-item/checkmark"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/dropdown/list-item/copy-item", ["exports", "@hashicorp/design-system-components/components/hds/dropdown/list-item/copy-item"], function (_exports, _copyItem) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _copyItem.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/dropdown/list-item/copy-item"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/dropdown/list-item/description", ["exports", "@hashicorp/design-system-components/components/hds/dropdown/list-item/description"], function (_exports, _description) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _description.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/dropdown/list-item/description"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/dropdown/list-item/generic", ["exports", "@hashicorp/design-system-components/components/hds/dropdown/list-item/generic"], function (_exports, _generic) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _generic.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/dropdown/list-item/generic"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/dropdown/list-item/interactive", ["exports", "@hashicorp/design-system-components/components/hds/dropdown/list-item/interactive"], function (_exports, _interactive) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _interactive.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/dropdown/list-item/interactive"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/dropdown/list-item/radio", ["exports", "@hashicorp/design-system-components/components/hds/dropdown/list-item/radio"], function (_exports, _radio) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _radio.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/dropdown/list-item/radio"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/dropdown/list-item/separator", ["exports", "@hashicorp/design-system-components/components/hds/dropdown/list-item/separator"], function (_exports, _separator) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _separator.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/dropdown/list-item/separator"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/dropdown/list-item/title", ["exports", "@hashicorp/design-system-components/components/hds/dropdown/list-item/title"], function (_exports, _title) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _title.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/dropdown/list-item/title"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/dropdown/toggle/button", ["exports", "@hashicorp/design-system-components/components/hds/dropdown/toggle/button"], function (_exports, _button) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _button.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/dropdown/toggle/button"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/dropdown/toggle/chevron", ["exports", "@hashicorp/design-system-components/components/hds/dropdown/toggle/chevron"], function (_exports, _chevron) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _chevron.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/dropdown/toggle/chevron"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/dropdown/toggle/icon", ["exports", "@hashicorp/design-system-components/components/hds/dropdown/toggle/icon"], function (_exports, _icon) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _icon.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/dropdown/toggle/icon"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/flyout/body", ["exports", "@hashicorp/design-system-components/components/hds/flyout/body"], function (_exports, _body) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _body.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/flyout/body"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/flyout/description", ["exports", "@hashicorp/design-system-components/components/hds/flyout/description"], function (_exports, _description) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _description.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/flyout/description"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/flyout/footer", ["exports", "@hashicorp/design-system-components/components/hds/flyout/footer"], function (_exports, _footer) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _footer.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/flyout/footer"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/flyout/header", ["exports", "@hashicorp/design-system-components/components/hds/flyout/header"], function (_exports, _header) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _header.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/flyout/header"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/flyout/index", ["exports", "@hashicorp/design-system-components/components/hds/flyout/index"], function (_exports, _index) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _index.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/flyout/index"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/form/checkbox/base", ["exports", "@hashicorp/design-system-components/components/hds/form/checkbox/base"], function (_exports, _base) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _base.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/form/checkbox/base"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/form/checkbox/field", ["exports", "@hashicorp/design-system-components/components/hds/form/checkbox/field"], function (_exports, _field) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _field.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/form/checkbox/field"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/form/checkbox/group", ["exports", "@hashicorp/design-system-components/components/hds/form/checkbox/group"], function (_exports, _group) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _group.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/form/checkbox/group"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/form/error/index", ["exports", "@hashicorp/design-system-components/components/hds/form/error/index"], function (_exports, _index) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _index.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/form/error/index"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/form/error/message", ["exports", "@hashicorp/design-system-components/components/hds/form/error/message"], function (_exports, _message) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _message.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/form/error/message"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/form/field/index", ["exports", "@hashicorp/design-system-components/components/hds/form/field/index"], function (_exports, _index) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _index.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/form/field/index"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/form/fieldset/index", ["exports", "@hashicorp/design-system-components/components/hds/form/fieldset/index"], function (_exports, _index) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _index.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/form/fieldset/index"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/form/helper-text/index", ["exports", "@hashicorp/design-system-components/components/hds/form/helper-text/index"], function (_exports, _index) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _index.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/form/helper-text/index"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/form/indicator/index", ["exports", "@hashicorp/design-system-components/components/hds/form/indicator/index"], function (_exports, _index) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _index.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/form/indicator/index"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/form/label/index", ["exports", "@hashicorp/design-system-components/components/hds/form/label/index"], function (_exports, _index) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _index.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/form/label/index"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/form/legend/index", ["exports", "@hashicorp/design-system-components/components/hds/form/legend/index"], function (_exports, _index) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _index.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/form/legend/index"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/form/radio-card/description", ["exports", "@hashicorp/design-system-components/components/hds/form/radio-card/description"], function (_exports, _description) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _description.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/form/radio-card/description"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/form/radio-card/group", ["exports", "@hashicorp/design-system-components/components/hds/form/radio-card/group"], function (_exports, _group) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _group.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/form/radio-card/group"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/form/radio-card/index", ["exports", "@hashicorp/design-system-components/components/hds/form/radio-card/index"], function (_exports, _index) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _index.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/form/radio-card/index"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/form/radio-card/label", ["exports", "@hashicorp/design-system-components/components/hds/form/radio-card/label"], function (_exports, _label) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _label.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/form/radio-card/label"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/form/radio/base", ["exports", "@hashicorp/design-system-components/components/hds/form/radio/base"], function (_exports, _base) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _base.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/form/radio/base"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/form/radio/field", ["exports", "@hashicorp/design-system-components/components/hds/form/radio/field"], function (_exports, _field) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _field.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/form/radio/field"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/form/radio/group", ["exports", "@hashicorp/design-system-components/components/hds/form/radio/group"], function (_exports, _group) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _group.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/form/radio/group"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/form/select/base", ["exports", "@hashicorp/design-system-components/components/hds/form/select/base"], function (_exports, _base) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _base.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/form/select/base"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/form/select/field", ["exports", "@hashicorp/design-system-components/components/hds/form/select/field"], function (_exports, _field) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _field.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/form/select/field"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/form/text-input/base", ["exports", "@hashicorp/design-system-components/components/hds/form/text-input/base"], function (_exports, _base) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _base.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/form/text-input/base"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/form/text-input/field", ["exports", "@hashicorp/design-system-components/components/hds/form/text-input/field"], function (_exports, _field) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _field.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/form/text-input/field"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/form/textarea/base", ["exports", "@hashicorp/design-system-components/components/hds/form/textarea/base"], function (_exports, _base) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _base.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/form/textarea/base"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/form/textarea/field", ["exports", "@hashicorp/design-system-components/components/hds/form/textarea/field"], function (_exports, _field) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _field.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/form/textarea/field"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/form/toggle/base", ["exports", "@hashicorp/design-system-components/components/hds/form/toggle/base"], function (_exports, _base) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _base.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/form/toggle/base"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/form/toggle/field", ["exports", "@hashicorp/design-system-components/components/hds/form/toggle/field"], function (_exports, _field) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _field.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/form/toggle/field"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/form/toggle/group", ["exports", "@hashicorp/design-system-components/components/hds/form/toggle/group"], function (_exports, _group) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _group.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/form/toggle/group"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/icon-tile/index", ["exports", "@hashicorp/design-system-components/components/hds/icon-tile/index"], function (_exports, _index) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _index.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/icon-tile/index"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/interactive/index", ["exports", "@hashicorp/design-system-components/components/hds/interactive/index"], function (_exports, _index) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _index.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/interactive/index"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/link/inline", ["exports", "@hashicorp/design-system-components/components/hds/link/inline"], function (_exports, _inline) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _inline.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/link/inline"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/link/standalone", ["exports", "@hashicorp/design-system-components/components/hds/link/standalone"], function (_exports, _standalone) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _standalone.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/link/standalone"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/menu-primitive/index", ["exports", "@hashicorp/design-system-components/components/hds/menu-primitive/index"], function (_exports, _index) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _index.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/menu-primitive/index"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/modal/body", ["exports", "@hashicorp/design-system-components/components/hds/modal/body"], function (_exports, _body) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _body.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/modal/body"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/modal/footer", ["exports", "@hashicorp/design-system-components/components/hds/modal/footer"], function (_exports, _footer) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _footer.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/modal/footer"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/modal/header", ["exports", "@hashicorp/design-system-components/components/hds/modal/header"], function (_exports, _header) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _header.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/modal/header"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/modal/index", ["exports", "@hashicorp/design-system-components/components/hds/modal/index"], function (_exports, _index) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _index.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/modal/index"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/pagination/compact/index", ["exports", "@hashicorp/design-system-components/components/hds/pagination/compact/index"], function (_exports, _index) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _index.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/pagination/compact/index"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/pagination/info", ["exports", "@hashicorp/design-system-components/components/hds/pagination/info"], function (_exports, _info) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _info.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/pagination/info"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/pagination/nav/arrow", ["exports", "@hashicorp/design-system-components/components/hds/pagination/nav/arrow"], function (_exports, _arrow) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _arrow.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/pagination/nav/arrow"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/pagination/nav/ellipsis", ["exports", "@hashicorp/design-system-components/components/hds/pagination/nav/ellipsis"], function (_exports, _ellipsis) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _ellipsis.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/pagination/nav/ellipsis"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/pagination/nav/number", ["exports", "@hashicorp/design-system-components/components/hds/pagination/nav/number"], function (_exports, _number) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _number.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/pagination/nav/number"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/pagination/numbered/index", ["exports", "@hashicorp/design-system-components/components/hds/pagination/numbered/index"], function (_exports, _index) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _index.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/pagination/numbered/index"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/pagination/size-selector", ["exports", "@hashicorp/design-system-components/components/hds/pagination/size-selector"], function (_exports, _sizeSelector) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _sizeSelector.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/pagination/size-selector"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/reveal/index", ["exports", "@hashicorp/design-system-components/components/hds/reveal/index"], function (_exports, _index) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _index.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/reveal/index"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/reveal/toggle/button", ["exports", "@hashicorp/design-system-components/components/hds/reveal/toggle/button"], function (_exports, _button) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _button.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/reveal/toggle/button"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/segmented-group/index", ["exports", "@hashicorp/design-system-components/components/hds/segmented-group/index"], function (_exports, _index) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _index.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/segmented-group/index"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/side-nav/base", ["exports", "@hashicorp/design-system-components/components/hds/side-nav/base"], function (_exports, _base) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _base.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/side-nav/base"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/side-nav/header/home-link", ["exports", "@hashicorp/design-system-components/components/hds/side-nav/header/home-link"], function (_exports, _homeLink) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _homeLink.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/side-nav/header/home-link"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/side-nav/header/icon-button", ["exports", "@hashicorp/design-system-components/components/hds/side-nav/header/icon-button"], function (_exports, _iconButton) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _iconButton.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/side-nav/header/icon-button"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/side-nav/header/index", ["exports", "@hashicorp/design-system-components/components/hds/side-nav/header"], function (_exports, _header) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _header.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/side-nav/header"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/side-nav/index", ["exports", "@hashicorp/design-system-components/components/hds/side-nav/index"], function (_exports, _index) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _index.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/side-nav/index"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/side-nav/list/back-link", ["exports", "@hashicorp/design-system-components/components/hds/side-nav/list/back-link"], function (_exports, _backLink) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _backLink.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/side-nav/list/back-link"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/side-nav/list/index", ["exports", "@hashicorp/design-system-components/components/hds/side-nav/list/index"], function (_exports, _index) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _index.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/side-nav/list/index"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/side-nav/list/item", ["exports", "@hashicorp/design-system-components/components/hds/side-nav/list/item"], function (_exports, _item) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _item.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/side-nav/list/item"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/side-nav/list/link", ["exports", "@hashicorp/design-system-components/components/hds/side-nav/list/link"], function (_exports, _link) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _link.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/side-nav/list/link"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/side-nav/list/title", ["exports", "@hashicorp/design-system-components/components/hds/side-nav/list/title"], function (_exports, _title) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _title.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/side-nav/list/title"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/side-nav/portal/index", ["exports", "@hashicorp/design-system-components/components/hds/side-nav/portal/index"], function (_exports, _index) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _index.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/side-nav/portal/index"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/side-nav/portal/target", ["exports", "@hashicorp/design-system-components/components/hds/side-nav/portal/target"], function (_exports, _target) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _target.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/side-nav/portal/target"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/stepper/step/indicator", ["exports", "@hashicorp/design-system-components/components/hds/stepper/step/indicator"], function (_exports, _indicator) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _indicator.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/stepper/step/indicator"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/stepper/task/indicator", ["exports", "@hashicorp/design-system-components/components/hds/stepper/task/indicator"], function (_exports, _indicator) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _indicator.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/stepper/task/indicator"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/table/index", ["exports", "@hashicorp/design-system-components/components/hds/table/index"], function (_exports, _index) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _index.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/table/index"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/table/td", ["exports", "@hashicorp/design-system-components/components/hds/table/td"], function (_exports, _td) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _td.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/table/td"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/table/th-sort", ["exports", "@hashicorp/design-system-components/components/hds/table/th-sort"], function (_exports, _thSort) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _thSort.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/table/th-sort"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/table/th", ["exports", "@hashicorp/design-system-components/components/hds/table/th"], function (_exports, _th) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _th.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/table/th"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/table/tr", ["exports", "@hashicorp/design-system-components/components/hds/table/tr"], function (_exports, _tr) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _tr.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/table/tr"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/tabs/index", ["exports", "@hashicorp/design-system-components/components/hds/tabs/index"], function (_exports, _index) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _index.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/tabs/index"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/tabs/panel", ["exports", "@hashicorp/design-system-components/components/hds/tabs/panel"], function (_exports, _panel) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _panel.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/tabs/panel"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/tabs/tab", ["exports", "@hashicorp/design-system-components/components/hds/tabs/tab"], function (_exports, _tab) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _tab.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/tabs/tab"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/tag/index", ["exports", "@hashicorp/design-system-components/components/hds/tag/index"], function (_exports, _index) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _index.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/tag/index"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/toast/index", ["exports", "@hashicorp/design-system-components/components/hds/toast/index"], function (_exports, _index) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _index.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/toast/index"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/tooltip-button/index", ["exports", "@hashicorp/design-system-components/components/hds/tooltip-button/index"], function (_exports, _index) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _index.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/tooltip-button/index"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/hds/yield/index", ["exports", "@hashicorp/design-system-components/components/hds/yield/index"], function (_exports, _index) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _index.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/components/hds/yield/index"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/image-file", ["exports", "@ember/component", "@ember/object", "@ember-decorators/component"], function (_exports, _component, _object, _component2) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _class, _class2;

  0; //eaimeta@70e063a35619d71f0,"@ember/component",0,"@ember/object",0,"@ember-decorators/component",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let ImageFile = (_dec = (0, _component2.tagName)('figure'), _dec2 = (0, _component2.classNames)('image-file'), _dec3 = (0, _component2.attributeBindings)('data-test-image-file'), _dec4 = (0, _object.computed)('src'), classic(_class = _dec(_class = _dec2(_class = _dec3(_class = (_class2 = class ImageFile extends _component.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, 'data-test-image-file', true);

      _defineProperty(this, "src", null);

      _defineProperty(this, "alt", null);

      _defineProperty(this, "size", null);

      _defineProperty(this, "width", 0);

      _defineProperty(this, "height", 0);
    }

    get fileName() {
      if (!this.src) return undefined;
      return this.src.includes('/') ? this.src.match(/^.*\/(.*)$/)[1] : this.src;
    }

    updateImageMeta(event) {
      const img = event.target;
      this.setProperties({
        width: img.naturalWidth,
        height: img.naturalHeight
      });
    }

  }, (_applyDecoratedDescriptor(_class2.prototype, "fileName", [_dec4], Object.getOwnPropertyDescriptor(_class2.prototype, "fileName"), _class2.prototype)), _class2)) || _class) || _class) || _class) || _class);
  _exports.default = ImageFile;
});
;define("nomad-ui/components/job-client-status-bar", ["exports", "@ember/object", "nomad-ui/components/distribution-bar", "@ember-decorators/component"], function (_exports, _object, _distributionBar, _component) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _class, _class2;

  0; //eaimeta@70e063a35619d71f0,"@ember/object",0,"nomad-ui/components/distribution-bar",0,"@ember-decorators/component",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let JobClientStatusBar = (_dec = (0, _component.attributeBindings)('data-test-job-client-status-bar'), _dec2 = (0, _object.computed)('job.namespace', 'jobClientStatus.byStatus'), classic(_class = _dec(_class = (_class2 = class JobClientStatusBar extends _distributionBar.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "layoutName", 'components/distribution-bar');

      _defineProperty(this, 'data-test-job-client-status-bar', true);

      _defineProperty(this, "job", null);

      _defineProperty(this, "jobClientStatus", null);
    }

    get data() {
      const {
        queued,
        starting,
        running,
        complete,
        degraded,
        failed,
        lost,
        notScheduled,
        unknown
      } = this.jobClientStatus.byStatus;
      return [{
        label: 'Queued',
        value: queued.length,
        className: 'queued',
        legendLink: {
          queryParams: {
            status: JSON.stringify(['queued']),
            namespace: this.job.namespace.get('id')
          }
        }
      }, {
        label: 'Starting',
        value: starting.length,
        className: 'starting',
        legendLink: {
          queryParams: {
            status: JSON.stringify(['starting']),
            namespace: this.job.namespace.get('id')
          }
        },
        layers: 2
      }, {
        label: 'Running',
        value: running.length,
        className: 'running',
        legendLink: {
          queryParams: {
            status: JSON.stringify(['running']),
            namespace: this.job.namespace.get('id')
          }
        }
      }, {
        label: 'Complete',
        value: complete.length,
        className: 'complete',
        legendLink: {
          queryParams: {
            status: JSON.stringify(['complete']),
            namespace: this.job.namespace.get('id')
          }
        }
      }, {
        label: 'Unknown',
        value: unknown.length,
        className: 'unknown',
        legendLink: {
          queryParams: {
            status: JSON.stringify(['unknown']),
            namespace: this.job.namespace.get('id')
          }
        },
        help: 'Some allocations for this job were degraded or lost connectivity.'
      }, {
        label: 'Degraded',
        value: degraded.length,
        className: 'degraded',
        legendLink: {
          queryParams: {
            status: JSON.stringify(['degraded']),
            namespace: this.job.namespace.get('id')
          }
        },
        help: 'Some allocations for this job were not successfull or did not run.'
      }, {
        label: 'Failed',
        value: failed.length,
        className: 'failed',
        legendLink: {
          queryParams: {
            status: JSON.stringify(['failed']),
            namespace: this.job.namespace.get('id')
          }
        }
      }, {
        label: 'Lost',
        value: lost.length,
        className: 'lost',
        legendLink: {
          queryParams: {
            status: JSON.stringify(['lost']),
            namespace: this.job.namespace.get('id')
          }
        }
      }, {
        label: 'Not Scheduled',
        value: notScheduled.length,
        className: 'not-scheduled',
        legendLink: {
          queryParams: {
            status: JSON.stringify(['notScheduled']),
            namespace: this.job.namespace.get('id')
          }
        },
        help: 'No allocations for this job were scheduled into these clients.'
      }];
    }

  }, (_applyDecoratedDescriptor(_class2.prototype, "data", [_dec2], Object.getOwnPropertyDescriptor(_class2.prototype, "data"), _class2.prototype)), _class2)) || _class) || _class);
  _exports.default = JobClientStatusBar;
});
;define("nomad-ui/components/job-client-status-row", ["exports", "@ember/object", "@glimmer/component"], function (_exports, _object, _component) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/object",0,"@glimmer/component"eaimeta@70e063a35619d71f

  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }

  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  class ClientRow extends _component.default {
    // Attribute set in the template as @onClick.
    onClick() {}

    get row() {
      return this.args.row.model;
    }

    get shouldDisplayAllocationSummary() {
      return this.args.row.model.jobStatus !== 'notScheduled';
    }

    get allocationSummaryPlaceholder() {
      switch (this.args.row.model.jobStatus) {
        case 'notScheduled':
          return 'Not Scheduled';

        default:
          return '';
      }
    }

    get humanizedJobStatus() {
      switch (this.args.row.model.jobStatus) {
        case 'notScheduled':
          return 'not scheduled';

        default:
          return this.args.row.model.jobStatus;
      }
    }

    get jobStatusClass() {
      switch (this.args.row.model.jobStatus) {
        case 'notScheduled':
          return 'not-scheduled';

        default:
          return this.args.row.model.jobStatus;
      }
    }

    get allocationContainer() {
      const statusSummary = {
        queuedAllocs: 0,
        completeAllocs: 0,
        failedAllocs: 0,
        runningAllocs: 0,
        startingAllocs: 0,
        lostAllocs: 0,
        unknownAllocs: 0
      };

      switch (this.args.row.model.jobStatus) {
        case 'notSchedule':
          break;

        case 'queued':
          statusSummary.queuedAllocs = this.args.row.model.allocations.length;
          break;

        case 'starting':
          statusSummary.startingAllocs = this.args.row.model.allocations.length;
          break;

        default:
          for (const alloc of this.args.row.model.allocations) {
            switch (alloc.clientStatus) {
              case 'running':
                statusSummary.runningAllocs++;
                break;

              case 'lost':
                statusSummary.lostAllocs++;
                break;

              case 'failed':
                statusSummary.failedAllocs++;
                break;

              case 'complete':
                statusSummary.completeAllocs++;
                break;

              case 'starting':
                statusSummary.startingAllocs++;
                break;

              case 'unknown':
                statusSummary.unknownAllocs++;
                break;
            }
          }

      }

      const Allocations = _object.default.extend(_objectSpread({}, statusSummary));

      return Allocations.create();
    }

  }

  _exports.default = ClientRow;

  window.__CLASSIC_OWN_CLASSES__.set(ClientRow, true);
});
;define("nomad-ui/components/job-deployment", ["exports", "@ember/component", "@ember-decorators/component"], function (_exports, _component, _component2) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _class;

  0; //eaimeta@70e063a35619d71f0,"@ember/component",0,"@ember-decorators/component",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let JobDeployment = (_dec = (0, _component2.classNames)('job-deployment', 'boxed-section'), classic(_class = _dec(_class = class JobDeployment extends _component.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "deployment", null);

      _defineProperty(this, "isOpen", false);
    }

  }) || _class) || _class);
  _exports.default = JobDeployment;
});
;define("nomad-ui/components/job-deployment/deployment-metrics", ["exports", "@ember/component", "@ember-decorators/component"], function (_exports, _component, _component2) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _class;

  0; //eaimeta@70e063a35619d71f0,"@ember/component",0,"@ember-decorators/component",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  const classic = __EMBER_CLASSIC_DECORATOR;
  let DeploymentMetrics = (_dec = (0, _component2.tagName)(''), classic(_class = _dec(_class = class DeploymentMetrics extends _component.default {}) || _class) || _class);
  _exports.default = DeploymentMetrics;
});
;define("nomad-ui/components/job-deployments-stream", ["exports", "@ember/component", "@ember/object", "ember-overridable-computed", "moment", "@ember-decorators/component"], function (_exports, _component, _object, _emberOverridableComputed, _moment, _component2) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _class, _class2, _descriptor;

  0; //eaimeta@70e063a35619d71f0,"@ember/component",0,"@ember/object",0,"ember-overridable-computed",0,"moment",0,"@ember-decorators/component",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let JobDeploymentsStream = (_dec = (0, _component2.tagName)('ol'), _dec2 = (0, _component2.classNames)('timeline'), _dec3 = (0, _emberOverridableComputed.computed)(() => []), _dec4 = (0, _object.computed)('deployments.@each.versionSubmitTime'), _dec5 = (0, _object.computed)('sortedDeployments.@each.version'), classic(_class = _dec(_class = _dec2(_class = (_class2 = class JobDeploymentsStream extends _component.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "deployments", _descriptor, this);
    }

    get sortedDeployments() {
      return this.deployments.sortBy('versionSubmitTime').reverse();
    }

    get annotatedDeployments() {
      const deployments = this.sortedDeployments;
      return deployments.map((deployment, index) => {
        const meta = {};

        if (index === 0) {
          meta.showDate = true;
        } else {
          const previousDeployment = deployments.objectAt(index - 1);
          const previousSubmitTime = previousDeployment.get('version.submitTime');
          const submitTime = deployment.get('submitTime');

          if (submitTime && previousSubmitTime && (0, _moment.default)(previousSubmitTime).startOf('day').diff((0, _moment.default)(submitTime).startOf('day'), 'days') > 0) {
            meta.showDate = true;
          }
        }

        return {
          deployment,
          meta
        };
      });
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "deployments", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "sortedDeployments", [_dec4], Object.getOwnPropertyDescriptor(_class2.prototype, "sortedDeployments"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "annotatedDeployments", [_dec5], Object.getOwnPropertyDescriptor(_class2.prototype, "annotatedDeployments"), _class2.prototype)), _class2)) || _class) || _class) || _class);
  _exports.default = JobDeploymentsStream;
});
;define("nomad-ui/components/job-diff-fields-and-objects", ["exports", "@ember/component", "@ember-decorators/component"], function (_exports, _component, _component2) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _class;

  0; //eaimeta@70e063a35619d71f0,"@ember/component",0,"@ember-decorators/component",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  const classic = __EMBER_CLASSIC_DECORATOR;
  let JobDiffFieldsAndObjects = (_dec = (0, _component2.tagName)(''), classic(_class = _dec(_class = class JobDiffFieldsAndObjects extends _component.default {}) || _class) || _class);
  _exports.default = JobDiffFieldsAndObjects;
});
;define("nomad-ui/components/job-diff", ["exports", "@ember/object/computed", "@ember/component", "@ember-decorators/component"], function (_exports, _computed, _component, _component2) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _class, _class2, _descriptor, _descriptor2, _descriptor3;

  0; //eaimeta@70e063a35619d71f0,"@ember/object/computed",0,"@ember/component",0,"@ember-decorators/component",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let JobDiff = (_dec = (0, _component2.classNames)('job-diff'), _dec2 = (0, _component2.classNameBindings)('isEdited:is-edited', 'isAdded:is-added', 'isDeleted:is-deleted'), _dec3 = (0, _computed.equal)('diff.Type', 'Edited'), _dec4 = (0, _computed.equal)('diff.Type', 'Added'), _dec5 = (0, _computed.equal)('diff.Type', 'Deleted'), classic(_class = _dec(_class = _dec2(_class = (_class2 = class JobDiff extends _component.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "diff", null);

      _defineProperty(this, "verbose", true);

      _initializerDefineProperty(this, "isEdited", _descriptor, this);

      _initializerDefineProperty(this, "isAdded", _descriptor2, this);

      _initializerDefineProperty(this, "isDeleted", _descriptor3, this);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "isEdited", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "isAdded", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, "isDeleted", [_dec5], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class2)) || _class) || _class) || _class);
  _exports.default = JobDiff;
});
;define("nomad-ui/components/job-dispatch", ["exports", "@glimmer/component", "@glimmer/tracking", "@ember/service", "@ember/object", "@ember/array", "ember-concurrency", "no-case", "title-case", "nomad-ui/utils/message-from-adapter-error"], function (_exports, _component, _tracking, _service, _object, _array, _emberConcurrency, _noCase, _titleCase, _messageFromAdapterError) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _descriptor, _descriptor2, _dec, _class3, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7;

  0; //eaimeta@70e063a35619d71f0,"@glimmer/component",0,"@glimmer/tracking",0,"@ember/service",0,"@ember/object",0,"@ember/array",0,"ember-concurrency",0,"no-case",0,"title-case",0,"nomad-ui/utils/message-from-adapter-error"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let MetaField = (_class = class MetaField {
    constructor(meta) {
      _initializerDefineProperty(this, "value", _descriptor, this);

      _initializerDefineProperty(this, "error", _descriptor2, this);

      _defineProperty(this, "name", void 0);

      _defineProperty(this, "required", void 0);

      _defineProperty(this, "title", void 0);

      this.name = meta.name;
      this.required = meta.required;
      this.title = meta.title;
      this.value = meta.value;
      this.error = meta.error;
    }

    validate() {
      this.error = '';

      if (this.required && !this.value) {
        this.error = `Missing required meta parameter "${this.name}".`;
      }
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "value", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "error", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class);

  window.__CLASSIC_HAS_CONSTRUCTOR__.set(MetaField, true);

  window.__CLASSIC_OWN_CLASSES__.set(MetaField, true);

  let JobDispatch = (_dec = (0, _emberConcurrency.task)({
    drop: true
  }), (_class3 = class JobDispatch extends _component.default {
    constructor() {
      super(...arguments); // Helper for mapping the params into a useable form.

      _initializerDefineProperty(this, "router", _descriptor3, this);

      _initializerDefineProperty(this, "config", _descriptor4, this);

      _initializerDefineProperty(this, "metaFields", _descriptor5, this);

      _initializerDefineProperty(this, "payload", _descriptor6, this);

      _initializerDefineProperty(this, "payloadHasError", _descriptor7, this);

      _defineProperty(this, "errors", (0, _array.A)([]));

      const mapper = (values, required) => values.map(x => new MetaField({
        name: x,
        required,
        title: (0, _titleCase.titleCase)((0, _noCase.noCase)(x)),
        value: this.args.job.meta ? this.args.job.meta.get(x) : ''
      })); // Fetch the different types of parameters.


      const required = mapper(this.args.job.parameterizedDetails.MetaRequired || [], true);
      const optional = mapper(this.args.job.parameterizedDetails.MetaOptional || [], false); // Merge them, required before optional.

      this.metaFields = required.concat(optional);
    }

    get hasPayload() {
      return this.args.job.parameterizedDetails.Payload !== 'forbidden';
    }

    get payloadRequired() {
      return this.args.job.parameterizedDetails.Payload === 'required';
    }

    dispatch() {
      this.validateForm();

      if (this.errors.length > 0) {
        this.scrollToError();
        return;
      }

      this.onDispatched.perform();
    }

    cancel() {
      this.router.transitionTo('jobs.job');
    }

    *onDispatched() {
      // Try to create the dispatch.
      try {
        let paramValues = {};
        this.metaFields.forEach(m => paramValues[m.name] = m.value);
        const dispatch = yield this.args.job.dispatch(paramValues, this.payload); // Navigate to the newly created instance.

        const namespaceId = this.args.job.belongsTo('namespace').id();
        const jobId = namespaceId ? `${dispatch.DispatchedJobID}@${namespaceId}` : dispatch.DispatchedJobID;
        this.router.transitionTo('jobs.job', jobId);
      } catch (err) {
        const error = (0, _messageFromAdapterError.default)(err) || 'Could not dispatch job';
        this.errors.pushObject(error);
        this.scrollToError();
      }
    }

    scrollToError() {
      if (!this.config.isTest) {
        window.scrollTo(0, 0);
      }
    }

    resetErrors() {
      this.payloadHasError = false;
      this.errors.clear();
    }

    validateForm() {
      this.resetErrors(); // Make sure that we have all of the meta fields that we need.

      this.metaFields.forEach(f => {
        f.validate();

        if (f.error) {
          this.errors.pushObject(f.error);
        }
      }); // Validate payload.

      if (this.payloadRequired && !this.payload) {
        this.errors.pushObject('Missing required payload.');
        this.payloadHasError = true;
      }
    }

  }, (_descriptor3 = _applyDecoratedDescriptor(_class3.prototype, "router", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class3.prototype, "config", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor5 = _applyDecoratedDescriptor(_class3.prototype, "metaFields", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return [];
    }
  }), _descriptor6 = _applyDecoratedDescriptor(_class3.prototype, "payload", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return '';
    }
  }), _descriptor7 = _applyDecoratedDescriptor(_class3.prototype, "payloadHasError", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return false;
    }
  }), _applyDecoratedDescriptor(_class3.prototype, "dispatch", [_object.action], Object.getOwnPropertyDescriptor(_class3.prototype, "dispatch"), _class3.prototype), _applyDecoratedDescriptor(_class3.prototype, "cancel", [_object.action], Object.getOwnPropertyDescriptor(_class3.prototype, "cancel"), _class3.prototype), _applyDecoratedDescriptor(_class3.prototype, "onDispatched", [_dec], Object.getOwnPropertyDescriptor(_class3.prototype, "onDispatched"), _class3.prototype)), _class3));
  _exports.default = JobDispatch;
});
;define("nomad-ui/components/job-editor", ["exports", "@glimmer/component", "@ember/service", "@ember/object", "ember-concurrency", "nomad-ui/utils/message-from-adapter-error", "nomad-ui/utils/properties/local-storage", "@glimmer/tracking"], function (_exports, _component, _service, _object, _emberConcurrency, _messageFromAdapterError, _localStorage, _tracking) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _class, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8, _descriptor9;

  0; //eaimeta@70e063a35619d71f0,"@glimmer/component",0,"@ember/service",0,"@ember/object",0,"ember-concurrency",0,"nomad-ui/utils/message-from-adapter-error",0,"nomad-ui/utils/properties/local-storage",0,"@glimmer/tracking"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  /**
   * JobEditor component that provides an interface for editing and managing Nomad jobs.
   *
   * @class JobEditor
   * @extends Component
   */
  let JobEditor = (_dec = (0, _localStorage.default)('nomadMessageJobPlan', true), _dec2 = (0, _localStorage.default)('nomadShouldWrapCode', false), _dec3 = (0, _emberConcurrency.task)(function* () {
    this.reset();

    try {
      yield this.args.job.parse();
    } catch (err) {
      this.onError(err, 'parse', 'parse jobs');
      return;
    }

    try {
      const plan = yield this.args.job.plan();
      this.planOutput = plan;
    } catch (err) {
      this.onError(err, 'plan', 'plan jobs');
    }
  }).drop(), _dec4 = (0, _emberConcurrency.task)(function* () {
    try {
      if (this.args.context === 'new') {
        yield this.args.job.run();
      } else {
        yield this.args.job.update(this.args.format);
      }

      const id = this.args.job.plainId;
      const namespace = this.args.job.belongsTo('namespace').id() || 'default';
      this.reset(); // Treat the job as ephemeral and only provide ID parts.

      this.args.onSubmit(id, namespace);
    } catch (err) {
      this.onError(err, 'run', 'submit jobs');
      this.planOutput = null;
    }
  }), (_class = class JobEditor extends _component.default {
    /**
     * Initialize the component, setting the definition and definition variables on the model if available.
     */
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "config", _descriptor, this);

      _initializerDefineProperty(this, "store", _descriptor2, this);

      _initializerDefineProperty(this, "notifications", _descriptor3, this);

      _initializerDefineProperty(this, "error", _descriptor4, this);

      _initializerDefineProperty(this, "planOutput", _descriptor5, this);

      _initializerDefineProperty(this, "shouldShowPlanMessage", _descriptor6, this);

      _initializerDefineProperty(this, "shouldWrapCode", _descriptor7, this);

      _initializerDefineProperty(this, "plan", _descriptor8, this);

      _initializerDefineProperty(this, "submit", _descriptor9, this);

      if (this.definition) {
        this.setDefinitionOnModel();
      }

      if (this.args.variables) {
        this.args.job.set('_newDefinitionVariables', this.jsonToHcl(this.args.variables.flags).concat(this.args.variables.literal));
      }
    }
    /**
     * Check if the component is in editing mode.
     *
     * @returns {boolean} True if the component is in 'new' or 'edit' context, otherwise false.
     */


    get isEditing() {
      return ['new', 'edit'].includes(this.args.context);
    }

    setDefinitionOnModel() {
      this.args.job.set('_newDefinition', this.definition);
    }
    /**
     * Enter the edit mode and defensively set the definition on the model.
     */


    edit() {
      this.setDefinitionOnModel();
      this.args.onToggleEdit(true);
    }

    onCancel() {
      this.args.onToggleEdit(false);
    }
    /**
     * Determine the current stage of the component based on the plan output and editing state.
     *
     * @returns {"review"|"edit"|"read"} The current stage, either 'review', 'edit', or 'read'.
     */


    get stage() {
      if (this.planOutput) return 'review';
      if (this.isEditing) return 'edit';else return 'read';
    }

    dismissPlanMessage() {
      this.shouldShowPlanMessage = false;
    }
    /**
     * A task that performs the job parsing and planning.
     * On error, it calls the onError method.
     */


    /**
     * Handle errors, setting the error object and scrolling to the error message.
     *
     * @param {Error} err - The error object.
     * @param {"parse"|"plan"|"run"} type - The type of error (e.g., 'parse', 'plan', 'run').
     * @param {string} actionMsg - A message describing the action that caused the error.
     */
    onError(err, type, actionMsg) {
      const error = (0, _messageFromAdapterError.default)(err, actionMsg);
      this.error = {
        message: error,
        type
      };
      this.scrollToError();
    }

    reset() {
      this.planOutput = null;
      this.error = null;
    }

    scrollToError() {
      if (!this.config.get('isTest')) {
        window.scrollTo(0, 0);
      }
    }
    /**
     * Update the job's definition or definition variables based on the provided type.
     *
     * @param {string} value - The new value for the job's definition or definition variables.
     * @param {_codemirror} _codemirror - The CodeMirror instance (not used in this action).
     * @param {"hclVariables"|"job"} [type='job'] - The type of code being updated ('job' or 'hclVariables').
     */


    updateCode(value, _codemirror) {
      let type = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'job';

      if (!this.args.job.isDestroying && !this.args.job.isDestroyed) {
        if (type === 'hclVariables') {
          this.args.job.set('_newDefinitionVariables', value);
        } else {
          this.args.job.set('_newDefinition', value);
        }
      }
    }
    /**
     * Toggle the wrapping of the job's definition or definition variables.
     */


    toggleWrap() {
      this.shouldWrapCode = !this.shouldWrapCode;
    }
    /**
     * Read the content of an uploaded job specification file and update the job's definition.
     *
     * @param {Event} event - The input change event containing the selected file.
     */


    uploadJobSpec(event) {
      const reader = new FileReader();

      reader.onload = () => {
        this.updateCode(reader.result);
      };

      const [file] = event.target.files;
      reader.readAsText(file);
    }
    /**
     * Download the job's definition or specification as .nomad.hcl file locally
     */


    async handleSaveAsFile() {
      try {
        const blob = new Blob([this.args.job._newDefinition], {
          type: 'text/plain'
        });
        const url = window.URL.createObjectURL(blob);
        const downloadAnchor = document.createElement('a');
        downloadAnchor.href = url;
        downloadAnchor.target = '_blank';
        downloadAnchor.rel = 'noopener noreferrer';
        downloadAnchor.download = 'jobspec.nomad.hcl';
        downloadAnchor.click();
        downloadAnchor.remove();
        window.URL.revokeObjectURL(url);
        this.notifications.add({
          title: 'jobspec.nomad.hcl has been downloaded',
          color: 'success',
          icon: 'download'
        });
      } catch (err) {
        this.notifications.add({
          title: 'Error downloading file',
          message: err.message,
          color: 'critical',
          sticky: true
        });
      }
    }
    /**
     * Get the definition or specification based on the view type.
     *
     * @returns {string} The definition or specification in JSON or HCL format.
     */


    get definition() {
      if (this.args.view === 'full-definition') {
        return JSON.stringify(this.args.definition, null, 2);
      } else {
        return this.args.specification;
      }
    }
    /**
     * Convert a JSON object to an HCL string.
     *
     * @param {Object} obj - The JSON object to convert.
     * @returns {string} The HCL string representation of the JSON object.
     */


    jsonToHcl(obj) {
      const hclLines = [];

      for (const key in obj) {
        const value = obj[key];
        const hclValue = typeof value === 'string' ? `"${value}"` : value;
        hclLines.push(`${key}=${hclValue}\n`);
      }

      return hclLines.join('\n');
    }

    get data() {
      var _this$args$variables, _this$args$variables2;

      return {
        cancelable: this.args.cancelable,
        definition: this.definition,
        format: this.args.format,
        hasSpecification: !!this.args.specification,
        hasVariables: !!((_this$args$variables = this.args.variables) !== null && _this$args$variables !== void 0 && _this$args$variables.flags) || !!((_this$args$variables2 = this.args.variables) !== null && _this$args$variables2 !== void 0 && _this$args$variables2.literal),
        job: this.args.job,
        planOutput: this.planOutput,
        shouldShowPlanMessage: this.shouldShowPlanMessage,
        view: this.args.view,
        shouldWrap: this.shouldWrapCode
      };
    }

    get fns() {
      return {
        onCancel: this.onCancel,
        onDismissPlanMessage: this.dismissPlanMessage,
        onEdit: this.edit,
        onPlan: this.plan,
        onReset: this.reset,
        onSaveAs: this.args.handleSaveAsTemplate,
        onSaveFile: this.handleSaveAsFile,
        onSubmit: this.submit,
        onSelect: this.args.onSelect,
        onUpdate: this.updateCode,
        onUpload: this.uploadJobSpec,
        onToggleWrap: this.toggleWrap
      };
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "config", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "store", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "notifications", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, "error", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return null;
    }
  }), _descriptor5 = _applyDecoratedDescriptor(_class.prototype, "planOutput", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return null;
    }
  }), _applyDecoratedDescriptor(_class.prototype, "setDefinitionOnModel", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "setDefinitionOnModel"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "edit", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "edit"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "onCancel", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "onCancel"), _class.prototype), _descriptor6 = _applyDecoratedDescriptor(_class.prototype, "shouldShowPlanMessage", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor7 = _applyDecoratedDescriptor(_class.prototype, "shouldWrapCode", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class.prototype, "dismissPlanMessage", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "dismissPlanMessage"), _class.prototype), _descriptor8 = _applyDecoratedDescriptor(_class.prototype, "plan", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor9 = _applyDecoratedDescriptor(_class.prototype, "submit", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class.prototype, "reset", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "reset"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "updateCode", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "updateCode"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "toggleWrap", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "toggleWrap"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "uploadJobSpec", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "uploadJobSpec"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "handleSaveAsFile", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "handleSaveAsFile"), _class.prototype)), _class));
  _exports.default = JobEditor;
});
;define("nomad-ui/components/job-editor/alert", ["exports", "@glimmer/component", "@ember/object", "@glimmer/tracking"], function (_exports, _component, _object, _tracking) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _descriptor;

  0; //eaimeta@70e063a35619d71f0,"@glimmer/component",0,"@ember/object",0,"@glimmer/tracking"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let Alert = (_class = class Alert extends _component.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "shouldShowAlert", _descriptor, this);
    }

    dismissAlert() {
      this.shouldShowAlert = false;
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "shouldShowAlert", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return true;
    }
  }), _applyDecoratedDescriptor(_class.prototype, "dismissAlert", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "dismissAlert"), _class.prototype)), _class);
  _exports.default = Alert;
});
;define("nomad-ui/components/job-page", ["exports", "@ember/object", "@glimmer/component", "@glimmer/tracking", "nomad-ui/utils/message-from-adapter-error"], function (_exports, _object, _component, _tracking, _messageFromAdapterError) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _descriptor;

  0; //eaimeta@70e063a35619d71f0,"@ember/object",0,"@glimmer/component",0,"@glimmer/tracking",0,"nomad-ui/utils/message-from-adapter-error"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let JobPage = (_class = class JobPage extends _component.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "errorMessage", _descriptor, this);
    }

    clearErrorMessage() {
      this.errorMessage = null;
    }

    handleError(errorObject) {
      this.errorMessage = errorObject;
    }

    setError(err) {
      this.errorMessage = {
        title: 'Could Not Force Launch',
        description: (0, _messageFromAdapterError.default)(err, 'submit jobs')
      };
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "errorMessage", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return null;
    }
  }), _applyDecoratedDescriptor(_class.prototype, "clearErrorMessage", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "clearErrorMessage"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "handleError", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "handleError"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "setError", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "setError"), _class.prototype)), _class);
  _exports.default = JobPage;
});
;define("nomad-ui/components/job-page/parameterized-child", ["exports", "@ember/object", "@ember/object/computed", "@glimmer/component"], function (_exports, _object, _computed, _component) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _class, _descriptor;

  0; //eaimeta@70e063a35619d71f0,"@ember/object",0,"@ember/object/computed",0,"@glimmer/component"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let ParameterizedChild = (_dec = (0, _computed.alias)('args.job.decodedPayload'), _dec2 = (0, _object.computed)('payload'), (_class = class ParameterizedChild extends _component.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "payload", _descriptor, this);
    }

    get payloadJSON() {
      let json;

      try {
        json = JSON.parse(this.payload);
      } catch (e) {// Swallow error and fall back to plain text rendering
      }

      return json;
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "payload", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class.prototype, "payloadJSON", [_dec2], Object.getOwnPropertyDescriptor(_class.prototype, "payloadJSON"), _class.prototype)), _class));
  _exports.default = ParameterizedChild;
});
;define("nomad-ui/components/job-page/parts/children", ["exports", "@ember/component", "@ember/service", "@ember/object", "@ember/object/computed", "nomad-ui/mixins/sortable", "@ember-decorators/component"], function (_exports, _component, _service, _object, _computed, _sortable, _component2) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5;

  0; //eaimeta@70e063a35619d71f0,"@ember/component",0,"@ember/service",0,"@ember/object",0,"@ember/object/computed",0,"nomad-ui/mixins/sortable",0,"@ember-decorators/component",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let Children = (_dec = (0, _component2.classNames)('boxed-section'), _dec2 = (0, _computed.readOnly)('userSettings.pageSize'), _dec3 = (0, _object.computed)('job.taskGroups.[]'), _dec4 = (0, _object.computed)('job.children.[]'), _dec5 = (0, _computed.alias)('children'), _dec6 = (0, _computed.alias)('listSorted'), classic(_class = _dec(_class = (_class2 = class Children extends _component.default.extend(_sortable.default) {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "system", _descriptor, this);

      _initializerDefineProperty(this, "userSettings", _descriptor2, this);

      _defineProperty(this, "job", null);

      _defineProperty(this, "sortProperty", null);

      _defineProperty(this, "sortDescending", null);

      _defineProperty(this, "currentPage", null);

      _initializerDefineProperty(this, "pageSize", _descriptor3, this);

      _initializerDefineProperty(this, "listToSort", _descriptor4, this);

      _initializerDefineProperty(this, "sortedChildren", _descriptor5, this);
    }

    get taskGroups() {
      return this.get('job.taskGroups') || [];
    }

    get children() {
      return this.get('job.children') || [];
    }

    resetPagination() {
      if (this.currentPage != null) {
        this.set('currentPage', 1);
      }
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "system", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "userSettings", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, "pageSize", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "taskGroups", [_dec3], Object.getOwnPropertyDescriptor(_class2.prototype, "taskGroups"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "children", [_dec4], Object.getOwnPropertyDescriptor(_class2.prototype, "children"), _class2.prototype), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, "listToSort", [_dec5], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor5 = _applyDecoratedDescriptor(_class2.prototype, "sortedChildren", [_dec6], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class2)) || _class) || _class);
  _exports.default = Children;
});
;define("nomad-ui/components/job-page/parts/error", ["exports", "@ember/component", "@ember-decorators/component"], function (_exports, _component, _component2) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _class;

  0; //eaimeta@70e063a35619d71f0,"@ember/component",0,"@ember-decorators/component",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let Error = (_dec = (0, _component2.tagName)(''), classic(_class = _dec(_class = class Error extends _component.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "errorMessage", null);
    }

    onDismiss() {}

  }) || _class) || _class);
  _exports.default = Error;
});
;define("nomad-ui/components/job-page/parts/placement-failures", ["exports", "@ember/component", "@ember-decorators/component"], function (_exports, _component, _component2) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _class;

  0; //eaimeta@70e063a35619d71f0,"@ember/component",0,"@ember-decorators/component",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let PlacementFailures = (_dec = (0, _component2.tagName)(''), classic(_class = _dec(_class = class PlacementFailures extends _component.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "job", null);
    }

  }) || _class) || _class);
  _exports.default = PlacementFailures;
});
;define("nomad-ui/components/job-page/parts/recent-allocations", ["exports", "@ember/component", "@ember/object", "@ember/service", "nomad-ui/utils/classes/promise-array", "@ember-decorators/component", "nomad-ui/utils/properties/local-storage"], function (_exports, _component, _object, _service, _promiseArray, _component2, _localStorage) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _class, _class2, _descriptor, _descriptor2;

  0; //eaimeta@70e063a35619d71f0,"@ember/component",0,"@ember/object",0,"@ember/service",0,"nomad-ui/utils/classes/promise-array",0,"@ember-decorators/component",0,"ember-classic-decorator",0,"nomad-ui/utils/properties/local-storage"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let RecentAllocations = (_dec = (0, _component2.classNames)('boxed-section'), _dec2 = (0, _localStorage.default)('nomadShowSubTasks', true), _dec3 = (0, _object.computed)('job.allocations.@each.modifyIndex'), classic(_class = _dec(_class = (_class2 = class RecentAllocations extends _component.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "router", _descriptor, this);

      _defineProperty(this, "sortProperty", 'modifyIndex');

      _defineProperty(this, "sortDescending", true);

      _initializerDefineProperty(this, "showSubTasks", _descriptor2, this);
    }

    toggleShowSubTasks(e) {
      e.preventDefault();
      this.set('showSubTasks', !this.get('showSubTasks'));
    }

    get sortedAllocations() {
      return _promiseArray.default.create({
        promise: this.get('job.allocations').then(allocations => allocations.sortBy('modifyIndex').reverse().slice(0, 5))
      });
    }

    gotoAllocation(allocation) {
      this.router.transitionTo('allocations.allocation', allocation.id);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "router", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "showSubTasks", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "toggleShowSubTasks", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "toggleShowSubTasks"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "sortedAllocations", [_dec3], Object.getOwnPropertyDescriptor(_class2.prototype, "sortedAllocations"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "gotoAllocation", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "gotoAllocation"), _class2.prototype)), _class2)) || _class) || _class);
  _exports.default = RecentAllocations;
});
;define("nomad-ui/components/job-page/parts/stats-box", ["exports", "@glimmer/component", "@ember/service"], function (_exports, _component, _service) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _descriptor;

  0; //eaimeta@70e063a35619d71f0,"@glimmer/component",0,"@ember/service"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let StatsBox = (_class = class StatsBox extends _component.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "system", _descriptor, this);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "system", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class);
  _exports.default = StatsBox;
});
;define("nomad-ui/components/job-page/parts/summary-chart", ["exports", "@glimmer/component", "@ember/object", "@ember/string", "@ember/service"], function (_exports, _component, _object, _string, _service) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _descriptor;

  0; //eaimeta@70e063a35619d71f0,"@glimmer/component",0,"@ember/object",0,"@ember/string",0,"@ember/service"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let JobPagePartsSummaryChartComponent = (_class = class JobPagePartsSummaryChartComponent extends _component.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "router", _descriptor, this);
    }

    gotoAllocations(status) {
      this.router.transitionTo('jobs.job.allocations', this.args.job, {
        queryParams: {
          status: JSON.stringify(status),
          namespace: this.args.job.get('namespace.name')
        }
      });
    }

    onSliceClick(ev, slice) {
      this.gotoAllocations([(0, _string.camelize)(slice.label)]);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "router", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class.prototype, "gotoAllocations", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "gotoAllocations"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "onSliceClick", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "onSliceClick"), _class.prototype)), _class);
  _exports.default = JobPagePartsSummaryChartComponent;
});
;define("nomad-ui/components/job-page/parts/summary", ["exports", "@ember/component", "@ember/object", "@ember/service", "@ember-decorators/component"], function (_exports, _component, _object, _service, _component2) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _class, _class2, _descriptor;

  0; //eaimeta@70e063a35619d71f0,"@ember/component",0,"@ember/object",0,"@ember/service",0,"@ember-decorators/component",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let Summary = (_dec = (0, _component2.classNames)('boxed-section'), _dec2 = (0, _object.computed)('forceCollapsed'), classic(_class = _dec(_class = (_class2 = class Summary extends _component.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "router", _descriptor, this);

      _defineProperty(this, "job", null);

      _defineProperty(this, "forceCollapsed", false);
    }

    get isExpanded() {
      if (this.forceCollapsed) return false;
      const storageValue = window.localStorage.nomadExpandJobSummary;
      return storageValue != null ? JSON.parse(storageValue) : true;
    }

    persist(item, isOpen) {
      window.localStorage.nomadExpandJobSummary = isOpen;
      this.notifyPropertyChange('isExpanded');
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "router", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "isExpanded", [_dec2], Object.getOwnPropertyDescriptor(_class2.prototype, "isExpanded"), _class2.prototype)), _class2)) || _class) || _class);
  _exports.default = Summary;
});
;define("nomad-ui/components/job-page/parts/task-groups", ["exports", "@ember/component", "@ember/object", "@ember/service", "@ember/object/computed", "nomad-ui/mixins/sortable", "@ember-decorators/component"], function (_exports, _component, _object, _service, _computed, _sortable, _component2) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _class, _class2, _descriptor, _descriptor2, _descriptor3;

  0; //eaimeta@70e063a35619d71f0,"@ember/component",0,"@ember/object",0,"@ember/service",0,"@ember/object/computed",0,"nomad-ui/mixins/sortable",0,"@ember-decorators/component",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let TaskGroups = (_dec = (0, _component2.classNames)('boxed-section'), _dec2 = (0, _object.computed)('job.taskGroups.[]'), _dec3 = (0, _computed.alias)('taskGroups'), _dec4 = (0, _computed.alias)('listSorted'), classic(_class = _dec(_class = (_class2 = class TaskGroups extends _component.default.extend(_sortable.default) {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "router", _descriptor, this);

      _defineProperty(this, "job", null);

      _defineProperty(this, "sortProperty", null);

      _defineProperty(this, "sortDescending", null);

      _initializerDefineProperty(this, "listToSort", _descriptor2, this);

      _initializerDefineProperty(this, "sortedTaskGroups", _descriptor3, this);
    }

    gotoTaskGroup(taskGroup) {
      this.router.transitionTo('jobs.job.task-group', this.job, taskGroup.name);
    }

    get taskGroups() {
      return this.get('job.taskGroups') || [];
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "router", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "gotoTaskGroup", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "gotoTaskGroup"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "taskGroups", [_dec2], Object.getOwnPropertyDescriptor(_class2.prototype, "taskGroups"), _class2.prototype), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "listToSort", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, "sortedTaskGroups", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class2)) || _class) || _class);
  _exports.default = TaskGroups;
});
;define("nomad-ui/components/job-page/parts/title", ["exports", "@ember/component", "ember-concurrency", "@ember/service", "nomad-ui/utils/message-from-adapter-error", "@ember-decorators/component"], function (_exports, _component, _emberConcurrency, _service, _messageFromAdapterError, _component2) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5;

  0; //eaimeta@70e063a35619d71f0,"@ember/component",0,"ember-concurrency",0,"@ember/service",0,"nomad-ui/utils/message-from-adapter-error",0,"@ember-decorators/component",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let Title = (_dec = (0, _component2.tagName)(''), _dec2 = (0, _emberConcurrency.task)(function* () {
    let withNotifications = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;

    try {
      const job = this.job;
      yield job.stop(); // Eagerly update the job status to avoid flickering

      job.set('status', 'dead');

      if (withNotifications) {
        this.notifications.add({
          title: 'Job Stopped',
          message: `${job.name} has been stopped`,
          color: 'success'
        });
      }
    } catch (err) {
      this.handleError({
        title: 'Could Not Stop Job',
        description: (0, _messageFromAdapterError.default)(err, 'stop jobs')
      });
    }
  }), _dec3 = (0, _emberConcurrency.task)(function* () {
    try {
      const job = this.job;
      yield job.purge();
      this.notifications.add({
        title: 'Job Purged',
        message: `You have purged ${job.name}`,
        color: 'success'
      });
      this.router.transitionTo('jobs');
    } catch (err) {
      this.handleError({
        title: 'Error purging job',
        description: (0, _messageFromAdapterError.default)(err, 'purge jobs')
      });
    }
  }), _dec4 = (0, _emberConcurrency.task)(function* () {
    let withNotifications = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
    const job = this.job;
    const definition = yield job.fetchRawDefinition();
    delete definition.Stop;
    job.set('_newDefinition', JSON.stringify(definition));

    try {
      yield job.parse();
      yield job.update(); // Eagerly update the job status to avoid flickering

      job.set('status', 'running');

      if (withNotifications) {
        this.notifications.add({
          title: 'Job Started',
          message: `${job.name} has started`,
          color: 'success'
        });
      }
    } catch (err) {
      this.handleError({
        title: 'Could Not Start Job',
        description: (0, _messageFromAdapterError.default)(err, 'start jobs')
      });
    }
  }), classic(_class = _dec(_class = (_class2 = class Title extends _component.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "router", _descriptor, this);

      _initializerDefineProperty(this, "notifications", _descriptor2, this);

      _defineProperty(this, "job", null);

      _defineProperty(this, "title", null);

      _initializerDefineProperty(this, "stopJob", _descriptor3, this);

      _initializerDefineProperty(this, "purgeJob", _descriptor4, this);

      _initializerDefineProperty(this, "startJob", _descriptor5, this);
    }

    handleError() {}
    /**
     * @param {boolean} withNotifications - Whether to show a toast on success, as when triggered by keyboard shortcut
     */


  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "router", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "notifications", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, "stopJob", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, "purgeJob", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor5 = _applyDecoratedDescriptor(_class2.prototype, "startJob", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class2)) || _class) || _class);
  _exports.default = Title;
});
;define("nomad-ui/components/job-page/periodic", ["exports", "@ember/object", "@glimmer/component"], function (_exports, _object, _component) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class;

  0; //eaimeta@70e063a35619d71f0,"@ember/object",0,"@glimmer/component"eaimeta@70e063a35619d71f

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  let Periodic = (_class = class Periodic extends _component.default {
    forceLaunch(setError) {
      this.args.job.forcePeriodic().catch(err => {
        setError(err);
      });
    }

  }, (_applyDecoratedDescriptor(_class.prototype, "forceLaunch", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "forceLaunch"), _class.prototype)), _class);
  _exports.default = Periodic;
});
;define("nomad-ui/components/job-row", ["exports", "@ember/component", "@ember/object", "@ember/service", "nomad-ui/helpers/lazy-click", "@ember-decorators/component"], function (_exports, _component, _object, _service, _lazyClick, _component2) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _class, _class2, _descriptor, _descriptor2, _descriptor3;

  0; //eaimeta@70e063a35619d71f0,"@ember/component",0,"@ember/object",0,"@ember/service",0,"nomad-ui/helpers/lazy-click",0,"@ember-decorators/component",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let JobRow = (_dec = (0, _component2.tagName)('tr'), _dec2 = (0, _component2.classNames)('job-row', 'is-interactive'), _dec3 = (0, _component2.attributeBindings)('data-test-job-row'), classic(_class = _dec(_class = _dec2(_class = _dec3(_class = (_class2 = class JobRow extends _component.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "router", _descriptor, this);

      _initializerDefineProperty(this, "store", _descriptor2, this);

      _initializerDefineProperty(this, "system", _descriptor3, this);

      _defineProperty(this, "job", null);

      _defineProperty(this, "context", 'independent');
    }

    click(event) {
      (0, _lazyClick.lazyClick)([this.gotoJob, event]);
    }

    gotoJob() {
      const {
        job
      } = this;
      this.router.transitionTo('jobs.job.index', job.idWithNamespace);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "router", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "store", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, "system", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "gotoJob", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "gotoJob"), _class2.prototype)), _class2)) || _class) || _class) || _class) || _class);
  _exports.default = JobRow;
});
;define("nomad-ui/components/job-service-row", ["exports", "@glimmer/component", "@ember/object", "@ember/service"], function (_exports, _component, _object, _service) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _descriptor, _descriptor2;

  0; //eaimeta@70e063a35619d71f0,"@glimmer/component",0,"@ember/object",0,"@ember/service"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let JobServiceRowComponent = (_class = class JobServiceRowComponent extends _component.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "router", _descriptor, this);

      _initializerDefineProperty(this, "system", _descriptor2, this);
    }

    gotoService(service) {
      if (service.provider === 'nomad') {
        this.router.transitionTo('jobs.job.services.service', service.name, {
          queryParams: {
            level: service.level
          },
          instances: service.instances
        });
      }
    }

    get consulRedirectLink() {
      var _this$system$agent$ge, _this$system$agent$ge2, _this$system$agent$ge3;

      return (_this$system$agent$ge = this.system.agent.get('config')) === null || _this$system$agent$ge === void 0 ? void 0 : (_this$system$agent$ge2 = _this$system$agent$ge.UI) === null || _this$system$agent$ge2 === void 0 ? void 0 : (_this$system$agent$ge3 = _this$system$agent$ge2.Consul) === null || _this$system$agent$ge3 === void 0 ? void 0 : _this$system$agent$ge3.BaseUIURL;
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "router", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "system", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class.prototype, "gotoService", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "gotoService"), _class.prototype)), _class);
  _exports.default = JobServiceRowComponent;
});
;define("nomad-ui/components/job-status/allocation-status-block", ["exports", "@ember/component", "@ember/template-factory", "@glimmer/component"], function (_exports, _component, _templateFactory, _component2) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@glimmer/component",0,"@ember/template-factory"eaimeta@70e063a35619d71f

  const __COLOCATED_TEMPLATE__ = (0, _templateFactory.createTemplateFactory)(
  /*
    {{!
    Copyright (c) HashiCorp, Inc.
    SPDX-License-Identifier: MPL-2.0
  ~}}
  
  <div
    class="allocation-status-block {{unless this.countToShow "rest-only"}}"
    style={{html-safe (concat "width: " @width "px")}}
  >
    {{#if this.countToShow}}
      <div class="ungrouped-allocs">
        {{#each (range 0 this.countToShow) as |i|}}
          <JobStatus::IndividualAllocation
            @allocation={{get @allocs i}}
            @status={{@status}}
            @health={{@health}}
            @canary={{@canary}}
            @steady={{@steady}}
          />
        {{/each}}
      </div>
    {{/if}}
    {{#if this.remaining}}
  
      <ConditionalLinkTo
        @condition={{not (eq @status "unplaced")}}
        @route="jobs.job.allocations"
        @model={{@allocs.0.job}}
        @query={{hash status=(concat '["' @status '"]') version=(concat '[' @allocs.0.jobVersion ']')}}
        @class="represented-allocation rest {{@status}} {{@health}} {{@canary}}"
        @label="View all {{@status}} allocations"
      >
        <span class="rest-count">{{#if this.countToShow}}+{{/if}}{{this.remaining}}</span>
        {{#unless @steady}}
          {{#if (eq @canary "canary")}}
            <span class="alloc-canary-indicator" />
          {{/if}}
          {{#if (eq @status "running")}}
            <span class="alloc-health-indicator">
              {{#if (eq @health "healthy")}}
                <FlightIcon @name="check" @color="#25ba81" />
              {{else if (eq @health "unhealthy")}}
                <FlightIcon @name="x" @color="#c84034" />
              {{else}}
                <FlightIcon @name="running" @color="black" />
              {{/if}}
            </span>
          {{/if}}
        {{/unless}}
      </ConditionalLinkTo>
    {{/if}}
  </div>
  */
  {
    "id": "y2ABpBRh",
    "block": "[[[10,0],[15,0,[29,[\"allocation-status-block \",[52,[51,[30,0,[\"countToShow\"]]],\"rest-only\"]]]],[15,5,[28,[37,1],[[28,[37,2],[\"width: \",[30,1],\"px\"],null]],null]],[12],[1,\"\\n\"],[41,[30,0,[\"countToShow\"]],[[[1,\"    \"],[10,0],[14,0,\"ungrouped-allocs\"],[12],[1,\"\\n\"],[42,[28,[37,5],[[28,[37,5],[[28,[37,6],[0,[30,0,[\"countToShow\"]]],null]],null]],null],null,[[[1,\"        \"],[8,[39,7],null,[[\"@allocation\",\"@status\",\"@health\",\"@canary\",\"@steady\"],[[28,[37,8],[[30,3],[30,2]],null],[30,4],[30,5],[30,6],[30,7]]],null],[1,\"\\n\"]],[2]],null],[1,\"    \"],[13],[1,\"\\n\"]],[]],null],[41,[30,0,[\"remaining\"]],[[[1,\"\\n    \"],[8,[39,9],null,[[\"@condition\",\"@route\",\"@model\",\"@query\",\"@class\",\"@label\"],[[28,[37,10],[[28,[37,11],[[30,4],\"unplaced\"],null]],null],\"jobs.job.allocations\",[30,3,[\"0\",\"job\"]],[28,[37,12],null,[[\"status\",\"version\"],[[28,[37,2],[\"[\\\"\",[30,4],\"\\\"]\"],null],[28,[37,2],[\"[\",[30,3,[\"0\",\"jobVersion\"]],\"]\"],null]]]],[29,[\"represented-allocation rest \",[30,4],\" \",[30,5],\" \",[30,6]]],[29,[\"View all \",[30,4],\" allocations\"]]]],[[\"default\"],[[[[1,\"\\n      \"],[10,1],[14,0,\"rest-count\"],[12],[41,[30,0,[\"countToShow\"]],[[[1,\"+\"]],[]],null],[1,[30,0,[\"remaining\"]]],[13],[1,\"\\n\"],[41,[51,[30,7]],[[[41,[28,[37,11],[[30,6],\"canary\"],null],[[[1,\"          \"],[10,1],[14,0,\"alloc-canary-indicator\"],[12],[13],[1,\"\\n\"]],[]],null],[41,[28,[37,11],[[30,4],\"running\"],null],[[[1,\"          \"],[10,1],[14,0,\"alloc-health-indicator\"],[12],[1,\"\\n\"],[41,[28,[37,11],[[30,5],\"healthy\"],null],[[[1,\"              \"],[8,[39,13],null,[[\"@name\",\"@color\"],[\"check\",\"#25ba81\"]],null],[1,\"\\n\"]],[]],[[[41,[28,[37,11],[[30,5],\"unhealthy\"],null],[[[1,\"              \"],[8,[39,13],null,[[\"@name\",\"@color\"],[\"x\",\"#c84034\"]],null],[1,\"\\n\"]],[]],[[[1,\"              \"],[8,[39,13],null,[[\"@name\",\"@color\"],[\"running\",\"black\"]],null],[1,\"\\n            \"]],[]]]],[]]],[1,\"          \"],[13],[1,\"\\n\"]],[]],null]],[]],null],[1,\"    \"]],[]]]]],[1,\"\\n\"]],[]],null],[13]],[\"@width\",\"i\",\"@allocs\",\"@status\",\"@health\",\"@canary\",\"@steady\"],false,[\"unless\",\"html-safe\",\"concat\",\"if\",\"each\",\"-track-array\",\"range\",\"job-status/individual-allocation\",\"get\",\"conditional-link-to\",\"not\",\"eq\",\"hash\",\"flight-icon\"]]",
    "moduleName": "nomad-ui/components/job-status/allocation-status-block.hbs",
    "isStrictMode": false
  });
  /**
   * Copyright (c) HashiCorp, Inc.
   * SPDX-License-Identifier: MPL-2.0
   */


  class JobStatusAllocationStatusBlockComponent extends _component2.default {
    get countToShow() {
      const restWidth = 50;
      const restGap = 10;
      let cts = Math.floor((this.args.width - (restWidth + restGap)) / 42); // Either show 3+ or show only a single/remaining box

      return cts > 3 ? cts : 0;
    }

    get remaining() {
      return this.args.count - this.countToShow;
    }

  }

  _exports.default = JobStatusAllocationStatusBlockComponent;

  window.__CLASSIC_OWN_CLASSES__.set(JobStatusAllocationStatusBlockComponent, true);

  (0, _component.setComponentTemplate)(__COLOCATED_TEMPLATE__, JobStatusAllocationStatusBlockComponent);
});
;define("nomad-ui/components/job-status/allocation-status-row", ["exports", "@ember/component", "@ember/template-factory", "@glimmer/component", "@ember/object", "@glimmer/tracking"], function (_exports, _component, _templateFactory, _component2, _object, _tracking) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _descriptor;

  0; //eaimeta@70e063a35619d71f0,"@glimmer/component",0,"@ember/object",0,"@glimmer/tracking",0,"@ember/template-factory"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const __COLOCATED_TEMPLATE__ = (0, _templateFactory.createTemplateFactory)(
  /*
    {{!
    Copyright (c) HashiCorp, Inc.
    SPDX-License-Identifier: MPL-2.0
  ~}}
  
  <div class="allocation-status-row">
    {{#if this.showSummaries}}
      <div class="alloc-status-summaries"
        {{did-insert this.captureElement}}
        {{window-resize this.reflow}}
      >
        {{#each-in @allocBlocks as |status allocsByStatus|}}
          {{#each-in allocsByStatus as |health allocsByHealth|}}
            {{#each-in allocsByHealth as |canary allocsByCanary|}}
              {{#if (gt allocsByCanary.length 0)}}
                <JobStatus::AllocationStatusBlock
                  @status={{status}}
                  @health={{health}}
                  @canary={{canary}}
                  @steady={{@steady}}
                  @count={{allocsByCanary.length}}
                  @width={{compute (action this.calcPerc) allocsByCanary.length}}
                  @allocs={{allocsByCanary}} />
              {{/if}}
            {{/each-in}}
          {{/each-in}}
        {{/each-in}}
      </div>
    {{else}}
      <div class="ungrouped-allocs"
        {{did-insert this.captureElement}}
        {{window-resize this.reflow}}
      >
        {{#each-in @allocBlocks as |status allocsByStatus|}}
          {{#each-in allocsByStatus as |health allocsByHealth|}}
            {{#each-in allocsByHealth as |canary allocsByCanary|}}
              {{#if (gt allocsByCanary.length 0)}}
                {{#each (range 0 allocsByCanary.length) as |i|}}
                      <JobStatus::IndividualAllocation
                        @allocation={{get allocsByCanary i}}
                        @status={{status}}
                        @health={{health}}
                        @canary={{canary}}
                        @steady={{@steady}}
                      />
                {{/each}}
              {{/if}}
            {{/each-in}}
          {{/each-in}}
        {{/each-in}}
      </div>
    {{/if}}
  </div>
         
  
  */
  {
    "id": "0KBo9Qcb",
    "block": "[[[10,0],[14,0,\"allocation-status-row\"],[12],[1,\"\\n\"],[41,[30,0,[\"showSummaries\"]],[[[1,\"    \"],[11,0],[24,0,\"alloc-status-summaries\"],[4,[38,1],[[30,0,[\"captureElement\"]]],null],[4,[38,2],[[30,0,[\"reflow\"]]],null],[12],[1,\"\\n\"],[42,[28,[37,4],[[30,1]],null],null,[[[42,[28,[37,4],[[30,2]],null],null,[[[42,[28,[37,4],[[30,4]],null],null,[[[41,[28,[37,5],[[30,6,[\"length\"]],0],null],[[[1,\"              \"],[8,[39,6],null,[[\"@status\",\"@health\",\"@canary\",\"@steady\",\"@count\",\"@width\",\"@allocs\"],[[30,3],[30,5],[30,7],[30,8],[30,6,[\"length\"]],[28,[37,7],[[28,[37,8],[[30,0],[30,0,[\"calcPerc\"]]],null],[30,6,[\"length\"]]],null],[30,6]]],null],[1,\"\\n\"]],[]],null]],[6,7]],null]],[4,5]],null]],[2,3]],null],[1,\"    \"],[13],[1,\"\\n\"]],[]],[[[1,\"    \"],[11,0],[24,0,\"ungrouped-allocs\"],[4,[38,1],[[30,0,[\"captureElement\"]]],null],[4,[38,2],[[30,0,[\"reflow\"]]],null],[12],[1,\"\\n\"],[42,[28,[37,4],[[30,1]],null],null,[[[42,[28,[37,4],[[30,9]],null],null,[[[42,[28,[37,4],[[30,11]],null],null,[[[41,[28,[37,5],[[30,13,[\"length\"]],0],null],[[[42,[28,[37,9],[[28,[37,9],[[28,[37,10],[0,[30,13,[\"length\"]]],null]],null]],null],null,[[[1,\"                    \"],[8,[39,11],null,[[\"@allocation\",\"@status\",\"@health\",\"@canary\",\"@steady\"],[[28,[37,12],[[30,13],[30,15]],null],[30,10],[30,12],[30,14],[30,8]]],null],[1,\"\\n\"]],[15]],null]],[]],null]],[13,14]],null]],[11,12]],null]],[9,10]],null],[1,\"    \"],[13],[1,\"\\n\"]],[]]],[13],[1,\"\\n       \\n\"]],[\"@allocBlocks\",\"allocsByStatus\",\"status\",\"allocsByHealth\",\"health\",\"allocsByCanary\",\"canary\",\"@steady\",\"allocsByStatus\",\"status\",\"allocsByHealth\",\"health\",\"allocsByCanary\",\"canary\",\"i\"],false,[\"if\",\"did-insert\",\"window-resize\",\"each\",\"-each-in\",\"gt\",\"job-status/allocation-status-block\",\"compute\",\"action\",\"-track-array\",\"range\",\"job-status/individual-allocation\",\"get\"]]",
    "moduleName": "nomad-ui/components/job-status/allocation-status-row.hbs",
    "isStrictMode": false
  });
  /**
   * Copyright (c) HashiCorp, Inc.
   * SPDX-License-Identifier: MPL-2.0
   */
  // @ts-check


  const ALLOC_BLOCK_WIDTH = 32;
  const ALLOC_BLOCK_GAP = 10;
  let JobStatusAllocationStatusRowComponent = (_class = class JobStatusAllocationStatusRowComponent extends _component2.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "width", _descriptor, this);
    }

    get allocBlockSlots() {
      return Object.values(this.args.allocBlocks).flatMap(statusObj => Object.values(statusObj)).flatMap(healthObj => Object.values(healthObj)).reduce((totalSlots, allocsByCanary) => totalSlots + (allocsByCanary ? allocsByCanary.length : 0), 0);
    }

    get showSummaries() {
      return this.allocBlockSlots * (ALLOC_BLOCK_WIDTH + ALLOC_BLOCK_GAP) - ALLOC_BLOCK_GAP > this.width;
    }

    calcPerc(count) {
      return count / this.allocBlockSlots * this.width;
    }

    reflow(element) {
      this.width = element.clientWidth;
    }

    captureElement(element) {
      this.width = element.clientWidth;
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "width", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return 0;
    }
  }), _applyDecoratedDescriptor(_class.prototype, "reflow", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "reflow"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "captureElement", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "captureElement"), _class.prototype)), _class);
  _exports.default = JobStatusAllocationStatusRowComponent;
  (0, _component.setComponentTemplate)(__COLOCATED_TEMPLATE__, JobStatusAllocationStatusRowComponent);
});
;define("nomad-ui/components/job-status/deployment-history", ["exports", "@ember/component", "@ember/template-factory", "@glimmer/component", "@ember/object/computed", "@glimmer/tracking", "@ember/service", "@ember/object"], function (_exports, _component, _templateFactory, _component2, _computed, _tracking, _service, _object) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _class, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6;

  0; //eaimeta@70e063a35619d71f0,"@glimmer/component",0,"@ember/object/computed",0,"@glimmer/tracking",0,"@ember/service",0,"@ember/object",0,"@ember/template-factory"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const __COLOCATED_TEMPLATE__ = (0, _templateFactory.createTemplateFactory)(
  /*
    {{!
    Copyright (c) HashiCorp, Inc.
    SPDX-License-Identifier: MPL-2.0
  ~}}
  
  <div class="deployment-history {{if this.isHidden "hidden"}}">
    <header>
      <h4 class="title is-5">
        <button
          class="button"
          {{on "click" (action (mut this.isHidden) (if this.isHidden false true))}}
          type="button"
        >
          {{or @title "Deployment History"}}
          {{#if this.isHidden}}
            {{x-icon "chevron-down"}}
          {{else}}
            {{x-icon "chevron-up"}}
          {{/if}}
        </button>
      </h4>
      {{#unless this.isHidden}}
        <SearchBox
          data-test-history-search
          @searchTerm={{mut this.searchTerm}}
          @placeholder="Search events..."
        />
      {{/unless}}
    </header>
    {{#unless this.isHidden}}
    <div class="timeline-container">
      <ol class="timeline">
        {{#each this.history as |deployment-log|}}
          <li class="timeline-object {{if (eq deployment-log.exitCode 1) "error"}}">
            <div class="boxed-section-head is-light">
              <LinkTo @route="allocations.allocation" @model={{deployment-log.state.allocation.id}} class="allocation-reference">{{deployment-log.state.allocation.shortId}}</LinkTo>
              <span><strong>{{deployment-log.type}}:</strong> {{deployment-log.message}}</span>
              <span class="pull-right">
                {{format-ts deployment-log.time}}
              </span>
            </div>
          </li>
        {{else}}
          {{#if this.errorState}}
            <li class="timeline-object">
              <div class="boxed-section-head is-light">
                <span>Error loading deployment history</span>
              </div>
            </li>
          {{else}}
            {{#if this.deploymentAllocations.length}}
              {{#if this.searchTerm}}
                <li class="timeline-object" data-test-history-search-no-match>
                  <div class="boxed-section-head is-light">
                    <span>No events match {{this.searchTerm}}</span>
                  </div>
                </li>
              {{else}}
                <li class="timeline-object">
                  <div class="boxed-section-head is-light">
                    <span>No deployment events yet</span>
                  </div>
                </li>
              {{/if}}
            {{else}}
              <li class="timeline-object">
                <div class="boxed-section-head is-light">
                  <span>Loading deployment events</span>
                </div>
              </li>
            {{/if}}
          {{/if}}
        {{/each}}
      </ol>
  </div>
    {{/unless}}
  </div>
  
  */
  {
    "id": "H6C8rDR6",
    "block": "[[[10,0],[15,0,[29,[\"deployment-history \",[52,[30,0,[\"isHidden\"]],\"hidden\"]]]],[12],[1,\"\\n  \"],[10,\"header\"],[12],[1,\"\\n    \"],[10,\"h4\"],[14,0,\"title is-5\"],[12],[1,\"\\n      \"],[11,\"button\"],[24,0,\"button\"],[24,4,\"button\"],[4,[38,1],[\"click\",[28,[37,2],[[30,0],[28,[37,3],[[30,0,[\"isHidden\"]]],null],[52,[30,0,[\"isHidden\"]],false,true]],null]],null],[12],[1,\"\\n        \"],[1,[28,[35,4],[[30,1],\"Deployment History\"],null]],[1,\"\\n\"],[41,[30,0,[\"isHidden\"]],[[[1,\"          \"],[1,[28,[35,5],[\"chevron-down\"],null]],[1,\"\\n\"]],[]],[[[1,\"          \"],[1,[28,[35,5],[\"chevron-up\"],null]],[1,\"\\n\"]],[]]],[1,\"      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n\"],[41,[51,[30,0,[\"isHidden\"]]],[[[1,\"      \"],[8,[39,7],null,[[\"@searchTerm\",\"@placeholder\"],[[28,[37,3],[[30,0,[\"searchTerm\"]]],null],\"Search events...\"]],null],[1,\"\\n\"]],[]],null],[1,\"  \"],[13],[1,\"\\n\"],[41,[51,[30,0,[\"isHidden\"]]],[[[1,\"  \"],[10,0],[14,0,\"timeline-container\"],[12],[1,\"\\n    \"],[10,\"ol\"],[14,0,\"timeline\"],[12],[1,\"\\n\"],[42,[28,[37,9],[[28,[37,9],[[30,0,[\"history\"]]],null]],null],null,[[[1,\"        \"],[10,\"li\"],[15,0,[29,[\"timeline-object \",[52,[28,[37,10],[[30,2,[\"exitCode\"]],1],null],\"error\"]]]],[12],[1,\"\\n          \"],[10,0],[14,0,\"boxed-section-head is-light\"],[12],[1,\"\\n            \"],[8,[39,11],[[24,0,\"allocation-reference\"]],[[\"@route\",\"@model\"],[\"allocations.allocation\",[30,2,[\"state\",\"allocation\",\"id\"]]]],[[\"default\"],[[[[1,[30,2,[\"state\",\"allocation\",\"shortId\"]]]],[]]]]],[1,\"\\n            \"],[10,1],[12],[10,\"strong\"],[12],[1,[30,2,[\"type\"]]],[1,\":\"],[13],[1,\" \"],[1,[30,2,[\"message\"]]],[13],[1,\"\\n            \"],[10,1],[14,0,\"pull-right\"],[12],[1,\"\\n              \"],[1,[28,[35,12],[[30,2,[\"time\"]]],null]],[1,\"\\n            \"],[13],[1,\"\\n          \"],[13],[1,\"\\n        \"],[13],[1,\"\\n\"]],[2]],[[[41,[30,0,[\"errorState\"]],[[[1,\"          \"],[10,\"li\"],[14,0,\"timeline-object\"],[12],[1,\"\\n            \"],[10,0],[14,0,\"boxed-section-head is-light\"],[12],[1,\"\\n              \"],[10,1],[12],[1,\"Error loading deployment history\"],[13],[1,\"\\n            \"],[13],[1,\"\\n          \"],[13],[1,\"\\n\"]],[]],[[[41,[30,0,[\"deploymentAllocations\",\"length\"]],[[[41,[30,0,[\"searchTerm\"]],[[[1,\"              \"],[10,\"li\"],[14,0,\"timeline-object\"],[12],[1,\"\\n                \"],[10,0],[14,0,\"boxed-section-head is-light\"],[12],[1,\"\\n                  \"],[10,1],[12],[1,\"No events match \"],[1,[30,0,[\"searchTerm\"]]],[13],[1,\"\\n                \"],[13],[1,\"\\n              \"],[13],[1,\"\\n\"]],[]],[[[1,\"              \"],[10,\"li\"],[14,0,\"timeline-object\"],[12],[1,\"\\n                \"],[10,0],[14,0,\"boxed-section-head is-light\"],[12],[1,\"\\n                  \"],[10,1],[12],[1,\"No deployment events yet\"],[13],[1,\"\\n                \"],[13],[1,\"\\n              \"],[13],[1,\"\\n\"]],[]]]],[]],[[[1,\"            \"],[10,\"li\"],[14,0,\"timeline-object\"],[12],[1,\"\\n              \"],[10,0],[14,0,\"boxed-section-head is-light\"],[12],[1,\"\\n                \"],[10,1],[12],[1,\"Loading deployment events\"],[13],[1,\"\\n              \"],[13],[1,\"\\n            \"],[13],[1,\"\\n\"]],[]]]],[]]]],[]]],[1,\"    \"],[13],[1,\"\\n\"],[13],[1,\"\\n\"]],[]],null],[13],[1,\"\\n\"]],[\"@title\",\"deployment-log\"],false,[\"if\",\"on\",\"action\",\"mut\",\"or\",\"x-icon\",\"unless\",\"search-box\",\"each\",\"-track-array\",\"eq\",\"link-to\",\"format-ts\"]]",
    "moduleName": "nomad-ui/components/job-status/deployment-history.hbs",
    "isStrictMode": false
  });
  /**
   * Copyright (c) HashiCorp, Inc.
   * SPDX-License-Identifier: MPL-2.0
   */
  // @ts-check


  const MAX_NUMBER_OF_EVENTS = 500;
  let JobStatusDeploymentHistoryComponent = (_dec = (0, _computed.alias)('args.deployment.job'), _dec2 = (0, _computed.alias)('args.deployment.versionNumber'), (_class = class JobStatusDeploymentHistoryComponent extends _component2.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "notifications", _descriptor, this);

      _initializerDefineProperty(this, "isHidden", _descriptor2, this);

      _initializerDefineProperty(this, "errorState", _descriptor3, this);

      _initializerDefineProperty(this, "job", _descriptor4, this);

      _initializerDefineProperty(this, "deploymentVersion", _descriptor5, this);

      _initializerDefineProperty(this, "searchTerm", _descriptor6, this);
    }

    /**
     * Get all allocations for the job
     * @type { import('../../models/allocation').default[] }
     */
    get jobAllocations() {
      return this.job.get('allocations');
    }
    /**
     * Filter the job's allocations to only those that are part of the deployment
     * @type { import('../../models/allocation').default[] }
     */


    get deploymentAllocations() {
      return this.args.allocations || this.jobAllocations.filter(alloc => alloc.jobVersion === this.deploymentVersion);
    }
    /**
     * Map the deployment's allocations to their task events, in reverse-chronological order
     * @type { import('../../models/task-event').default[] }
     */


    get history() {
      try {
        return this.deploymentAllocations.map(a => a.get('states').map(s => s.events.content).flat()).flat().filter(a => this.containsSearchTerm(a)).sort((a, b) => a.get('time') - b.get('time')).reverse().slice(0, MAX_NUMBER_OF_EVENTS);
      } catch (e) {
        this.triggerError(e);
        return [];
      }
    }

    triggerError(error) {
      this.errorState = error;
      this.notifications.add({
        title: 'Could not fetch deployment history',
        message: error,
        color: 'critical'
      });
    } // #region search

    /**
     * @type { string }
     */


    /**
     * @param { import('../../models/task-event').default } taskEvent
     * @returns { boolean }
     */
    containsSearchTerm(taskEvent) {
      return taskEvent.message.toLowerCase().includes(this.searchTerm.toLowerCase()) || taskEvent.type.toLowerCase().includes(this.searchTerm.toLowerCase()) || taskEvent.state.allocation.shortId.includes(this.searchTerm.toLowerCase());
    } // #endregion search


  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "notifications", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "isHidden", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return this.args.isHidden;
    }
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "errorState", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return null;
    }
  }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, "job", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor5 = _applyDecoratedDescriptor(_class.prototype, "deploymentVersion", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class.prototype, "triggerError", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "triggerError"), _class.prototype), _descriptor6 = _applyDecoratedDescriptor(_class.prototype, "searchTerm", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return '';
    }
  })), _class));
  _exports.default = JobStatusDeploymentHistoryComponent;
  (0, _component.setComponentTemplate)(__COLOCATED_TEMPLATE__, JobStatusDeploymentHistoryComponent);
});
;define("nomad-ui/components/job-status/failed-or-lost", ["exports", "@ember/component", "@ember/template-factory", "@ember/component/template-only"], function (_exports, _component, _templateFactory, _templateOnly) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/component/template-only",0,"@ember/template-factory"eaimeta@70e063a35619d71f

  const __COLOCATED_TEMPLATE__ = (0, _templateFactory.createTemplateFactory)(
  /*
    {{!
    Copyright (c) HashiCorp, Inc.
    SPDX-License-Identifier: MPL-2.0
  ~}}
  
  <section class="failed-or-lost">
    <h4>Replaced Allocations</h4>
    <div class="failed-or-lost-links">
      {{#if @supportsRescheduling}}
        <span>
          <Hds::TooltipButton @text="Allocations that have been rescheduled, on another node if possible, due to failure or manual restart" aria-label="Info">
            <FlightIcon @name="info" />
          </Hds::TooltipButton>
          <ConditionalLinkTo
            @condition={{@rescheduledAllocs.length}}
            @route="jobs.job.allocations"
            @model={{@job}}
            @query={{hash scheduling='["has-been-rescheduled"]' version=(concat '[' @job.latestDeployment.versionNumber ']')}}
            @label="View Allocations"
          >
            {{@rescheduledAllocs.length}} Rescheduled
          </ConditionalLinkTo>
        </span>
      {{/if}}
  
      <span>
        <Hds::TooltipButton @text="Allocations that have been restarted in-place due to a task failure or manual restart" aria-label="Info">
          <FlightIcon @name="info" />
        </Hds::TooltipButton>
        <ConditionalLinkTo
          @condition={{@restartedAllocs.length}}
          @route="jobs.job.allocations"
          @model={{@job}}
          @query={{hash scheduling='["has-been-restarted"]' version=(concat '[' @job.latestDeployment.versionNumber ']')}}
          @label="View Allocations"
        >
          {{@restartedAllocs.length}} Restarted
        </ConditionalLinkTo>
      </span>
    </div>
  </section>
  */
  {
    "id": "5q0rE40k",
    "block": "[[[10,\"section\"],[14,0,\"failed-or-lost\"],[12],[1,\"\\n  \"],[10,\"h4\"],[12],[1,\"Replaced Allocations\"],[13],[1,\"\\n  \"],[10,0],[14,0,\"failed-or-lost-links\"],[12],[1,\"\\n\"],[41,[30,1],[[[1,\"      \"],[10,1],[12],[1,\"\\n        \"],[8,[39,1],[[24,\"aria-label\",\"Info\"]],[[\"@text\"],[\"Allocations that have been rescheduled, on another node if possible, due to failure or manual restart\"]],[[\"default\"],[[[[1,\"\\n          \"],[8,[39,2],null,[[\"@name\"],[\"info\"]],null],[1,\"\\n        \"]],[]]]]],[1,\"\\n        \"],[8,[39,3],null,[[\"@condition\",\"@route\",\"@model\",\"@query\",\"@label\"],[[30,2,[\"length\"]],\"jobs.job.allocations\",[30,3],[28,[37,4],null,[[\"scheduling\",\"version\"],[\"[\\\"has-been-rescheduled\\\"]\",[28,[37,5],[\"[\",[30,3,[\"latestDeployment\",\"versionNumber\"]],\"]\"],null]]]],\"View Allocations\"]],[[\"default\"],[[[[1,\"\\n          \"],[1,[30,2,[\"length\"]]],[1,\" Rescheduled\\n        \"]],[]]]]],[1,\"\\n      \"],[13],[1,\"\\n\"]],[]],null],[1,\"\\n    \"],[10,1],[12],[1,\"\\n      \"],[8,[39,1],[[24,\"aria-label\",\"Info\"]],[[\"@text\"],[\"Allocations that have been restarted in-place due to a task failure or manual restart\"]],[[\"default\"],[[[[1,\"\\n        \"],[8,[39,2],null,[[\"@name\"],[\"info\"]],null],[1,\"\\n      \"]],[]]]]],[1,\"\\n      \"],[8,[39,3],null,[[\"@condition\",\"@route\",\"@model\",\"@query\",\"@label\"],[[30,4,[\"length\"]],\"jobs.job.allocations\",[30,3],[28,[37,4],null,[[\"scheduling\",\"version\"],[\"[\\\"has-been-restarted\\\"]\",[28,[37,5],[\"[\",[30,3,[\"latestDeployment\",\"versionNumber\"]],\"]\"],null]]]],\"View Allocations\"]],[[\"default\"],[[[[1,\"\\n        \"],[1,[30,4,[\"length\"]]],[1,\" Restarted\\n      \"]],[]]]]],[1,\"\\n    \"],[13],[1,\"\\n  \"],[13],[1,\"\\n\"],[13]],[\"@supportsRescheduling\",\"@rescheduledAllocs\",\"@job\",\"@restartedAllocs\"],false,[\"if\",\"hds/tooltip-button\",\"flight-icon\",\"conditional-link-to\",\"hash\",\"concat\"]]",
    "moduleName": "nomad-ui/components/job-status/failed-or-lost.hbs",
    "isStrictMode": false
  });

  var _default = (0, _component.setComponentTemplate)(__COLOCATED_TEMPLATE__, (0, _templateOnly.default)());

  _exports.default = _default;
});
;define("nomad-ui/components/job-status/individual-allocation", ["exports", "@ember/component", "@ember/template-factory", "@ember/component/template-only"], function (_exports, _component, _templateFactory, _templateOnly) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/component/template-only",0,"@ember/template-factory"eaimeta@70e063a35619d71f

  const __COLOCATED_TEMPLATE__ = (0, _templateFactory.createTemplateFactory)(
  /*
    {{!
    Copyright (c) HashiCorp, Inc.
    SPDX-License-Identifier: MPL-2.0
  ~}}
  
  <Hds::TooltipButton @text="{{get @allocation "shortId"}}" aria-label="Allocation" @extraTippyOptions={{hash trigger=(if (eq @status "unplaced") "manual")}}>
    <ConditionalLinkTo
      @condition={{not (eq @status "unplaced")}}
      @route="allocations.allocation"
      @model={{@allocation.id}}
      @class="represented-allocation {{@status}} {{@health}} {{@canary}}"
      @label="View allocation"
    >
      {{#unless @steady}}
        {{#if (eq @canary "canary")}}
          <span class="alloc-canary-indicator" />
        {{/if}}
        {{#if (eq @status "running")}}
          <span class="alloc-health-indicator">
            {{#if (eq @health "healthy")}}
              <FlightIcon @name="check" @color="white" />
            {{else if (eq @health "unhealthy")}}
              <FlightIcon @name="x" @color="white" />
            {{else}}
              <FlightIcon @name="running" @color="white" />
            {{/if}}
          </span>
        {{/if}}
      {{/unless}}
    </ConditionalLinkTo>
  </Hds::TooltipButton>
  */
  {
    "id": "iEeaDAib",
    "block": "[[[8,[39,0],[[24,\"aria-label\",\"Allocation\"]],[[\"@text\",\"@extraTippyOptions\"],[[29,[[28,[37,1],[[30,1],\"shortId\"],null]]],[28,[37,2],null,[[\"trigger\"],[[52,[28,[37,4],[[30,2],\"unplaced\"],null],\"manual\"]]]]]],[[\"default\"],[[[[1,\"\\n  \"],[8,[39,5],null,[[\"@condition\",\"@route\",\"@model\",\"@class\",\"@label\"],[[28,[37,6],[[28,[37,4],[[30,2],\"unplaced\"],null]],null],\"allocations.allocation\",[30,1,[\"id\"]],[29,[\"represented-allocation \",[30,2],\" \",[30,3],\" \",[30,4]]],\"View allocation\"]],[[\"default\"],[[[[1,\"\\n\"],[41,[51,[30,5]],[[[41,[28,[37,4],[[30,4],\"canary\"],null],[[[1,\"        \"],[10,1],[14,0,\"alloc-canary-indicator\"],[12],[13],[1,\"\\n\"]],[]],null],[41,[28,[37,4],[[30,2],\"running\"],null],[[[1,\"        \"],[10,1],[14,0,\"alloc-health-indicator\"],[12],[1,\"\\n\"],[41,[28,[37,4],[[30,3],\"healthy\"],null],[[[1,\"            \"],[8,[39,8],null,[[\"@name\",\"@color\"],[\"check\",\"white\"]],null],[1,\"\\n\"]],[]],[[[41,[28,[37,4],[[30,3],\"unhealthy\"],null],[[[1,\"            \"],[8,[39,8],null,[[\"@name\",\"@color\"],[\"x\",\"white\"]],null],[1,\"\\n\"]],[]],[[[1,\"            \"],[8,[39,8],null,[[\"@name\",\"@color\"],[\"running\",\"white\"]],null],[1,\"\\n          \"]],[]]]],[]]],[1,\"        \"],[13],[1,\"\\n\"]],[]],null]],[]],null],[1,\"  \"]],[]]]]],[1,\"\\n\"]],[]]]]]],[\"@allocation\",\"@status\",\"@health\",\"@canary\",\"@steady\"],false,[\"hds/tooltip-button\",\"get\",\"hash\",\"if\",\"eq\",\"conditional-link-to\",\"not\",\"unless\",\"flight-icon\"]]",
    "moduleName": "nomad-ui/components/job-status/individual-allocation.hbs",
    "isStrictMode": false
  });

  var _default = (0, _component.setComponentTemplate)(__COLOCATED_TEMPLATE__, (0, _templateOnly.default)());

  _exports.default = _default;
});
;define("nomad-ui/components/job-status/latest-deployment", ["exports", "@ember/component", "@ember/template-factory", "@glimmer/component", "@ember/object/computed"], function (_exports, _component, _templateFactory, _component2, _computed) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _class, _descriptor, _descriptor2;

  0; //eaimeta@70e063a35619d71f0,"@glimmer/component",0,"@ember/object/computed",0,"@ember/template-factory"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const __COLOCATED_TEMPLATE__ = (0, _templateFactory.createTemplateFactory)(
  /*
    {{!
    Copyright (c) HashiCorp, Inc.
    SPDX-License-Identifier: MPL-2.0
  ~}}
  
  <section class="latest-deployment">
    <LinkTo @route="jobs.job.deployments" @model={{@job}}>
      <h4>
        Latest Deployment
        <FlightIcon @name="arrow-right" />
      </h4>
    </LinkTo>
    <Hds::Badge @text={{capitalize this.status}} @size="small" @color={{this.statusColor}} @type="filled" />
    <p>{{this.healthyAllocs}}/{{this.desiredTotal}} Healthy</p>
  </section>
  */
  {
    "id": "n83+JG1M",
    "block": "[[[10,\"section\"],[14,0,\"latest-deployment\"],[12],[1,\"\\n  \"],[8,[39,0],null,[[\"@route\",\"@model\"],[\"jobs.job.deployments\",[30,1]]],[[\"default\"],[[[[1,\"\\n    \"],[10,\"h4\"],[12],[1,\"\\n      Latest Deployment\\n      \"],[8,[39,1],null,[[\"@name\"],[\"arrow-right\"]],null],[1,\"\\n    \"],[13],[1,\"\\n  \"]],[]]]]],[1,\"\\n  \"],[8,[39,2],null,[[\"@text\",\"@size\",\"@color\",\"@type\"],[[28,[37,3],[[30,0,[\"status\"]]],null],\"small\",[30,0,[\"statusColor\"]],\"filled\"]],null],[1,\"\\n  \"],[10,2],[12],[1,[30,0,[\"healthyAllocs\"]]],[1,\"/\"],[1,[30,0,[\"desiredTotal\"]]],[1,\" Healthy\"],[13],[1,\"\\n\"],[13]],[\"@job\"],false,[\"link-to\",\"flight-icon\",\"hds/badge\",\"capitalize\"]]",
    "moduleName": "nomad-ui/components/job-status/latest-deployment.hbs",
    "isStrictMode": false
  });
  /**
   * Copyright (c) HashiCorp, Inc.
   * SPDX-License-Identifier: MPL-2.0
   */


  let JobStatusLatestDeploymentComponent = (_dec = (0, _computed.alias)('args.job.latestDeployment'), _dec2 = (0, _computed.alias)('deployment.status'), (_class = class JobStatusLatestDeploymentComponent extends _component2.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "deployment", _descriptor, this);

      _initializerDefineProperty(this, "status", _descriptor2, this);
    }

    get healthyAllocs() {
      return this.deployment.get('taskGroupSummaries').mapBy('healthyAllocs').reduce((sum, count) => sum + count, 0);
    }

    get desiredTotal() {
      return this.deployment.get('taskGroupSummaries').mapBy('desiredTotal').reduce((sum, count) => sum + count, 0);
    }

    get statusColor() {
      switch (this.status) {
        case 'successful':
          return 'success';

        case 'failed':
          return 'critical';

        default:
          return 'neutral';
      }
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "deployment", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "status", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class));
  _exports.default = JobStatusLatestDeploymentComponent;
  (0, _component.setComponentTemplate)(__COLOCATED_TEMPLATE__, JobStatusLatestDeploymentComponent);
});
;define("nomad-ui/components/job-status/panel", ["exports", "@ember/component", "@ember/template-factory", "@glimmer/component", "@ember/service"], function (_exports, _component, _templateFactory, _component2, _service) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _descriptor;

  0; //eaimeta@70e063a35619d71f0,"@glimmer/component",0,"@ember/service",0,"@ember/template-factory"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const __COLOCATED_TEMPLATE__ = (0, _templateFactory.createTemplateFactory)(
  /*
    {{!
    Copyright (c) HashiCorp, Inc.
    SPDX-License-Identifier: MPL-2.0
  ~}}
  
  {{#if this.isActivelyDeploying}}
    <JobStatus::Panel::Deploying @job={{@job}} @handleError={{@handleError}} />
  {{else}}
    <JobStatus::Panel::Steady @job={{@job}} @statusMode={{@statusMode}} @setStatusMode={{@setStatusMode}} @nodes={{this.nodes}} />
  {{/if}}
  
  */
  {
    "id": "uAn4DTB3",
    "block": "[[[41,[30,0,[\"isActivelyDeploying\"]],[[[1,\"  \"],[8,[39,1],null,[[\"@job\",\"@handleError\"],[[30,1],[30,2]]],null],[1,\"\\n\"]],[]],[[[1,\"  \"],[8,[39,2],null,[[\"@job\",\"@statusMode\",\"@setStatusMode\",\"@nodes\"],[[30,1],[30,3],[30,4],[30,0,[\"nodes\"]]]],null],[1,\"\\n\"]],[]]]],[\"@job\",\"@handleError\",\"@statusMode\",\"@setStatusMode\"],false,[\"if\",\"job-status/panel/deploying\",\"job-status/panel/steady\"]]",
    "moduleName": "nomad-ui/components/job-status/panel.hbs",
    "isStrictMode": false
  });
  /**
   * Copyright (c) HashiCorp, Inc.
   * SPDX-License-Identifier: MPL-2.0
   */
  // @ts-check


  let JobStatusPanelComponent = (_class = class JobStatusPanelComponent extends _component2.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "store", _descriptor, this);
    }

    get isActivelyDeploying() {
      return this.args.job.get('latestDeployment.isRunning');
    }

    get nodes() {
      if (!this.args.job.get('hasClientStatus')) {
        return [];
      }

      return this.store.peekAll('node');
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "store", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class);
  _exports.default = JobStatusPanelComponent;
  (0, _component.setComponentTemplate)(__COLOCATED_TEMPLATE__, JobStatusPanelComponent);
});
;define("nomad-ui/components/job-status/panel/deploying", ["exports", "@ember/component", "@ember/template-factory", "@glimmer/component", "ember-concurrency", "@glimmer/tracking", "@ember/object/computed", "nomad-ui/utils/message-from-adapter-error", "nomad-ui/utils/allocation-client-statuses"], function (_exports, _component, _templateFactory, _component2, _emberConcurrency, _tracking, _computed, _messageFromAdapterError, _allocationClientStatuses) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _class, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7;

  0; //eaimeta@70e063a35619d71f0,"@glimmer/component",0,"ember-concurrency",0,"@glimmer/tracking",0,"@ember/object/computed",0,"nomad-ui/utils/message-from-adapter-error",0,"nomad-ui/utils/allocation-client-statuses",0,"@ember/template-factory"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const __COLOCATED_TEMPLATE__ = (0, _templateFactory.createTemplateFactory)(
  /*
    {{!
    Copyright (c) HashiCorp, Inc.
    SPDX-License-Identifier: MPL-2.0
  ~}}
  
  <div class="job-status-panel boxed-section active-deployment" data-test-job-status-panel>
    <div class="boxed-section-head hds-foreground-primary">
      <div class="boxed-section-row"
        {{did-insert (action this.establishOldAllocBlockIDs)}}
        >
          <h2>Status:
            <Hds::Badge @text="Deploying {{@job.latestDeployment.shortId}}" @color="highlight" @type="filled" />
          </h2>
          <div class="pull-right">
            {{#if @job.latestDeployment.isRunning}}
              <Hds::Button
                data-test-fail
                {{on "click" (perform this.fail)}}
                disabled={{this.fail.isRunning}}
                @color="critical"
                @text="Fail Deployment"
                {{keyboard-shortcut
                  label="Fail Deployment"
                  pattern=(array "f" "a" "i" "l")
                  action=(perform this.fail)
                }}
              />
            {{/if}}
          </div>
        </div>
      </div>
      <div class="boxed-section-body {{if @job.latestDeployment.requiresPromotion "requires-promotion"}}">
        {{#if @job.latestDeployment.requiresPromotion}}
          <div class="canary-promotion-alert">
            {{#if this.canariesHealthy}}
              <Hds::Alert @type="inline" @color="warning" as |A|>
                <A.Title>Deployment requires promotion</A.Title>
                <A.Description>Your deployment requires manual promotion — all canary allocations have passed their health checks.</A.Description>
                <A.Button
                  {{keyboard-shortcut
                    pattern=(array "p" "r" "o" "m" "o" "t" "e")
                    action=(action (perform this.promote))
                  }}
                  data-test-promote-canary @text="Promote Canary" @color="primary" {{on "click" (perform this.promote)}} />
              </Hds::Alert>
            {{else}}
              {{#if this.someCanariesHaveFailed}}
                <Hds::Alert @type="inline" @color="critical" as |A|>
                  <A.Title>Some Canaries have failed</A.Title>
                  <A.Description>Your canary allocations have failed their health checks. Please have a look at the error logs and task events for the allocations in question.</A.Description>
                </Hds::Alert>
              {{else}}
                <Hds::Alert @type="inline" @color="neutral" as |A|>
                  <A.Title>Checking Canary health</A.Title>
                  {{#if this.deploymentIsAutoPromoted}}
                    <A.Description>Your canary allocations are being placed and health-checked. If they pass, they will be automatically promoted and your deployment will continue.</A.Description>
                  {{else}}
                    <A.Description>Your job requires manual promotion, and your canary allocations are being placed and health-checked.</A.Description>
                  {{/if}}
                </Hds::Alert>
              {{/if}}
            {{/if}}
          </div>
        {{/if}}
  
        <div class="deployment-allocations">
          {{#if this.oldVersionAllocBlockIDs.length}}
            <h4 class="title is-5 previous-allocations-heading" data-test-old-allocation-tally>
              <span>
                Previous allocations: {{#if this.oldVersionAllocBlocks.running}}{{this.oldRunningHealthyAllocBlocks.length}} running{{/if}}
              </span>
  
              <section class="versions">
                <ul>
                  {{#each this.oldVersions as |versionObj|}}
                    <li>
                      <LinkTo data-version={{versionObj.version}} @route="jobs.job.allocations" @model={{@job}} @query={{hash version=(concat '[' versionObj.version ']')    status=(concat '["running", "pending", "failed"]')         }}>
                        {{#if (eq versionObj.version "unknown")}}
                          <Hds::Badge @text="unknown" class="version-label" @type="inverted" />
                        {{else}}
                          <Hds::Badge @text={{concat "v" versionObj.version}} class="version-label" @type="inverted" />
                        {{/if}}
                        <Hds::Badge @text={{versionObj.allocations.length}} class="version-count" />
                      </LinkTo>
                    </li>
                  {{/each}}
                </ul>
              </section>
            </h4>
            <div class="previous-allocations">
              <JobStatus::AllocationStatusRow @allocBlocks={{this.oldVersionAllocBlocks}} @steady={{true}} />
            </div>
            <div class="legend-and-summary" data-test-previous-allocations-legend>
              <legend>
                <span class="legend-item {{if (eq (get this.oldRunningHealthyAllocBlocks "length") 0) "faded"}}">
                  <span class="represented-allocation running"></span>
                  <span class="count">{{get this.oldRunningHealthyAllocBlocks "length"}} Running</span>
                </span>
                <span class="legend-item {{if (eq (get this.oldCompleteHealthyAllocBlocks "length") 0) "faded"}}">
                  <span class="represented-allocation complete"></span>
                  <span class="count">{{get this.oldCompleteHealthyAllocBlocks "length"}} Complete</span>
                </span>
              </legend>
            </div>
  
          {{/if}}
  
          <h4 class="title is-5" data-test-new-allocation-tally><span>New allocations: {{this.newRunningHealthyAllocBlocks.length}}/{{this.totalAllocs}} running and healthy</span>
            <span class="versions">
            <LinkTo data-version={{@job.version}} @route="jobs.job.allocations" @model={{@job}} @query={{hash version=(concat '[' @job.version ']')}}>
              <Hds::Badge @text={{concat "v" @job.version}} @type="inverted" class="version-label" />
            </LinkTo>
            </span>
          </h4>
          <div class="new-allocations">
            <JobStatus::AllocationStatusRow @allocBlocks={{this.newVersionAllocBlocks}} />
          </div>
        </div>
  
        <div class="legend-and-summary" data-test-new-allocations-legend>
  
          {{!-- Legend by Status, then by Health, then by Canary --}}
          <legend>
            {{#each-in this.newAllocsByStatus as |status count|}}
              <ConditionalLinkTo
                @condition={{and (not (eq status "unplaced")) (gt count 0)}}
                @route="jobs.job.allocations"
                @model={{@job}}
                @query={{hash status=(concat '["' status '"]') version=(concat '[' this.job.latestDeployment.versionNumber ']')}}
                @class="legend-item {{if (eq count 0) "faded"}}"
                @label="View {{status}} allocations"
              >
                <span class="represented-allocation {{status}}"></span>
                <span class="count">{{count}} {{capitalize status}}</span>
              </ConditionalLinkTo>
            {{/each-in}}
  
            {{#each-in this.newAllocsByHealth as |health count|}}
              <span class="legend-item {{if (eq count 0) "faded"}}">
                <span class="represented-allocation legend-example {{health}}">
                  <span class="alloc-health-indicator">
                    {{#if (eq health "healthy")}}
                      <FlightIcon @name="check" @color="#25ba81" />
                    {{else if (eq health "unhealthy")}}
                      <FlightIcon @name="x" @color="#c84034" />
                    {{else}}
                      <FlightIcon @name="running" @color="black" class="not-animated" />
                    {{/if}}
                  </span>
                </span>
                <span class="count">{{count}} {{humanize health}}</span>
              </span>
            {{/each-in}}
  
            <span class="legend-item {{if (eq this.newAllocsByCanary.canary 0) "faded"}}">
              <span class="represented-allocation legend-example canary">
                <span class="alloc-canary-indicator" />
              </span>
              <span class="count">{{this.newAllocsByCanary.canary}} Canary</span>
            </span>
  
          </legend>
  
          <JobStatus::FailedOrLost
            @rescheduledAllocs={{this.rescheduledAllocs}}
            @restartedAllocs={{this.restartedAllocs}}
            @job={{@job}}
            @supportsRescheduling={{true}}
          />
  
        </div>
  
        <div class="history-and-params">
          <JobStatus::DeploymentHistory @deployment={{@job.latestDeployment}} />
          <JobStatus::UpdateParams @job={{@job}} />
        </div>
  
      </div>
  </div>
  
  */
  {
    "id": "izOGusKd",
    "block": "[[[10,0],[14,0,\"job-status-panel boxed-section active-deployment\"],[12],[1,\"\\n  \"],[10,0],[14,0,\"boxed-section-head hds-foreground-primary\"],[12],[1,\"\\n    \"],[11,0],[24,0,\"boxed-section-row\"],[4,[38,0],[[28,[37,1],[[30,0],[30,0,[\"establishOldAllocBlockIDs\"]]],null]],null],[12],[1,\"\\n        \"],[10,\"h2\"],[12],[1,\"Status:\\n          \"],[8,[39,2],null,[[\"@text\",\"@color\",\"@type\"],[[29,[\"Deploying \",[30,1,[\"latestDeployment\",\"shortId\"]]]],\"highlight\",\"filled\"]],null],[1,\"\\n        \"],[13],[1,\"\\n        \"],[10,0],[14,0,\"pull-right\"],[12],[1,\"\\n\"],[41,[30,1,[\"latestDeployment\",\"isRunning\"]],[[[1,\"            \"],[8,[39,4],[[16,\"disabled\",[30,0,[\"fail\",\"isRunning\"]]],[4,[38,5],[\"click\",[28,[37,6],[[30,0,[\"fail\"]]],null]],null],[4,[38,7],null,[[\"label\",\"pattern\",\"action\"],[\"Fail Deployment\",[28,[37,8],[\"f\",\"a\",\"i\",\"l\"],null],[28,[37,6],[[30,0,[\"fail\"]]],null]]]]],[[\"@color\",\"@text\"],[\"critical\",\"Fail Deployment\"]],null],[1,\"\\n\"]],[]],null],[1,\"        \"],[13],[1,\"\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n    \"],[10,0],[15,0,[29,[\"boxed-section-body \",[52,[30,1,[\"latestDeployment\",\"requiresPromotion\"]],\"requires-promotion\"]]]],[12],[1,\"\\n\"],[41,[30,1,[\"latestDeployment\",\"requiresPromotion\"]],[[[1,\"        \"],[10,0],[14,0,\"canary-promotion-alert\"],[12],[1,\"\\n\"],[41,[30,0,[\"canariesHealthy\"]],[[[1,\"            \"],[8,[39,9],null,[[\"@type\",\"@color\"],[\"inline\",\"warning\"]],[[\"default\"],[[[[1,\"\\n              \"],[8,[30,2,[\"Title\"]],null,null,[[\"default\"],[[[[1,\"Deployment requires promotion\"]],[]]]]],[1,\"\\n              \"],[8,[30,2,[\"Description\"]],null,null,[[\"default\"],[[[[1,\"Your deployment requires manual promotion — all canary allocations have passed their health checks.\"]],[]]]]],[1,\"\\n              \"],[8,[30,2,[\"Button\"]],[[4,[38,7],null,[[\"pattern\",\"action\"],[[28,[37,8],[\"p\",\"r\",\"o\",\"m\",\"o\",\"t\",\"e\"],null],[28,[37,1],[[30,0],[28,[37,6],[[30,0,[\"promote\"]]],null]],null]]]],[4,[38,5],[\"click\",[28,[37,6],[[30,0,[\"promote\"]]],null]],null]],[[\"@text\",\"@color\"],[\"Promote Canary\",\"primary\"]],null],[1,\"\\n            \"]],[2]]]]],[1,\"\\n\"]],[]],[[[41,[30,0,[\"someCanariesHaveFailed\"]],[[[1,\"              \"],[8,[39,9],null,[[\"@type\",\"@color\"],[\"inline\",\"critical\"]],[[\"default\"],[[[[1,\"\\n                \"],[8,[30,3,[\"Title\"]],null,null,[[\"default\"],[[[[1,\"Some Canaries have failed\"]],[]]]]],[1,\"\\n                \"],[8,[30,3,[\"Description\"]],null,null,[[\"default\"],[[[[1,\"Your canary allocations have failed their health checks. Please have a look at the error logs and task events for the allocations in question.\"]],[]]]]],[1,\"\\n              \"]],[3]]]]],[1,\"\\n\"]],[]],[[[1,\"              \"],[8,[39,9],null,[[\"@type\",\"@color\"],[\"inline\",\"neutral\"]],[[\"default\"],[[[[1,\"\\n                \"],[8,[30,4,[\"Title\"]],null,null,[[\"default\"],[[[[1,\"Checking Canary health\"]],[]]]]],[1,\"\\n\"],[41,[30,0,[\"deploymentIsAutoPromoted\"]],[[[1,\"                  \"],[8,[30,4,[\"Description\"]],null,null,[[\"default\"],[[[[1,\"Your canary allocations are being placed and health-checked. If they pass, they will be automatically promoted and your deployment will continue.\"]],[]]]]],[1,\"\\n\"]],[]],[[[1,\"                  \"],[8,[30,4,[\"Description\"]],null,null,[[\"default\"],[[[[1,\"Your job requires manual promotion, and your canary allocations are being placed and health-checked.\"]],[]]]]],[1,\"\\n\"]],[]]],[1,\"              \"]],[4]]]]],[1,\"\\n\"]],[]]]],[]]],[1,\"        \"],[13],[1,\"\\n\"]],[]],null],[1,\"\\n      \"],[10,0],[14,0,\"deployment-allocations\"],[12],[1,\"\\n\"],[41,[30,0,[\"oldVersionAllocBlockIDs\",\"length\"]],[[[1,\"          \"],[10,\"h4\"],[14,0,\"title is-5 previous-allocations-heading\"],[12],[1,\"\\n            \"],[10,1],[12],[1,\"\\n              Previous allocations: \"],[41,[30,0,[\"oldVersionAllocBlocks\",\"running\"]],[[[1,[30,0,[\"oldRunningHealthyAllocBlocks\",\"length\"]]],[1,\" running\"]],[]],null],[1,\"\\n            \"],[13],[1,\"\\n\\n            \"],[10,\"section\"],[14,0,\"versions\"],[12],[1,\"\\n              \"],[10,\"ul\"],[12],[1,\"\\n\"],[42,[28,[37,11],[[28,[37,11],[[30,0,[\"oldVersions\"]]],null]],null],null,[[[1,\"                  \"],[10,\"li\"],[12],[1,\"\\n                    \"],[8,[39,12],[[16,\"data-version\",[30,5,[\"version\"]]]],[[\"@route\",\"@model\",\"@query\"],[\"jobs.job.allocations\",[30,1],[28,[37,13],null,[[\"version\",\"status\"],[[28,[37,14],[\"[\",[30,5,[\"version\"]],\"]\"],null],[28,[37,14],[\"[\\\"running\\\", \\\"pending\\\", \\\"failed\\\"]\"],null]]]]]],[[\"default\"],[[[[1,\"\\n\"],[41,[28,[37,15],[[30,5,[\"version\"]],\"unknown\"],null],[[[1,\"                        \"],[8,[39,2],[[24,0,\"version-label\"]],[[\"@text\",\"@type\"],[\"unknown\",\"inverted\"]],null],[1,\"\\n\"]],[]],[[[1,\"                        \"],[8,[39,2],[[24,0,\"version-label\"]],[[\"@text\",\"@type\"],[[28,[37,14],[\"v\",[30,5,[\"version\"]]],null],\"inverted\"]],null],[1,\"\\n\"]],[]]],[1,\"                      \"],[8,[39,2],[[24,0,\"version-count\"]],[[\"@text\"],[[30,5,[\"allocations\",\"length\"]]]],null],[1,\"\\n                    \"]],[]]]]],[1,\"\\n                  \"],[13],[1,\"\\n\"]],[5]],null],[1,\"              \"],[13],[1,\"\\n            \"],[13],[1,\"\\n          \"],[13],[1,\"\\n          \"],[10,0],[14,0,\"previous-allocations\"],[12],[1,\"\\n            \"],[8,[39,16],null,[[\"@allocBlocks\",\"@steady\"],[[30,0,[\"oldVersionAllocBlocks\"]],true]],null],[1,\"\\n          \"],[13],[1,\"\\n          \"],[10,0],[14,0,\"legend-and-summary\"],[12],[1,\"\\n            \"],[10,\"legend\"],[12],[1,\"\\n              \"],[10,1],[15,0,[29,[\"legend-item \",[52,[28,[37,15],[[28,[37,17],[[30,0,[\"oldRunningHealthyAllocBlocks\"]],\"length\"],null],0],null],\"faded\"]]]],[12],[1,\"\\n                \"],[10,1],[14,0,\"represented-allocation running\"],[12],[13],[1,\"\\n                \"],[10,1],[14,0,\"count\"],[12],[1,[28,[35,17],[[30,0,[\"oldRunningHealthyAllocBlocks\"]],\"length\"],null]],[1,\" Running\"],[13],[1,\"\\n              \"],[13],[1,\"\\n              \"],[10,1],[15,0,[29,[\"legend-item \",[52,[28,[37,15],[[28,[37,17],[[30,0,[\"oldCompleteHealthyAllocBlocks\"]],\"length\"],null],0],null],\"faded\"]]]],[12],[1,\"\\n                \"],[10,1],[14,0,\"represented-allocation complete\"],[12],[13],[1,\"\\n                \"],[10,1],[14,0,\"count\"],[12],[1,[28,[35,17],[[30,0,[\"oldCompleteHealthyAllocBlocks\"]],\"length\"],null]],[1,\" Complete\"],[13],[1,\"\\n              \"],[13],[1,\"\\n            \"],[13],[1,\"\\n          \"],[13],[1,\"\\n\\n\"]],[]],null],[1,\"\\n        \"],[10,\"h4\"],[14,0,\"title is-5\"],[12],[10,1],[12],[1,\"New allocations: \"],[1,[30,0,[\"newRunningHealthyAllocBlocks\",\"length\"]]],[1,\"/\"],[1,[30,0,[\"totalAllocs\"]]],[1,\" running and healthy\"],[13],[1,\"\\n          \"],[10,1],[14,0,\"versions\"],[12],[1,\"\\n          \"],[8,[39,12],[[16,\"data-version\",[30,1,[\"version\"]]]],[[\"@route\",\"@model\",\"@query\"],[\"jobs.job.allocations\",[30,1],[28,[37,13],null,[[\"version\"],[[28,[37,14],[\"[\",[30,1,[\"version\"]],\"]\"],null]]]]]],[[\"default\"],[[[[1,\"\\n            \"],[8,[39,2],[[24,0,\"version-label\"]],[[\"@text\",\"@type\"],[[28,[37,14],[\"v\",[30,1,[\"version\"]]],null],\"inverted\"]],null],[1,\"\\n          \"]],[]]]]],[1,\"\\n          \"],[13],[1,\"\\n        \"],[13],[1,\"\\n        \"],[10,0],[14,0,\"new-allocations\"],[12],[1,\"\\n          \"],[8,[39,16],null,[[\"@allocBlocks\"],[[30,0,[\"newVersionAllocBlocks\"]]]],null],[1,\"\\n        \"],[13],[1,\"\\n      \"],[13],[1,\"\\n\\n      \"],[10,0],[14,0,\"legend-and-summary\"],[12],[1,\"\\n\\n\"],[1,\"        \"],[10,\"legend\"],[12],[1,\"\\n\"],[42,[28,[37,18],[[30,0,[\"newAllocsByStatus\"]]],null],null,[[[1,\"            \"],[8,[39,19],null,[[\"@condition\",\"@route\",\"@model\",\"@query\",\"@class\",\"@label\"],[[28,[37,20],[[28,[37,21],[[28,[37,15],[[30,7],\"unplaced\"],null]],null],[28,[37,22],[[30,6],0],null]],null],\"jobs.job.allocations\",[30,1],[28,[37,13],null,[[\"status\",\"version\"],[[28,[37,14],[\"[\\\"\",[30,7],\"\\\"]\"],null],[28,[37,14],[\"[\",[30,0,[\"job\",\"latestDeployment\",\"versionNumber\"]],\"]\"],null]]]],[29,[\"legend-item \",[52,[28,[37,15],[[30,6],0],null],\"faded\"]]],[29,[\"View \",[30,7],\" allocations\"]]]],[[\"default\"],[[[[1,\"\\n              \"],[10,1],[15,0,[29,[\"represented-allocation \",[30,7]]]],[12],[13],[1,\"\\n              \"],[10,1],[14,0,\"count\"],[12],[1,[30,6]],[1,\" \"],[1,[28,[35,23],[[30,7]],null]],[13],[1,\"\\n            \"]],[]]]]],[1,\"\\n\"]],[6,7]],null],[1,\"\\n\"],[42,[28,[37,18],[[30,0,[\"newAllocsByHealth\"]]],null],null,[[[1,\"            \"],[10,1],[15,0,[29,[\"legend-item \",[52,[28,[37,15],[[30,8],0],null],\"faded\"]]]],[12],[1,\"\\n              \"],[10,1],[15,0,[29,[\"represented-allocation legend-example \",[30,9]]]],[12],[1,\"\\n                \"],[10,1],[14,0,\"alloc-health-indicator\"],[12],[1,\"\\n\"],[41,[28,[37,15],[[30,9],\"healthy\"],null],[[[1,\"                    \"],[8,[39,24],null,[[\"@name\",\"@color\"],[\"check\",\"#25ba81\"]],null],[1,\"\\n\"]],[]],[[[41,[28,[37,15],[[30,9],\"unhealthy\"],null],[[[1,\"                    \"],[8,[39,24],null,[[\"@name\",\"@color\"],[\"x\",\"#c84034\"]],null],[1,\"\\n\"]],[]],[[[1,\"                    \"],[8,[39,24],[[24,0,\"not-animated\"]],[[\"@name\",\"@color\"],[\"running\",\"black\"]],null],[1,\"\\n                  \"]],[]]]],[]]],[1,\"                \"],[13],[1,\"\\n              \"],[13],[1,\"\\n              \"],[10,1],[14,0,\"count\"],[12],[1,[30,8]],[1,\" \"],[1,[28,[35,25],[[30,9]],null]],[13],[1,\"\\n            \"],[13],[1,\"\\n\"]],[8,9]],null],[1,\"\\n          \"],[10,1],[15,0,[29,[\"legend-item \",[52,[28,[37,15],[[30,0,[\"newAllocsByCanary\",\"canary\"]],0],null],\"faded\"]]]],[12],[1,\"\\n            \"],[10,1],[14,0,\"represented-allocation legend-example canary\"],[12],[1,\"\\n              \"],[10,1],[14,0,\"alloc-canary-indicator\"],[12],[13],[1,\"\\n            \"],[13],[1,\"\\n            \"],[10,1],[14,0,\"count\"],[12],[1,[30,0,[\"newAllocsByCanary\",\"canary\"]]],[1,\" Canary\"],[13],[1,\"\\n          \"],[13],[1,\"\\n\\n        \"],[13],[1,\"\\n\\n        \"],[8,[39,26],null,[[\"@rescheduledAllocs\",\"@restartedAllocs\",\"@job\",\"@supportsRescheduling\"],[[30,0,[\"rescheduledAllocs\"]],[30,0,[\"restartedAllocs\"]],[30,1],true]],null],[1,\"\\n\\n      \"],[13],[1,\"\\n\\n      \"],[10,0],[14,0,\"history-and-params\"],[12],[1,\"\\n        \"],[8,[39,27],null,[[\"@deployment\"],[[30,1,[\"latestDeployment\"]]]],null],[1,\"\\n        \"],[8,[39,28],null,[[\"@job\"],[[30,1]]],null],[1,\"\\n      \"],[13],[1,\"\\n\\n    \"],[13],[1,\"\\n\"],[13],[1,\"\\n\"]],[\"@job\",\"A\",\"A\",\"A\",\"versionObj\",\"count\",\"status\",\"count\",\"health\"],false,[\"did-insert\",\"action\",\"hds/badge\",\"if\",\"hds/button\",\"on\",\"perform\",\"keyboard-shortcut\",\"array\",\"hds/alert\",\"each\",\"-track-array\",\"link-to\",\"hash\",\"concat\",\"eq\",\"job-status/allocation-status-row\",\"get\",\"-each-in\",\"conditional-link-to\",\"and\",\"not\",\"gt\",\"capitalize\",\"flight-icon\",\"humanize\",\"job-status/failed-or-lost\",\"job-status/deployment-history\",\"job-status/update-params\"]]",
    "moduleName": "nomad-ui/components/job-status/panel/deploying.hbs",
    "isStrictMode": false
  });
  /**
   * Copyright (c) HashiCorp, Inc.
   * SPDX-License-Identifier: MPL-2.0
   */
  // @ts-check


  let JobStatusPanelDeployingComponent = (_dec = (0, _computed.alias)('args.job'), _dec2 = (0, _computed.alias)('args.handleError'), _dec3 = (0, _emberConcurrency.task)(function* () {
    try {
      yield this.job.latestDeployment.content.promote();
    } catch (err) {
      this.handleError({
        title: 'Could Not Promote Deployment',
        description: (0, _messageFromAdapterError.default)(err, 'promote deployments')
      });
    }
  }), _dec4 = (0, _emberConcurrency.task)(function* () {
    try {
      yield this.job.latestDeployment.content.fail();
    } catch (err) {
      this.handleError({
        title: 'Could Not Fail Deployment',
        description: (0, _messageFromAdapterError.default)(err, 'fail deployments')
      });
    }
  }), _dec5 = (0, _computed.alias)('job.latestDeployment'), _dec6 = (0, _computed.alias)('totalAllocs'), (_class = class JobStatusPanelDeployingComponent extends _component2.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "job", _descriptor, this);

      _initializerDefineProperty(this, "handleError", _descriptor2, this);

      _initializerDefineProperty(this, "oldVersionAllocBlockIDs", _descriptor3, this);

      _initializerDefineProperty(this, "promote", _descriptor4, this);

      _initializerDefineProperty(this, "fail", _descriptor5, this);

      _initializerDefineProperty(this, "deployment", _descriptor6, this);

      _initializerDefineProperty(this, "desiredTotal", _descriptor7, this);
    }

    get allocTypes() {
      return _allocationClientStatuses.jobAllocStatuses[this.args.job.type].map(type => {
        return {
          label: type
        };
      });
    }

    // Called via did-insert; sets a static array of "outgoing"
    // allocations we can track throughout a deployment
    establishOldAllocBlockIDs() {
      this.oldVersionAllocBlockIDs = this.job.allocations.filter(a => a.clientStatus === 'running' && a.isOld);
    }
    /**
     * Promotion of a deployment will error if the canary allocations are not of status "Healthy";
     * this function will check for that and disable the promote button if necessary.
     * @returns {boolean}
     */


    get canariesHealthy() {
      const relevantAllocs = this.job.allocations.filter(a => !a.isOld && a.isCanary && !a.hasBeenRescheduled);
      return relevantAllocs.every(a => a.clientStatus === 'running' && a.isHealthy);
    }

    get someCanariesHaveFailed() {
      const relevantAllocs = this.job.allocations.filter(a => !a.isOld && a.isCanary && !a.hasBeenRescheduled);
      return relevantAllocs.some(a => a.clientStatus === 'failed' || a.clientStatus === 'lost' || a.isUnhealthy);
    }

    get oldVersionAllocBlocks() {
      return this.job.allocations.filter(allocation => this.oldVersionAllocBlockIDs.includes(allocation)).reduce((alloGroups, currentAlloc) => {
        const status = currentAlloc.clientStatus;

        if (!alloGroups[status]) {
          alloGroups[status] = {
            healthy: {
              nonCanary: []
            },
            unhealthy: {
              nonCanary: []
            },
            health_unknown: {
              nonCanary: []
            }
          };
        }

        alloGroups[status].healthy.nonCanary.push(currentAlloc);
        return alloGroups;
      }, {});
    }

    get newVersionAllocBlocks() {
      let availableSlotsToFill = this.desiredTotal;
      let allocationsOfDeploymentVersion = this.job.allocations.filter(a => !a.isOld);
      let allocationCategories = this.allocTypes.reduce((categories, type) => {
        categories[type.label] = {
          healthy: {
            canary: [],
            nonCanary: []
          },
          unhealthy: {
            canary: [],
            nonCanary: []
          },
          health_unknown: {
            canary: [],
            nonCanary: []
          }
        };
        return categories;
      }, {});

      for (let alloc of allocationsOfDeploymentVersion) {
        if (availableSlotsToFill <= 0) {
          break;
        }

        let status = alloc.clientStatus;
        let canary = alloc.isCanary ? 'canary' : 'nonCanary'; // Health status only matters in the context of a "running" allocation.
        // However, healthy/unhealthy is never purged when an allocation moves to a different clientStatus
        // Thus, we should only show something as "healthy" in the event that it is running.
        // Otherwise, we'd have arbitrary groupings based on previous health status.

        let health = status === 'running' ? alloc.isHealthy ? 'healthy' : alloc.isUnhealthy ? 'unhealthy' : 'health_unknown' : 'health_unknown';

        if (allocationCategories[status]) {
          // If status is failed or lost, we only want to show it IF it's used up its restarts/rescheds.
          // Otherwise, we'd be showing an alloc that had been replaced.
          if (alloc.willNotRestart) {
            if (!alloc.willNotReschedule) {
              // Dont count it
              continue;
            }
          }

          allocationCategories[status][health][canary].push(alloc);
          availableSlotsToFill--;
        }
      } // Fill unplaced slots if availableSlotsToFill > 0


      if (availableSlotsToFill > 0) {
        allocationCategories['unplaced'] = {
          healthy: {
            canary: [],
            nonCanary: []
          },
          unhealthy: {
            canary: [],
            nonCanary: []
          },
          health_unknown: {
            canary: [],
            nonCanary: []
          }
        };
        allocationCategories['unplaced']['healthy']['nonCanary'] = Array(availableSlotsToFill).fill().map(() => {
          return {
            clientStatus: 'unplaced'
          };
        });
      }

      return allocationCategories;
    }

    get newRunningHealthyAllocBlocks() {
      return [...this.newVersionAllocBlocks['running']['healthy']['canary'], ...this.newVersionAllocBlocks['running']['healthy']['nonCanary']];
    }

    get newRunningUnhealthyAllocBlocks() {
      return [...this.newVersionAllocBlocks['running']['unhealthy']['canary'], ...this.newVersionAllocBlocks['running']['unhealthy']['nonCanary']];
    }

    get newRunningHealthUnknownAllocBlocks() {
      return [...this.newVersionAllocBlocks['running']['health_unknown']['canary'], ...this.newVersionAllocBlocks['running']['health_unknown']['nonCanary']];
    }

    get rescheduledAllocs() {
      return this.job.allocations.filter(a => !a.isOld && a.hasBeenRescheduled);
    }

    get restartedAllocs() {
      return this.job.allocations.filter(a => !a.isOld && a.hasBeenRestarted);
    } // #region legend


    get newAllocsByStatus() {
      return Object.entries(this.newVersionAllocBlocks).reduce((counts, _ref2) => {
        let [status, healthStatusObj] = _ref2;
        counts[status] = Object.values(healthStatusObj).flatMap(canaryStatusObj => Object.values(canaryStatusObj)).flatMap(canaryStatusArray => canaryStatusArray).length;
        return counts;
      }, {});
    }

    get newAllocsByCanary() {
      return Object.values(this.newVersionAllocBlocks).flatMap(healthStatusObj => Object.values(healthStatusObj)).flatMap(canaryStatusObj => Object.entries(canaryStatusObj)).reduce((counts, _ref3) => {
        let [canaryStatus, items] = _ref3;
        counts[canaryStatus] = (counts[canaryStatus] || 0) + items.length;
        return counts;
      }, {});
    }

    get newAllocsByHealth() {
      return {
        healthy: this.newRunningHealthyAllocBlocks.length,
        unhealthy: this.newRunningUnhealthyAllocBlocks.length,
        health_unknown: this.newRunningHealthUnknownAllocBlocks.length
      };
    } // #endregion legend


    get oldRunningHealthyAllocBlocks() {
      var _this$oldVersionAlloc, _this$oldVersionAlloc2;

      return ((_this$oldVersionAlloc = this.oldVersionAllocBlocks.running) === null || _this$oldVersionAlloc === void 0 ? void 0 : (_this$oldVersionAlloc2 = _this$oldVersionAlloc.healthy) === null || _this$oldVersionAlloc2 === void 0 ? void 0 : _this$oldVersionAlloc2.nonCanary) || [];
    }

    get oldCompleteHealthyAllocBlocks() {
      var _this$oldVersionAlloc3, _this$oldVersionAlloc4;

      return ((_this$oldVersionAlloc3 = this.oldVersionAllocBlocks.complete) === null || _this$oldVersionAlloc3 === void 0 ? void 0 : (_this$oldVersionAlloc4 = _this$oldVersionAlloc3.healthy) === null || _this$oldVersionAlloc4 === void 0 ? void 0 : _this$oldVersionAlloc4.nonCanary) || [];
    } // TODO: eventually we will want this from a new property on a job.
    // TODO: consolidate w/ the one in steady.js


    get totalAllocs() {
      // v----- Experimental method: Count all allocs. Good for testing but not a realistic representation of "Desired"
      // return this.allocTypes.reduce((sum, type) => sum + this.args.job[type.property], 0);
      // v----- Realistic method: Tally a job's task groups' "count" property
      return this.args.job.taskGroups.reduce((sum, tg) => sum + tg.count, 0);
    }

    get deploymentIsAutoPromoted() {
      var _this$job$latestDeplo;

      return (_this$job$latestDeplo = this.job.latestDeployment) === null || _this$job$latestDeplo === void 0 ? void 0 : _this$job$latestDeplo.get('isAutoPromoted');
    }

    get oldVersions() {
      const oldVersions = Object.values(this.oldRunningHealthyAllocBlocks).map(a => !isNaN(a === null || a === void 0 ? void 0 : a.jobVersion) ? a.jobVersion : 'unknown') // "starting" allocs, GC'd allocs, etc. do not have a jobVersion
      .sort((a, b) => a - b).reduce((result, item) => {
        const existingVersion = result.find(v => v.version === item);

        if (existingVersion) {
          existingVersion.allocations.push(item);
        } else {
          result.push({
            version: item,
            allocations: [item]
          });
        }

        return result;
      }, []);
      return oldVersions;
    }

    get newVersions() {
      // Note: it's probably safe to assume all new allocs have the latest job version, but
      // let's map just in case there's ever a situation with multiple job versions going out
      // in a deployment for some reason
      const newVersions = Object.values(this.newVersionAllocBlocks).flatMap(allocType => Object.values(allocType)).flatMap(allocHealth => Object.values(allocHealth)).flatMap(allocCanary => Object.values(allocCanary)).filter(a => a.jobVersion && a.jobVersion !== 'unknown').map(a => a.jobVersion).sort((a, b) => a - b).reduce((result, item) => {
        const existingVersion = result.find(v => v.version === item);

        if (existingVersion) {
          existingVersion.allocations.push(item);
        } else {
          result.push({
            version: item,
            allocations: [item]
          });
        }

        return result;
      }, []);
      return newVersions;
    }

    get versions() {
      return [...this.oldVersions, ...this.newVersions];
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "job", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "handleError", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return () => {};
    }
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "oldVersionAllocBlockIDs", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return [];
    }
  }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, "promote", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor5 = _applyDecoratedDescriptor(_class.prototype, "fail", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor6 = _applyDecoratedDescriptor(_class.prototype, "deployment", [_dec5], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor7 = _applyDecoratedDescriptor(_class.prototype, "desiredTotal", [_dec6], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class));
  _exports.default = JobStatusPanelDeployingComponent;
  (0, _component.setComponentTemplate)(__COLOCATED_TEMPLATE__, JobStatusPanelDeployingComponent);
});
;define("nomad-ui/components/job-status/panel/steady", ["exports", "@ember/component", "@ember/template-factory", "@glimmer/component", "@ember/object/computed", "nomad-ui/utils/allocation-client-statuses"], function (_exports, _component, _templateFactory, _component2, _computed, _allocationClientStatuses) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _class, _descriptor;

  0; //eaimeta@70e063a35619d71f0,"@glimmer/component",0,"@ember/object/computed",0,"nomad-ui/utils/allocation-client-statuses",0,"@ember/template-factory"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const __COLOCATED_TEMPLATE__ = (0, _templateFactory.createTemplateFactory)(
  /*
    {{!
    Copyright (c) HashiCorp, Inc.
    SPDX-License-Identifier: MPL-2.0
  ~}}
  
  <div class="job-status-panel boxed-section steady-state {{if (eq @statusMode "historical") "historical-state" "current-state"}}" data-test-job-status-panel data-test-status-mode={{@statusMode}}>
    <div class="boxed-section-head">
      <h2>Status: <Hds::Badge @text={{this.currentStatus.label}} @color={{this.currentStatus.state}} @type="filled" /></h2>
      
      <div class="select-mode">
        <button type="button"
          data-test-status-mode-current
          class="button is-small is-borderless {{if (eq @statusMode "current") "is-active"}}"
          {{on "click" (action (optional @setStatusMode) "current")}}
        >
          Current
        </button>
        <button type="button"
          data-test-status-mode-historical
          class="button is-small is-borderless {{if (eq @statusMode "historical") "is-active"}}"
          {{on "click" (action (optional @setStatusMode) "historical")}}>
          Historical
        </button>
      </div>
    </div>
    <div class="boxed-section-body">
      {{#if (eq @statusMode "historical")}}
        <JobPage::Parts::SummaryChart @job={{@job}} />
      {{else}}
        <h3 class="title is-4 running-allocs-title">
          {{#if this.allAllocsComplete}}
            All allocations have completed successfully
          {{else}}
            <strong>
                {{@job.runningAllocs ~}}
                {{#unless this.atMostOneAllocPerNode ~}}
                  {{#if (eq @job.type "batch") ~}}
                    /{{this.totalNonCompletedAllocs}}
                  {{else ~}}
                    /{{this.totalAllocs}}
                  {{/if}}
                {{/unless}}
            </strong>
            {{#if (eq @job.type "batch") ~}}Remaining{{/if}}
            {{pluralize "Allocation" @job.runningAllocs}} Running
          {{/if}}
        </h3>
        <JobStatus::AllocationStatusRow @allocBlocks={{this.allocBlocks}} @steady={{true}} />
  
        <div class="legend-and-summary {{if @job.latestDeployment "has-latest-deployment"}}">
          <legend>
            {{#each this.allocTypes as |type|}}
              <ConditionalLinkTo
                @condition={{and (not (eq type.label "unplaced")) (get (get (get (get this.allocBlocks type.label) 'healthy') 'nonCanary') "length")}}
                @route="jobs.job.allocations"
                @model={{@job}}
                @query={{hash status=(concat '["' type.label '"]') version=(concat '[' (map-by "version" this.versions) ']')}}
                @class="legend-item {{if (eq (get (get (get (get this.allocBlocks type.label) 'healthy') 'nonCanary') "length") 0) "faded"}}"
                @label="View {{type.label}} allocations"
              >
                <span class="represented-allocation {{type.label}}"></span>
                <span class="count">{{get (get (get (get this.allocBlocks type.label) 'healthy') 'nonCanary') "length"}} {{capitalize type.label}}</span>
              </ConditionalLinkTo>
            {{/each}}
          </legend>
  
  
          <JobStatus::FailedOrLost
            @rescheduledAllocs={{this.rescheduledAllocs}}
            @restartedAllocs={{this.restartedAllocs}}
            @job={{@job}}
            @supportsRescheduling={{this.supportsRescheduling}}
          />
  
          <section class="versions">
            <h4>Versions</h4>
            <ul>
              {{#each this.versions as |versionObj|}}
                <li>
                  <LinkTo data-version={{versionObj.version}} @route="jobs.job.allocations" @model={{@job}} @query={{hash version=(concat '[' versionObj.version ']')    status=(concat '["running", "pending", "failed"]')         }}>
                    {{#if (eq versionObj.version "unknown")}}
                      <Hds::Badge @text="unknown" @type="inverted" class="version-label" />
                    {{else}}
                      <Hds::Badge @text={{concat "v" versionObj.version}} @type="inverted" class="version-label" />
                    {{/if}}
                    <Hds::Badge @text={{versionObj.allocations.length}} @type="filled" class="version-count" />
                  </LinkTo>
                </li>
              {{/each}}
            </ul>
          </section>
  
          {{#if @job.latestDeployment}}
            <JobStatus::LatestDeployment @job={{@job}} />
          {{/if}}
  
        </div>
  
        <div class="history-and-params">
          {{#if this.latestVersionAllocations.length}}
            <JobStatus::DeploymentHistory
              @title="Allocation History"
              @allocations={{this.latestVersionAllocations}}
              @isHidden={{true}}
            />
          {{/if}}
        </div>
  
      {{/if}}
    </div>
  </div>
  
  */
  {
    "id": "snLw14pJ",
    "block": "[[[10,0],[15,0,[29,[\"job-status-panel boxed-section steady-state \",[52,[28,[37,1],[[30,1],\"historical\"],null],\"historical-state\",\"current-state\"]]]],[12],[1,\"\\n  \"],[10,0],[14,0,\"boxed-section-head\"],[12],[1,\"\\n    \"],[10,\"h2\"],[12],[1,\"Status: \"],[8,[39,2],null,[[\"@text\",\"@color\",\"@type\"],[[30,0,[\"currentStatus\",\"label\"]],[30,0,[\"currentStatus\",\"state\"]],\"filled\"]],null],[13],[1,\"\\n    \\n    \"],[10,0],[14,0,\"select-mode\"],[12],[1,\"\\n      \"],[11,\"button\"],[16,0,[29,[\"button is-small is-borderless \",[52,[28,[37,1],[[30,1],\"current\"],null],\"is-active\"]]]],[24,4,\"button\"],[4,[38,3],[\"click\",[28,[37,4],[[30,0],[28,[37,5],[[30,2]],null],\"current\"],null]],null],[12],[1,\"\\n        Current\\n      \"],[13],[1,\"\\n      \"],[11,\"button\"],[16,0,[29,[\"button is-small is-borderless \",[52,[28,[37,1],[[30,1],\"historical\"],null],\"is-active\"]]]],[24,4,\"button\"],[4,[38,3],[\"click\",[28,[37,4],[[30,0],[28,[37,5],[[30,2]],null],\"historical\"],null]],null],[12],[1,\"\\n        Historical\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n  \"],[13],[1,\"\\n  \"],[10,0],[14,0,\"boxed-section-body\"],[12],[1,\"\\n\"],[41,[28,[37,1],[[30,1],\"historical\"],null],[[[1,\"      \"],[8,[39,6],null,[[\"@job\"],[[30,3]]],null],[1,\"\\n\"]],[]],[[[1,\"      \"],[10,\"h3\"],[14,0,\"title is-4 running-allocs-title\"],[12],[1,\"\\n\"],[41,[30,0,[\"allAllocsComplete\"]],[[[1,\"          All allocations have completed successfully\\n\"]],[]],[[[1,\"          \"],[10,\"strong\"],[12],[1,\"\\n              \"],[1,[30,3,[\"runningAllocs\"]]],[41,[51,[30,0,[\"atMostOneAllocPerNode\"]]],[[[41,[28,[37,1],[[30,3,[\"type\"]],\"batch\"],null],[[[1,\"/\"],[1,[30,0,[\"totalNonCompletedAllocs\"]]],[1,\"\\n\"]],[]],[[[1,\"/\"],[1,[30,0,[\"totalAllocs\"]]],[1,\"\\n\"]],[]]]],[]],null],[1,\"          \"],[13],[1,\"\\n          \"],[41,[28,[37,1],[[30,3,[\"type\"]],\"batch\"],null],[[[1,\"Remaining\"]],[]],null],[1,\"\\n          \"],[1,[28,[35,8],[\"Allocation\",[30,3,[\"runningAllocs\"]]],null]],[1,\" Running\\n\"]],[]]],[1,\"      \"],[13],[1,\"\\n      \"],[8,[39,9],null,[[\"@allocBlocks\",\"@steady\"],[[30,0,[\"allocBlocks\"]],true]],null],[1,\"\\n\\n      \"],[10,0],[15,0,[29,[\"legend-and-summary \",[52,[30,3,[\"latestDeployment\"]],\"has-latest-deployment\"]]]],[12],[1,\"\\n        \"],[10,\"legend\"],[12],[1,\"\\n\"],[42,[28,[37,11],[[28,[37,11],[[30,0,[\"allocTypes\"]]],null]],null],null,[[[1,\"            \"],[8,[39,12],null,[[\"@condition\",\"@route\",\"@model\",\"@query\",\"@class\",\"@label\"],[[28,[37,13],[[28,[37,14],[[28,[37,1],[[30,4,[\"label\"]],\"unplaced\"],null]],null],[28,[37,15],[[28,[37,15],[[28,[37,15],[[28,[37,15],[[30,0,[\"allocBlocks\"]],[30,4,[\"label\"]]],null],\"healthy\"],null],\"nonCanary\"],null],\"length\"],null]],null],\"jobs.job.allocations\",[30,3],[28,[37,16],null,[[\"status\",\"version\"],[[28,[37,17],[\"[\\\"\",[30,4,[\"label\"]],\"\\\"]\"],null],[28,[37,17],[\"[\",[28,[37,18],[\"version\",[30,0,[\"versions\"]]],null],\"]\"],null]]]],[29,[\"legend-item \",[52,[28,[37,1],[[28,[37,15],[[28,[37,15],[[28,[37,15],[[28,[37,15],[[30,0,[\"allocBlocks\"]],[30,4,[\"label\"]]],null],\"healthy\"],null],\"nonCanary\"],null],\"length\"],null],0],null],\"faded\"]]],[29,[\"View \",[30,4,[\"label\"]],\" allocations\"]]]],[[\"default\"],[[[[1,\"\\n              \"],[10,1],[15,0,[29,[\"represented-allocation \",[30,4,[\"label\"]]]]],[12],[13],[1,\"\\n              \"],[10,1],[14,0,\"count\"],[12],[1,[28,[35,15],[[28,[37,15],[[28,[37,15],[[28,[37,15],[[30,0,[\"allocBlocks\"]],[30,4,[\"label\"]]],null],\"healthy\"],null],\"nonCanary\"],null],\"length\"],null]],[1,\" \"],[1,[28,[35,19],[[30,4,[\"label\"]]],null]],[13],[1,\"\\n            \"]],[]]]]],[1,\"\\n\"]],[4]],null],[1,\"        \"],[13],[1,\"\\n\\n\\n        \"],[8,[39,20],null,[[\"@rescheduledAllocs\",\"@restartedAllocs\",\"@job\",\"@supportsRescheduling\"],[[30,0,[\"rescheduledAllocs\"]],[30,0,[\"restartedAllocs\"]],[30,3],[30,0,[\"supportsRescheduling\"]]]],null],[1,\"\\n\\n        \"],[10,\"section\"],[14,0,\"versions\"],[12],[1,\"\\n          \"],[10,\"h4\"],[12],[1,\"Versions\"],[13],[1,\"\\n          \"],[10,\"ul\"],[12],[1,\"\\n\"],[42,[28,[37,11],[[28,[37,11],[[30,0,[\"versions\"]]],null]],null],null,[[[1,\"              \"],[10,\"li\"],[12],[1,\"\\n                \"],[8,[39,21],[[16,\"data-version\",[30,5,[\"version\"]]]],[[\"@route\",\"@model\",\"@query\"],[\"jobs.job.allocations\",[30,3],[28,[37,16],null,[[\"version\",\"status\"],[[28,[37,17],[\"[\",[30,5,[\"version\"]],\"]\"],null],[28,[37,17],[\"[\\\"running\\\", \\\"pending\\\", \\\"failed\\\"]\"],null]]]]]],[[\"default\"],[[[[1,\"\\n\"],[41,[28,[37,1],[[30,5,[\"version\"]],\"unknown\"],null],[[[1,\"                    \"],[8,[39,2],[[24,0,\"version-label\"]],[[\"@text\",\"@type\"],[\"unknown\",\"inverted\"]],null],[1,\"\\n\"]],[]],[[[1,\"                    \"],[8,[39,2],[[24,0,\"version-label\"]],[[\"@text\",\"@type\"],[[28,[37,17],[\"v\",[30,5,[\"version\"]]],null],\"inverted\"]],null],[1,\"\\n\"]],[]]],[1,\"                  \"],[8,[39,2],[[24,0,\"version-count\"]],[[\"@text\",\"@type\"],[[30,5,[\"allocations\",\"length\"]],\"filled\"]],null],[1,\"\\n                \"]],[]]]]],[1,\"\\n              \"],[13],[1,\"\\n\"]],[5]],null],[1,\"          \"],[13],[1,\"\\n        \"],[13],[1,\"\\n\\n\"],[41,[30,3,[\"latestDeployment\"]],[[[1,\"          \"],[8,[39,22],null,[[\"@job\"],[[30,3]]],null],[1,\"\\n\"]],[]],null],[1,\"\\n      \"],[13],[1,\"\\n\\n      \"],[10,0],[14,0,\"history-and-params\"],[12],[1,\"\\n\"],[41,[30,0,[\"latestVersionAllocations\",\"length\"]],[[[1,\"          \"],[8,[39,23],null,[[\"@title\",\"@allocations\",\"@isHidden\"],[\"Allocation History\",[30,0,[\"latestVersionAllocations\"]],true]],null],[1,\"\\n\"]],[]],null],[1,\"      \"],[13],[1,\"\\n\\n\"]],[]]],[1,\"  \"],[13],[1,\"\\n\"],[13],[1,\"\\n\"]],[\"@statusMode\",\"@setStatusMode\",\"@job\",\"type\",\"versionObj\"],false,[\"if\",\"eq\",\"hds/badge\",\"on\",\"action\",\"optional\",\"job-page/parts/summary-chart\",\"unless\",\"pluralize\",\"job-status/allocation-status-row\",\"each\",\"-track-array\",\"conditional-link-to\",\"and\",\"not\",\"get\",\"hash\",\"concat\",\"map-by\",\"capitalize\",\"job-status/failed-or-lost\",\"link-to\",\"job-status/latest-deployment\",\"job-status/deployment-history\"]]",
    "moduleName": "nomad-ui/components/job-status/panel/steady.hbs",
    "isStrictMode": false
  });
  /**
   * Copyright (c) HashiCorp, Inc.
   * SPDX-License-Identifier: MPL-2.0
   */
  // @ts-check


  let JobStatusPanelSteadyComponent = (_dec = (0, _computed.alias)('args.job'), (_class = class JobStatusPanelSteadyComponent extends _component2.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "job", _descriptor, this);
    }

    get allocTypes() {
      return _allocationClientStatuses.jobAllocStatuses[this.args.job.type].map(type => {
        return {
          label: type
        };
      });
    }
    /**
     * @typedef {Object} HealthStatus
     * @property {Array} nonCanary
     * @property {Array} canary
     */

    /**
     * @typedef {Object} AllocationStatus
     * @property {HealthStatus} healthy
     * @property {HealthStatus} unhealthy
     * @property {HealthStatus} health unknown
     */

    /**
     * @typedef {Object} AllocationBlock
     * @property {AllocationStatus} [running]
     * @property {AllocationStatus} [pending]
     * @property {AllocationStatus} [failed]
     * @property {AllocationStatus} [lost]
     * @property {AllocationStatus} [unplaced]
     * @property {AllocationStatus} [complete]
     */

    /**
     * Looks through running/pending allocations with the aim of filling up your desired number of allocations.
     * If any desired remain, it will walk backwards through job versions and other allocation types to build
     * a picture of the job's overall status.
     *
     * @returns {AllocationBlock} An object containing healthy non-canary allocations
     *                            for each clientStatus.
     */


    get allocBlocks() {
      let availableSlotsToFill = this.totalAllocs; // Initialize allocationsOfShowableType with empty arrays for each clientStatus

      /**
       * @type {AllocationBlock}
       */

      let allocationsOfShowableType = this.allocTypes.reduce((accumulator, type) => {
        accumulator[type.label] = {
          healthy: {
            nonCanary: []
          }
        };
        return accumulator;
      }, {}); // First accumulate the Running/Pending allocations

      for (const alloc of this.job.allocations.filter(a => a.clientStatus === 'running' || a.clientStatus === 'pending')) {
        if (availableSlotsToFill === 0) {
          break;
        }

        const status = alloc.clientStatus;
        allocationsOfShowableType[status].healthy.nonCanary.push(alloc);
        availableSlotsToFill--;
      } // Sort all allocs by jobVersion in descending order


      const sortedAllocs = this.args.job.allocations.filter(a => a.clientStatus !== 'running' && a.clientStatus !== 'pending').sort((a, b) => {
        // First sort by jobVersion
        if (a.jobVersion > b.jobVersion) return 1;
        if (a.jobVersion < b.jobVersion) return -1; // If jobVersion is the same, sort by status order

        if (a.jobVersion === b.jobVersion) {
          return _allocationClientStatuses.jobAllocStatuses[this.args.job.type].indexOf(b.clientStatus) - _allocationClientStatuses.jobAllocStatuses[this.args.job.type].indexOf(a.clientStatus);
        } else {
          return 0;
        }
      }).reverse(); // Iterate over the sorted allocs

      for (const alloc of sortedAllocs) {
        if (availableSlotsToFill === 0) {
          break;
        }

        const status = alloc.clientStatus; // If the alloc has another clientStatus, add it to the corresponding list
        // as long as we haven't reached the totalAllocs limit for that clientStatus

        if (this.allocTypes.map(_ref2 => {
          let {
            label
          } = _ref2;
          return label;
        }).includes(status) && allocationsOfShowableType[status].healthy.nonCanary.length < this.totalAllocs) {
          allocationsOfShowableType[status].healthy.nonCanary.push(alloc);
          availableSlotsToFill--;
        }
      } // Handle unplaced allocs


      if (availableSlotsToFill > 0) {
        allocationsOfShowableType['unplaced'] = {
          healthy: {
            nonCanary: Array(availableSlotsToFill).fill().map(() => {
              return {
                clientStatus: 'unplaced'
              };
            })
          }
        };
      }

      return allocationsOfShowableType;
    }

    get nodes() {
      return this.args.nodes;
    }

    get totalAllocs() {
      if (this.args.job.type === 'service' || this.args.job.type === 'batch') {
        return this.args.job.taskGroups.reduce((sum, tg) => sum + tg.count, 0);
      } else if (this.atMostOneAllocPerNode) {
        return this.args.job.allocations.uniqBy('nodeID').length;
      } else {
        return this.args.job.count; // TODO: this is probably not the correct totalAllocs count for any type.
      }
    }

    get totalNonCompletedAllocs() {
      return this.totalAllocs - this.completedAllocs.length;
    }

    get allAllocsComplete() {
      return this.completedAllocs.length && this.totalNonCompletedAllocs === 0;
    }

    get atMostOneAllocPerNode() {
      return this.args.job.type === 'system' || this.args.job.type === 'sysbatch';
    }

    get versions() {
      const versions = Object.values(this.allocBlocks).flatMap(allocType => Object.values(allocType)).flatMap(allocHealth => Object.values(allocHealth)).flatMap(allocCanary => Object.values(allocCanary)).map(a => !isNaN(a === null || a === void 0 ? void 0 : a.jobVersion) ? a.jobVersion : 'unknown') // "starting" allocs, GC'd allocs, etc. do not have a jobVersion
      .sort((a, b) => a - b).reduce((result, item) => {
        const existingVersion = result.find(v => v.version === item);

        if (existingVersion) {
          existingVersion.allocations.push(item);
        } else {
          result.push({
            version: item,
            allocations: [item]
          });
        }

        return result;
      }, []);
      return versions;
    }

    get rescheduledAllocs() {
      return this.job.allocations.filter(a => !a.isOld && a.hasBeenRescheduled);
    }

    get restartedAllocs() {
      return this.job.allocations.filter(a => !a.isOld && a.hasBeenRestarted);
    }

    get completedAllocs() {
      return this.job.allocations.filter(a => !a.isOld && a.clientStatus === 'complete');
    }

    get supportsRescheduling() {
      return this.job.type !== 'system';
    }

    get latestVersionAllocations() {
      return this.job.allocations.filter(a => !a.isOld);
    }
    /**
     * @typedef {Object} CurrentStatus
     * @property {"Healthy"|"Failed"|"Degraded"|"Recovering"|"Complete"|"Running"} label - The current status of the job
     * @property {"highlight"|"success"|"warning"|"critical"} state -
     */

    /**
     * A general assessment for how a job is going, in a non-deployment state
     * @returns {CurrentStatus}
     */


    get currentStatus() {
      var _this$allocBlocks$run3, _this$allocBlocks$run4, _this$allocBlocks$pen, _this$allocBlocks$pen2, _this$allocBlocks$fai, _this$allocBlocks$fai2, _this$allocBlocks$los, _this$allocBlocks$los2, _this$allocBlocks$unp, _this$allocBlocks$unp2;

      // If all allocs are running, the job is Healthy
      const totalAllocs = this.totalAllocs;

      if (this.job.type === 'batch' || this.job.type === 'sysbatch') {
        var _this$allocBlocks$com, _this$allocBlocks$com2, _this$allocBlocks$run, _this$allocBlocks$run2;

        // If all the allocs are complete, the job is Complete
        const completeAllocs = (_this$allocBlocks$com = this.allocBlocks.complete) === null || _this$allocBlocks$com === void 0 ? void 0 : (_this$allocBlocks$com2 = _this$allocBlocks$com.healthy) === null || _this$allocBlocks$com2 === void 0 ? void 0 : _this$allocBlocks$com2.nonCanary;

        if ((completeAllocs === null || completeAllocs === void 0 ? void 0 : completeAllocs.length) === totalAllocs) {
          return {
            label: 'Complete',
            state: 'success'
          };
        } // If any allocations are running the job is "Running"


        const healthyAllocs = (_this$allocBlocks$run = this.allocBlocks.running) === null || _this$allocBlocks$run === void 0 ? void 0 : (_this$allocBlocks$run2 = _this$allocBlocks$run.healthy) === null || _this$allocBlocks$run2 === void 0 ? void 0 : _this$allocBlocks$run2.nonCanary;

        if ((healthyAllocs === null || healthyAllocs === void 0 ? void 0 : healthyAllocs.length) + (completeAllocs === null || completeAllocs === void 0 ? void 0 : completeAllocs.length) === totalAllocs) {
          return {
            label: 'Running',
            state: 'success'
          };
        }
      }

      const healthyAllocs = (_this$allocBlocks$run3 = this.allocBlocks.running) === null || _this$allocBlocks$run3 === void 0 ? void 0 : (_this$allocBlocks$run4 = _this$allocBlocks$run3.healthy) === null || _this$allocBlocks$run4 === void 0 ? void 0 : _this$allocBlocks$run4.nonCanary;

      if ((healthyAllocs === null || healthyAllocs === void 0 ? void 0 : healthyAllocs.length) === totalAllocs) {
        return {
          label: 'Healthy',
          state: 'success'
        };
      } // If any allocations are pending the job is "Recovering"


      const pendingAllocs = (_this$allocBlocks$pen = this.allocBlocks.pending) === null || _this$allocBlocks$pen === void 0 ? void 0 : (_this$allocBlocks$pen2 = _this$allocBlocks$pen.healthy) === null || _this$allocBlocks$pen2 === void 0 ? void 0 : _this$allocBlocks$pen2.nonCanary;

      if ((pendingAllocs === null || pendingAllocs === void 0 ? void 0 : pendingAllocs.length) > 0) {
        return {
          label: 'Recovering',
          state: 'highlight'
        };
      } // If any allocations are failed, lost, or unplaced in a steady state, the job is "Degraded"


      const failedOrLostAllocs = [...((_this$allocBlocks$fai = this.allocBlocks.failed) === null || _this$allocBlocks$fai === void 0 ? void 0 : (_this$allocBlocks$fai2 = _this$allocBlocks$fai.healthy) === null || _this$allocBlocks$fai2 === void 0 ? void 0 : _this$allocBlocks$fai2.nonCanary), ...((_this$allocBlocks$los = this.allocBlocks.lost) === null || _this$allocBlocks$los === void 0 ? void 0 : (_this$allocBlocks$los2 = _this$allocBlocks$los.healthy) === null || _this$allocBlocks$los2 === void 0 ? void 0 : _this$allocBlocks$los2.nonCanary), ...((_this$allocBlocks$unp = this.allocBlocks.unplaced) === null || _this$allocBlocks$unp === void 0 ? void 0 : (_this$allocBlocks$unp2 = _this$allocBlocks$unp.healthy) === null || _this$allocBlocks$unp2 === void 0 ? void 0 : _this$allocBlocks$unp2.nonCanary)];

      if (failedOrLostAllocs.length === totalAllocs) {
        return {
          label: 'Failed',
          state: 'critical'
        };
      } else {
        return {
          label: 'Degraded',
          state: 'warning'
        };
      }
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "job", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class));
  _exports.default = JobStatusPanelSteadyComponent;
  (0, _component.setComponentTemplate)(__COLOCATED_TEMPLATE__, JobStatusPanelSteadyComponent);
});
;define("nomad-ui/components/job-status/update-params", ["exports", "@ember/component", "@ember/template-factory", "@glimmer/component", "@ember/object", "@glimmer/tracking", "@ember/service", "nomad-ui/utils/format-duration"], function (_exports, _component, _templateFactory, _component2, _object, _tracking, _service, _formatDuration) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _descriptor, _descriptor2;

  0; //eaimeta@70e063a35619d71f0,"@glimmer/component",0,"@ember/object",0,"@glimmer/tracking",0,"@ember/service",0,"nomad-ui/utils/format-duration",0,"@ember/template-factory"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const __COLOCATED_TEMPLATE__ = (0, _templateFactory.createTemplateFactory)(
  /*
    {{!
    Copyright (c) HashiCorp, Inc.
    SPDX-License-Identifier: MPL-2.0
  ~}}
  
  <Trigger @onError={{action this.onError}} @do={{this.fetchJobDefinition}} as |trigger|>
    {{did-insert trigger.fns.do}}
  
    <div class="update-parameters">
      <h4 class="title is-4">Update Params</h4>
      <code>
  
        {{#if (and trigger.data.isSuccess (not trigger.data.isError))}}
          <ul>
            {{#each this.updateParamGroups as |group|}}
              <li>
                <span class="group">Group "{{group.name}}"</span>
                <ul>
                  {{#each-in group.update as |k v|}}
                    <li>
                      <span class="key">{{k}}</span>
                      <span class="value">{{v}}</span>
                    </li>
                  {{/each-in}}
                </ul>
              </li>
            {{/each}}
          </ul>
        {{/if}}
  
        {{#if trigger.data.isBusy}}
          <span class="notification">Loading Parameters</span>
        {{/if}}
  
        {{#if trigger.data.isError}}
          <span class="notification">Error loading parameters</span>
        {{/if}}
  
      </code>
    </div>
  </Trigger>
  
  */
  {
    "id": "EeFn/Uxr",
    "block": "[[[8,[39,0],null,[[\"@onError\",\"@do\"],[[28,[37,1],[[30,0],[30,0,[\"onError\"]]],null],[30,0,[\"fetchJobDefinition\"]]]],[[\"default\"],[[[[1,\"\\n  \"],[1,[28,[35,2],[[30,1,[\"fns\",\"do\"]]],null]],[1,\"\\n\\n  \"],[10,0],[14,0,\"update-parameters\"],[12],[1,\"\\n    \"],[10,\"h4\"],[14,0,\"title is-4\"],[12],[1,\"Update Params\"],[13],[1,\"\\n    \"],[10,\"code\"],[12],[1,\"\\n\\n\"],[41,[28,[37,4],[[30,1,[\"data\",\"isSuccess\"]],[28,[37,5],[[30,1,[\"data\",\"isError\"]]],null]],null],[[[1,\"        \"],[10,\"ul\"],[12],[1,\"\\n\"],[42,[28,[37,7],[[28,[37,7],[[30,0,[\"updateParamGroups\"]]],null]],null],null,[[[1,\"            \"],[10,\"li\"],[12],[1,\"\\n              \"],[10,1],[14,0,\"group\"],[12],[1,\"Group \\\"\"],[1,[30,2,[\"name\"]]],[1,\"\\\"\"],[13],[1,\"\\n              \"],[10,\"ul\"],[12],[1,\"\\n\"],[42,[28,[37,8],[[30,2,[\"update\"]]],null],null,[[[1,\"                  \"],[10,\"li\"],[12],[1,\"\\n                    \"],[10,1],[14,0,\"key\"],[12],[1,[30,4]],[13],[1,\"\\n                    \"],[10,1],[14,0,\"value\"],[12],[1,[30,3]],[13],[1,\"\\n                  \"],[13],[1,\"\\n\"]],[3,4]],null],[1,\"              \"],[13],[1,\"\\n            \"],[13],[1,\"\\n\"]],[2]],null],[1,\"        \"],[13],[1,\"\\n\"]],[]],null],[1,\"\\n\"],[41,[30,1,[\"data\",\"isBusy\"]],[[[1,\"        \"],[10,1],[14,0,\"notification\"],[12],[1,\"Loading Parameters\"],[13],[1,\"\\n\"]],[]],null],[1,\"\\n\"],[41,[30,1,[\"data\",\"isError\"]],[[[1,\"        \"],[10,1],[14,0,\"notification\"],[12],[1,\"Error loading parameters\"],[13],[1,\"\\n\"]],[]],null],[1,\"\\n    \"],[13],[1,\"\\n  \"],[13],[1,\"\\n\"]],[1]]]]],[1,\"\\n\"]],[\"trigger\",\"group\",\"v\",\"k\"],false,[\"trigger\",\"action\",\"did-insert\",\"if\",\"and\",\"not\",\"each\",\"-track-array\",\"-each-in\"]]",
    "moduleName": "nomad-ui/components/job-status/update-params.hbs",
    "isStrictMode": false
  });
  /**
   * Copyright (c) HashiCorp, Inc.
   * SPDX-License-Identifier: MPL-2.0
   */
  // @ts-check


  /**
   * @typedef {Object} DefinitionUpdateStrategy
   * @property {boolean} AutoPromote
   * @property {boolean} AutoRevert
   * @property {number} Canary
   * @property {number} MaxParallel
   * @property {string} HealthCheck
   * @property {number} MinHealthyTime
   * @property {number} HealthyDeadline
   * @property {number} ProgressDeadline
   * @property {number} Stagger
   */

  /**
   * @typedef {Object} DefinitionTaskGroup
   * @property {string} Name
   * @property {number} Count
   * @property {DefinitionUpdateStrategy} Update
   */

  /**
   * @typedef {Object} JobDefinition
   * @property {string} ID
   * @property {DefinitionUpdateStrategy} Update
   * @property {DefinitionTaskGroup[]} TaskGroups
   */
  const PARAMS_REQUIRING_CONVERSION = ['HealthyDeadline', 'MinHealthyTime', 'ProgressDeadline', 'Stagger'];
  let JobStatusUpdateParamsComponent = (_class = class JobStatusUpdateParamsComponent extends _component2.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "notifications", _descriptor, this);

      _initializerDefineProperty(this, "rawDefinition", _descriptor2, this);
    }

    get updateParamGroups() {
      if (!this.rawDefinition) {
        return null;
      }

      return this.rawDefinition.TaskGroups.map(tg => ({
        name: tg.Name,
        update: Object.keys(tg.Update || {}).reduce((newUpdateObj, key) => {
          newUpdateObj[key] = PARAMS_REQUIRING_CONVERSION.includes(key) ? (0, _formatDuration.default)(tg.Update[key]) : tg.Update[key];
          return newUpdateObj;
        }, {})
      }));
    }

    onError(_ref2) {
      let {
        Error
      } = _ref2;
      const error = Error.errors[0].title || 'Error fetching job parameters';
      this.notifications.add({
        title: 'Could not fetch job definition',
        message: error,
        color: 'critical'
      });
    }

    async fetchJobDefinition() {
      this.rawDefinition = await this.args.job.fetchRawDefinition();
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "notifications", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "rawDefinition", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return null;
    }
  }), _applyDecoratedDescriptor(_class.prototype, "onError", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "onError"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "fetchJobDefinition", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "fetchJobDefinition"), _class.prototype)), _class);
  _exports.default = JobStatusUpdateParamsComponent;
  (0, _component.setComponentTemplate)(__COLOCATED_TEMPLATE__, JobStatusUpdateParamsComponent);
});
;define("nomad-ui/components/job-subnav", ["exports", "@ember/service", "@glimmer/component"], function (_exports, _service, _component) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _descriptor, _descriptor2;

  0; //eaimeta@70e063a35619d71f0,"@ember/service",0,"@glimmer/component"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let JobSubnav = (_class = class JobSubnav extends _component.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "can", _descriptor, this);

      _initializerDefineProperty(this, "keyboard", _descriptor2, this);
    }

    get shouldRenderClientsTab() {
      const {
        job
      } = this.args;
      return (job === null || job === void 0 ? void 0 : job.hasClientStatus) && !(job !== null && job !== void 0 && job.hasChildren) && this.can.can('read client');
    } // Periodic and Parameterized jobs "parents" are not jobs unto themselves, but more like summaries.
    // They should not have tabs for allocations, evaluations, etc.
    // but their child jobs, and other job types generally, should.


    get shouldHideNonParentTabs() {
      var _this$args$job;

      return (_this$args$job = this.args.job) === null || _this$args$job === void 0 ? void 0 : _this$args$job.hasChildren;
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "can", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "keyboard", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class);
  _exports.default = JobSubnav;
});
;define("nomad-ui/components/job-version", ["exports", "@ember/component", "@ember/object", "@ember-decorators/component", "@ember/service", "ember-concurrency", "nomad-ui/utils/message-from-adapter-error"], function (_exports, _component, _object, _component2, _service, _emberConcurrency, _messageFromAdapterError) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _class, _class2, _descriptor, _descriptor2;

  0; //eaimeta@70e063a35619d71f0,"@ember/component",0,"@ember/object",0,"@ember-decorators/component",0,"@ember/service",0,"ember-concurrency",0,"nomad-ui/utils/message-from-adapter-error",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;
  const changeTypes = ['Added', 'Deleted', 'Edited'];
  let JobVersion = (_dec = (0, _component2.classNames)('job-version', 'boxed-section'), _dec2 = (0, _object.computed)('version.diff'), _dec3 = (0, _object.computed)('version.{number,job.version}'), _dec4 = (0, _emberConcurrency.task)(function* () {
    try {
      const versionBeforeReversion = this.get('version.job.version');
      yield this.version.revertTo();
      yield this.version.job.reload();
      const versionAfterReversion = this.get('version.job.version');

      if (versionBeforeReversion === versionAfterReversion) {
        this.handleError({
          level: 'warn',
          title: 'Reversion Had No Effect',
          description: 'Reverting to an identical older version doesn’t produce a new version'
        });
      } else {
        const job = this.get('version.job');
        this.router.transitionTo('jobs.job.index', job.get('idWithNamespace'));
      }
    } catch (e) {
      this.handleError({
        level: 'danger',
        title: 'Could Not Revert',
        description: (0, _messageFromAdapterError.default)(e, 'revert')
      });
    }
  }), classic(_class = _dec(_class = (_class2 = class JobVersion extends _component.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "version", null);

      _defineProperty(this, "isOpen", false);

      _defineProperty(this, "verbose", true);

      _initializerDefineProperty(this, "router", _descriptor, this);

      _initializerDefineProperty(this, "revertTo", _descriptor2, this);
    }

    get changeCount() {
      const diff = this.get('version.diff');
      const taskGroups = diff.TaskGroups || [];

      if (!diff) {
        return 0;
      }

      return fieldChanges(diff) + taskGroups.reduce(arrayOfFieldChanges, 0) + (taskGroups.mapBy('Tasks') || []).reduce(flatten, []).reduce(arrayOfFieldChanges, 0);
    }

    get isCurrent() {
      return this.get('version.number') === this.get('version.job.version');
    }

    toggleDiff() {
      this.toggleProperty('isOpen');
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "router", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "changeCount", [_dec2], Object.getOwnPropertyDescriptor(_class2.prototype, "changeCount"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "isCurrent", [_dec3], Object.getOwnPropertyDescriptor(_class2.prototype, "isCurrent"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "toggleDiff", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "toggleDiff"), _class2.prototype), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "revertTo", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class2)) || _class) || _class);
  _exports.default = JobVersion;

  const flatten = (accumulator, array) => accumulator.concat(array);

  const countChanges = (total, field) => changeTypes.includes(field.Type) ? total + 1 : total;

  function fieldChanges(diff) {
    return (diff.Fields || []).reduce(countChanges, 0) + (diff.Objects || []).reduce(arrayOfFieldChanges, 0);
  }

  function arrayOfFieldChanges(count, diff) {
    if (!diff) {
      return count;
    }

    return count + fieldChanges(diff);
  }
});
;define("nomad-ui/components/job-versions-stream", ["exports", "@ember/component", "@ember/object", "ember-overridable-computed", "moment", "@ember-decorators/component"], function (_exports, _component, _object, _emberOverridableComputed, _moment, _component2) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _class, _class2, _descriptor;

  0; //eaimeta@70e063a35619d71f0,"@ember/component",0,"@ember/object",0,"ember-overridable-computed",0,"moment",0,"@ember-decorators/component",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let JobVersionsStream = (_dec = (0, _component2.tagName)('ol'), _dec2 = (0, _component2.classNames)('timeline'), _dec3 = (0, _emberOverridableComputed.computed)(() => []), _dec4 = (0, _object.computed)('versions.[]'), classic(_class = _dec(_class = _dec2(_class = (_class2 = class JobVersionsStream extends _component.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "versions", _descriptor, this);

      _defineProperty(this, "verbose", true);
    }

    get annotatedVersions() {
      const versions = this.versions.sortBy('submitTime').reverse();
      return versions.map((version, index) => {
        const meta = {};

        if (index === 0) {
          meta.showDate = true;
        } else {
          const previousVersion = versions.objectAt(index - 1);
          const previousStart = (0, _moment.default)(previousVersion.get('submitTime')).startOf('day');
          const currentStart = (0, _moment.default)(version.get('submitTime')).startOf('day');

          if (previousStart.diff(currentStart, 'days') > 0) {
            meta.showDate = true;
          }
        }

        return {
          version,
          meta
        };
      });
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "versions", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "annotatedVersions", [_dec4], Object.getOwnPropertyDescriptor(_class2.prototype, "annotatedVersions"), _class2.prototype)), _class2)) || _class) || _class) || _class);
  _exports.default = JobVersionsStream;
});
;define("nomad-ui/components/json-viewer", ["exports", "@ember/component", "@ember-decorators/component"], function (_exports, _component, _component2) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _class;

  0; //eaimeta@70e063a35619d71f0,"@ember/component",0,"@ember-decorators/component",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  const classic = __EMBER_CLASSIC_DECORATOR;
  let JsonViewer = (_dec = (0, _component2.classNames)('json-viewer'), _dec2 = (0, _component2.classNameBindings)('fluidHeight:has-fluid-height'), classic(_class = _dec(_class = _dec2(_class = class JsonViewer extends _component.default {}) || _class) || _class) || _class);
  _exports.default = JsonViewer;
});
;define("nomad-ui/components/keyboard-shortcuts-modal", ["exports", "@ember/component", "@ember/template-factory", "@ember/object", "@glimmer/component", "@ember/service", "tether"], function (_exports, _component, _templateFactory, _object, _component2, _service, _tether) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _class, _descriptor, _descriptor2;

  0; //eaimeta@70e063a35619d71f0,"@ember/object",0,"@glimmer/component",0,"@ember/service",0,"@ember/object",0,"@ember/object",0,"tether",0,"@ember/template-factory"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const __COLOCATED_TEMPLATE__ = (0, _templateFactory.createTemplateFactory)(
  /*
    {{!
    Copyright (c) HashiCorp, Inc.
    SPDX-License-Identifier: MPL-2.0
  ~}}
  
  {{#if this.keyboard.shortcutsVisible}}
    {{keyboard-commands (array this.escapeCommand)}}
    <div class="keyboard-shortcuts"
        {{on-click-outside
          (toggle "keyboard.shortcutsVisible" this)
        }}
    >
      <header>
        <button
          {{autofocus}}
          class="button is-borderless dismiss"
          type="button"
          {{on "click" (toggle "keyboard.shortcutsVisible" this)}}
          aria-label="Dismiss"
        >
          {{x-icon "cancel"}}
        </button>
        <h2>Keyboard Shortcuts</h2>
        <p>Click a key pattern to re-bind it to a shortcut of your choosing.</p>
      </header>
      <ul class="commands-list">
        {{#each this.commands as |command|}}
          <li data-test-command-label={{command.label}}>
            <strong>{{command.label}}</strong>
              <span class="keys">
                {{#if command.recording}}
                  <span class="recording">Recording; ESC to cancel.</span>
                {{else}}
                  {{#if command.custom}}
                    <button type="button" class="reset-to-default" {{on "click" (action this.keyboard.resetCommandToDefault command)}}>reset to default</button>
                  {{/if}}
                {{/if}}
  
                <button data-test-rebinder disabled={{or (not command.rebindable) command.recording}} type="button" {{on "click" (action this.keyboard.rebindCommand command)}}>
                  {{#each command.pattern as |key|}}
                    <span>{{clean-keycommand key}}</span>
                  {{/each}}
                </button>
              </span>
          </li>
        {{/each}}
      </ul>
      <footer>
        <strong>Keyboard shortcuts {{#if this.keyboard.enabled}}enabled{{else}}disabled{{/if}}</strong>
        <Toggle
          data-test-enable-shortcuts-toggle
          @isActive={{this.keyboard.enabled}}
          @onToggle={{this.toggleListener}}
          title="{{if this.keyboard.enabled "enable" "disable"}} keyboard shortcuts"
        />
      </footer>
    </div>
  {{/if}}
  
  {{#if (and this.keyboard.enabled this.keyboard.displayHints)}}
    {{#each this.hints as |hint|}}
      <span
        {{did-insert (fn this.tetherToElement hint.element hint)}}
        {{will-destroy (fn this.untetherFromElement hint)}}
        data-test-keyboard-hint
        data-shortcut={{hint.pattern}}
        class="{{if hint.menuLevel "menu-level"}}"
        aria-hidden="true"
      >
        {{#each hint.pattern as |key|}}
          <span>{{key}}</span>
        {{/each}}
      </span>
    {{/each}}
  {{/if}}
  
  */
  {
    "id": "BFDRBe7I",
    "block": "[[[41,[30,0,[\"keyboard\",\"shortcutsVisible\"]],[[[1,\"  \"],[1,[28,[35,1],[[28,[37,2],[[30,0,[\"escapeCommand\"]]],null]],null]],[1,\"\\n  \"],[11,0],[24,0,\"keyboard-shortcuts\"],[4,[38,3],[[28,[37,4],[\"keyboard.shortcutsVisible\",[30,0]],null]],null],[12],[1,\"\\n    \"],[10,\"header\"],[12],[1,\"\\n      \"],[11,\"button\"],[24,0,\"button is-borderless dismiss\"],[24,\"aria-label\",\"Dismiss\"],[24,4,\"button\"],[4,[38,5],null,null],[4,[38,6],[\"click\",[28,[37,4],[\"keyboard.shortcutsVisible\",[30,0]],null]],null],[12],[1,\"\\n        \"],[1,[28,[35,7],[\"cancel\"],null]],[1,\"\\n      \"],[13],[1,\"\\n      \"],[10,\"h2\"],[12],[1,\"Keyboard Shortcuts\"],[13],[1,\"\\n      \"],[10,2],[12],[1,\"Click a key pattern to re-bind it to a shortcut of your choosing.\"],[13],[1,\"\\n    \"],[13],[1,\"\\n    \"],[10,\"ul\"],[14,0,\"commands-list\"],[12],[1,\"\\n\"],[42,[28,[37,9],[[28,[37,9],[[30,0,[\"commands\"]]],null]],null],null,[[[1,\"        \"],[10,\"li\"],[12],[1,\"\\n          \"],[10,\"strong\"],[12],[1,[30,1,[\"label\"]]],[13],[1,\"\\n            \"],[10,1],[14,0,\"keys\"],[12],[1,\"\\n\"],[41,[30,1,[\"recording\"]],[[[1,\"                \"],[10,1],[14,0,\"recording\"],[12],[1,\"Recording; ESC to cancel.\"],[13],[1,\"\\n\"]],[]],[[[41,[30,1,[\"custom\"]],[[[1,\"                  \"],[11,\"button\"],[24,0,\"reset-to-default\"],[24,4,\"button\"],[4,[38,6],[\"click\",[28,[37,10],[[30,0],[30,0,[\"keyboard\",\"resetCommandToDefault\"]],[30,1]],null]],null],[12],[1,\"reset to default\"],[13],[1,\"\\n\"]],[]],null]],[]]],[1,\"\\n              \"],[11,\"button\"],[16,\"disabled\",[28,[37,11],[[28,[37,12],[[30,1,[\"rebindable\"]]],null],[30,1,[\"recording\"]]],null]],[24,4,\"button\"],[4,[38,6],[\"click\",[28,[37,10],[[30,0],[30,0,[\"keyboard\",\"rebindCommand\"]],[30,1]],null]],null],[12],[1,\"\\n\"],[42,[28,[37,9],[[28,[37,9],[[30,1,[\"pattern\"]]],null]],null],null,[[[1,\"                  \"],[10,1],[12],[1,[28,[35,13],[[30,2]],null]],[13],[1,\"\\n\"]],[2]],null],[1,\"              \"],[13],[1,\"\\n            \"],[13],[1,\"\\n        \"],[13],[1,\"\\n\"]],[1]],null],[1,\"    \"],[13],[1,\"\\n    \"],[10,\"footer\"],[12],[1,\"\\n      \"],[10,\"strong\"],[12],[1,\"Keyboard shortcuts \"],[41,[30,0,[\"keyboard\",\"enabled\"]],[[[1,\"enabled\"]],[]],[[[1,\"disabled\"]],[]]],[13],[1,\"\\n      \"],[8,[39,4],[[16,\"title\",[29,[[52,[30,0,[\"keyboard\",\"enabled\"]],\"enable\",\"disable\"],\" keyboard shortcuts\"]]]],[[\"@isActive\",\"@onToggle\"],[[30,0,[\"keyboard\",\"enabled\"]],[30,0,[\"toggleListener\"]]]],null],[1,\"\\n    \"],[13],[1,\"\\n  \"],[13],[1,\"\\n\"]],[]],null],[1,\"\\n\"],[41,[28,[37,14],[[30,0,[\"keyboard\",\"enabled\"]],[30,0,[\"keyboard\",\"displayHints\"]]],null],[[[42,[28,[37,9],[[28,[37,9],[[30,0,[\"hints\"]]],null]],null],null,[[[1,\"    \"],[11,1],[16,\"data-shortcut\",[30,3,[\"pattern\"]]],[16,0,[29,[[52,[30,3,[\"menuLevel\"]],\"menu-level\"]]]],[24,\"aria-hidden\",\"true\"],[4,[38,15],[[28,[37,16],[[30,0,[\"tetherToElement\"]],[30,3,[\"element\"]],[30,3]],null]],null],[4,[38,17],[[28,[37,16],[[30,0,[\"untetherFromElement\"]],[30,3]],null]],null],[12],[1,\"\\n\"],[42,[28,[37,9],[[28,[37,9],[[30,3,[\"pattern\"]]],null]],null],null,[[[1,\"        \"],[10,1],[12],[1,[30,4]],[13],[1,\"\\n\"]],[4]],null],[1,\"    \"],[13],[1,\"\\n\"]],[3]],null]],[]],null]],[\"command\",\"key\",\"hint\",\"key\"],false,[\"if\",\"keyboard-commands\",\"array\",\"on-click-outside\",\"toggle\",\"autofocus\",\"on\",\"x-icon\",\"each\",\"-track-array\",\"action\",\"or\",\"not\",\"clean-keycommand\",\"and\",\"did-insert\",\"fn\",\"will-destroy\"]]",
    "moduleName": "nomad-ui/components/keyboard-shortcuts-modal.hbs",
    "isStrictMode": false
  });
  /**
   * Copyright (c) HashiCorp, Inc.
   * SPDX-License-Identifier: MPL-2.0
   */


  let KeyboardShortcutsModalComponent = (_dec = (0, _object.computed)('keyboard.keyCommands.[]'), _dec2 = (0, _object.computed)('keyboard.{keyCommands.length,displayHints}'), (_class = class KeyboardShortcutsModalComponent extends _component2.default {
    blurHandler() {
      (0, _object.set)(this, 'keyboard.displayHints', false);
    }

    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "keyboard", _descriptor, this);

      _initializerDefineProperty(this, "config", _descriptor2, this);

      _defineProperty(this, "escapeCommand", {
        label: 'Hide Keyboard Shortcuts',
        pattern: ['Escape'],
        action: () => {
          this.keyboard.shortcutsVisible = false;
        }
      });

      (0, _object.set)(this, '_blurHandler', this.blurHandler.bind(this));
      window.addEventListener('blur', this._blurHandler);
    }

    willDestroy() {
      super.willDestroy(...arguments);
      window.removeEventListener('blur', this._blurHandler);
    }

    /**
     * commands: filter keyCommands to those that have an action and a label,
     * to distinguish between those that are just visual hints of existing commands
     */
    get commands() {
      return this.keyboard.keyCommands.reduce((memo, c) => {
        if (c.label && c.action && !memo.find(m => m.label === c.label)) {
          memo.push(c);
        }

        return memo;
      }, []);
    }
    /**
     * hints: filter keyCommands to those that have an element property,
     * and then compute a position on screen to place the hint.
     */


    get hints() {
      if (this.keyboard.displayHints) {
        return this.keyboard.keyCommands.filter(c => c.element);
      } else {
        return [];
      }
    }

    tetherToElement(element, hint, self) {
      if (!this.config.isTest) {
        let binder = new _tether.default({
          element: self,
          target: element,
          attachment: 'top left',
          targetAttachment: 'top left',
          targetModifier: 'visible'
        });
        hint.binder = binder;
      }
    }

    untetherFromElement(hint) {
      if (!this.config.isTest) {
        hint.binder.destroy();
      }
    }

    toggleListener() {
      this.keyboard.enabled = !this.keyboard.enabled;
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "keyboard", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "config", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class.prototype, "commands", [_dec], Object.getOwnPropertyDescriptor(_class.prototype, "commands"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "hints", [_dec2], Object.getOwnPropertyDescriptor(_class.prototype, "hints"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "tetherToElement", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "tetherToElement"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "untetherFromElement", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "untetherFromElement"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "toggleListener", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "toggleListener"), _class.prototype)), _class));
  _exports.default = KeyboardShortcutsModalComponent;
  (0, _component.setComponentTemplate)(__COLOCATED_TEMPLATE__, KeyboardShortcutsModalComponent);
});
;define("nomad-ui/components/lifecycle-chart-row", ["exports", "@ember/component", "@ember/object", "@ember-decorators/component"], function (_exports, _component, _object, _component2) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _class, _class2;

  0; //eaimeta@70e063a35619d71f0,"@ember/component",0,"@ember/object",0,"@ember-decorators/component",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let LifecycleChartRow = (_dec = (0, _component2.tagName)(''), _dec2 = (0, _object.computed)('taskState.state'), _dec3 = (0, _object.computed)('taskState.state'), _dec4 = (0, _object.computed)('task.lifecycleName'), classic(_class = _dec(_class = (_class2 = class LifecycleChartRow extends _component.default {
    get activeClass() {
      if (this.taskState && this.taskState.state === 'running') {
        return 'is-active';
      }

      return undefined;
    }

    get finishedClass() {
      if (this.taskState && this.taskState.state === 'dead') {
        return 'is-finished';
      }

      return undefined;
    }

    get lifecycleLabel() {
      if (!this.task) {
        return '';
      }

      const name = this.task.lifecycleName;

      if (name.includes('sidecar')) {
        return 'sidecar';
      } else if (name.includes('ephemeral')) {
        return name.substr(0, name.indexOf('-'));
      } else {
        return name;
      }
    }

  }, (_applyDecoratedDescriptor(_class2.prototype, "activeClass", [_dec2], Object.getOwnPropertyDescriptor(_class2.prototype, "activeClass"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "finishedClass", [_dec3], Object.getOwnPropertyDescriptor(_class2.prototype, "finishedClass"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "lifecycleLabel", [_dec4], Object.getOwnPropertyDescriptor(_class2.prototype, "lifecycleLabel"), _class2.prototype)), _class2)) || _class) || _class);
  _exports.default = LifecycleChartRow;
});
;define("nomad-ui/components/lifecycle-chart", ["exports", "@ember/component", "@ember/object", "@ember/object/computed", "@ember-decorators/component"], function (_exports, _component, _object, _computed, _component2) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _class, _class2, _descriptor, _descriptor2;

  0; //eaimeta@70e063a35619d71f0,"@ember/component",0,"@ember/object",0,"@ember/object/computed",0,"@ember-decorators/component",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let LifecycleChart = (_dec = (0, _component2.tagName)(''), _dec2 = (0, _object.computed)('tasks.@each.lifecycle', 'taskStates.@each.state'), _dec3 = (0, _computed.sort)('taskStates', function (a, b) {
    return getTaskSortPrefix(a.task).localeCompare(getTaskSortPrefix(b.task));
  }), _dec4 = (0, _computed.sort)('tasks', function (a, b) {
    return getTaskSortPrefix(a).localeCompare(getTaskSortPrefix(b));
  }), classic(_class = _dec(_class = (_class2 = class LifecycleChart extends _component.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "tasks", null);

      _defineProperty(this, "taskStates", null);

      _initializerDefineProperty(this, "sortedLifecycleTaskStates", _descriptor, this);

      _initializerDefineProperty(this, "sortedLifecycleTasks", _descriptor2, this);
    }

    get lifecyclePhases() {
      const tasksOrStates = this.taskStates || this.tasks;
      const lifecycles = {
        'prestart-ephemerals': [],
        'prestart-sidecars': [],
        'poststart-ephemerals': [],
        'poststart-sidecars': [],
        poststops: [],
        mains: []
      };
      tasksOrStates.forEach(taskOrState => {
        const task = taskOrState.task || taskOrState;

        if (task.lifecycleName) {
          lifecycles[`${task.lifecycleName}s`].push(taskOrState);
        }
      });
      const phases = [];

      const stateActiveIterator = state => state.state === 'running';

      if (lifecycles.mains.length < tasksOrStates.length) {
        phases.push({
          name: 'Prestart',
          isActive: lifecycles['prestart-ephemerals'].some(stateActiveIterator)
        });
        phases.push({
          name: 'Main',
          isActive: lifecycles.mains.some(stateActiveIterator) || lifecycles['poststart-ephemerals'].some(stateActiveIterator)
        }); // Poststart is rendered as a subphase of main and therefore has no independent active state

        phases.push({
          name: 'Poststart'
        });
        phases.push({
          name: 'Poststop',
          isActive: lifecycles.poststops.some(stateActiveIterator)
        });
      }

      return phases;
    }

  }, (_applyDecoratedDescriptor(_class2.prototype, "lifecyclePhases", [_dec2], Object.getOwnPropertyDescriptor(_class2.prototype, "lifecyclePhases"), _class2.prototype), _descriptor = _applyDecoratedDescriptor(_class2.prototype, "sortedLifecycleTaskStates", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "sortedLifecycleTasks", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class2)) || _class) || _class);
  _exports.default = LifecycleChart;
  const lifecycleNameSortPrefix = {
    'prestart-ephemeral': 0,
    'prestart-sidecar': 1,
    main: 2,
    'poststart-sidecar': 3,
    'poststart-ephemeral': 4,
    poststop: 5
  };

  function getTaskSortPrefix(task) {
    return `${lifecycleNameSortPrefix[task.lifecycleName]}-${task.name}`;
  }
});
;define("nomad-ui/components/line-chart", ["exports", "@glimmer/component", "@glimmer/tracking", "@ember/object", "@ember/runloop", "d3-selection", "d3-scale", "d3-axis", "d3-array", "d3-format", "d3-time-format", "nomad-ui/utils/properties/glimmer-style-string", "nomad-ui/utils/properties/uniquely"], function (_exports, _component, _tracking, _object, _runloop, _d3Selection, _d3Scale, _d3Axis, _d3Array, _d3Format, _d3TimeFormat, _glimmerStyleString, _uniquely) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _class, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8, _descriptor9, _descriptor10;

  0; //eaimeta@70e063a35619d71f0,"@glimmer/component",0,"@glimmer/tracking",0,"@ember/object",0,"@ember/runloop",0,"d3-selection",0,"d3-scale",0,"d3-axis",0,"d3-array",0,"d3-format",0,"d3-time-format",0,"nomad-ui/utils/properties/glimmer-style-string",0,"nomad-ui/utils/properties/uniquely"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  // Returns a new array with the specified number of points linearly
  // distributed across the bounds
  const lerp = (_ref, numPoints) => {
    let [low, high] = _ref;
    const step = (high - low) / (numPoints - 1);
    const arr = [];

    for (var i = 0; i < numPoints; i++) {
      arr.push(low + step * i);
    }

    return arr;
  }; // Round a number or an array of numbers


  const nice = val => val instanceof Array ? val.map(nice) : Math.round(val);

  const defaultXScale = (data, yAxisOffset, xProp, timeseries) => {
    const scale = timeseries ? _d3Scale.default.scaleTime() : _d3Scale.default.scaleLinear();
    const domain = data.length ? _d3Array.default.extent(data, d => d[xProp]) : [0, 1];
    scale.rangeRound([10, yAxisOffset]).domain(domain);
    return scale;
  };

  const defaultYScale = (data, xAxisOffset, yProp) => {
    let max = _d3Array.default.max(data, d => d[yProp]) || 1;

    if (max > 1) {
      max = nice(max);
    }

    return _d3Scale.default.scaleLinear().rangeRound([xAxisOffset, 10]).domain([0, max]);
  };

  let LineChart = (_dec = (0, _uniquely.default)('title'), _dec2 = (0, _uniquely.default)('desc'), (_class = class LineChart extends _component.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "width", _descriptor, this);

      _initializerDefineProperty(this, "height", _descriptor2, this);

      _initializerDefineProperty(this, "isActive", _descriptor3, this);

      _initializerDefineProperty(this, "activeDatum", _descriptor4, this);

      _initializerDefineProperty(this, "activeData", _descriptor5, this);

      _initializerDefineProperty(this, "tooltipPosition", _descriptor6, this);

      _initializerDefineProperty(this, "element", _descriptor7, this);

      _initializerDefineProperty(this, "ready", _descriptor8, this);

      _initializerDefineProperty(this, "titleId", _descriptor9, this);

      _initializerDefineProperty(this, "descriptionId", _descriptor10, this);
    }

    get xProp() {
      return this.args.xProp || 'time';
    }

    get yProp() {
      return this.args.yProp || 'value';
    }

    get data() {
      if (!this.args.data) return [];

      if (this.args.dataProp) {
        return this.args.data.mapBy(this.args.dataProp).flat();
      }

      return this.args.data;
    }

    get curve() {
      return this.args.curve || 'linear';
    }

    xFormat(timeseries) {
      if (this.args.xFormat) return this.args.xFormat;
      return timeseries ? _d3TimeFormat.default.timeFormat('%b %d, %H:%M') : _d3Format.default.format(',');
    }

    yFormat() {
      if (this.args.yFormat) return this.args.yFormat;
      return _d3Format.default.format(',.2~r');
    }

    get activeDatumLabel() {
      const datum = this.activeDatum;
      if (!datum) return undefined;
      const x = datum[this.xProp];
      return this.xFormat(this.args.timeseries)(x);
    }

    get activeDatumValue() {
      const datum = this.activeDatum;
      if (!datum) return undefined;
      const y = datum[this.yProp];
      return this.yFormat()(y);
    }

    get tooltipStyle() {
      return this.tooltipPosition;
    }

    get xScale() {
      const fn = this.args.xScale || defaultXScale;
      return fn(this.data, this.yAxisOffset, this.xProp, this.args.timeseries);
    }

    get xRange() {
      const {
        xProp,
        data
      } = this;

      const range = _d3Array.default.extent(data, d => d[xProp]);

      const formatter = this.xFormat(this.args.timeseries);
      return range.map(formatter);
    }

    get yRange() {
      const yProp = this.yProp;

      const range = _d3Array.default.extent(this.data, d => d[yProp]);

      const formatter = this.yFormat();
      return range.map(formatter);
    }

    get yScale() {
      const fn = this.args.yScale || defaultYScale;
      return fn(this.data, this.xAxisOffset, this.yProp);
    }

    get xAxis() {
      const formatter = this.xFormat(this.args.timeseries);
      return _d3Axis.default.axisBottom().scale(this.xScale).ticks(5).tickFormat(formatter);
    }

    get yTicks() {
      const height = this.xAxisOffset;
      const tickCount = Math.ceil(height / 120) * 2 + 1;
      const domain = this.yScale.domain();
      const ticks = lerp(domain, tickCount);
      return domain[1] - domain[0] > 1 ? nice(ticks) : ticks;
    }

    get yAxis() {
      const formatter = this.yFormat();
      return _d3Axis.default.axisRight().scale(this.yScale).tickValues(this.yTicks).tickFormat(formatter);
    }

    get yGridlines() {
      // The first gridline overlaps the x-axis, so remove it
      const [, ...ticks] = this.yTicks;
      return _d3Axis.default.axisRight().scale(this.yScale).tickValues(ticks).tickSize(-this.canvasDimensions.width).tickFormat('');
    }

    get xAxisHeight() {
      // Avoid divide by zero errors by always having a height
      if (!this.element) return 1;
      const axis = this.element.querySelector('.x-axis');
      return axis && axis.getBBox().height;
    }

    get yAxisWidth() {
      // Avoid divide by zero errors by always having a width
      if (!this.element) return 1;
      const axis = this.element.querySelector('.y-axis');
      return axis && axis.getBBox().width;
    }

    get xAxisOffset() {
      return Math.max(0, this.height - this.xAxisHeight);
    }

    get yAxisOffset() {
      return Math.max(0, this.width - this.yAxisWidth);
    }

    get canvasDimensions() {
      const [left, right] = this.xScale.range();
      const [top, bottom] = this.yScale.range();
      return {
        left,
        width: right - left,
        top,
        height: bottom - top
      };
    }

    onInsert(element) {
      this.element = element;
      this.updateDimensions();

      const canvas = _d3Selection.default.select(this.element.querySelector('.hover-target'));

      const updateActiveDatum = this.updateActiveDatum.bind(this);
      const chart = this;
      canvas.on('mouseenter', function (ev) {
        const mouseX = _d3Selection.default.pointer(ev, this)[0];

        chart.latestMouseX = mouseX;
        updateActiveDatum(mouseX);
        (0, _runloop.schedule)('afterRender', chart, () => chart.isActive = true);
      });
      canvas.on('mousemove', function (ev) {
        const mouseX = _d3Selection.default.pointer(ev, this)[0];

        chart.latestMouseX = mouseX;
        updateActiveDatum(mouseX);
      });
      canvas.on('mouseleave', () => {
        (0, _runloop.schedule)('afterRender', this, () => this.isActive = false);
        this.activeDatum = null;
        this.activeData = [];
      });
    }

    updateActiveDatum(mouseX) {
      if (!this.data || !this.data.length) return;
      const {
        xScale,
        xProp,
        yScale,
        yProp
      } = this;
      let {
        dataProp,
        data
      } = this.args;

      if (!dataProp) {
        dataProp = 'data';
        data = [{
          data: this.data
        }];
      } // Map screen coordinates to data domain


      const bisector = _d3Array.default.bisector(d => d[xProp]).left;

      const x = xScale.invert(mouseX); // Find the closest datum to the cursor for each series

      const activeData = data.map((series, seriesIndex) => {
        const dataset = series[dataProp]; // If the dataset is empty, there can't be an activeData.
        // This must be done here instead of preemptively in a filter to
        // preserve the seriesIndex value.

        if (!dataset.length) return null;
        const index = bisector(dataset, x, 1); // The data point on either side of the cursor

        const dLeft = dataset[index - 1];
        const dRight = dataset[index];
        let datum; // If there is only one point, it's the activeDatum

        if (dLeft && !dRight) {
          datum = dLeft;
        } else {
          // Pick the closer point
          datum = x - dLeft[xProp] > dRight[xProp] - x ? dRight : dLeft;
        }

        return {
          series,
          datum: {
            formattedX: this.xFormat(this.args.timeseries)(datum[xProp]),
            formattedY: this.yFormat()(datum[yProp]),
            datum
          },
          index: data.length - seriesIndex - 1
        };
      }).compact(); // Of the selected data, determine which is closest

      const closestDatum = activeData.slice().sort((a, b) => Math.abs(a.datum.datum[xProp] - x) - Math.abs(b.datum.datum[xProp] - x))[0]; // If any other selected data are beyond a distance threshold, drop them from the list
      // xScale is used here to measure distance in screen-space rather than data-space.

      const dist = Math.abs(xScale(closestDatum.datum.datum[xProp]) - mouseX);
      const filteredData = activeData.filter(d => Math.abs(xScale(d.datum.datum[xProp]) - mouseX) < dist + 10);
      this.activeData = filteredData;
      this.activeDatum = closestDatum.datum.datum;
      this.tooltipPosition = {
        left: xScale(this.activeDatum[xProp]),
        top: yScale(this.activeDatum[yProp]) - 10
      };
    } // The renderChart method should only ever be responsible for runtime calculations
    // and appending d3 created elements to the DOM (such as axes).


    renderChart() {
      // There is nothing to do if the element hasn't been inserted yet
      if (!this.element) return; // Create the axes to get the dimensions of the resulting
      // svg elements

      this.mountD3Elements();
      (0, _runloop.next)(() => {
        // Since each axis depends on the dimension of the other
        // axis, the axes themselves are recomputed and need to
        // be re-rendered.
        this.mountD3Elements();
        this.ready = true;

        if (this.isActive) {
          this.updateActiveDatum(this.latestMouseX);
        }
      });
    }

    recomputeXAxis(el) {
      if (!this.isDestroyed && !this.isDestroying) {
        _d3Selection.default.select(el.querySelector('.x-axis')).call(this.xAxis);
      }
    }

    recomputeYAxis(el) {
      if (!this.isDestroyed && !this.isDestroying) {
        _d3Selection.default.select(el.querySelector('.y-axis')).call(this.yAxis);
      }
    }

    mountD3Elements() {
      if (!this.isDestroyed && !this.isDestroying) {
        _d3Selection.default.select(this.element.querySelector('.x-axis')).call(this.xAxis);

        _d3Selection.default.select(this.element.querySelector('.y-axis')).call(this.yAxis);

        _d3Selection.default.select(this.element.querySelector('.y-gridlines')).call(this.yGridlines);
      }
    }

    annotationClick(annotation) {
      this.args.onAnnotationClick && this.args.onAnnotationClick(annotation);
    }

    updateDimensions() {
      const $svg = this.element.querySelector('svg');
      this.height = $svg.clientHeight;
      this.width = $svg.clientWidth;
      this.renderChart();
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "width", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return 0;
    }
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "height", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return 0;
    }
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "isActive", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return false;
    }
  }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, "activeDatum", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return null;
    }
  }), _descriptor5 = _applyDecoratedDescriptor(_class.prototype, "activeData", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return [];
    }
  }), _descriptor6 = _applyDecoratedDescriptor(_class.prototype, "tooltipPosition", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return null;
    }
  }), _descriptor7 = _applyDecoratedDescriptor(_class.prototype, "element", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return null;
    }
  }), _descriptor8 = _applyDecoratedDescriptor(_class.prototype, "ready", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return false;
    }
  }), _descriptor9 = _applyDecoratedDescriptor(_class.prototype, "titleId", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor10 = _applyDecoratedDescriptor(_class.prototype, "descriptionId", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class.prototype, "xFormat", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "xFormat"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "yFormat", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "yFormat"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "tooltipStyle", [_glimmerStyleString.default], Object.getOwnPropertyDescriptor(_class.prototype, "tooltipStyle"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "onInsert", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "onInsert"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "recomputeXAxis", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "recomputeXAxis"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "recomputeYAxis", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "recomputeYAxis"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "updateDimensions", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "updateDimensions"), _class.prototype)), _class));
  _exports.default = LineChart;
});
;define("nomad-ui/components/list-accordion", ["exports", "@ember/component", "@ember/object", "ember-overridable-computed", "@ember-decorators/component"], function (_exports, _component, _object, _emberOverridableComputed, _component2) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _class, _class2, _descriptor, _descriptor2;

  0; //eaimeta@70e063a35619d71f0,"@ember/component",0,"@ember/object",0,"ember-overridable-computed",0,"@ember-decorators/component",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let ListAccordion = (_dec = (0, _component2.classNames)('accordion'), _dec2 = (0, _emberOverridableComputed.computed)(() => []), _dec3 = (0, _object.computed)('key', 'source.[]', 'startExpanded', 'stateCache'), _dec4 = (0, _emberOverridableComputed.computed)(() => []), classic(_class = _dec(_class = (_class2 = class ListAccordion extends _component.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "key", 'id');

      _initializerDefineProperty(this, "source", _descriptor, this);

      _defineProperty(this, "startExpanded", false);

      _initializerDefineProperty(this, "stateCache", _descriptor2, this);
    }

    onToggle
    /* item, isOpen */
    () {}

    get decoratedSource() {
      const stateCache = this.stateCache;
      const key = this.key;
      const deepKey = `item.${key}`;
      const startExpanded = this.startExpanded;
      const decoratedSource = this.source.map(item => {
        const cacheItem = stateCache.findBy(deepKey, (0, _object.get)(item, key));
        return {
          item,
          isOpen: cacheItem ? !!cacheItem.isOpen : startExpanded
        };
      }); // eslint-disable-next-line ember/no-side-effects

      this.set('stateCache', decoratedSource);
      return decoratedSource;
    } // When source updates come in, the state cache is used to preserve
    // open/close state.


  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "source", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "decoratedSource", [_dec3], Object.getOwnPropertyDescriptor(_class2.prototype, "decoratedSource"), _class2.prototype), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "stateCache", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class2)) || _class) || _class);
  _exports.default = ListAccordion;
});
;define("nomad-ui/components/list-accordion/accordion-body", ["exports", "@ember/component", "@ember-decorators/component"], function (_exports, _component, _component2) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _class;

  0; //eaimeta@70e063a35619d71f0,"@ember/component",0,"@ember-decorators/component",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let AccordionBody = (_dec = (0, _component2.tagName)(''), classic(_class = _dec(_class = class AccordionBody extends _component.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "isOpen", false);
    }

  }) || _class) || _class);
  _exports.default = AccordionBody;
});
;define("nomad-ui/components/list-accordion/accordion-head", ["exports", "@ember/component", "@ember-decorators/component"], function (_exports, _component, _component2) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _class;

  0; //eaimeta@70e063a35619d71f0,"@ember/component",0,"@ember-decorators/component",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let AccordionHead = (_dec = (0, _component2.classNames)('accordion-head'), _dec2 = (0, _component2.classNameBindings)('isOpen::is-light', 'isExpandable::is-inactive'), _dec3 = (0, _component2.attributeBindings)('data-test-accordion-head'), classic(_class = _dec(_class = _dec2(_class = _dec3(_class = class AccordionHead extends _component.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, 'data-test-accordion-head', true);

      _defineProperty(this, "buttonLabel", 'toggle');

      _defineProperty(this, "isOpen", false);

      _defineProperty(this, "isExpandable", true);

      _defineProperty(this, "item", null);
    }

    onClose() {}

    onOpen() {}

  }) || _class) || _class) || _class) || _class);
  _exports.default = AccordionHead;
});
;define("nomad-ui/components/list-pagination", ["exports", "@ember/component", "@ember/object", "ember-overridable-computed"], function (_exports, _component, _object, _emberOverridableComputed) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _class, _class2, _descriptor;

  0; //eaimeta@70e063a35619d71f0,"@ember/component",0,"@ember/object",0,"ember-overridable-computed",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let ListPagination = (_dec = (0, _emberOverridableComputed.computed)(() => []), _dec2 = (0, _object.computed)('size', 'page'), _dec3 = (0, _object.computed)('source.[]', 'size', 'page'), _dec4 = (0, _object.computed)('source.[]', 'size'), _dec5 = (0, _object.computed)('source.[]', 'page', 'spread'), _dec6 = (0, _object.computed)('source.[]', 'page', 'size'), classic(_class = (_class2 = class ListPagination extends _component.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "source", _descriptor, this);

      _defineProperty(this, "size", 25);

      _defineProperty(this, "page", 1);

      _defineProperty(this, "spread", 2);
    }

    get startsAt() {
      return (this.page - 1) * this.size + 1;
    }

    get endsAt() {
      return Math.min(this.page * this.size, this.get('source.length'));
    }

    get lastPage() {
      return Math.ceil(this.get('source.length') / this.size);
    }

    get pageLinks() {
      const {
        spread,
        page,
        lastPage
      } = this; // When there is only one page, don't bother with page links

      if (lastPage === 1) {
        return [];
      }

      const lowerBound = Math.max(1, page - spread);
      const upperBound = Math.min(lastPage, page + spread) + 1;
      return Array(upperBound - lowerBound).fill(null).map((_, index) => ({
        pageNumber: lowerBound + index
      }));
    }

    get list() {
      const size = this.size;
      const start = (this.page - 1) * size;
      return this.source.slice(start, start + size);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "source", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "startsAt", [_dec2], Object.getOwnPropertyDescriptor(_class2.prototype, "startsAt"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "endsAt", [_dec3], Object.getOwnPropertyDescriptor(_class2.prototype, "endsAt"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "lastPage", [_dec4], Object.getOwnPropertyDescriptor(_class2.prototype, "lastPage"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "pageLinks", [_dec5], Object.getOwnPropertyDescriptor(_class2.prototype, "pageLinks"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "list", [_dec6], Object.getOwnPropertyDescriptor(_class2.prototype, "list"), _class2.prototype)), _class2)) || _class);
  _exports.default = ListPagination;
});
;define("nomad-ui/components/list-pagination/list-pager", ["exports", "@ember/component", "@ember-decorators/component"], function (_exports, _component, _component2) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _class;

  0; //eaimeta@70e063a35619d71f0,"@ember/component",0,"@ember-decorators/component",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  const classic = __EMBER_CLASSIC_DECORATOR;
  let ListPager = (_dec = (0, _component2.tagName)(''), classic(_class = _dec(_class = class ListPager extends _component.default {}) || _class) || _class);
  _exports.default = ListPager;
});
;define("nomad-ui/components/list-table", ["exports", "@ember/component", "@ember/object", "ember-overridable-computed", "@ember-decorators/component"], function (_exports, _component, _object, _emberOverridableComputed, _component2) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _class, _class2, _descriptor;

  0; //eaimeta@70e063a35619d71f0,"@ember/component",0,"@ember/object",0,"ember-overridable-computed",0,"@ember-decorators/component",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let ListTable = (_dec = (0, _component2.tagName)('table'), _dec2 = (0, _component2.classNames)('table'), _dec3 = (0, _emberOverridableComputed.computed)(() => []), _dec4 = (0, _object.computed)('source.{[],isFulfilled}'), classic(_class = _dec(_class = _dec2(_class = (_class2 = class ListTable extends _component.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "source", _descriptor, this);
    }

    // Plan for a future with metadata (e.g., isSelected)
    get decoratedSource() {
      return (this.source || []).map(row => ({
        model: row
      }));
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "source", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "decoratedSource", [_dec4], Object.getOwnPropertyDescriptor(_class2.prototype, "decoratedSource"), _class2.prototype)), _class2)) || _class) || _class) || _class);
  _exports.default = ListTable;
});
;define("nomad-ui/components/list-table/sort-by", ["exports", "@ember/component", "@ember/object", "@ember-decorators/component"], function (_exports, _component, _object, _component2) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _class, _class2;

  0; //eaimeta@70e063a35619d71f0,"@ember/component",0,"@ember/object",0,"@ember-decorators/component",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let SortBy = (_dec = (0, _component2.tagName)('th'), _dec2 = (0, _component2.attributeBindings)('title'), _dec3 = (0, _component2.classNames)('is-selectable'), _dec4 = (0, _component2.classNameBindings)('isActive:is-active', 'sortDescending:desc:asc'), _dec5 = (0, _object.computed)('currentProp', 'prop'), _dec6 = (0, _object.computed)('sortDescending', 'isActive'), classic(_class = _dec(_class = _dec2(_class = _dec3(_class = _dec4(_class = (_class2 = class SortBy extends _component.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "currentProp", '');

      _defineProperty(this, "prop", '');
    }

    get isActive() {
      return this.currentProp === this.prop;
    }

    get shouldSortDescending() {
      return !this.isActive || !this.sortDescending;
    }

  }, (_applyDecoratedDescriptor(_class2.prototype, "isActive", [_dec5], Object.getOwnPropertyDescriptor(_class2.prototype, "isActive"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "shouldSortDescending", [_dec6], Object.getOwnPropertyDescriptor(_class2.prototype, "shouldSortDescending"), _class2.prototype)), _class2)) || _class) || _class) || _class) || _class) || _class);
  _exports.default = SortBy;
});
;define("nomad-ui/components/list-table/table-body", ["exports", "@ember/component", "@ember-decorators/component"], function (_exports, _component, _component2) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _class;

  0; //eaimeta@70e063a35619d71f0,"@ember/component",0,"@ember-decorators/component",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  const classic = __EMBER_CLASSIC_DECORATOR;
  let TableBody = (_dec = (0, _component2.tagName)('tbody'), classic(_class = _dec(_class = class TableBody extends _component.default {}) || _class) || _class);
  _exports.default = TableBody;
});
;define("nomad-ui/components/list-table/table-head", ["exports", "@ember/component", "@ember-decorators/component"], function (_exports, _component, _component2) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _class;

  0; //eaimeta@70e063a35619d71f0,"@ember/component",0,"@ember-decorators/component",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  const classic = __EMBER_CLASSIC_DECORATOR;
  let TableHead = (_dec = (0, _component2.tagName)('thead'), classic(_class = _dec(_class = class TableHead extends _component.default {}) || _class) || _class);
  _exports.default = TableHead;
});
;define("nomad-ui/components/loading-spinner", ["exports", "@glimmer/component", "@glimmer/tracking"], function (_exports, _component, _tracking) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _descriptor;

  0; //eaimeta@70e063a35619d71f0,"@glimmer/component",0,"@glimmer/tracking"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let LoadingSpinner = (_class = class LoadingSpinner extends _component.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "paused", _descriptor, this);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "paused", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return false;
    }
  })), _class);
  _exports.default = LoadingSpinner;
});
;define("nomad-ui/components/maybe-in-element", ["exports", "ember-maybe-in-element/components/maybe-in-element"], function (_exports, _maybeInElement) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _maybeInElement.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-maybe-in-element/components/maybe-in-element"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/metadata-editor", ["exports", "@ember/component", "@ember/template-factory", "@ember/component/template-only"], function (_exports, _component, _templateFactory, _templateOnly) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/component/template-only",0,"@ember/template-factory"eaimeta@70e063a35619d71f

  const __COLOCATED_TEMPLATE__ = (0, _templateFactory.createTemplateFactory)(
  /*
    {{!
    Copyright (c) HashiCorp, Inc.
    SPDX-License-Identifier: MPL-2.0
  ~}}
  
  <form class="metadata-editor">
    <label>
      <strong>Key</strong>
      {{#if @constantKey}}
        <span class="constant-key">{{@kv.key}}</span>
      {{else}}
        <Input
          {{autofocus}}
          id="new-meta-key"
          @type="text"
          @value={{@kv.key}}
          class="input"
          {{on "keyup" @onEdit}}
        />
      {{/if}}
    </label>
    <label>
      <strong>Value</strong>
      {{#if @autofocusValue}}
        <Input
          data-test-metadata-editor-value
          @type="text"
          @value={{@kv.value}}
          class="input"
          {{autofocus}}
          {{on "keyup" @onEdit}}
        />
      {{else}}
        <Input
          data-test-metadata-editor-value
          @type="text"
          @value={{@kv.value}}
          class="input"
          {{on "keyup" @onEdit}}
        />
      {{/if}}
    </label>
    <footer>
      {{yield}}
    </footer>
  </form>
  
  */
  {
    "id": "/1L1T/lv",
    "block": "[[[10,\"form\"],[14,0,\"metadata-editor\"],[12],[1,\"\\n  \"],[10,\"label\"],[12],[1,\"\\n    \"],[10,\"strong\"],[12],[1,\"Key\"],[13],[1,\"\\n\"],[41,[30,1],[[[1,\"      \"],[10,1],[14,0,\"constant-key\"],[12],[1,[30,2,[\"key\"]]],[13],[1,\"\\n\"]],[]],[[[1,\"      \"],[8,[39,1],[[24,1,\"new-meta-key\"],[24,0,\"input\"],[4,[38,2],null,null],[4,[38,3],[\"keyup\",[30,3]],null]],[[\"@type\",\"@value\"],[\"text\",[30,2,[\"key\"]]]],null],[1,\"\\n\"]],[]]],[1,\"  \"],[13],[1,\"\\n  \"],[10,\"label\"],[12],[1,\"\\n    \"],[10,\"strong\"],[12],[1,\"Value\"],[13],[1,\"\\n\"],[41,[30,4],[[[1,\"      \"],[8,[39,1],[[24,0,\"input\"],[4,[38,2],null,null],[4,[38,3],[\"keyup\",[30,3]],null]],[[\"@type\",\"@value\"],[\"text\",[30,2,[\"value\"]]]],null],[1,\"\\n\"]],[]],[[[1,\"      \"],[8,[39,1],[[24,0,\"input\"],[4,[38,3],[\"keyup\",[30,3]],null]],[[\"@type\",\"@value\"],[\"text\",[30,2,[\"value\"]]]],null],[1,\"\\n\"]],[]]],[1,\"  \"],[13],[1,\"\\n  \"],[10,\"footer\"],[12],[1,\"\\n    \"],[18,5,null],[1,\"\\n  \"],[13],[1,\"\\n\"],[13],[1,\"\\n\"]],[\"@constantKey\",\"@kv\",\"@onEdit\",\"@autofocusValue\",\"&default\"],false,[\"if\",\"input\",\"autofocus\",\"on\",\"yield\"]]",
    "moduleName": "nomad-ui/components/metadata-editor.hbs",
    "isStrictMode": false
  });

  var _default = (0, _component.setComponentTemplate)(__COLOCATED_TEMPLATE__, (0, _templateOnly.default)());

  _exports.default = _default;
});
;define("nomad-ui/components/metadata-kv", ["exports", "@ember/component", "@ember/template-factory", "@glimmer/component", "@glimmer/tracking", "@ember/object"], function (_exports, _component, _templateFactory, _component2, _tracking, _object) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _descriptor, _descriptor2;

  0; //eaimeta@70e063a35619d71f0,"@glimmer/component",0,"@glimmer/tracking",0,"@ember/object",0,"@ember/template-factory"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const __COLOCATED_TEMPLATE__ = (0, _templateFactory.createTemplateFactory)(
  /*
    {{!
    Copyright (c) HashiCorp, Inc.
    SPDX-License-Identifier: MPL-2.0
  ~}}
  
  <tr data-test-attributes-section>
    {{#if this.editing}}
      <td colspan="2">
        <MetadataEditor
          @kv={{hash key=this.prefixedKey value=this.value}}
          @onEdit={{this.onEdit}}
          @constantKey={{true}}
          @autofocusValue={{true}}
          >
          <button
            data-test-update-metadata
            disabled={{or (not @key) (not @value)}}
            type="submit"
            class="button is-primary"
            {{on "click" (queue
              (action @onKVSave (hash key=this.prefixedKey value=this.value))
              (action (mut this.editing) false)
            )}}
          >
            Update {{this.prefixedKey}}
          </button>
          <button
            data-test-delete-metadata
            type="button"
            class="button is-danger"
            {{on "click" (queue
              (action @onKVSave (hash key=this.prefixedKey value=null))
              (action (mut this.editing) false)
            )}}
          >
            Delete Property
          </button>
          <button
            data-test-cancel-metadata
            type="button"
            class="button"
            {{on "click" 
              (queue
                (action (mut this.editing) false)
                (action (mut this.value) @value)
              )
            }}
          >
            Cancel
          </button>
        </MetadataEditor>
      </td>
    {{else}}
      <td data-test-key>
        {{#if @prefix}}<span class="is-faded" data-test-prefix>{{@prefix}}.</span>{{/if}}
        {{~@key}}
      </td>
      <td title="{{@value}}">
        <CopyButton
          @inset={{true}}
          @compact={{true}}
          @clipboardText={{@value}}
        />
        <span data-test-value>{{@value}}</span>
        {{#if @editable}}
        <button class="button is-light is-compact edit-existing-metadata-button" type="button"
          {{on "click" (action (mut this.editing) true)}}
          
        >Edit</button>
        {{/if}}
      </td>
    {{/if}}
  </tr>
  
  */
  {
    "id": "lRpw/Uk0",
    "block": "[[[10,\"tr\"],[12],[1,\"\\n\"],[41,[30,0,[\"editing\"]],[[[1,\"    \"],[10,\"td\"],[14,\"colspan\",\"2\"],[12],[1,\"\\n      \"],[8,[39,1],null,[[\"@kv\",\"@onEdit\",\"@constantKey\",\"@autofocusValue\"],[[28,[37,2],null,[[\"key\",\"value\"],[[30,0,[\"prefixedKey\"]],[30,0,[\"value\"]]]]],[30,0,[\"onEdit\"]],true,true]],[[\"default\"],[[[[1,\"\\n        \"],[11,\"button\"],[16,\"disabled\",[28,[37,3],[[28,[37,4],[[30,1]],null],[28,[37,4],[[30,2]],null]],null]],[24,0,\"button is-primary\"],[24,4,\"submit\"],[4,[38,5],[\"click\",[28,[37,6],[[28,[37,7],[[30,0],[30,3],[28,[37,2],null,[[\"key\",\"value\"],[[30,0,[\"prefixedKey\"]],[30,0,[\"value\"]]]]]],null],[28,[37,7],[[30,0],[28,[37,8],[[30,0,[\"editing\"]]],null],false],null]],null]],null],[12],[1,\"\\n          Update \"],[1,[30,0,[\"prefixedKey\"]]],[1,\"\\n        \"],[13],[1,\"\\n        \"],[11,\"button\"],[24,0,\"button is-danger\"],[24,4,\"button\"],[4,[38,5],[\"click\",[28,[37,6],[[28,[37,7],[[30,0],[30,3],[28,[37,2],null,[[\"key\",\"value\"],[[30,0,[\"prefixedKey\"]],null]]]],null],[28,[37,7],[[30,0],[28,[37,8],[[30,0,[\"editing\"]]],null],false],null]],null]],null],[12],[1,\"\\n          Delete Property\\n        \"],[13],[1,\"\\n        \"],[11,\"button\"],[24,0,\"button\"],[24,4,\"button\"],[4,[38,5],[\"click\",[28,[37,6],[[28,[37,7],[[30,0],[28,[37,8],[[30,0,[\"editing\"]]],null],false],null],[28,[37,7],[[30,0],[28,[37,8],[[30,0,[\"value\"]]],null],[30,2]],null]],null]],null],[12],[1,\"\\n          Cancel\\n        \"],[13],[1,\"\\n      \"]],[]]]]],[1,\"\\n    \"],[13],[1,\"\\n\"]],[]],[[[1,\"    \"],[10,\"td\"],[12],[1,\"\\n      \"],[41,[30,4],[[[10,1],[14,0,\"is-faded\"],[12],[1,[30,4]],[1,\".\"],[13]],[]],null],[1,[30,1]],[1,\"\\n    \"],[13],[1,\"\\n    \"],[10,\"td\"],[15,\"title\",[29,[[30,2]]]],[12],[1,\"\\n      \"],[8,[39,9],null,[[\"@inset\",\"@compact\",\"@clipboardText\"],[true,true,[30,2]]],null],[1,\"\\n      \"],[10,1],[12],[1,[30,2]],[13],[1,\"\\n\"],[41,[30,5],[[[1,\"      \"],[11,\"button\"],[24,0,\"button is-light is-compact edit-existing-metadata-button\"],[24,4,\"button\"],[4,[38,5],[\"click\",[28,[37,7],[[30,0],[28,[37,8],[[30,0,[\"editing\"]]],null],true],null]],null],[12],[1,\"Edit\"],[13],[1,\"\\n\"]],[]],null],[1,\"    \"],[13],[1,\"\\n\"]],[]]],[13],[1,\"\\n\"]],[\"@key\",\"@value\",\"@onKVSave\",\"@prefix\",\"@editable\"],false,[\"if\",\"metadata-editor\",\"hash\",\"or\",\"not\",\"on\",\"queue\",\"action\",\"mut\",\"copy-button\"]]",
    "moduleName": "nomad-ui/components/metadata-kv.hbs",
    "isStrictMode": false
  });
  /**
   * Copyright (c) HashiCorp, Inc.
   * SPDX-License-Identifier: MPL-2.0
   */


  let MetadataKvComponent = (_class = class MetadataKvComponent extends _component2.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "editing", _descriptor, this);

      _initializerDefineProperty(this, "value", _descriptor2, this);
    }

    get prefixedKey() {
      return this.args.prefix ? `${this.args.prefix}.${this.args.key}` : this.args.key;
    }

    onEdit(event) {
      if (event.key === 'Escape') {
        this.editing = false;
      }
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "editing", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return false;
    }
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "value", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return this.args.value;
    }
  }), _applyDecoratedDescriptor(_class.prototype, "onEdit", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "onEdit"), _class.prototype)), _class);
  _exports.default = MetadataKvComponent;
  (0, _component.setComponentTemplate)(__COLOCATED_TEMPLATE__, MetadataKvComponent);
});
;define("nomad-ui/components/multi-select-dropdown", ["exports", "@ember/component", "@ember/object", "ember-overridable-computed", "@ember/runloop", "@ember-decorators/component"], function (_exports, _component, _object, _emberOverridableComputed, _runloop, _component2) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _class, _class2, _descriptor, _descriptor2;

  0; //eaimeta@70e063a35619d71f0,"@ember/component",0,"@ember/object",0,"ember-overridable-computed",0,"@ember/runloop",0,"@ember-decorators/component",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;
  const TAB = 9;
  const ESC = 27;
  const SPACE = 32;
  const ARROW_UP = 38;
  const ARROW_DOWN = 40;
  let MultiSelectDropdown = (_dec = (0, _component2.classNames)('dropdown'), _dec2 = (0, _emberOverridableComputed.computed)(() => []), _dec3 = (0, _emberOverridableComputed.computed)(() => []), classic(_class = _dec(_class = (_class2 = class MultiSelectDropdown extends _component.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "options", _descriptor, this);

      _initializerDefineProperty(this, "selection", _descriptor2, this);

      _defineProperty(this, "isOpen", false);

      _defineProperty(this, "dropdown", null);
    }

    onSelect() {}

    capture(dropdown) {
      // It's not a good idea to grab a dropdown reference like this, but it's necessary
      // in order to invoke dropdown.actions.close in traverseList as well as
      // dropdown.actions.reposition when the label or selection length changes.
      this.set('dropdown', dropdown);
    }

    didReceiveAttrs() {
      super.didReceiveAttrs();
      const dropdown = this.dropdown;

      if (this.isOpen && dropdown) {
        (0, _runloop.scheduleOnce)('afterRender', this, this.repositionDropdown);
      }
    }

    repositionDropdown() {
      this.dropdown.actions.reposition();
    }

    toggle(_ref) {
      let {
        key
      } = _ref;
      const newSelection = this.selection.slice();

      if (newSelection.includes(key)) {
        newSelection.removeObject(key);
      } else {
        newSelection.addObject(key);
      }

      this.onSelect(newSelection);
    }

    openOnArrowDown(dropdown, e) {
      this.capture(dropdown);

      if (!this.isOpen && e.keyCode === ARROW_DOWN) {
        dropdown.actions.open(e);
        e.preventDefault();
      } else if (this.isOpen && (e.keyCode === TAB || e.keyCode === ARROW_DOWN)) {
        const optionsId = this.element.querySelector('.dropdown-trigger').getAttribute('aria-owns');
        const firstElement = document.querySelector(`#${optionsId} .dropdown-option`);

        if (firstElement) {
          firstElement.focus();
          e.preventDefault();
        }
      }
    }

    traverseList(option, e) {
      if (e.keyCode === ESC) {
        // Close the dropdown
        const dropdown = this.dropdown;

        if (dropdown) {
          dropdown.actions.close(e); // Return focus to the trigger so tab works as expected

          const trigger = this.element.querySelector('.dropdown-trigger');
          if (trigger) trigger.focus();
          e.preventDefault();
          this.set('dropdown', null);
        }
      } else if (e.keyCode === ARROW_UP) {
        // previous item
        const prev = e.target.previousElementSibling;

        if (prev) {
          prev.focus();
          e.preventDefault();
        }
      } else if (e.keyCode === ARROW_DOWN) {
        // next item
        const next = e.target.nextElementSibling;

        if (next) {
          next.focus();
          e.preventDefault();
        }
      } else if (e.keyCode === SPACE) {
        this.send('toggle', option);
        e.preventDefault();
      }
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "options", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "selection", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "toggle", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "toggle"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "openOnArrowDown", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "openOnArrowDown"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "traverseList", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "traverseList"), _class2.prototype)), _class2)) || _class) || _class);
  _exports.default = MultiSelectDropdown;
});
;define("nomad-ui/components/navigation-narrator", ["exports", "ember-a11y-refocus/components/navigation-narrator"], function (_exports, _navigationNarrator) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _navigationNarrator.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-a11y-refocus/components/navigation-narrator"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/page-layout", ["exports", "@ember/component", "@ember-decorators/component"], function (_exports, _component, _component2) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _class;

  0; //eaimeta@70e063a35619d71f0,"@ember/component",0,"@ember-decorators/component",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let PageLayout = (_dec = (0, _component2.classNames)('page-layout'), classic(_class = _dec(_class = class PageLayout extends _component.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "isGutterOpen", false);
    }

  }) || _class) || _class);
  _exports.default = PageLayout;
});
;define("nomad-ui/components/page-size-select", ["exports", "@ember/component", "@ember/service"], function (_exports, _component, _service) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _descriptor;

  0; //eaimeta@70e063a35619d71f0,"@ember/component",0,"@ember/service"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let PageSizeSelect = (_class = class PageSizeSelect extends _component.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "userSettings", _descriptor, this);

      _defineProperty(this, "tagName", '');

      _defineProperty(this, "pageSizeOptions", [10, 25, 50]);
    }

    onChange() {}

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "userSettings", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class);
  _exports.default = PageSizeSelect;
});
;define("nomad-ui/components/placement-failure", ["exports", "@ember/component", "@ember/object/computed"], function (_exports, _component, _computed) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _class, _class2, _descriptor;

  0; //eaimeta@70e063a35619d71f0,"@ember/component",0,"@ember/object/computed",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let PlacementFailure = (_dec = (0, _computed.or)('taskGroup.placementFailures', 'failedTGAlloc'), classic(_class = (_class2 = class PlacementFailure extends _component.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "taskGroup", null);

      _defineProperty(this, "failedTGAlloc", null);

      _initializerDefineProperty(this, "placementFailures", _descriptor, this);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "placementFailures", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class2)) || _class);
  _exports.default = PlacementFailure;
});
;define("nomad-ui/components/plugin-allocation-row", ["exports", "nomad-ui/components/allocation-row", "@ember-decorators/component"], function (_exports, _allocationRow, _component) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _class;

  0; //eaimeta@70e063a35619d71f0,"nomad-ui/components/allocation-row",0,"ember-classic-decorator",0,"@ember-decorators/component"eaimeta@70e063a35619d71f

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let PluginAllocationRow = (_dec = (0, _component.attributeBindings)('data-test-controller-allocation', 'data-test-node-allocation'), classic(_class = _dec(_class = class PluginAllocationRow extends _allocationRow.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "pluginAllocation", null);

      _defineProperty(this, "allocation", null);
    }

    didReceiveAttrs() {
      // Allocation is always set through pluginAllocation
      this.set('allocation', null);
      this.setAllocation();
    } // The allocation for the plugin's controller or storage plugin needs
    // to be imperatively fetched since these plugins are Fragments which
    // can't have relationships.


    async setAllocation() {
      if (this.pluginAllocation && !this.allocation) {
        const allocation = await this.pluginAllocation.getAllocation();

        if (!this.isDestroyed) {
          this.set('allocation', allocation);
          this.updateStatsTracker();
        }
      }
    }

  }) || _class) || _class);
  _exports.default = PluginAllocationRow;
});
;define("nomad-ui/components/plugin-subnav", ["exports", "@glimmer/component", "@ember/service"], function (_exports, _component, _service) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _descriptor;

  0; //eaimeta@70e063a35619d71f0,"@glimmer/component",0,"@ember/service"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let PluginSubnavComponent = (_class = class PluginSubnavComponent extends _component.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "keyboard", _descriptor, this);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "keyboard", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class);
  _exports.default = PluginSubnavComponent;
});
;define("nomad-ui/components/policy-editor", ["exports", "@ember/component", "@ember/template-factory", "@glimmer/component", "@ember/object", "@ember/service", "@ember/object/computed"], function (_exports, _component, _templateFactory, _component2, _object, _service, _computed) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _class, _descriptor, _descriptor2, _descriptor3, _descriptor4;

  0; //eaimeta@70e063a35619d71f0,"@glimmer/component",0,"@ember/object",0,"@ember/service",0,"@ember/object/computed",0,"@ember/template-factory"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const __COLOCATED_TEMPLATE__ = (0, _templateFactory.createTemplateFactory)(
  /*
    {{!
    Copyright (c) HashiCorp, Inc.
    SPDX-License-Identifier: MPL-2.0
  ~}}
  
  <form class="edit-policy" autocomplete="off" {{on "submit" this.save}}>
  	{{#if @policy.isNew }}
  		<label>
  			<span>
  				Policy Name
  			</span>
  			<Input
  				data-test-policy-name-input
  				@type="text"
  				@value={{@policy.name}}
  				class="input"
          {{autofocus}}
  			/>
  		</label>
  	{{/if}}
  
  	<div class="boxed-section">
  		<div class="boxed-section-head">
  			Policy Definition
  		</div>
  		<div class="boxed-section-body is-full-bleed">
  
  			<div
  				class="policy-editor"
  				data-test-policy-editor
  				{{code-mirror
            screenReaderLabel="Policy definition"
            theme="hashi"
            mode="ruby"
            content=@policy.rules
            onUpdate=this.updatePolicyRules
            autofocus=(not @policy.isNew)
  					extraKeys=(hash Cmd-Enter=this.save)
  				}} />
  		</div>
  	</div>
  
  	<div>
  		<label>
  			<span>
  				Description (optional)
  			</span>
  			<Input
  				data-test-policy-description
  				@value={{@policy.description}}
  				class="input"
  			/>
  		</label>
  	</div>
  
  	<footer>
  		{{#if (can "update policy")}}
  			<button
  				class="button is-primary"
  				type="submit"
  			>
  				Save Policy
  			</button>
  		{{/if}}
  	</footer>
  </form>
  */
  {
    "id": "NF+NfcyZ",
    "block": "[[[11,\"form\"],[24,0,\"edit-policy\"],[24,\"autocomplete\",\"off\"],[4,[38,0],[\"submit\",[30,0,[\"save\"]]],null],[12],[1,\"\\n\"],[41,[30,1,[\"isNew\"]],[[[1,\"\\t\\t\"],[10,\"label\"],[12],[1,\"\\n\\t\\t\\t\"],[10,1],[12],[1,\"\\n\\t\\t\\t\\tPolicy Name\\n\\t\\t\\t\"],[13],[1,\"\\n\\t\\t\\t\"],[8,[39,2],[[24,0,\"input\"],[4,[38,3],null,null]],[[\"@type\",\"@value\"],[\"text\",[30,1,[\"name\"]]]],null],[1,\"\\n\\t\\t\"],[13],[1,\"\\n\"]],[]],null],[1,\"\\n\\t\"],[10,0],[14,0,\"boxed-section\"],[12],[1,\"\\n\\t\\t\"],[10,0],[14,0,\"boxed-section-head\"],[12],[1,\"\\n\\t\\t\\tPolicy Definition\\n\\t\\t\"],[13],[1,\"\\n\\t\\t\"],[10,0],[14,0,\"boxed-section-body is-full-bleed\"],[12],[1,\"\\n\\n\\t\\t\\t\"],[11,0],[24,0,\"policy-editor\"],[4,[38,4],null,[[\"screenReaderLabel\",\"theme\",\"mode\",\"content\",\"onUpdate\",\"autofocus\",\"extraKeys\"],[\"Policy definition\",\"hashi\",\"ruby\",[30,1,[\"rules\"]],[30,0,[\"updatePolicyRules\"]],[28,[37,5],[[30,1,[\"isNew\"]]],null],[28,[37,6],null,[[\"Cmd-Enter\"],[[30,0,[\"save\"]]]]]]]],[12],[13],[1,\"\\n\\t\\t\"],[13],[1,\"\\n\\t\"],[13],[1,\"\\n\\n\\t\"],[10,0],[12],[1,\"\\n\\t\\t\"],[10,\"label\"],[12],[1,\"\\n\\t\\t\\t\"],[10,1],[12],[1,\"\\n\\t\\t\\t\\tDescription (optional)\\n\\t\\t\\t\"],[13],[1,\"\\n\\t\\t\\t\"],[8,[39,2],[[24,0,\"input\"]],[[\"@value\"],[[30,1,[\"description\"]]]],null],[1,\"\\n\\t\\t\"],[13],[1,\"\\n\\t\"],[13],[1,\"\\n\\n\\t\"],[10,\"footer\"],[12],[1,\"\\n\"],[41,[28,[37,7],[\"update policy\"],null],[[[1,\"\\t\\t\\t\"],[10,\"button\"],[14,0,\"button is-primary\"],[14,4,\"submit\"],[12],[1,\"\\n\\t\\t\\t\\tSave Policy\\n\\t\\t\\t\"],[13],[1,\"\\n\"]],[]],null],[1,\"\\t\"],[13],[1,\"\\n\"],[13]],[\"@policy\"],false,[\"on\",\"if\",\"input\",\"autofocus\",\"code-mirror\",\"not\",\"hash\",\"can\"]]",
    "moduleName": "nomad-ui/components/policy-editor.hbs",
    "isStrictMode": false
  });
  /**
   * Copyright (c) HashiCorp, Inc.
   * SPDX-License-Identifier: MPL-2.0
   */


  let PolicyEditorComponent = (_dec = (0, _computed.alias)('args.policy'), (_class = class PolicyEditorComponent extends _component2.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "notifications", _descriptor, this);

      _initializerDefineProperty(this, "router", _descriptor2, this);

      _initializerDefineProperty(this, "store", _descriptor3, this);

      _initializerDefineProperty(this, "policy", _descriptor4, this);
    }

    updatePolicyRules(value) {
      this.policy.set('rules', value);
    }

    async save(e) {
      if (e instanceof Event) {
        e.preventDefault(); // code-mirror "command+enter" submits the form, but doesnt have a preventDefault()
      }

      try {
        var _this$policy$name;

        const nameRegex = '^[a-zA-Z0-9-]{1,128}$';

        if (!((_this$policy$name = this.policy.name) !== null && _this$policy$name !== void 0 && _this$policy$name.match(nameRegex))) {
          throw new Error(`Policy name must be 1-128 characters long and can only contain letters, numbers, and dashes.`);
        }

        const shouldRedirectAfterSave = this.policy.isNew;

        if (this.policy.isNew && this.store.peekRecord('policy', this.policy.name)) {
          throw new Error(`A policy with name ${this.policy.name} already exists.`);
        }

        this.policy.id = this.policy.name;
        await this.policy.save();
        this.notifications.add({
          title: 'Policy Saved',
          color: 'success'
        });

        if (shouldRedirectAfterSave) {
          this.router.transitionTo('policies.policy', this.policy.id);
        }
      } catch (error) {
        this.notifications.add({
          title: `Error creating Policy ${this.policy.name}`,
          message: error,
          color: 'critical',
          sticky: true
        });
      }
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "notifications", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "router", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "store", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, "policy", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class.prototype, "updatePolicyRules", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "updatePolicyRules"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "save", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "save"), _class.prototype)), _class));
  _exports.default = PolicyEditorComponent;
  (0, _component.setComponentTemplate)(__COLOCATED_TEMPLATE__, PolicyEditorComponent);
});
;define("nomad-ui/components/popover-menu", ["exports", "@ember/component", "@ember/object", "@ember/runloop", "@ember-decorators/component"], function (_exports, _component, _object, _runloop, _component2) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _class, _class2;

  0; //eaimeta@70e063a35619d71f0,"@ember/component",0,"@ember/object",0,"@ember/runloop",0,"@ember-decorators/component",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  const classic = __EMBER_CLASSIC_DECORATOR;
  const TAB = 9;
  const ARROW_DOWN = 40;
  const FOCUSABLE = ['a:not([disabled])', 'button:not([disabled])', 'input:not([disabled]):not([type="hidden"])', 'textarea:not([disabled])', '[tabindex]:not([disabled]):not([tabindex="-1"])'].join(', ');
  let PopoverMenu = (_dec = (0, _component2.classNames)('popover'), classic(_class = _dec(_class = (_class2 = class PopoverMenu extends _component.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "triggerClass", '');

      _defineProperty(this, "isOpen", false);

      _defineProperty(this, "isDisabled", false);

      _defineProperty(this, "label", '');

      _defineProperty(this, "dropdown", null);
    }

    capture(dropdown) {
      // It's not a good idea to grab a dropdown reference like this, but it's necessary
      // in order to invoke dropdown.actions.close in traverseList as well as
      // dropdown.actions.reposition when the label or selection length changes.
      this.set('dropdown', dropdown);
    }

    didReceiveAttrs() {
      super.didReceiveAttrs();
      const dropdown = this.dropdown;

      if (this.isOpen && dropdown) {
        (0, _runloop.scheduleOnce)('afterRender', this, this.repositionDropdown);
      }
    }

    repositionDropdown() {
      this.dropdown.actions.reposition();
    }

    openOnArrowDown(dropdown, e) {
      if (!this.isOpen && e.keyCode === ARROW_DOWN) {
        dropdown.actions.open(e);
        e.preventDefault();
      } else if (this.isOpen && (e.keyCode === TAB || e.keyCode === ARROW_DOWN)) {
        const optionsId = this.element.querySelector('.popover-trigger').getAttribute('aria-owns');
        const popoverContentEl = document.querySelector(`#${optionsId}`);
        const firstFocusableElement = popoverContentEl.querySelector(FOCUSABLE);

        if (firstFocusableElement) {
          firstFocusableElement.focus();
          e.preventDefault();
        }
      }
    }

  }, (_applyDecoratedDescriptor(_class2.prototype, "openOnArrowDown", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "openOnArrowDown"), _class2.prototype)), _class2)) || _class) || _class);
  _exports.default = PopoverMenu;
});
;define("nomad-ui/components/portal-target", ["exports", "ember-stargate/components/portal-target"], function (_exports, _portalTarget) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _portalTarget.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-stargate/components/portal-target"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/portal", ["exports", "ember-stargate/components/portal"], function (_exports, _portal) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _portal.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-stargate/components/portal"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/power-select-multiple", ["exports", "ember-power-select/components/power-select-multiple"], function (_exports, _powerSelectMultiple) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _powerSelectMultiple.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-power-select/components/power-select-multiple"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/power-select-multiple/trigger", ["exports", "ember-power-select/components/power-select-multiple/trigger"], function (_exports, _trigger) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _trigger.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-power-select/components/power-select-multiple/trigger"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/power-select", ["exports", "ember-power-select/components/power-select"], function (_exports, _powerSelect) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _powerSelect.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-power-select/components/power-select"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/power-select/before-options", ["exports", "ember-power-select/components/power-select/before-options"], function (_exports, _beforeOptions) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _beforeOptions.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-power-select/components/power-select/before-options"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/power-select/no-matches-message", ["exports", "ember-power-select/components/power-select/no-matches-message"], function (_exports, _noMatchesMessage) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _noMatchesMessage.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-power-select/components/power-select/no-matches-message"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/power-select/options", ["exports", "ember-power-select/components/power-select/options"], function (_exports, _options) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _options.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-power-select/components/power-select/options"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/power-select/placeholder", ["exports", "ember-power-select/components/power-select/placeholder"], function (_exports, _placeholder) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _placeholder.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-power-select/components/power-select/placeholder"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/power-select/power-select-group", ["exports", "ember-power-select/components/power-select/power-select-group"], function (_exports, _powerSelectGroup) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _powerSelectGroup.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-power-select/components/power-select/power-select-group"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/power-select/search-message", ["exports", "ember-power-select/components/power-select/search-message"], function (_exports, _searchMessage) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _searchMessage.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-power-select/components/power-select/search-message"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/power-select/trigger", ["exports", "ember-power-select/components/power-select/trigger"], function (_exports, _trigger) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _trigger.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-power-select/components/power-select/trigger"eaimeta@70e063a35619d71f
});
;define("nomad-ui/components/primary-metric/allocation", ["exports", "@ember/component", "@ember/template-factory", "ember", "@glimmer/component", "ember-concurrency", "@ember/debug", "@ember/service", "@ember/object", "@ember/object/compat"], function (_exports, _component, _templateFactory, _ember, _component2, _emberConcurrency, _debug, _service, _object, _compat) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _class, _descriptor, _descriptor2;

  0; //eaimeta@70e063a35619d71f0,"ember",0,"@glimmer/component",0,"ember-concurrency",0,"@ember/debug",0,"@ember/service",0,"@ember/object",0,"@ember/object/compat",0,"@ember/template-factory"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const __COLOCATED_TEMPLATE__ = (0, _templateFactory.createTemplateFactory)(
  /*
    {{!
    Copyright (c) HashiCorp, Inc.
    SPDX-License-Identifier: MPL-2.0
  ~}}
  
  <div data-test-primary-metric class="primary-metric" ...attributes
    {{did-insert this.start}}
    {{did-update this.start}}>
    <h4 data-test-primary-metric-title class="title is-5">
      {{#if (eq this.metric "cpu")}} CPU
      {{else if (eq this.metric "memory")}} Memory
      {{else}} {{this.metric}} {{/if}}
    </h4>
    <div class="primary-graphic">
      <StatsTimeSeries @data={{this.series}} @dataProp="data" >
        <:svg as |c|>
          {{#each (reverse this.series) as |series idx|}}
            <c.Area
              @data={{series.data}}
              @colorScale={{this.colorScale}}
              @index={{idx}}
              data-test-task-name={{series.name}} />
          {{/each}}
        </:svg>
        <:after as |c|>
          <c.Tooltip class="is-snappy" as |series datum idx|>
            <li>
              <span class="label"><span class="color-swatch swatch-{{this.colorScale}} swatch-{{this.colorScale}}-{{idx}}" />{{series.name}}</span>
              {{#if (eq this.metric "cpu")}}
                <span class="value">{{format-scheduled-hertz datum.datum.used}}</span>
              {{else if (eq this.metric "memory")}}
                <span class="value">{{format-scheduled-bytes datum.datum.used}}</span>
              {{else}}
                <span class="value">{{datum.formatttedY}}</span>
              {{/if}}
            </li>
          </c.Tooltip>
        </:after>
      </StatsTimeSeries>
    </div>
    <PrimaryMetric::CurrentValue @chartClass={{this.chartClass}} @percent={{this.data.lastObject.percent}} />
    <div class="annotation" data-test-absolute-value>
      {{#if (eq this.metric "cpu")}}
        <strong>{{format-scheduled-hertz this.data.lastObject.used}}</strong> / {{format-scheduled-hertz this.reservedAmount}} Total
      {{else if (eq this.metric "memory")}}
        <strong>{{format-scheduled-bytes this.data.lastObject.used}}</strong> / {{format-scheduled-bytes this.reservedAmount start="MiB"}} Total
      {{else}}
        <strong>{{this.data.lastObject.used}}</strong> / {{this.reservedAmount}} Total
      {{/if}}
    </div>
  </div>
  
  */
  {
    "id": "Pb0Y+t9Z",
    "block": "[[[11,0],[24,0,\"primary-metric\"],[17,1],[4,[38,0],[[30,0,[\"start\"]]],null],[4,[38,1],[[30,0,[\"start\"]]],null],[12],[1,\"\\n  \"],[10,\"h4\"],[14,0,\"title is-5\"],[12],[1,\"\\n    \"],[41,[28,[37,3],[[30,0,[\"metric\"]],\"cpu\"],null],[[[1,\" CPU\\n    \"]],[]],[[[41,[28,[37,3],[[30,0,[\"metric\"]],\"memory\"],null],[[[1,\" Memory\\n    \"]],[]],[[[1,\" \"],[1,[30,0,[\"metric\"]]],[1,\" \"]],[]]]],[]]],[1,\"  \"],[13],[1,\"\\n  \"],[10,0],[14,0,\"primary-graphic\"],[12],[1,\"\\n    \"],[8,[39,4],null,[[\"@data\",\"@dataProp\"],[[30,0,[\"series\"]],\"data\"]],[[\"svg\",\"after\"],[[[[1,\"\\n\"],[42,[28,[37,6],[[28,[37,6],[[28,[37,7],[[30,0,[\"series\"]]],null]],null]],null],null,[[[1,\"          \"],[8,[30,2,[\"Area\"]],null,[[\"@data\",\"@colorScale\",\"@index\"],[[30,3,[\"data\"]],[30,0,[\"colorScale\"]],[30,4]]],null],[1,\"\\n\"]],[3,4]],null],[1,\"      \"]],[2]],[[[1,\"\\n        \"],[8,[30,5,[\"Tooltip\"]],[[24,0,\"is-snappy\"]],null,[[\"default\"],[[[[1,\"\\n          \"],[10,\"li\"],[12],[1,\"\\n            \"],[10,1],[14,0,\"label\"],[12],[10,1],[15,0,[29,[\"color-swatch swatch-\",[30,0,[\"colorScale\"]],\" swatch-\",[30,0,[\"colorScale\"]],\"-\",[30,8]]]],[12],[13],[1,[30,6,[\"name\"]]],[13],[1,\"\\n\"],[41,[28,[37,3],[[30,0,[\"metric\"]],\"cpu\"],null],[[[1,\"              \"],[10,1],[14,0,\"value\"],[12],[1,[28,[35,8],[[30,7,[\"datum\",\"used\"]]],null]],[13],[1,\"\\n\"]],[]],[[[41,[28,[37,3],[[30,0,[\"metric\"]],\"memory\"],null],[[[1,\"              \"],[10,1],[14,0,\"value\"],[12],[1,[28,[35,9],[[30,7,[\"datum\",\"used\"]]],null]],[13],[1,\"\\n\"]],[]],[[[1,\"              \"],[10,1],[14,0,\"value\"],[12],[1,[30,7,[\"formatttedY\"]]],[13],[1,\"\\n            \"]],[]]]],[]]],[1,\"          \"],[13],[1,\"\\n        \"]],[6,7,8]]]]],[1,\"\\n      \"]],[5]]]]],[1,\"\\n  \"],[13],[1,\"\\n  \"],[8,[39,10],null,[[\"@chartClass\",\"@percent\"],[[30,0,[\"chartClass\"]],[30,0,[\"data\",\"lastObject\",\"percent\"]]]],null],[1,\"\\n  \"],[10,0],[14,0,\"annotation\"],[12],[1,\"\\n\"],[41,[28,[37,3],[[30,0,[\"metric\"]],\"cpu\"],null],[[[1,\"      \"],[10,\"strong\"],[12],[1,[28,[35,8],[[30,0,[\"data\",\"lastObject\",\"used\"]]],null]],[13],[1,\" / \"],[1,[28,[35,8],[[30,0,[\"reservedAmount\"]]],null]],[1,\" Total\\n\"]],[]],[[[41,[28,[37,3],[[30,0,[\"metric\"]],\"memory\"],null],[[[1,\"      \"],[10,\"strong\"],[12],[1,[28,[35,9],[[30,0,[\"data\",\"lastObject\",\"used\"]]],null]],[13],[1,\" / \"],[1,[28,[35,9],[[30,0,[\"reservedAmount\"]]],[[\"start\"],[\"MiB\"]]]],[1,\" Total\\n\"]],[]],[[[1,\"      \"],[10,\"strong\"],[12],[1,[30,0,[\"data\",\"lastObject\",\"used\"]]],[13],[1,\" / \"],[1,[30,0,[\"reservedAmount\"]]],[1,\" Total\\n    \"]],[]]]],[]]],[1,\"  \"],[13],[1,\"\\n\"],[13],[1,\"\\n\"]],[\"&attrs\",\"c\",\"series\",\"idx\",\"c\",\"series\",\"datum\",\"idx\"],false,[\"did-insert\",\"did-update\",\"if\",\"eq\",\"stats-time-series\",\"each\",\"-track-array\",\"reverse\",\"format-scheduled-hertz\",\"format-scheduled-bytes\",\"primary-metric/current-value\"]]",
    "moduleName": "nomad-ui/components/primary-metric/allocation.hbs",
    "isStrictMode": false
  });
  /**
   * Copyright (c) HashiCorp, Inc.
   * SPDX-License-Identifier: MPL-2.0
   */


  let AllocationPrimaryMetric = (_dec = (0, _service.inject)('stats-trackers-registry'), _dec2 = (0, _object.computed)('allocation'), _dec3 = (0, _object.computed)('tracker.tasks.[]', 'metric'), _dec4 = (0, _emberConcurrency.task)(function* () {
    do {
      this.tracker.poll.perform();
      yield (0, _emberConcurrency.timeout)(100);
    } while (!_ember.default.testing);
  }), (_class = class AllocationPrimaryMetric extends _component2.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "statsTrackersRegistry", _descriptor, this);

      _initializerDefineProperty(this, "poller", _descriptor2, this);
    }

    /** Args
      allocation = null;
      metric null; (one of 'cpu' or 'memory'
    */
    get metric() {
      (true && !(this.args.metric) && (0, _debug.assert)('metric is a required argument', this.args.metric));
      return this.args.metric;
    }

    get allocation() {
      return this.args.allocation;
    }

    get tracker() {
      return this.statsTrackersRegistry.getTracker(this.allocation);
    }

    get data() {
      if (!this.tracker) return [];
      return (0, _object.get)(this, `tracker.${this.metric}`);
    }

    get series() {
      const ret = this.tracker.tasks.map(task => ({
        name: task.task,
        data: task[this.metric]
      })).reverse();
      return ret;
    }

    get reservedAmount() {
      if (this.metric === 'cpu') return this.tracker.reservedCPU;
      if (this.metric === 'memory') return this.tracker.reservedMemory;
      return null;
    }

    get chartClass() {
      if (this.metric === 'cpu') return 'is-info';
      if (this.metric === 'memory') return 'is-danger';
      return 'is-primary';
    }

    get colorScale() {
      if (this.metric === 'cpu') return 'blues';
      if (this.metric === 'memory') return 'reds';
      return 'ordinal';
    }

    start() {
      if (this.tracker) this.poller.perform();
    }

    willDestroy() {
      super.willDestroy(...arguments);
      this.poller.cancelAll();
      this.tracker.signalPause.perform();
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "statsTrackersRegistry", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class.prototype, "allocation", [_compat.dependentKeyCompat], Object.getOwnPropertyDescriptor(_class.prototype, "allocation"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "tracker", [_dec2], Object.getOwnPropertyDescriptor(_class.prototype, "tracker"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "series", [_dec3], Object.getOwnPropertyDescriptor(_class.prototype, "series"), _class.prototype), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "poller", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class.prototype, "start", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "start"), _class.prototype)), _class));
  _exports.default = AllocationPrimaryMetric;
  (0, _component.setComponentTemplate)(__COLOCATED_TEMPLATE__, AllocationPrimaryMetric);
});
;define("nomad-ui/components/primary-metric/current-value", ["exports", "@ember/component", "@ember/template-factory", "@ember/component/template-only"], function (_exports, _component, _templateFactory, _templateOnly) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/component/template-only",0,"@ember/template-factory"eaimeta@70e063a35619d71f

  const __COLOCATED_TEMPLATE__ = (0, _templateFactory.createTemplateFactory)(
  /*
    {{!
    Copyright (c) HashiCorp, Inc.
    SPDX-License-Identifier: MPL-2.0
  ~}}
  
  <div class="columns secondary-graphic">
    <div class="column">
      <div class="inline-chart" data-test-percentage-bar>
        <progress
          data-test-current-value
          class="progress {{@chartClass}} is-small"
          value="{{or @percent 0}}"
          max="1">
          {{@percent}}
        </progress>
      </div>
    </div>
    <div class="column is-minimum">
      <span class="nowrap" data-test-percentage>{{format-percentage @percent total=1}}</span>
    </div>
  </div>
  
  */
  {
    "id": "36ku5/Hj",
    "block": "[[[10,0],[14,0,\"columns secondary-graphic\"],[12],[1,\"\\n  \"],[10,0],[14,0,\"column\"],[12],[1,\"\\n    \"],[10,0],[14,0,\"inline-chart\"],[12],[1,\"\\n      \"],[10,\"progress\"],[15,0,[29,[\"progress \",[30,1],\" is-small\"]]],[15,2,[29,[[28,[37,0],[[30,2],0],null]]]],[14,\"max\",\"1\"],[12],[1,\"\\n        \"],[1,[30,2]],[1,\"\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n  \"],[13],[1,\"\\n  \"],[10,0],[14,0,\"column is-minimum\"],[12],[1,\"\\n    \"],[10,1],[14,0,\"nowrap\"],[12],[1,[28,[35,1],[[30,2]],[[\"total\"],[1]]]],[13],[1,\"\\n  \"],[13],[1,\"\\n\"],[13],[1,\"\\n\"]],[\"@chartClass\",\"@percent\"],false,[\"or\",\"format-percentage\"]]",
    "moduleName": "nomad-ui/components/primary-metric/current-value.hbs",
    "isStrictMode": false
  });

  var _default = (0, _component.setComponentTemplate)(__COLOCATED_TEMPLATE__, (0, _templateOnly.default)());

  _exports.default = _default;
});
;define("nomad-ui/components/primary-metric/node", ["exports", "@ember/component", "@ember/template-factory", "ember", "@glimmer/component", "ember-concurrency", "@ember/debug", "@ember/service", "@ember/object", "nomad-ui/utils/units"], function (_exports, _component, _templateFactory, _ember, _component2, _emberConcurrency, _debug, _service, _object, _units) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _class, _descriptor, _descriptor2;

  0; //eaimeta@70e063a35619d71f0,"ember",0,"@glimmer/component",0,"ember-concurrency",0,"@ember/debug",0,"@ember/service",0,"@ember/object",0,"nomad-ui/utils/units",0,"@ember/template-factory"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const __COLOCATED_TEMPLATE__ = (0, _templateFactory.createTemplateFactory)(
  /*
    {{!
    Copyright (c) HashiCorp, Inc.
    SPDX-License-Identifier: MPL-2.0
  ~}}
  
  <div data-test-primary-metric class="primary-metric" ...attributes
    {{did-insert this.start}}
    {{did-update this.start}}>
    <h4 data-test-primary-metric-title class="title is-5">
      {{#if (eq this.metric "cpu")}} CPU
      {{else if (eq this.metric "memory")}} Memory
      {{else}} {{this.metric}} {{/if}}
    </h4>
    <div class="primary-graphic">
      <StatsTimeSeries @data={{this.data}} @chartClass={{this.chartClass}}>
        <:after as |c|>
          {{#if this.reservedAnnotations}}
            <c.HAnnotations @annotations={{this.reservedAnnotations}} @labelProp="label" />
          {{/if}}
        </:after>
      </StatsTimeSeries>
    </div>
    <PrimaryMetric::CurrentValue @chartClass={{this.chartClass}} @percent={{this.data.lastObject.percent}} />
    <div class="annotation" data-test-absolute-value>
      {{#if (eq this.metric "cpu")}}
        <strong>{{format-scheduled-hertz this.data.lastObject.used}}</strong> / {{format-scheduled-hertz this.reservedAmount}} Total
      {{else if (eq this.metric "memory")}}
        <strong>{{format-scheduled-bytes this.data.lastObject.used}}</strong> / {{format-scheduled-bytes this.reservedAmount start="MiB"}} Total
      {{else}}
        <strong>{{this.data.lastObject.used}}</strong> / {{this.reservedAmount}} Total
      {{/if}}
    </div>
  </div>
  
  */
  {
    "id": "4Y+VFxOl",
    "block": "[[[11,0],[24,0,\"primary-metric\"],[17,1],[4,[38,0],[[30,0,[\"start\"]]],null],[4,[38,1],[[30,0,[\"start\"]]],null],[12],[1,\"\\n  \"],[10,\"h4\"],[14,0,\"title is-5\"],[12],[1,\"\\n    \"],[41,[28,[37,3],[[30,0,[\"metric\"]],\"cpu\"],null],[[[1,\" CPU\\n    \"]],[]],[[[41,[28,[37,3],[[30,0,[\"metric\"]],\"memory\"],null],[[[1,\" Memory\\n    \"]],[]],[[[1,\" \"],[1,[30,0,[\"metric\"]]],[1,\" \"]],[]]]],[]]],[1,\"  \"],[13],[1,\"\\n  \"],[10,0],[14,0,\"primary-graphic\"],[12],[1,\"\\n    \"],[8,[39,4],null,[[\"@data\",\"@chartClass\"],[[30,0,[\"data\"]],[30,0,[\"chartClass\"]]]],[[\"after\"],[[[[1,\"\\n\"],[41,[30,0,[\"reservedAnnotations\"]],[[[1,\"          \"],[8,[30,2,[\"HAnnotations\"]],null,[[\"@annotations\",\"@labelProp\"],[[30,0,[\"reservedAnnotations\"]],\"label\"]],null],[1,\"\\n\"]],[]],null],[1,\"      \"]],[2]]]]],[1,\"\\n  \"],[13],[1,\"\\n  \"],[8,[39,5],null,[[\"@chartClass\",\"@percent\"],[[30,0,[\"chartClass\"]],[30,0,[\"data\",\"lastObject\",\"percent\"]]]],null],[1,\"\\n  \"],[10,0],[14,0,\"annotation\"],[12],[1,\"\\n\"],[41,[28,[37,3],[[30,0,[\"metric\"]],\"cpu\"],null],[[[1,\"      \"],[10,\"strong\"],[12],[1,[28,[35,6],[[30,0,[\"data\",\"lastObject\",\"used\"]]],null]],[13],[1,\" / \"],[1,[28,[35,6],[[30,0,[\"reservedAmount\"]]],null]],[1,\" Total\\n\"]],[]],[[[41,[28,[37,3],[[30,0,[\"metric\"]],\"memory\"],null],[[[1,\"      \"],[10,\"strong\"],[12],[1,[28,[35,7],[[30,0,[\"data\",\"lastObject\",\"used\"]]],null]],[13],[1,\" / \"],[1,[28,[35,7],[[30,0,[\"reservedAmount\"]]],[[\"start\"],[\"MiB\"]]]],[1,\" Total\\n\"]],[]],[[[1,\"      \"],[10,\"strong\"],[12],[1,[30,0,[\"data\",\"lastObject\",\"used\"]]],[13],[1,\" / \"],[1,[30,0,[\"reservedAmount\"]]],[1,\" Total\\n    \"]],[]]]],[]]],[1,\"  \"],[13],[1,\"\\n\"],[13],[1,\"\\n\"]],[\"&attrs\",\"c\"],false,[\"did-insert\",\"did-update\",\"if\",\"eq\",\"stats-time-series\",\"primary-metric/current-value\",\"format-scheduled-hertz\",\"format-scheduled-bytes\"]]",
    "moduleName": "nomad-ui/components/primary-metric/node.hbs",
    "isStrictMode": false
  });
  /**
   * Copyright (c) HashiCorp, Inc.
   * SPDX-License-Identifier: MPL-2.0
   */


  let NodePrimaryMetric = (_dec = (0, _service.inject)('stats-trackers-registry'), _dec2 = (0, _emberConcurrency.task)(function* () {
    do {
      this.tracker.poll.perform();
      yield (0, _emberConcurrency.timeout)(100);
    } while (!_ember.default.testing);
  }), (_class = class NodePrimaryMetric extends _component2.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "statsTrackersRegistry", _descriptor, this);

      _initializerDefineProperty(this, "poller", _descriptor2, this);
    }

    /** Args
      node = null;
      metric null; (one of 'cpu' or 'memory')
    */
    get metric() {
      (true && !(this.args.metric) && (0, _debug.assert)('metric is a required argument', this.args.metric));
      return this.args.metric;
    }

    get tracker() {
      return this.statsTrackersRegistry.getTracker(this.args.node);
    }

    get data() {
      if (!this.tracker) return [];
      return (0, _object.get)(this, `tracker.${this.metric}`);
    }

    get reservedAmount() {
      if (this.metric === 'cpu') return this.tracker.reservedCPU;
      if (this.metric === 'memory') return this.tracker.reservedMemory;
      return null;
    }

    get chartClass() {
      if (this.metric === 'cpu') return 'is-info';
      if (this.metric === 'memory') return 'is-danger';
      return 'is-primary';
    }

    get reservedAnnotations() {
      if (this.metric === 'cpu' && (0, _object.get)(this.args.node, 'reserved.cpu')) {
        const cpu = this.args.node.reserved.cpu;
        return [{
          label: `${(0, _units.formatScheduledHertz)(cpu, 'MHz')} reserved`,
          percent: cpu / this.reservedAmount
        }];
      }

      if (this.metric === 'memory' && (0, _object.get)(this.args.node, 'reserved.memory')) {
        const memory = this.args.node.reserved.memory;
        return [{
          label: `${(0, _units.formatScheduledBytes)(memory, 'MiB')} reserved`,
          percent: memory / this.reservedAmount
        }];
      }

      return [];
    }

    start() {
      if (this.tracker) this.poller.perform();
    }

    willDestroy() {
      super.willDestroy(...arguments);
      this.poller.cancelAll();
      this.tracker.signalPause.perform();
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "statsTrackersRegistry", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "poller", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class.prototype, "start", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "start"), _class.prototype)), _class));
  _exports.default = NodePrimaryMetric;
  (0, _component.setComponentTemplate)(__COLOCATED_TEMPLATE__, NodePrimaryMetric);
});
;define("nomad-ui/components/primary-metric/task", ["exports", "@ember/component", "@ember/template-factory", "ember", "@glimmer/component", "@glimmer/tracking", "ember-concurrency", "@ember/debug", "@ember/service", "@ember/object"], function (_exports, _component, _templateFactory, _ember, _component2, _tracking, _emberConcurrency, _debug, _service, _object) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _class, _descriptor, _descriptor2, _descriptor3, _descriptor4;

  0; //eaimeta@70e063a35619d71f0,"ember",0,"@glimmer/component",0,"@glimmer/tracking",0,"ember-concurrency",0,"@ember/debug",0,"@ember/service",0,"@ember/object",0,"@ember/template-factory"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const __COLOCATED_TEMPLATE__ = (0, _templateFactory.createTemplateFactory)(
  /*
    {{!
    Copyright (c) HashiCorp, Inc.
    SPDX-License-Identifier: MPL-2.0
  ~}}
  
  <div data-test-primary-metric class="primary-metric" ...attributes
    {{did-insert this.start}}
    {{did-update this.start @taskState @metric}}>
    <h4 data-test-primary-metric-title class="title is-5">
      {{#if (eq this.metric "cpu")}} CPU
      {{else if (eq this.metric "memory")}} Memory
      {{else}} {{this.metric}} {{/if}}
    </h4>
    <div class="primary-graphic">
      <StatsTimeSeries @data={{this.data}} @chartClass={{this.chartClass}} />
    </div>
    <PrimaryMetric::CurrentValue @chartClass={{this.chartClass}} @percent={{this.data.lastObject.percent}} />
    <div class="annotation" data-test-absolute-value>
      {{#if (eq this.metric "cpu")}}
        <strong>{{format-scheduled-hertz this.data.lastObject.used}}</strong> / {{format-scheduled-hertz this.reservedAmount}} Total
      {{else if (eq this.metric "memory")}}
        <strong>{{format-scheduled-bytes this.data.lastObject.used}}</strong> / {{format-scheduled-bytes this.reservedAmount start="MiB"}} Total
      {{else}}
        <strong>{{this.data.lastObject.used}}</strong> / {{this.reservedAmount}} Total
      {{/if}}
    </div>
  </div>
  
  */
  {
    "id": "HK+ZK8b/",
    "block": "[[[11,0],[24,0,\"primary-metric\"],[17,1],[4,[38,0],[[30,0,[\"start\"]]],null],[4,[38,1],[[30,0,[\"start\"]],[30,2],[30,3]],null],[12],[1,\"\\n  \"],[10,\"h4\"],[14,0,\"title is-5\"],[12],[1,\"\\n    \"],[41,[28,[37,3],[[30,0,[\"metric\"]],\"cpu\"],null],[[[1,\" CPU\\n    \"]],[]],[[[41,[28,[37,3],[[30,0,[\"metric\"]],\"memory\"],null],[[[1,\" Memory\\n    \"]],[]],[[[1,\" \"],[1,[30,0,[\"metric\"]]],[1,\" \"]],[]]]],[]]],[1,\"  \"],[13],[1,\"\\n  \"],[10,0],[14,0,\"primary-graphic\"],[12],[1,\"\\n    \"],[8,[39,4],null,[[\"@data\",\"@chartClass\"],[[30,0,[\"data\"]],[30,0,[\"chartClass\"]]]],null],[1,\"\\n  \"],[13],[1,\"\\n  \"],[8,[39,5],null,[[\"@chartClass\",\"@percent\"],[[30,0,[\"chartClass\"]],[30,0,[\"data\",\"lastObject\",\"percent\"]]]],null],[1,\"\\n  \"],[10,0],[14,0,\"annotation\"],[12],[1,\"\\n\"],[41,[28,[37,3],[[30,0,[\"metric\"]],\"cpu\"],null],[[[1,\"      \"],[10,\"strong\"],[12],[1,[28,[35,6],[[30,0,[\"data\",\"lastObject\",\"used\"]]],null]],[13],[1,\" / \"],[1,[28,[35,6],[[30,0,[\"reservedAmount\"]]],null]],[1,\" Total\\n\"]],[]],[[[41,[28,[37,3],[[30,0,[\"metric\"]],\"memory\"],null],[[[1,\"      \"],[10,\"strong\"],[12],[1,[28,[35,7],[[30,0,[\"data\",\"lastObject\",\"used\"]]],null]],[13],[1,\" / \"],[1,[28,[35,7],[[30,0,[\"reservedAmount\"]]],[[\"start\"],[\"MiB\"]]]],[1,\" Total\\n\"]],[]],[[[1,\"      \"],[10,\"strong\"],[12],[1,[30,0,[\"data\",\"lastObject\",\"used\"]]],[13],[1,\" / \"],[1,[30,0,[\"reservedAmount\"]]],[1,\" Total\\n    \"]],[]]]],[]]],[1,\"  \"],[13],[1,\"\\n\"],[13],[1,\"\\n\"]],[\"&attrs\",\"@taskState\",\"@metric\"],false,[\"did-insert\",\"did-update\",\"if\",\"eq\",\"stats-time-series\",\"primary-metric/current-value\",\"format-scheduled-hertz\",\"format-scheduled-bytes\"]]",
    "moduleName": "nomad-ui/components/primary-metric/task.hbs",
    "isStrictMode": false
  });
  /**
   * Copyright (c) HashiCorp, Inc.
   * SPDX-License-Identifier: MPL-2.0
   */


  let TaskPrimaryMetric = (_dec = (0, _service.inject)('stats-trackers-registry'), _dec2 = (0, _emberConcurrency.task)(function* () {
    do {
      this.tracker.poll.perform();
      yield (0, _emberConcurrency.timeout)(100);
    } while (!_ember.default.testing);
  }), (_class = class TaskPrimaryMetric extends _component2.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "statsTrackersRegistry", _descriptor, this);

      _initializerDefineProperty(this, "tracker", _descriptor2, this);

      _initializerDefineProperty(this, "taskState", _descriptor3, this);

      _initializerDefineProperty(this, "poller", _descriptor4, this);
    }

    get metric() {
      (true && !(this.args.metric) && (0, _debug.assert)('metric is a required argument', this.args.metric));
      return this.args.metric;
    }

    get data() {
      if (!this.tracker) return [];
      const task = this.tracker.tasks.findBy('task', this.taskState.name);
      return task && task[this.metric];
    }

    get reservedAmount() {
      if (!this.tracker) return null;
      const task = this.tracker.tasks.findBy('task', this.taskState.name);
      if (this.metric === 'cpu') return task.reservedCPU;
      if (this.metric === 'memory') return task.reservedMemory;
      return null;
    }

    get chartClass() {
      if (this.metric === 'cpu') return 'is-info';
      if (this.metric === 'memory') return 'is-danger';
      return 'is-primary';
    }

    start() {
      this.taskState = this.args.taskState;
      this.tracker = this.statsTrackersRegistry.getTracker(this.args.taskState.allocation);
      this.poller.perform();
    }

    willDestroy() {
      super.willDestroy(...arguments);
      this.poller.cancelAll();
      this.tracker.signalPause.perform();
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "statsTrackersRegistry", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "tracker", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return null;
    }
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "taskState", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return null;
    }
  }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, "poller", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class.prototype, "start", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "start"), _class.prototype)), _class));
  _exports.default = TaskPrimaryMetric;
  (0, _component.setComponentTemplate)(__COLOCATED_TEMPLATE__, TaskPrimaryMetric);
});
;define("nomad-ui/components/profile-navbar-item", ["exports", "@ember/component", "@ember/template-factory", "@glimmer/component", "@ember/service"], function (_exports, _component, _templateFactory, _component2, _service) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _descriptor, _descriptor2, _descriptor3;

  0; //eaimeta@70e063a35619d71f0,"@glimmer/component",0,"@ember/service",0,"@ember/template-factory"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const __COLOCATED_TEMPLATE__ = (0, _templateFactory.createTemplateFactory)(
  /*
    {{!
    Copyright (c) HashiCorp, Inc.
    SPDX-License-Identifier: MPL-2.0
  ~}}
  
  {{#if this.token.selfToken}}
    <PowerSelect
    data-test-header-profile-dropdown
    {{keyboard-shortcut menuLevel=true pattern=(array "g" "p") }}
    @options={{this.profileOptions}}
    @onChange={{action (queue 
        (fn (mut this.profileSelection))
        this.profileSelection.action
    )}}
    @dropdownClass="dropdown-options"
    @matchTriggerWidth={{false}}
    @selected={{get this.profileSelection "key"}}
    class="profile-dropdown navbar-item"
    as |option|>
    <span class="ember-power-select-prefix">Profile</span>
    <span class="dropdown-label" data-test-dropdown-option={{option.key}}>{{option.label}}</span>
    </PowerSelect>
  {{else}}
    <LinkTo data-test-header-signin-link @route="settings.tokens" class="navbar-item" {{keyboard-shortcut menuLevel=true pattern=(array "g" "p") }}>
      Sign In
    </LinkTo>
  {{/if}}
  
  {{yield}}
  
  */
  {
    "id": "7f9T2X4q",
    "block": "[[[41,[30,0,[\"token\",\"selfToken\"]],[[[1,\"  \"],[8,[39,1],[[24,0,\"profile-dropdown navbar-item\"],[4,[38,7],null,[[\"menuLevel\",\"pattern\"],[true,[28,[37,8],[\"g\",\"p\"],null]]]]],[[\"@options\",\"@onChange\",\"@dropdownClass\",\"@matchTriggerWidth\",\"@selected\"],[[30,0,[\"profileOptions\"]],[28,[37,2],[[30,0],[28,[37,3],[[28,[37,4],[[28,[37,5],[[30,0,[\"profileSelection\"]]],null]],null],[30,0,[\"profileSelection\",\"action\"]]],null]],null],\"dropdown-options\",false,[28,[37,6],[[30,0,[\"profileSelection\"]],\"key\"],null]]],[[\"default\"],[[[[1,\"\\n  \"],[10,1],[14,0,\"ember-power-select-prefix\"],[12],[1,\"Profile\"],[13],[1,\"\\n  \"],[10,1],[14,0,\"dropdown-label\"],[12],[1,[30,1,[\"label\"]]],[13],[1,\"\\n  \"]],[1]]]]],[1,\"\\n\"]],[]],[[[1,\"  \"],[8,[39,9],[[24,0,\"navbar-item\"],[4,[38,7],null,[[\"menuLevel\",\"pattern\"],[true,[28,[37,8],[\"g\",\"p\"],null]]]]],[[\"@route\"],[\"settings.tokens\"]],[[\"default\"],[[[[1,\"\\n    Sign In\\n  \"]],[]]]]],[1,\"\\n\"]],[]]],[1,\"\\n\"],[18,2,null],[1,\"\\n\"]],[\"option\",\"&default\"],false,[\"if\",\"power-select\",\"action\",\"queue\",\"fn\",\"mut\",\"get\",\"keyboard-shortcut\",\"array\",\"link-to\",\"yield\"]]",
    "moduleName": "nomad-ui/components/profile-navbar-item.hbs",
    "isStrictMode": false
  });
  /**
   * Copyright (c) HashiCorp, Inc.
   * SPDX-License-Identifier: MPL-2.0
   */
  // @ts-check


  let ProfileNavbarItemComponent = (_class = class ProfileNavbarItemComponent extends _component2.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "token", _descriptor, this);

      _initializerDefineProperty(this, "router", _descriptor2, this);

      _initializerDefineProperty(this, "store", _descriptor3, this);

      _defineProperty(this, "profileOptions", [{
        label: 'Authorization',
        key: 'authorization',
        action: () => {
          this.router.transitionTo('settings.tokens');
        }
      }, {
        label: 'Sign Out',
        key: 'sign-out',
        action: () => {
          this.token.setProperties({
            secret: undefined
          }); // Clear out all data to ensure only data the anonymous token is privileged to see is shown

          this.store.unloadAll();
          this.token.reset();
          this.router.transitionTo('jobs.index');
        }
      }]);

      _defineProperty(this, "profileSelection", this.profileOptions[0]);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "token", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "router", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "store", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class);
  _exports.default = ProfileNavbarItemComponent;
  (0, _component.setComponentTemplate)(__COLOCATED_TEMPLATE__, ProfileNavbarItemComponent);
});
;define("nomad-ui/components/providers/actors-relationships", ["exports", "@ember/component", "@ember/template-factory", "@glimmer/component", "@ember/service"], function (_exports, _component, _templateFactory, _component2, _service) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _descriptor;

  0; //eaimeta@70e063a35619d71f0,"@glimmer/component",0,"@ember/service",0,"@ember/template-factory"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const __COLOCATED_TEMPLATE__ = (0, _templateFactory.createTemplateFactory)(
  /*
    {{!
    Copyright (c) HashiCorp, Inc.
    SPDX-License-Identifier: MPL-2.0
  ~}}
  
  {{yield
    (hash fns=this.actorsRelationships.fns data=this.actorsRelationships.data)
  }}
  */
  {
    "id": "HP4a4AtE",
    "block": "[[[18,1,[[28,[37,1],null,[[\"fns\",\"data\"],[[30,0,[\"actorsRelationships\",\"fns\"]],[30,0,[\"actorsRelationships\",\"data\"]]]]]]]],[\"&default\"],false,[\"yield\",\"hash\"]]",
    "moduleName": "nomad-ui/components/providers/actors-relationships.hbs",
    "isStrictMode": false
  });
  /**
   * Copyright (c) HashiCorp, Inc.
   * SPDX-License-Identifier: MPL-2.0
   */


  let ActorsRelationships = (_class = class ActorsRelationships extends _component2.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "actorsRelationships", _descriptor, this);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "actorsRelationships", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class);
  _exports.default = ActorsRelationships;
  (0, _component.setComponentTemplate)(__COLOCATED_TEMPLATE__, ActorsRelationships);
});
;define("nomad-ui/components/proxy-tag", ["exports", "@ember/component", "@ember-decorators/component"], function (_exports, _component, _component2) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _class;

  0; //eaimeta@70e063a35619d71f0,"@ember/component",0,"@ember-decorators/component",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  const classic = __EMBER_CLASSIC_DECORATOR;
  let ProxyTag = (_dec = (0, _component2.tagName)(''), classic(_class = _dec(_class = class ProxyTag extends _component.default {}) || _class) || _class);
  _exports.default = ProxyTag;
});
;define("nomad-ui/components/region-switcher", ["exports", "@ember/component", "@ember/object", "@ember/service"], function (_exports, _component, _object, _service) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _class, _class2, _descriptor, _descriptor2, _descriptor3;

  0; //eaimeta@70e063a35619d71f0,"@ember/component",0,"@ember/object",0,"@ember/service",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let RegionSwitcher = (_dec = (0, _object.computed)('system.regions'), classic(_class = (_class2 = class RegionSwitcher extends _component.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "system", _descriptor, this);

      _initializerDefineProperty(this, "router", _descriptor2, this);

      _initializerDefineProperty(this, "store", _descriptor3, this);
    }

    get sortedRegions() {
      return this.get('system.regions').toArray().sort();
    }

    gotoRegion(region) {
      this.router.transitionTo('jobs', {
        queryParams: {
          region
        }
      });
    }

    get keyCommands() {
      if (this.sortedRegions.length <= 1) {
        return [];
      }

      return this.sortedRegions.map((region, iter) => {
        return {
          label: `Switch to ${region} region`,
          pattern: ['r', `${iter + 1}`],
          action: () => this.gotoRegion(region)
        };
      });
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "system", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "router", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, "store", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "sortedRegions", [_dec], Object.getOwnPropertyDescriptor(_class2.prototype, "sortedRegions"), _class2.prototype)), _class2)) || _class);
  _exports.default = RegionSwitcher;
});
;define("nomad-ui/components/reschedule-event-row", ["exports", "@ember/component", "ember-overridable-computed", "@ember/service", "@ember-decorators/component"], function (_exports, _component, _emberOverridableComputed, _service, _component2) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _class, _class2, _descriptor, _descriptor2;

  0; //eaimeta@70e063a35619d71f0,"@ember/component",0,"ember-overridable-computed",0,"@ember/service",0,"@ember-decorators/component",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let RescheduleEventRow = (_dec = (0, _component2.tagName)(''), _dec2 = (0, _emberOverridableComputed.computed)('allocationId', function () {
    if (this.allocationId) {
      return this.store.findRecord('allocation', this.allocationId);
    }

    return null;
  }), classic(_class = _dec(_class = (_class2 = class RescheduleEventRow extends _component.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "store", _descriptor, this);

      _defineProperty(this, "allocationId", null);

      _initializerDefineProperty(this, "allocation", _descriptor2, this);

      _defineProperty(this, "time", null);

      _defineProperty(this, "linkToAllocation", true);

      _defineProperty(this, "label", '');
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "store", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "allocation", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class2)) || _class) || _class);
  _exports.default = RescheduleEventRow;
});
;define("nomad-ui/components/safe-link-to", ["exports", "@ember/legacy-built-in-components"], function (_exports, _legacyBuiltInComponents) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class;

  0; //eaimeta@70e063a35619d71f0,"@ember/legacy-built-in-components",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  const classic = __EMBER_CLASSIC_DECORATOR; // Necessary for programmatic routing away pages with <LinkTo>s that contain @query properties.
  // (There's an issue with query param calculations in the new component that uses the router service)
  // https://github.com/emberjs/ember.js/issues/20051

  let SafeLinkToComponent = classic(_class = class SafeLinkToComponent extends _legacyBuiltInComponents.LinkComponent {}) || _class;

  _exports.default = SafeLinkToComponent;
});
;define("nomad-ui/components/scale-events-chart", ["exports", "@glimmer/component", "@glimmer/tracking", "@ember/object", "ember-copy"], function (_exports, _component, _tracking, _object, _emberCopy) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _descriptor;

  0; //eaimeta@70e063a35619d71f0,"@glimmer/component",0,"@glimmer/tracking",0,"@ember/object",0,"ember-copy"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let ScaleEventsChart = (_class = class ScaleEventsChart extends _component.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "activeEvent", _descriptor, this);
    }

    get data() {
      const data = this.args.events.filterBy('hasCount').sortBy('time'); // Extend the domain of the chart to the current time

      data.push({
        time: new Date(),
        count: data.lastObject.count
      }); // Make sure the domain of the chart includes the first annotation

      const firstAnnotation = this.annotations.sortBy('time')[0];

      if (firstAnnotation && firstAnnotation.time < data[0].time) {
        data.unshift({
          time: firstAnnotation.time,
          count: data[0].count
        });
      }

      return data;
    }

    get annotations() {
      return this.args.events.rejectBy('hasCount').map(ev => ({
        type: ev.error ? 'error' : 'info',
        time: ev.time,
        event: (0, _emberCopy.copy)(ev)
      }));
    }

    toggleEvent(ev) {
      if (this.activeEvent && (0, _object.get)(this.activeEvent, 'event.uid') === (0, _object.get)(ev, 'event.uid')) {
        this.closeEventDetails();
      } else {
        this.activeEvent = ev;
      }
    }

    closeEventDetails() {
      this.activeEvent = null;
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "activeEvent", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return null;
    }
  })), _class);
  _exports.default = ScaleEventsChart;
});
;define("nomad-ui/components/search-box", ["exports", "@ember/object/computed", "@ember/component", "@ember/object", "@ember/runloop", "@ember-decorators/component"], function (_exports, _computed, _component, _object, _runloop, _component2) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _class, _class2, _descriptor;

  0; //eaimeta@70e063a35619d71f0,"@ember/object/computed",0,"@ember/component",0,"@ember/object",0,"@ember/runloop",0,"@ember-decorators/component",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let SearchBox = (_dec = (0, _component2.classNames)('search-box', 'field', 'has-addons'), _dec2 = (0, _computed.reads)('searchTerm'), classic(_class = _dec(_class = (_class2 = class SearchBox extends _component.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "searchTerm", null);

      _initializerDefineProperty(this, "_searchTerm", _descriptor, this);

      _defineProperty(this, "debounce", 150);
    }

    // A hook that's called when the search value changes
    onChange() {}

    setSearchTerm(e) {
      this.set('_searchTerm', e.target.value);
      (0, _runloop.debounce)(this, updateSearch, this.debounce);
    }

    clear() {
      this.set('_searchTerm', '');
      (0, _runloop.debounce)(this, updateSearch, this.debounce);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "_searchTerm", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "setSearchTerm", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "setSearchTerm"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "clear", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "clear"), _class2.prototype)), _class2)) || _class) || _class);
  _exports.default = SearchBox;

  function updateSearch() {
    const newTerm = this._searchTerm;
    this.onChange(newTerm);
    this.set('searchTerm', newTerm);
  }
});
;define("nomad-ui/components/server-agent-row", ["exports", "@ember/service", "@ember/object/computed", "@ember/component", "@ember/object", "nomad-ui/helpers/lazy-click", "@ember-decorators/component"], function (_exports, _service, _computed, _component, _object, _lazyClick, _component2) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _class, _class2, _descriptor, _descriptor2;

  0; //eaimeta@70e063a35619d71f0,"@ember/service",0,"@ember/object/computed",0,"@ember/component",0,"@ember/object",0,"nomad-ui/helpers/lazy-click",0,"@ember-decorators/component",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let ServerAgentRow = (_dec = (0, _component2.tagName)('tr'), _dec2 = (0, _component2.classNames)('server-agent-row', 'is-interactive'), _dec3 = (0, _component2.classNameBindings)('isActive:is-active'), _dec4 = (0, _service.inject)('-routing'), _dec5 = (0, _computed.alias)('_router.router'), _dec6 = (0, _object.computed)('agent', 'router.currentURL'), classic(_class = _dec(_class = _dec2(_class = _dec3(_class = (_class2 = class ServerAgentRow extends _component.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "_router", _descriptor, this);

      _initializerDefineProperty(this, "router", _descriptor2, this);

      _defineProperty(this, "agent", null);
    }

    get isActive() {
      // TODO Switch back to the router service once the service behaves more like Route
      // https://github.com/emberjs/ember.js/issues/15801
      // const targetURL = this.get('router').urlFor('servers.server', this.get('agent'));
      // const currentURL = `${this.get('router.rootURL').slice(0, -1)}${this.get('router.currentURL')}`;
      const router = this.router;
      const targetURL = router.generate('servers.server', this.agent);
      const currentURL = `${router.get('rootURL').slice(0, -1)}${router.get('currentURL').split('?')[0]}`; // Account for potential URI encoding

      return currentURL.replace(/%40/g, '@') === targetURL.replace(/%40/g, '@');
    }

    goToAgent() {
      const transition = () => this.router.transitionTo('servers.server', this.agent);

      (0, _lazyClick.lazyClick)([transition, event]);
    }

    click() {
      this.goToAgent();
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "_router", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "router", [_dec5], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "isActive", [_dec6], Object.getOwnPropertyDescriptor(_class2.prototype, "isActive"), _class2.prototype)), _class2)) || _class) || _class) || _class) || _class);
  _exports.default = ServerAgentRow;
});
;define("nomad-ui/components/server-subnav", ["exports", "@ember/component", "@ember-decorators/component", "@ember/service"], function (_exports, _component, _component2, _service) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _class, _class2, _descriptor;

  0; //eaimeta@70e063a35619d71f0,"@ember/component",0,"@ember-decorators/component",0,"@ember/service"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let ServerSubnav = (_dec = (0, _component2.tagName)(''), _dec(_class = (_class2 = class ServerSubnav extends _component.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "keyboard", _descriptor, this);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "keyboard", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class2)) || _class);
  _exports.default = ServerSubnav;
});
;define("nomad-ui/components/service-status-bar", ["exports", "@ember/object", "nomad-ui/components/distribution-bar", "@ember-decorators/component"], function (_exports, _object, _distributionBar, _component) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _class, _class2;

  0; //eaimeta@70e063a35619d71f0,"@ember/object",0,"nomad-ui/components/distribution-bar",0,"@ember-decorators/component",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let ServiceStatusBar = (_dec = (0, _component.attributeBindings)('data-test-service-status-bar'), _dec2 = (0, _object.computed)('status.{failure,pending,success}'), classic(_class = _dec(_class = (_class2 = class ServiceStatusBar extends _distributionBar.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "layoutName", 'components/distribution-bar');

      _defineProperty(this, "status", null);

      _defineProperty(this, 'data-test-service-status-bar', true);
    }

    get data() {
      if (!this.status) {
        return [];
      }

      const pending = this.status.pending || 0;
      const failing = this.status.failure || 0;
      const success = this.status.success || 0;
      const [grey, red, green] = ['queued', 'failed', 'running'];
      return [{
        label: 'Pending',
        value: pending,
        className: grey
      }, {
        label: 'Failing',
        value: failing,
        className: red
      }, {
        label: 'Success',
        value: success,
        className: green
      }];
    }

  }, (_applyDecoratedDescriptor(_class2.prototype, "data", [_dec2], Object.getOwnPropertyDescriptor(_class2.prototype, "data"), _class2.prototype)), _class2)) || _class) || _class);
  _exports.default = ServiceStatusBar;
});
;define("nomad-ui/components/service-status-indicator", ["exports", "@ember/component", "@ember/template-factory", "@ember/component/template-only"], function (_exports, _component, _templateFactory, _templateOnly) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/component/template-only",0,"@ember/template-factory"eaimeta@70e063a35619d71f

  const __COLOCATED_TEMPLATE__ = (0, _templateFactory.createTemplateFactory)(
  /*
    {{!
    Copyright (c) HashiCorp, Inc.
    SPDX-License-Identifier: MPL-2.0
  ~}}
  
  <span
    class="service-status-indicator status-{{@check.Status}} tooltip is-right-aligned"
    aria-label="{{@check.Status}} at {{format-ts @check.Timestamp}}"
  >
    {{#if (eq @check.Status "failure")}}
      &times;
    {{/if}}
  
    <span class="timestamp"><span>{{format-ts @check.Timestamp timeOnly=true}}</span></span>
  </span>
  
  */
  {
    "id": "U21ID21U",
    "block": "[[[10,1],[15,0,[29,[\"service-status-indicator status-\",[30,1,[\"Status\"]],\" tooltip is-right-aligned\"]]],[15,\"aria-label\",[29,[[30,1,[\"Status\"]],\" at \",[28,[37,0],[[30,1,[\"Timestamp\"]]],null]]]],[12],[1,\"\\n\"],[41,[28,[37,2],[[30,1,[\"Status\"]],\"failure\"],null],[[[1,\"    ×\\n\"]],[]],null],[1,\"\\n  \"],[10,1],[14,0,\"timestamp\"],[12],[10,1],[12],[1,[28,[35,0],[[30,1,[\"Timestamp\"]]],[[\"timeOnly\"],[true]]]],[13],[13],[1,\"\\n\"],[13],[1,\"\\n\"]],[\"@check\"],false,[\"format-ts\",\"if\",\"eq\"]]",
    "moduleName": "nomad-ui/components/service-status-indicator.hbs",
    "isStrictMode": false
  });

  var _default = (0, _component.setComponentTemplate)(__COLOCATED_TEMPLATE__, (0, _templateOnly.default)());

  _exports.default = _default;
});
;define("nomad-ui/components/single-select-dropdown/index", ["exports", "@ember/component", "@ember/template-factory", "@glimmer/component", "@ember/object"], function (_exports, _component, _templateFactory, _component2, _object) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class;

  0; //eaimeta@70e063a35619d71f0,"@glimmer/component",0,"@ember/object",0,"@ember/template-factory"eaimeta@70e063a35619d71f

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  const __COLOCATED_TEMPLATE__ = (0, _templateFactory.createTemplateFactory)(
  /*
    {{!
    Copyright (c) HashiCorp, Inc.
    SPDX-License-Identifier: MPL-2.0
  ~}}
  
  <div data-test-single-select-dropdown class="dropdown" ...attributes>
    <PowerSelect
      @options={{@options}}
      @disabled={{@disabled}}
      @selected={{this.activeOption}}
      @searchEnabled={{gt @options.length 10}}
      @searchField="label"
      @onChange={{action this.setSelection}}
      @dropdownClass="dropdown-options"
      as |option|>
      <span class="ember-power-select-prefix">{{@label}}: </span>
      <span class="dropdown-label" data-test-dropdown-option={{option.key}}>{{option.label}}</span>
    </PowerSelect>
  </div>
  
  */
  {
    "id": "f06jh8PS",
    "block": "[[[11,0],[24,0,\"dropdown\"],[17,1],[12],[1,\"\\n  \"],[8,[39,0],null,[[\"@options\",\"@disabled\",\"@selected\",\"@searchEnabled\",\"@searchField\",\"@onChange\",\"@dropdownClass\"],[[30,2],[30,3],[30,0,[\"activeOption\"]],[28,[37,1],[[30,2,[\"length\"]],10],null],\"label\",[28,[37,2],[[30,0],[30,0,[\"setSelection\"]]],null],\"dropdown-options\"]],[[\"default\"],[[[[1,\"\\n    \"],[10,1],[14,0,\"ember-power-select-prefix\"],[12],[1,[30,5]],[1,\": \"],[13],[1,\"\\n    \"],[10,1],[14,0,\"dropdown-label\"],[12],[1,[30,4,[\"label\"]]],[13],[1,\"\\n  \"]],[4]]]]],[1,\"\\n\"],[13],[1,\"\\n\"]],[\"&attrs\",\"@options\",\"@disabled\",\"option\",\"@label\"],false,[\"power-select\",\"gt\",\"action\"]]",
    "moduleName": "nomad-ui/components/single-select-dropdown/index.hbs",
    "isStrictMode": false
  });
  /**
   * Copyright (c) HashiCorp, Inc.
   * SPDX-License-Identifier: MPL-2.0
   */


  let SingleSelectDropdown = (_class = class SingleSelectDropdown extends _component2.default {
    get activeOption() {
      return this.args.options.findBy('key', this.args.selection);
    }

    setSelection(_ref2) {
      let {
        key
      } = _ref2;
      this.args.onSelect && this.args.onSelect(key);
    }

  }, (_applyDecoratedDescriptor(_class.prototype, "setSelection", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "setSelection"), _class.prototype)), _class);
  _exports.default = SingleSelectDropdown;
  (0, _component.setComponentTemplate)(__COLOCATED_TEMPLATE__, SingleSelectDropdown);
});
;define("nomad-ui/components/stats-time-series", ["exports", "@glimmer/component", "moment", "d3-time-format", "d3-format", "d3-scale", "d3-array", "nomad-ui/utils/format-duration"], function (_exports, _component, _moment, _d3TimeFormat, _d3Format, _d3Scale, _d3Array, _formatDuration) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@glimmer/component",0,"moment",0,"d3-time-format",0,"d3-format",0,"d3-scale",0,"d3-array",0,"nomad-ui/utils/format-duration"eaimeta@70e063a35619d71f

  class StatsTimeSeries extends _component.default {
    get xFormat() {
      return _d3TimeFormat.default.timeFormat('%H:%M:%S');
    }

    get yFormat() {
      return _d3Format.default.format('.1~%');
    }

    get useDefaults() {
      return !this.args.dataProp;
    } // Specific a11y descriptors


    get description() {
      const data = this.args.data;

      const yRange = _d3Array.default.extent(data, d => d.percent);

      const xRange = _d3Array.default.extent(data, d => d.timestamp);

      const yFormatter = this.yFormat;
      const duration = (0, _formatDuration.default)(xRange[1] - xRange[0], 'ms', true);
      return `Time series data for the last ${duration}, with values ranging from ${yFormatter(yRange[0])} to ${yFormatter(yRange[1])}`;
    }

    xScale(data, yAxisOffset) {
      const scale = (0, _d3Scale.scaleTime)();

      const [low, high] = _d3Array.default.extent(data, d => d.timestamp);

      const minLow = (0, _moment.default)(high).subtract(5, 'minutes').toDate();
      const extent = data.length ? [Math.min(low, minLow), high] : [minLow, new Date()];
      scale.rangeRound([10, yAxisOffset]).domain(extent);
      return scale;
    }

    yScale(data, xAxisOffset) {
      const yValues = (data || []).mapBy(this.args.dataProp ? 'percentStack' : 'percent');
      let [low, high] = [0, 1];

      if (yValues.compact().length) {
        [low, high] = _d3Array.default.extent(yValues);
      }

      return (0, _d3Scale.scaleLinear)().rangeRound([xAxisOffset, 10]).domain([Math.min(0, low), Math.max(1, high)]);
    }

  }

  _exports.default = StatsTimeSeries;

  window.__CLASSIC_OWN_CLASSES__.set(StatsTimeSeries, true);
});
;define("nomad-ui/components/status-cell", ["exports", "@ember/component", "@ember/template-factory", "@ember/component/template-only"], function (_exports, _component, _templateFactory, _templateOnly) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/component/template-only",0,"@ember/template-factory"eaimeta@70e063a35619d71f

  const __COLOCATED_TEMPLATE__ = (0, _templateFactory.createTemplateFactory)(
  /*
    {{!
    Copyright (c) HashiCorp, Inc.
    SPDX-License-Identifier: MPL-2.0
  ~}}
  
  <span class="color-swatch {{@status}}"></span>{{@status}}
  */
  {
    "id": "McKqxdFk",
    "block": "[[[10,1],[15,0,[29,[\"color-swatch \",[30,1]]]],[12],[13],[1,[30,1]]],[\"@status\"],false,[]]",
    "moduleName": "nomad-ui/components/status-cell.hbs",
    "isStrictMode": false
  });

  var _default = (0, _component.setComponentTemplate)(__COLOCATED_TEMPLATE__, (0, _templateOnly.default)());

  _exports.default = _default;
});
;define("nomad-ui/components/stepper-input", ["exports", "@ember/component", "@ember/object", "@ember/runloop", "@ember/object/computed", "@ember-decorators/component"], function (_exports, _component, _object, _runloop, _computed, _component2) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _class, _class2, _descriptor;

  0; //eaimeta@70e063a35619d71f0,"@ember/component",0,"@ember/object",0,"@ember/runloop",0,"@ember/object/computed",0,"@ember-decorators/component",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;
  const ESC = 27;
  let StepperInput = (_dec = (0, _component2.classNames)('stepper-input'), _dec2 = (0, _component2.classNameBindings)('class', 'disabled:is-disabled', 'disabled:tooltip', 'disabled:multiline'), _dec3 = (0, _computed.oneWay)('value'), classic(_class = _dec(_class = _dec2(_class = (_class2 = class StepperInput extends _component.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "min", 0);

      _defineProperty(this, "max", 10);

      _defineProperty(this, "value", 0);

      _defineProperty(this, "debounce", 500);

      _initializerDefineProperty(this, "internalValue", _descriptor, this);
    }

    onChange() {} // Internal value changes immediately for instant visual feedback.
    // Value is still the public API and is expected to mutate and re-render
    // On onChange which is debounced.


    increment() {
      if (this.internalValue < this.max) {
        this.incrementProperty('internalValue');
        this.update(this.internalValue);
      }
    }

    decrement() {
      if (this.internalValue > this.min) {
        this.decrementProperty('internalValue');
        this.update(this.internalValue);
      }
    }

    setValue(e) {
      if (e.target.value !== '') {
        const newValue = Math.floor(Math.min(this.max, Math.max(this.min, e.target.value)));
        this.set('internalValue', newValue);
        this.update(this.internalValue);
      } else {
        e.target.value = this.internalValue;
      }
    }

    resetTextInput(e) {
      if (e.keyCode === ESC) {
        e.target.value = this.internalValue;
      }
    }

    selectValue(e) {
      e.target.select();
    }

    update(value) {
      (0, _runloop.debounce)(this, sendUpdateAction, value, this.debounce);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "internalValue", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "increment", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "increment"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "decrement", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "decrement"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "setValue", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "setValue"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "resetTextInput", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "resetTextInput"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "selectValue", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "selectValue"), _class2.prototype)), _class2)) || _class) || _class) || _class);
  _exports.default = StepperInput;

  function sendUpdateAction(value) {
    return this.onChange(value);
  }
});
;define("nomad-ui/components/storage-subnav", ["exports", "@glimmer/component", "@ember/service"], function (_exports, _component, _service) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _descriptor;

  0; //eaimeta@70e063a35619d71f0,"@glimmer/component",0,"@ember/service"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let StorageSubnavComponent = (_class = class StorageSubnavComponent extends _component.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "keyboard", _descriptor, this);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "keyboard", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class);
  _exports.default = StorageSubnavComponent;
});
;define("nomad-ui/components/streaming-file", ["exports", "@ember/component", "@ember/runloop", "ember-concurrency", "nomad-ui/mixins/window-resizable", "@ember-decorators/component"], function (_exports, _component, _runloop, _emberConcurrency, _windowResizable, _component2) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _class, _class2, _descriptor, _descriptor2, _descriptor3;

  0; //eaimeta@70e063a35619d71f0,"@ember/component",0,"@ember/runloop",0,"ember-concurrency",0,"nomad-ui/mixins/window-resizable",0,"@ember-decorators/component",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;
  const A_KEY = 65;
  let StreamingFile = (_dec = (0, _component2.tagName)('pre'), _dec2 = (0, _component2.classNames)('cli-window'), _dec3 = (0, _component2.attributeBindings)('data-test-log-cli'), _dec4 = (0, _emberConcurrency.task)(function* () {
    yield this.get('logger.gotoHead').perform();
    (0, _runloop.scheduleOnce)('afterRender', this, this.scrollToTop);
  }), _dec5 = (0, _emberConcurrency.task)(function* () {
    yield this.get('logger.gotoTail').perform();
  }), _dec6 = (0, _emberConcurrency.task)(function* () {
    // Follow the log if the scroll position is near the bottom of the cli window
    this.logger.on('tick', this, 'scheduleScrollSynchronization');
    yield this.logger.startStreaming();
    this.logger.off('tick', this, 'scheduleScrollSynchronization');
  }), classic(_class = _dec(_class = _dec2(_class = _dec3(_class = (_class2 = class StreamingFile extends _component.default.extend(_windowResizable.default) {
    constructor() {
      super(...arguments);

      _defineProperty(this, 'data-test-log-cli', true);

      _defineProperty(this, "mode", 'streaming');

      _defineProperty(this, "isStreaming", true);

      _defineProperty(this, "logger", null);

      _defineProperty(this, "follow", true);

      _defineProperty(this, "shouldFillHeight", true);

      _defineProperty(this, "requestFrame", true);

      _initializerDefineProperty(this, "head", _descriptor, this);

      _initializerDefineProperty(this, "tail", _descriptor2, this);

      _initializerDefineProperty(this, "stream", _descriptor3, this);
    }

    didReceiveAttrs() {
      super.didReceiveAttrs();

      if (!this.logger) {
        return;
      }

      (0, _runloop.scheduleOnce)('actions', this, this.performTask);
    }

    performTask() {
      switch (this.mode) {
        case 'head':
          this.set('follow', false);
          this.head.perform();
          break;

        case 'tail':
          this.set('follow', true);
          this.tail.perform();
          break;

        case 'streaming':
          this.set('follow', true);

          if (this.isStreaming) {
            this.stream.perform();
          } else {
            this.logger.stop();
          }

          break;
      }
    }

    scrollHandler() {
      const cli = this.element; // Scroll events can fire multiple times per frame, this eliminates
      // redundant computation.

      if (this.requestFrame) {
        window.requestAnimationFrame(() => {
          // If the scroll position is close enough to the bottom, autoscroll to the bottom
          this.set('follow', cli.scrollHeight - cli.scrollTop - cli.clientHeight < 20);
          this.requestFrame = true;
        });
      }

      this.requestFrame = false;
    }

    keyDownHandler(e) {
      // Rebind select-all shortcut to only select the text in the
      // streaming file output.
      if ((e.metaKey || e.ctrlKey) && e.keyCode === A_KEY) {
        e.preventDefault();
        const selection = window.getSelection();
        selection.removeAllRanges();
        const range = document.createRange();
        range.selectNode(this.element);
        selection.addRange(range);
      }
    }

    didInsertElement() {
      super.didInsertElement(...arguments);

      if (this.shouldFillHeight) {
        this.fillAvailableHeight();
      }

      this.set('_scrollHandler', this.scrollHandler.bind(this));
      this.element.addEventListener('scroll', this._scrollHandler);
      this.set('_keyDownHandler', this.keyDownHandler.bind(this));
      document.addEventListener('keydown', this._keyDownHandler);
    }

    willDestroyElement() {
      super.willDestroyElement(...arguments);
      this.element.removeEventListener('scroll', this._scrollHandler);
      document.removeEventListener('keydown', this._keyDownHandler);
    }

    windowResizeHandler() {
      if (this.shouldFillHeight) {
        (0, _runloop.once)(this, this.fillAvailableHeight);
      }
    }

    fillAvailableHeight() {
      // This math is arbitrary and far from bulletproof, but the UX
      // of having the log window fill available height is worth the hack.
      const margins = 30; // Account for padding and margin on either side of the CLI

      const cliWindow = this.element;
      cliWindow.style.height = `${window.innerHeight - cliWindow.offsetTop - margins}px`;
    }

    scrollToTop() {
      this.element.scrollTop = 0;
    }

    synchronizeScrollPosition() {
      if (this.follow) {
        this.element.scrollTop = this.element.scrollHeight;
      }
    }

    scheduleScrollSynchronization() {
      (0, _runloop.scheduleOnce)('afterRender', this, this.synchronizeScrollPosition);
    }

    willDestroy() {
      super.willDestroy(...arguments);
      this.logger.stop();
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "head", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "tail", [_dec5], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, "stream", [_dec6], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class2)) || _class) || _class) || _class) || _class);
  _exports.default = StreamingFile;
});
;define("nomad-ui/components/task-context-sidebar", ["exports", "@ember/component", "@ember/template-factory", "@glimmer/component", "@ember/object", "@glimmer/tracking"], function (_exports, _component, _templateFactory, _component2, _object, _tracking) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _descriptor;

  0; //eaimeta@70e063a35619d71f0,"@glimmer/component",0,"@ember/object",0,"@glimmer/tracking",0,"@ember/template-factory"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const __COLOCATED_TEMPLATE__ = (0, _templateFactory.createTemplateFactory)(
  /*
    {{!
    Copyright (c) HashiCorp, Inc.
    SPDX-License-Identifier: MPL-2.0
  ~}}
  
  <Portal @target="log-sidebar-portal">
  	<div
  		class="sidebar task-context-sidebar has-subnav {{if this.wide "wide"}} {{if @task.events.length "has-events"}} {{if this.isSideBarOpen "open"}}"
  		{{on-click-outside
  			@fns.closeSidebar
  			capture=true
  		}}
  	>
  	{{#if @task}}
  		{{keyboard-commands this.keyCommands}}
  		<header>
  			<h1 class="title">
  				{{@task.name}}
  				<span class="state {{@task.state}}">
  					{{@task.state}}
  				</span>
  			</h1>
  			<LinkTo
  				class="link"
  				title={{@task.name}}
  				@route="allocations.allocation.task"
  				@models={{array @task.allocation @task}}
  			>
  				Go to Task page
  			</LinkTo>
  			<button
  				class="button close is-borderless"
  				type="button"
  				{{on "click" @fns.closeSidebar}}
  			>
  				{{x-icon "cancel"}}
  			</button>
  		</header>
  		{{#if @task.events.length}}
  			<div class="boxed-section task-events">
  				<div class="boxed-section-head">
  					Recent Events
  				</div>
  				<div class="boxed-section-body is-full-bleed">
  					<ListTable
  						@source={{reverse @task.events}}
  						@class="is-striped" as |t|
  					>
  						<t.head>
  							<th class="is-3">
  								Time
  							</th>
  							<th class="is-1">
  								Type
  							</th>
  							<th>
  								Description
  							</th>
  						</t.head>
  						<t.body as |row|>
  							<tr data-test-task-event>
  								<td data-test-task-event-time>
  									{{format-ts row.model.time}}
  								</td>
  								<td data-test-task-event-type>
  									{{row.model.type}}
  								</td>
  								<td data-test-task-event-message>
  									{{#if row.model.message}}
  										{{row.model.message}}
  									{{else}}
  										<em>
  											No message
  										</em>
  									{{/if}}
  								</td>
  							</tr>
  						</t.body>
  					</ListTable>
  				</div>
  			</div>
  		{{/if}}
  
  		<TaskLog
  			@allocation={{@task.allocation}}
  			@task={{@task.name}}
  			@shouldFillHeight={{false}}
  		/>
  
  
  	{{/if}}
  		<button
  			class="button is-borderless widener"
  			type="button"
  			{{on "click" this.toggleWide}}
  		>
  			{{#if this.wide}}
  				{{keyboard-commands (array this.narrowCommand)}}
  			{{else}}
  				{{keyboard-commands (array this.widenCommand)}}
  			{{/if}}
  			{{x-icon (if this.wide "arrow-right" "arrow-left")}}
  		</button>
  	</div>
  </Portal>
  */
  {
    "id": "wOzzc9g7",
    "block": "[[[8,[39,0],null,[[\"@target\"],[\"log-sidebar-portal\"]],[[\"default\"],[[[[1,\"\\n\\t\"],[11,0],[16,0,[29,[\"sidebar task-context-sidebar has-subnav \",[52,[30,0,[\"wide\"]],\"wide\"],\" \",[52,[30,1,[\"events\",\"length\"]],\"has-events\"],\" \",[52,[30,0,[\"isSideBarOpen\"]],\"open\"]]]],[4,[38,2],[[30,2,[\"closeSidebar\"]]],[[\"capture\"],[true]]],[12],[1,\"\\n\"],[41,[30,1],[[[1,\"\\t\\t\"],[1,[28,[35,3],[[30,0,[\"keyCommands\"]]],null]],[1,\"\\n\\t\\t\"],[10,\"header\"],[12],[1,\"\\n\\t\\t\\t\"],[10,\"h1\"],[14,0,\"title\"],[12],[1,\"\\n\\t\\t\\t\\t\"],[1,[30,1,[\"name\"]]],[1,\"\\n\\t\\t\\t\\t\"],[10,1],[15,0,[29,[\"state \",[30,1,[\"state\"]]]]],[12],[1,\"\\n\\t\\t\\t\\t\\t\"],[1,[30,1,[\"state\"]]],[1,\"\\n\\t\\t\\t\\t\"],[13],[1,\"\\n\\t\\t\\t\"],[13],[1,\"\\n\\t\\t\\t\"],[8,[39,4],[[24,0,\"link\"],[16,\"title\",[30,1,[\"name\"]]]],[[\"@route\",\"@models\"],[\"allocations.allocation.task\",[28,[37,5],[[30,1,[\"allocation\"]],[30,1]],null]]],[[\"default\"],[[[[1,\"\\n\\t\\t\\t\\tGo to Task page\\n\\t\\t\\t\"]],[]]]]],[1,\"\\n\\t\\t\\t\"],[11,\"button\"],[24,0,\"button close is-borderless\"],[24,4,\"button\"],[4,[38,6],[\"click\",[30,2,[\"closeSidebar\"]]],null],[12],[1,\"\\n\\t\\t\\t\\t\"],[1,[28,[35,7],[\"cancel\"],null]],[1,\"\\n\\t\\t\\t\"],[13],[1,\"\\n\\t\\t\"],[13],[1,\"\\n\"],[41,[30,1,[\"events\",\"length\"]],[[[1,\"\\t\\t\\t\"],[10,0],[14,0,\"boxed-section task-events\"],[12],[1,\"\\n\\t\\t\\t\\t\"],[10,0],[14,0,\"boxed-section-head\"],[12],[1,\"\\n\\t\\t\\t\\t\\tRecent Events\\n\\t\\t\\t\\t\"],[13],[1,\"\\n\\t\\t\\t\\t\"],[10,0],[14,0,\"boxed-section-body is-full-bleed\"],[12],[1,\"\\n\\t\\t\\t\\t\\t\"],[8,[39,8],null,[[\"@source\",\"@class\"],[[28,[37,9],[[30,1,[\"events\"]]],null],\"is-striped\"]],[[\"default\"],[[[[1,\"\\n\\t\\t\\t\\t\\t\\t\"],[8,[30,3,[\"head\"]],null,null,[[\"default\"],[[[[1,\"\\n\\t\\t\\t\\t\\t\\t\\t\"],[10,\"th\"],[14,0,\"is-3\"],[12],[1,\"\\n\\t\\t\\t\\t\\t\\t\\t\\tTime\\n\\t\\t\\t\\t\\t\\t\\t\"],[13],[1,\"\\n\\t\\t\\t\\t\\t\\t\\t\"],[10,\"th\"],[14,0,\"is-1\"],[12],[1,\"\\n\\t\\t\\t\\t\\t\\t\\t\\tType\\n\\t\\t\\t\\t\\t\\t\\t\"],[13],[1,\"\\n\\t\\t\\t\\t\\t\\t\\t\"],[10,\"th\"],[12],[1,\"\\n\\t\\t\\t\\t\\t\\t\\t\\tDescription\\n\\t\\t\\t\\t\\t\\t\\t\"],[13],[1,\"\\n\\t\\t\\t\\t\\t\\t\"]],[]]]]],[1,\"\\n\\t\\t\\t\\t\\t\\t\"],[8,[30,3,[\"body\"]],null,null,[[\"default\"],[[[[1,\"\\n\\t\\t\\t\\t\\t\\t\\t\"],[10,\"tr\"],[12],[1,\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\"],[10,\"td\"],[12],[1,\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\"],[1,[28,[35,10],[[30,4,[\"model\",\"time\"]]],null]],[1,\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\"],[13],[1,\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\"],[10,\"td\"],[12],[1,\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\"],[1,[30,4,[\"model\",\"type\"]]],[1,\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\"],[13],[1,\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\"],[10,\"td\"],[12],[1,\"\\n\"],[41,[30,4,[\"model\",\"message\"]],[[[1,\"\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\"],[1,[30,4,[\"model\",\"message\"]]],[1,\"\\n\"]],[]],[[[1,\"\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\"],[10,\"em\"],[12],[1,\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\tNo message\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\"],[13],[1,\"\\n\"]],[]]],[1,\"\\t\\t\\t\\t\\t\\t\\t\\t\"],[13],[1,\"\\n\\t\\t\\t\\t\\t\\t\\t\"],[13],[1,\"\\n\\t\\t\\t\\t\\t\\t\"]],[4]]]]],[1,\"\\n\\t\\t\\t\\t\\t\"]],[3]]]]],[1,\"\\n\\t\\t\\t\\t\"],[13],[1,\"\\n\\t\\t\\t\"],[13],[1,\"\\n\"]],[]],null],[1,\"\\n\\t\\t\"],[8,[39,11],null,[[\"@allocation\",\"@task\",\"@shouldFillHeight\"],[[30,1,[\"allocation\"]],[30,1,[\"name\"]],false]],null],[1,\"\\n\\n\\n\"]],[]],null],[1,\"\\t\\t\"],[11,\"button\"],[24,0,\"button is-borderless widener\"],[24,4,\"button\"],[4,[38,6],[\"click\",[30,0,[\"toggleWide\"]]],null],[12],[1,\"\\n\"],[41,[30,0,[\"wide\"]],[[[1,\"\\t\\t\\t\\t\"],[1,[28,[35,3],[[28,[37,5],[[30,0,[\"narrowCommand\"]]],null]],null]],[1,\"\\n\"]],[]],[[[1,\"\\t\\t\\t\\t\"],[1,[28,[35,3],[[28,[37,5],[[30,0,[\"widenCommand\"]]],null]],null]],[1,\"\\n\"]],[]]],[1,\"\\t\\t\\t\"],[1,[28,[35,7],[[52,[30,0,[\"wide\"]],\"arrow-right\",\"arrow-left\"]],null]],[1,\"\\n\\t\\t\"],[13],[1,\"\\n\\t\"],[13],[1,\"\\n\"]],[]]]]]],[\"@task\",\"@fns\",\"t\",\"row\"],false,[\"portal\",\"if\",\"on-click-outside\",\"keyboard-commands\",\"link-to\",\"array\",\"on\",\"x-icon\",\"list-table\",\"reverse\",\"format-ts\",\"task-log\"]]",
    "moduleName": "nomad-ui/components/task-context-sidebar.hbs",
    "isStrictMode": false
  });
  /**
   * Copyright (c) HashiCorp, Inc.
   * SPDX-License-Identifier: MPL-2.0
   */
  // @ts-check


  let TaskContextSidebarComponent = (_class = class TaskContextSidebarComponent extends _component2.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "keyCommands", [{
        label: 'Close Task Logs Sidebar',
        pattern: ['Escape'],
        action: () => this.args.fns.closeSidebar()
      }]);

      _defineProperty(this, "narrowCommand", {
        label: 'Narrow Sidebar',
        pattern: ['ArrowRight', 'ArrowRight'],
        action: () => this.toggleWide()
      });

      _defineProperty(this, "widenCommand", {
        label: 'Widen Sidebar',
        pattern: ['ArrowLeft', 'ArrowLeft'],
        action: () => this.toggleWide()
      });

      _initializerDefineProperty(this, "wide", _descriptor, this);
    }

    get isSideBarOpen() {
      return !!this.args.task;
    }

    toggleWide() {
      this.wide = !this.wide;
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "wide", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return false;
    }
  }), _applyDecoratedDescriptor(_class.prototype, "toggleWide", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "toggleWide"), _class.prototype)), _class);
  _exports.default = TaskContextSidebarComponent;
  (0, _component.setComponentTemplate)(__COLOCATED_TEMPLATE__, TaskContextSidebarComponent);
});
;define("nomad-ui/components/task-group-row", ["exports", "@ember/component", "@ember/service", "@ember/object", "@ember/object/computed", "@ember/runloop", "@ember-decorators/component", "nomad-ui/helpers/lazy-click"], function (_exports, _component, _service, _object, _computed, _runloop, _component2, _lazyClick) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _class, _class2, _descriptor, _descriptor2, _descriptor3;

  0; //eaimeta@70e063a35619d71f0,"@ember/component",0,"@ember/service",0,"@ember/object",0,"@ember/object/computed",0,"@ember/runloop",0,"@ember-decorators/component",0,"ember-classic-decorator",0,"nomad-ui/helpers/lazy-click"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let TaskGroupRow = (_dec = (0, _component2.tagName)('tr'), _dec2 = (0, _component2.classNames)('task-group-row', 'is-interactive'), _dec3 = (0, _component2.attributeBindings)('data-test-task-group'), _dec4 = (0, _computed.oneWay)('taskGroup.count'), _dec5 = (0, _computed.alias)('taskGroup.job.runningDeployment'), _dec6 = (0, _object.computed)('runningDeployment', 'namespace'), _dec7 = (0, _object.computed)('count', 'taskGroup.scaling.min'), _dec8 = (0, _object.computed)('count', 'taskGroup.scaling.max'), classic(_class = _dec(_class = _dec2(_class = _dec3(_class = (_class2 = class TaskGroupRow extends _component.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "can", _descriptor, this);

      _defineProperty(this, "taskGroup", null);

      _defineProperty(this, "debounce", 500);

      _initializerDefineProperty(this, "count", _descriptor2, this);

      _initializerDefineProperty(this, "runningDeployment", _descriptor3, this);
    }

    get namespace() {
      return this.get('taskGroup.job.namespace.name');
    }

    get tooltipText() {
      if (this.can.cannot('scale job', null, {
        namespace: this.namespace
      })) return "You aren't allowed to scale task groups";
      if (this.runningDeployment) return 'You cannot scale task groups during a deployment';
      return undefined;
    }

    onClick() {}

    click(event) {
      (0, _lazyClick.lazyClick)([this.onClick, event]);
    }

    get isMinimum() {
      const scaling = this.taskGroup.scaling;
      if (!scaling || scaling.min == null) return false;
      return this.count <= scaling.min;
    }

    get isMaximum() {
      const scaling = this.taskGroup.scaling;
      if (!scaling || scaling.max == null) return false;
      return this.count >= scaling.max;
    }

    countUp() {
      const scaling = this.taskGroup.scaling;

      if (!scaling || scaling.max == null || this.count < scaling.max) {
        this.incrementProperty('count');
        this.scale(this.count);
      }
    }

    countDown() {
      const scaling = this.taskGroup.scaling;

      if (!scaling || scaling.min == null || this.count > scaling.min) {
        this.decrementProperty('count');
        this.scale(this.count);
      }
    }

    scale(count) {
      (0, _runloop.debounce)(this, sendCountAction, count, this.debounce);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "can", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "count", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, "runningDeployment", [_dec5], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "tooltipText", [_dec6], Object.getOwnPropertyDescriptor(_class2.prototype, "tooltipText"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "isMinimum", [_dec7], Object.getOwnPropertyDescriptor(_class2.prototype, "isMinimum"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "isMaximum", [_dec8], Object.getOwnPropertyDescriptor(_class2.prototype, "isMaximum"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "countUp", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "countUp"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "countDown", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "countDown"), _class2.prototype)), _class2)) || _class) || _class) || _class) || _class);
  _exports.default = TaskGroupRow;

  function sendCountAction(count) {
    return this.taskGroup.scale(count);
  }
});
;define("nomad-ui/components/task-log", ["exports", "@ember/service", "@ember/component", "@ember/object", "@ember/object/computed", "rsvp", "nomad-ui/utils/classes/log", "nomad-ui/utils/timeout", "@ember-decorators/component", "nomad-ui/utils/properties/local-storage"], function (_exports, _service, _component, _object, _computed, _rsvp, _log, _timeout, _component2, _localStorage) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5;

  0; //eaimeta@70e063a35619d71f0,"@ember/service",0,"@ember/component",0,"@ember/object",0,"@ember/object/computed",0,"rsvp",0,"nomad-ui/utils/classes/log",0,"nomad-ui/utils/timeout",0,"@ember-decorators/component",0,"ember-classic-decorator",0,"nomad-ui/utils/properties/local-storage"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;

  class MockAbortController {
    abort() {
      /* noop */
    }

  }

  window.__CLASSIC_OWN_CLASSES__.set(MockAbortController, true);

  let TaskLog = (_dec = (0, _component2.classNames)('boxed-section', 'task-log'), _dec2 = (0, _localStorage.default)('nomadShouldWrapCode', false), _dec3 = (0, _computed.alias)('userSettings.logMode'), _dec4 = (0, _object.computed)('allocation.{id,node.httpAddr}', 'useServer'), _dec5 = (0, _object.computed)('task', 'mode'), _dec6 = (0, _log.logger)('logUrl', 'logParams', function logFetch() {
    // If the log request can't settle in one second, the client
    // must be unavailable and the server should be used instead
    const aborter = window.AbortController ? new AbortController() : new MockAbortController();
    const timing = this.useServer ? this.serverTimeout : this.clientTimeout; // Capture the state of useServer at logger create time to avoid a race
    // between the stdout logger and stderr logger running at once.

    const useServer = this.useServer;
    return url => _rsvp.default.race([this.token.authorizedRequest(url, {
      signal: aborter.signal
    }), (0, _timeout.default)(timing)]).then(response => {
      return response;
    }, error => {
      aborter.abort();

      if (useServer) {
        this.set('noConnection', true);
      } else {
        this.send('failoverToServer');
      }

      throw error;
    });
  }), classic(_class = _dec(_class = (_class2 = class TaskLog extends _component.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "token", _descriptor, this);

      _initializerDefineProperty(this, "userSettings", _descriptor2, this);

      _defineProperty(this, "allocation", null);

      _defineProperty(this, "task", null);

      _defineProperty(this, "useServer", false);

      _defineProperty(this, "noConnection", false);

      _defineProperty(this, "clientTimeout", 1000);

      _defineProperty(this, "serverTimeout", 5000);

      _defineProperty(this, "isStreaming", true);

      _defineProperty(this, "streamMode", 'streaming');

      _defineProperty(this, "shouldFillHeight", true);

      _initializerDefineProperty(this, "wrapped", _descriptor3, this);

      _initializerDefineProperty(this, "mode", _descriptor4, this);

      _initializerDefineProperty(this, "logger", _descriptor5, this);
    }

    get logUrl() {
      const address = this.get('allocation.node.httpAddr');
      const allocation = this.get('allocation.id');
      const url = `/v1/client/fs/logs/${allocation}`;
      return this.useServer ? url : `//${address}${url}`;
    }

    get logParams() {
      return {
        task: this.task,
        type: this.mode
      };
    }

    setMode(mode) {
      if (this.mode === mode) return;
      this.logger.stop();
      this.set('mode', mode);
    }

    toggleStream() {
      this.set('streamMode', 'streaming');
      this.toggleProperty('isStreaming');
    }

    gotoHead() {
      this.set('streamMode', 'head');
      this.set('isStreaming', false);
    }

    gotoTail() {
      this.set('streamMode', 'tail');
      this.set('isStreaming', false);
    }

    failoverToServer() {
      this.set('useServer', true);
    }

    toggleWrap() {
      this.toggleProperty('wrapped');
      return false;
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "token", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "userSettings", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, "wrapped", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, "mode", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "logUrl", [_dec4], Object.getOwnPropertyDescriptor(_class2.prototype, "logUrl"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "logParams", [_dec5], Object.getOwnPropertyDescriptor(_class2.prototype, "logParams"), _class2.prototype), _descriptor5 = _applyDecoratedDescriptor(_class2.prototype, "logger", [_dec6], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "setMode", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "setMode"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "toggleStream", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "toggleStream"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "gotoHead", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "gotoHead"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "gotoTail", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "gotoTail"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "failoverToServer", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "failoverToServer"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "toggleWrap", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "toggleWrap"), _class2.prototype)), _class2)) || _class) || _class);
  _exports.default = TaskLog;
});
;define("nomad-ui/components/task-row", ["exports", "ember", "@ember/component", "@ember/service", "@ember/object", "@ember/object/computed", "ember-concurrency", "nomad-ui/helpers/lazy-click", "@ember-decorators/component"], function (_exports, _ember, _component, _service, _object, _computed, _emberConcurrency, _lazyClick, _component2) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _dec9, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6;

  0; //eaimeta@70e063a35619d71f0,"ember",0,"@ember/component",0,"@ember/service",0,"@ember/object",0,"@ember/object/computed",0,"ember-concurrency",0,"nomad-ui/helpers/lazy-click",0,"@ember-decorators/component",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let TaskRow = (_dec = (0, _component2.tagName)('tr'), _dec2 = (0, _component2.classNames)('task-row', 'is-interactive'), _dec3 = (0, _component2.attributeBindings)('data-test-task-row'), _dec4 = (0, _service.inject)('stats-trackers-registry'), _dec5 = (0, _object.computed)('task.{allocation,isRunning}'), _dec6 = (0, _object.computed)('task.name', 'stats.tasks.[]'), _dec7 = (0, _computed.alias)('taskStats.cpu.lastObject'), _dec8 = (0, _computed.alias)('taskStats.memory.lastObject'), _dec9 = (0, _emberConcurrency.task)(function* () {
    do {
      if (this.stats) {
        try {
          yield this.get('stats.poll').linked().perform();
          this.set('statsError', false);
        } catch (error) {
          this.set('statsError', true);
        }
      }

      yield (0, _emberConcurrency.timeout)(500);
    } while (this.enablePolling);
  }).drop(), classic(_class = _dec(_class = _dec2(_class = _dec3(_class = (_class2 = class TaskRow extends _component.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "store", _descriptor, this);

      _initializerDefineProperty(this, "token", _descriptor2, this);

      _initializerDefineProperty(this, "statsTrackersRegistry", _descriptor3, this);

      _defineProperty(this, "task", null);

      _defineProperty(this, "statsError", false);

      _initializerDefineProperty(this, "cpu", _descriptor4, this);

      _initializerDefineProperty(this, "memory", _descriptor5, this);

      _initializerDefineProperty(this, "fetchStats", _descriptor6, this);
    }

    get enablePolling() {
      return !_ember.default.testing;
    } // Since all tasks for an allocation share the same tracker, use the registry


    get stats() {
      if (!this.get('task.isRunning')) return undefined;
      return this.statsTrackersRegistry.getTracker(this.get('task.allocation'));
    }

    get taskStats() {
      if (!this.stats) return undefined;
      return this.get('stats.tasks').findBy('task', this.get('task.name'));
    }

    onClick() {}

    click(event) {
      (0, _lazyClick.lazyClick)([this.onClick, event]);
    }

    didReceiveAttrs() {
      super.didReceiveAttrs();
      const allocation = this.get('task.allocation');

      if (allocation) {
        this.fetchStats.perform();
      } else {
        this.fetchStats.cancelAll();
      }
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "store", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "token", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, "statsTrackersRegistry", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "enablePolling", [_object.computed], Object.getOwnPropertyDescriptor(_class2.prototype, "enablePolling"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "stats", [_dec5], Object.getOwnPropertyDescriptor(_class2.prototype, "stats"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "taskStats", [_dec6], Object.getOwnPropertyDescriptor(_class2.prototype, "taskStats"), _class2.prototype), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, "cpu", [_dec7], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor5 = _applyDecoratedDescriptor(_class2.prototype, "memory", [_dec8], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor6 = _applyDecoratedDescriptor(_class2.prototype, "fetchStats", [_dec9], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class2)) || _class) || _class) || _class) || _class);
  _exports.default = TaskRow;
});
;define("nomad-ui/components/task-sub-row", ["exports", "@ember/component", "@ember/template-factory", "ember", "@glimmer/component", "@ember/service", "@ember/object", "@ember/object/computed", "ember-concurrency", "@glimmer/tracking"], function (_exports, _component, _templateFactory, _ember, _component2, _service, _object, _computed, _emberConcurrency, _tracking) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _class, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8, _descriptor9;

  0; //eaimeta@70e063a35619d71f0,"ember",0,"@glimmer/component",0,"@ember/service",0,"@ember/object",0,"@ember/object",0,"@ember/object/computed",0,"ember-concurrency",0,"@glimmer/tracking",0,"@ember/template-factory"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const __COLOCATED_TEMPLATE__ = (0, _templateFactory.createTemplateFactory)(
  /*
    {{!
    Copyright (c) HashiCorp, Inc.
    SPDX-License-Identifier: MPL-2.0
  ~}}
  
  <tr class="task-sub-row {{if @active "is-active"}}"
  	{{keyboard-shortcut
  		enumerated=true
  		action=(action "gotoTask" this.task.allocation this.task)
  	}}
  >
  	<td colspan={{@namespan}}>
  		<div class="name-grid">
  			<LinkTo title={{this.task.name}} class="task-name" @route="allocations.allocation.task" @models={{array this.task.allocation this.task}}>{{this.task.name}}</LinkTo>
  			<button type="button" class="logs-sidebar-trigger button is-borderless is-inline is-compact" onclick={{action "handleTaskLogsClick" this.task}}>
  				<FlightIcon @name="logs" />View Logs
  			</button>
  		</div>
  	</td>
  	<td data-test-cpu class="is-1 has-text-centered">
  		{{#if this.task.isRunning}}
  			{{#if (and (not this.cpu) this.fetchStats.isRunning)}}
  				...
  			{{else if this.statsError}}
  				<span
  					class="tooltip text-center"
  					role="tooltip"
  					aria-label="Couldn't collect stats"
  				>
  					{{x-icon "alert-triangle" class="is-warning"}}
  				</span>
  			{{else}}
  				<div
  					class="inline-chart is-small tooltip"
  					role="tooltip"
  					aria-label="{{format-hertz this.cpu.used}}
  						/
  						{{format-hertz this.taskStats.reservedCPU}}"
  				>
  					<progress
  						class="progress is-info is-small"
  						value="{{this.cpu.percent}}"
  						max="1"
  					>
  						{{this.cpu.percent}}
  					</progress>
  				</div>
  			{{/if}}
  		{{/if}}
  	</td>
  	<td data-test-mem class="is-1 has-text-centered">
  		{{#if this.task.isRunning}}
  			{{#if (and (not this.memory) this.fetchStats.isRunning)}}
  				...
  			{{else if this.statsError}}
  				<span
  					class="tooltip is-small text-center"
  					role="tooltip"
  					aria-label="Couldn't collect stats"
  				>
  					{{x-icon "alert-triangle" class="is-warning"}}
  				</span>
  			{{else}}
  				<div
  					class="inline-chart tooltip"
  					role="tooltip"
  					aria-label="{{format-bytes this.memory.used}}
  						/
  						{{format-bytes this.taskStats.reservedMemory start="MiB"}}"
  				>
  					<progress
  						class="progress is-danger is-small"
  						value="{{this.memory.percent}}"
  						max="1"
  					>
  						{{this.memory.percent}}
  					</progress>
  				</div>
  			{{/if}}
  		{{/if}}
  	</td>
  </tr>
  
  {{yield}}
  
  {{#if this.shouldShowLogs}}
  	<TaskContextSidebar
  		@task={{this.task}}
  		@fns={{hash
  			closeSidebar=this.closeSidebar
  		}}
  	/>
  {{/if}}
  
  */
  {
    "id": "ICIJB9ou",
    "block": "[[[11,\"tr\"],[16,0,[29,[\"task-sub-row \",[52,[30,1],\"is-active\"]]]],[4,[38,1],null,[[\"enumerated\",\"action\"],[true,[28,[37,2],[[30,0],\"gotoTask\",[30,0,[\"task\",\"allocation\"]],[30,0,[\"task\"]]],null]]]],[12],[1,\"\\n\\t\"],[10,\"td\"],[15,\"colspan\",[30,2]],[12],[1,\"\\n\\t\\t\"],[10,0],[14,0,\"name-grid\"],[12],[1,\"\\n\\t\\t\\t\"],[8,[39,3],[[16,\"title\",[30,0,[\"task\",\"name\"]]],[24,0,\"task-name\"]],[[\"@route\",\"@models\"],[\"allocations.allocation.task\",[28,[37,4],[[30,0,[\"task\",\"allocation\"]],[30,0,[\"task\"]]],null]]],[[\"default\"],[[[[1,[30,0,[\"task\",\"name\"]]]],[]]]]],[1,\"\\n\\t\\t\\t\"],[10,\"button\"],[14,0,\"logs-sidebar-trigger button is-borderless is-inline is-compact\"],[15,\"onclick\",[28,[37,2],[[30,0],\"handleTaskLogsClick\",[30,0,[\"task\"]]],null]],[14,4,\"button\"],[12],[1,\"\\n\\t\\t\\t\\t\"],[8,[39,5],null,[[\"@name\"],[\"logs\"]],null],[1,\"View Logs\\n\\t\\t\\t\"],[13],[1,\"\\n\\t\\t\"],[13],[1,\"\\n\\t\"],[13],[1,\"\\n\\t\"],[10,\"td\"],[14,0,\"is-1 has-text-centered\"],[12],[1,\"\\n\"],[41,[30,0,[\"task\",\"isRunning\"]],[[[41,[28,[37,6],[[28,[37,7],[[30,0,[\"cpu\"]]],null],[30,0,[\"fetchStats\",\"isRunning\"]]],null],[[[1,\"\\t\\t\\t\\t...\\n\"]],[]],[[[41,[30,0,[\"statsError\"]],[[[1,\"\\t\\t\\t\\t\"],[10,1],[14,0,\"tooltip text-center\"],[14,\"role\",\"tooltip\"],[14,\"aria-label\",\"Couldn't collect stats\"],[12],[1,\"\\n\\t\\t\\t\\t\\t\"],[1,[28,[35,8],[\"alert-triangle\"],[[\"class\"],[\"is-warning\"]]]],[1,\"\\n\\t\\t\\t\\t\"],[13],[1,\"\\n\"]],[]],[[[1,\"\\t\\t\\t\\t\"],[10,0],[14,0,\"inline-chart is-small tooltip\"],[14,\"role\",\"tooltip\"],[15,\"aria-label\",[29,[[28,[37,9],[[30,0,[\"cpu\",\"used\"]]],null],\"\\n\\t\\t\\t\\t\\t\\t/\\n\\t\\t\\t\\t\\t\\t\",[28,[37,9],[[30,0,[\"taskStats\",\"reservedCPU\"]]],null]]]],[12],[1,\"\\n\\t\\t\\t\\t\\t\"],[10,\"progress\"],[14,0,\"progress is-info is-small\"],[15,2,[29,[[30,0,[\"cpu\",\"percent\"]]]]],[14,\"max\",\"1\"],[12],[1,\"\\n\\t\\t\\t\\t\\t\\t\"],[1,[30,0,[\"cpu\",\"percent\"]]],[1,\"\\n\\t\\t\\t\\t\\t\"],[13],[1,\"\\n\\t\\t\\t\\t\"],[13],[1,\"\\n\\t\\t\\t\"]],[]]]],[]]]],[]],null],[1,\"\\t\"],[13],[1,\"\\n\\t\"],[10,\"td\"],[14,0,\"is-1 has-text-centered\"],[12],[1,\"\\n\"],[41,[30,0,[\"task\",\"isRunning\"]],[[[41,[28,[37,6],[[28,[37,7],[[30,0,[\"memory\"]]],null],[30,0,[\"fetchStats\",\"isRunning\"]]],null],[[[1,\"\\t\\t\\t\\t...\\n\"]],[]],[[[41,[30,0,[\"statsError\"]],[[[1,\"\\t\\t\\t\\t\"],[10,1],[14,0,\"tooltip is-small text-center\"],[14,\"role\",\"tooltip\"],[14,\"aria-label\",\"Couldn't collect stats\"],[12],[1,\"\\n\\t\\t\\t\\t\\t\"],[1,[28,[35,8],[\"alert-triangle\"],[[\"class\"],[\"is-warning\"]]]],[1,\"\\n\\t\\t\\t\\t\"],[13],[1,\"\\n\"]],[]],[[[1,\"\\t\\t\\t\\t\"],[10,0],[14,0,\"inline-chart tooltip\"],[14,\"role\",\"tooltip\"],[15,\"aria-label\",[29,[[28,[37,10],[[30,0,[\"memory\",\"used\"]]],null],\"\\n\\t\\t\\t\\t\\t\\t/\\n\\t\\t\\t\\t\\t\\t\",[28,[37,10],[[30,0,[\"taskStats\",\"reservedMemory\"]]],[[\"start\"],[\"MiB\"]]]]]],[12],[1,\"\\n\\t\\t\\t\\t\\t\"],[10,\"progress\"],[14,0,\"progress is-danger is-small\"],[15,2,[29,[[30,0,[\"memory\",\"percent\"]]]]],[14,\"max\",\"1\"],[12],[1,\"\\n\\t\\t\\t\\t\\t\\t\"],[1,[30,0,[\"memory\",\"percent\"]]],[1,\"\\n\\t\\t\\t\\t\\t\"],[13],[1,\"\\n\\t\\t\\t\\t\"],[13],[1,\"\\n\\t\\t\\t\"]],[]]]],[]]]],[]],null],[1,\"\\t\"],[13],[1,\"\\n\"],[13],[1,\"\\n\\n\"],[18,3,null],[1,\"\\n\\n\"],[41,[30,0,[\"shouldShowLogs\"]],[[[1,\"\\t\"],[8,[39,12],null,[[\"@task\",\"@fns\"],[[30,0,[\"task\"]],[28,[37,13],null,[[\"closeSidebar\"],[[30,0,[\"closeSidebar\"]]]]]]],null],[1,\"\\n\"]],[]],null]],[\"@active\",\"@namespan\",\"&default\"],false,[\"if\",\"keyboard-shortcut\",\"action\",\"link-to\",\"array\",\"flight-icon\",\"and\",\"not\",\"x-icon\",\"format-hertz\",\"format-bytes\",\"yield\",\"task-context-sidebar\",\"hash\"]]",
    "moduleName": "nomad-ui/components/task-sub-row.hbs",
    "isStrictMode": false
  });
  /**
   * Copyright (c) HashiCorp, Inc.
   * SPDX-License-Identifier: MPL-2.0
   */


  let TaskSubRowComponent = (_dec = (0, _service.inject)('stats-trackers-registry'), _dec2 = (0, _computed.alias)('args.taskState'), _dec3 = (0, _object.computed)('task.{allocation,isRunning}'), _dec4 = (0, _object.computed)('task.name', 'stats.tasks.[]'), _dec5 = (0, _computed.alias)('taskStats.cpu.lastObject'), _dec6 = (0, _computed.alias)('taskStats.memory.lastObject'), _dec7 = (0, _emberConcurrency.task)(function* () {
    do {
      if (this.stats) {
        try {
          yield this.stats.poll.linked().perform();
          this.statsError = false;
        } catch (error) {
          this.statsError = true;
        }
      }

      yield (0, _emberConcurrency.timeout)(500);
    } while (this.enablePolling);
  }).drop(), _dec8 = (0, _computed.alias)('args.active'), (_class = class TaskSubRowComponent extends _component2.default {
    constructor() {
      super(...arguments); // Kick off stats polling

      _initializerDefineProperty(this, "store", _descriptor, this);

      _initializerDefineProperty(this, "router", _descriptor2, this);

      _initializerDefineProperty(this, "statsTrackersRegistry", _descriptor3, this);

      _initializerDefineProperty(this, "task", _descriptor4, this);

      _initializerDefineProperty(this, "statsError", _descriptor5, this);

      _initializerDefineProperty(this, "cpu", _descriptor6, this);

      _initializerDefineProperty(this, "memory", _descriptor7, this);

      _initializerDefineProperty(this, "fetchStats", _descriptor8, this);

      _initializerDefineProperty(this, "shouldShowLogs", _descriptor9, this);

      const allocation = this.task.allocation;

      if (allocation) {
        this.fetchStats.perform();
      } else {
        this.fetchStats.cancelAll();
      }
    }

    gotoTask(allocation, task) {
      this.router.transitionTo('allocations.allocation.task', allocation, task);
    } // Since all tasks for an allocation share the same tracker, use the registry


    get stats() {
      if (!this.task.isRunning) return undefined;
      return this.statsTrackersRegistry.getTracker(this.task.allocation);
    } // Internal state


    get enablePolling() {
      return !_ember.default.testing;
    }

    get taskStats() {
      if (!this.stats) return undefined;
      return this.stats.tasks.findBy('task', this.task.name);
    }

    handleTaskLogsClick(task) {
      if (this.args.onSetActiveTask) {
        this.args.onSetActiveTask(task);
      }
    }

    closeSidebar() {
      if (this.args.onSetActiveTask) {
        this.args.onSetActiveTask(null);
      }
    } //#endregion Logs Sidebar


  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "store", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "router", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "statsTrackersRegistry", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, "task", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class.prototype, "gotoTask", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "gotoTask"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "stats", [_dec3], Object.getOwnPropertyDescriptor(_class.prototype, "stats"), _class.prototype), _descriptor5 = _applyDecoratedDescriptor(_class.prototype, "statsError", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return false;
    }
  }), _applyDecoratedDescriptor(_class.prototype, "enablePolling", [_object.computed], Object.getOwnPropertyDescriptor(_class.prototype, "enablePolling"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "taskStats", [_dec4], Object.getOwnPropertyDescriptor(_class.prototype, "taskStats"), _class.prototype), _descriptor6 = _applyDecoratedDescriptor(_class.prototype, "cpu", [_dec5], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor7 = _applyDecoratedDescriptor(_class.prototype, "memory", [_dec6], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor8 = _applyDecoratedDescriptor(_class.prototype, "fetchStats", [_dec7], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor9 = _applyDecoratedDescriptor(_class.prototype, "shouldShowLogs", [_dec8], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class.prototype, "handleTaskLogsClick", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "handleTaskLogsClick"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "closeSidebar", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "closeSidebar"), _class.prototype)), _class));
  _exports.default = TaskSubRowComponent;
  (0, _component.setComponentTemplate)(__COLOCATED_TEMPLATE__, TaskSubRowComponent);
});
;define("nomad-ui/components/task-subnav", ["exports", "@ember/component", "@ember/service", "@ember/object/computed", "@ember-decorators/component"], function (_exports, _component, _service, _computed, _component2) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5;

  0; //eaimeta@70e063a35619d71f0,"@ember/component",0,"@ember/service",0,"@ember/object/computed",0,"@ember-decorators/component",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let TaskSubnav = (_dec = (0, _component2.tagName)(''), _dec2 = (0, _computed.equal)('router.currentRouteName', 'allocations.allocation.task.fs'), _dec3 = (0, _computed.equal)('router.currentRouteName', 'allocations.allocation.task.fs-root'), _dec4 = (0, _computed.or)('fsIsActive', 'fsRootIsActive'), classic(_class = _dec(_class = (_class2 = class TaskSubnav extends _component.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "router", _descriptor, this);

      _initializerDefineProperty(this, "keyboard", _descriptor2, this);

      _initializerDefineProperty(this, "fsIsActive", _descriptor3, this);

      _initializerDefineProperty(this, "fsRootIsActive", _descriptor4, this);

      _initializerDefineProperty(this, "filesLinkActive", _descriptor5, this);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "router", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "keyboard", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, "fsIsActive", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, "fsRootIsActive", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor5 = _applyDecoratedDescriptor(_class2.prototype, "filesLinkActive", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class2)) || _class) || _class);
  _exports.default = TaskSubnav;
});
;define("nomad-ui/components/toggle", ["exports", "@ember/component", "@ember-decorators/component"], function (_exports, _component, _component2) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _class;

  0; //eaimeta@70e063a35619d71f0,"@ember/component",0,"@ember-decorators/component",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let Toggle = (_dec = (0, _component2.tagName)('label'), _dec2 = (0, _component2.classNames)('toggle'), _dec3 = (0, _component2.classNameBindings)('isDisabled:is-disabled', 'isActive:is-active'), _dec4 = (0, _component2.attributeBindings)('data-test-label'), classic(_class = _dec(_class = _dec2(_class = _dec3(_class = _dec4(_class = class Toggle extends _component.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, 'data-test-label', true);

      _defineProperty(this, "isActive", false);

      _defineProperty(this, "isDisabled", false);
    }

    onToggle() {}

  }) || _class) || _class) || _class) || _class) || _class);
  _exports.default = Toggle;
});
;define("nomad-ui/components/tooltip", ["exports", "@ember/debug", "@glimmer/component"], function (_exports, _debug, _component) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/debug",0,"@glimmer/component"eaimeta@70e063a35619d71f

  /**
   * Tooltip component that conditionally displays a truncated text.
   *
   * @class Tooltip
   * @extends Component
   */
  class Tooltip extends _component.default {
    /**
     * Determines if the tooltip should be displayed.
     * Defaults to `true` if the `condition` argument is not provided.
     *
     * @property condition
     * @type {boolean}
     * @readonly
     */
    get condition() {
      if (this.args.condition === undefined) return true;
      (true && !(typeof this.args.condition === 'boolean') && (0, _debug.assert)('Must pass a boolean.', typeof this.args.condition === 'boolean'));
      return this.args.condition;
    }
    /**
     * Returns the truncated text to be displayed in the tooltip.
     * If the input text length is less than 30 characters, the input text is returned as-is.
     * Otherwise, the text is truncated to include the first 15 characters, followed by an ellipsis,
     * and then the last 10 characters.
     *
     * @property text
     * @type {string}
     * @readonly
     */


    get text() {
      var _this$args$text;

      const inputText = (_this$args$text = this.args.text) === null || _this$args$text === void 0 ? void 0 : _this$args$text.toString();

      if (!inputText || inputText.length < 30) {
        return inputText;
      }

      const prefix = inputText.substr(0, 15).trim();
      const suffix = inputText.substr(inputText.length - 10, inputText.length).trim();
      return `${prefix}...${suffix}`;
    }

  }

  _exports.default = Tooltip;

  window.__CLASSIC_OWN_CLASSES__.set(Tooltip, true);
});
;define("nomad-ui/components/topo-viz", ["exports", "@glimmer/component", "@glimmer/tracking", "@ember/object", "@ember/service", "@ember/runloop", "d3-scale", "d3-array", "d3-shape", "nomad-ui/utils/properties/style-string"], function (_exports, _component, _tracking, _object, _service, _runloop, _d3Scale, _d3Array, _d3Shape, _styleString) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _class, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8, _descriptor9, _descriptor10, _descriptor11;

  0; //eaimeta@70e063a35619d71f0,"@glimmer/component",0,"@glimmer/tracking",0,"@ember/object",0,"@ember/service",0,"@ember/runloop",0,"d3-scale",0,"d3-array",0,"d3-shape",0,"nomad-ui/utils/properties/style-string"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let TopoViz = (_dec = (0, _styleString.default)('tooltipProps'), (_class = class TopoViz extends _component.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "system", _descriptor, this);

      _initializerDefineProperty(this, "element", _descriptor2, this);

      _initializerDefineProperty(this, "topology", _descriptor3, this);

      _initializerDefineProperty(this, "activeNode", _descriptor4, this);

      _initializerDefineProperty(this, "activeAllocation", _descriptor5, this);

      _initializerDefineProperty(this, "activeEdges", _descriptor6, this);

      _initializerDefineProperty(this, "edgeOffset", _descriptor7, this);

      _initializerDefineProperty(this, "viewportColumns", _descriptor8, this);

      _initializerDefineProperty(this, "highlightAllocation", _descriptor9, this);

      _initializerDefineProperty(this, "tooltipProps", _descriptor10, this);

      _initializerDefineProperty(this, "tooltipStyle", _descriptor11, this);
    }

    get isSingleColumn() {
      if (this.topology.datacenters.length <= 1 || this.viewportColumns === 1) return true; // Compute the coefficient of variance to determine if it would be
      // better to stack datacenters or place them in columns

      const nodeCounts = this.topology.datacenters.map(datacenter => datacenter.nodes.length);
      const variationCoefficient = (0, _d3Array.deviation)(nodeCounts) / (0, _d3Array.mean)(nodeCounts); // The point at which the varation is too extreme for a two column layout

      const threshold = 0.5;
      if (variationCoefficient > threshold) return true;
      return false;
    }

    get datacenterIsSingleColumn() {
      // If there are enough nodes, use two columns of nodes within
      // a single column layout of datacenters to increase density.
      if (this.viewportColumns === 1) return true;
      return !this.isSingleColumn || this.isSingleColumn && this.args.nodes.length <= 20;
    } // Once a cluster is large enough, the exact details of a node are
    // typically irrelevant and a waste of space.


    get isDense() {
      return this.args.nodes.length > 50;
    }

    dataForNode(node) {
      return {
        node,
        datacenter: node.datacenter,
        memory: node.resources.memory,
        cpu: node.resources.cpu,
        allocations: [],
        isSelected: false
      };
    }

    dataForAllocation(allocation, node) {
      const jobId = allocation.belongsTo('job').id();
      return {
        allocation,
        node,
        jobId,
        groupKey: JSON.stringify([jobId, allocation.taskGroupName]),
        memory: allocation.allocatedResources.memory,
        cpu: allocation.allocatedResources.cpu,
        memoryPercent: allocation.allocatedResources.memory / node.memory,
        cpuPercent: allocation.allocatedResources.cpu / node.cpu,
        isSelected: false
      };
    }

    buildTopology() {
      const nodes = this.args.nodes;
      const allocations = this.args.allocations; // Nodes may not have a resources property due to having an old Nomad agent version.

      const badNodes = []; // Wrap nodes in a topo viz specific data structure and build an index to speed up allocation assignment

      const nodeContainers = [];
      const nodeIndex = {};
      nodes.forEach(node => {
        if (!node.resources) {
          badNodes.push(node);
          return;
        }

        const container = this.dataForNode(node);
        nodeContainers.push(container);
        nodeIndex[node.id] = container;
      }); // Wrap allocations in a topo viz specific data structure, assign allocations to nodes, and build an allocation
      // index keyed off of job and task group

      const allocationIndex = {};
      allocations.forEach(allocation => {
        const nodeId = allocation.belongsTo('node').id();
        const nodeContainer = nodeIndex[nodeId]; // Ignore orphaned allocations and allocations on nodes with an old Nomad agent version.

        if (!nodeContainer) return;
        const allocationContainer = this.dataForAllocation(allocation, nodeContainer);
        nodeContainer.allocations.push(allocationContainer);
        const key = allocationContainer.groupKey;
        if (!allocationIndex[key]) allocationIndex[key] = [];
        allocationIndex[key].push(allocationContainer);
      }); // Group nodes into datacenters

      const datacentersMap = nodeContainers.reduce((datacenters, nodeContainer) => {
        if (!datacenters[nodeContainer.datacenter]) datacenters[nodeContainer.datacenter] = [];
        datacenters[nodeContainer.datacenter].push(nodeContainer);
        return datacenters;
      }, {}); // Turn hash of datacenters into a sorted array

      const datacenters = Object.keys(datacentersMap).map(key => ({
        name: key,
        nodes: datacentersMap[key]
      })).sortBy('name');
      const topology = {
        datacenters,
        allocationIndex,
        selectedKey: null,
        heightScale: (0, _d3Scale.scaleLinear)().range([15, 40]).domain((0, _d3Array.extent)(nodeContainers.mapBy('memory')))
      };
      this.topology = topology;

      if (badNodes.length && this.args.onDataError) {
        this.args.onDataError([{
          type: 'filtered-nodes',
          context: badNodes
        }]);
      }
    }

    captureElement(element) {
      this.element = element;
      this.determineViewportColumns();
    }

    showNodeDetails(node) {
      if (this.activeNode) {
        (0, _object.set)(this.activeNode, 'isSelected', false);
      }

      this.activeNode = this.activeNode === node ? null : node;

      if (this.activeNode) {
        (0, _object.set)(this.activeNode, 'isSelected', true);
      }

      if (this.args.onNodeSelect) this.args.onNodeSelect(this.activeNode);
    }

    showTooltip(allocation, element) {
      const bbox = element.getBoundingClientRect();
      this.highlightAllocation = allocation;
      this.tooltipProps = {
        left: window.scrollX + bbox.left + bbox.width / 2,
        top: window.scrollY + bbox.top
      };
    }

    hideTooltip() {
      this.highlightAllocation = null;
    }

    associateAllocations(allocation) {
      if (this.activeAllocation === allocation) {
        this.activeAllocation = null;
        this.activeEdges = [];

        if (this.topology.selectedKey) {
          const selectedAllocations = this.topology.allocationIndex[this.topology.selectedKey];

          if (selectedAllocations) {
            selectedAllocations.forEach(allocation => {
              (0, _object.set)(allocation, 'isSelected', false);
            });
          }

          (0, _object.set)(this.topology, 'selectedKey', null);
        }
      } else {
        if (this.activeNode) {
          (0, _object.set)(this.activeNode, 'isSelected', false);
        }

        this.activeNode = null;
        this.activeAllocation = allocation;
        const selectedAllocations = this.topology.allocationIndex[this.topology.selectedKey];

        if (selectedAllocations) {
          selectedAllocations.forEach(allocation => {
            (0, _object.set)(allocation, 'isSelected', false);
          });
        }

        (0, _object.set)(this.topology, 'selectedKey', allocation.groupKey);
        const newAllocations = this.topology.allocationIndex[this.topology.selectedKey];

        if (newAllocations) {
          newAllocations.forEach(allocation => {
            (0, _object.set)(allocation, 'isSelected', true);
          });
        } // Only show the lines if the selected allocations are sparse (low count relative to the client count or low count generally).


        if (newAllocations.length < 10 || newAllocations.length < this.args.nodes.length * 0.75) {
          this.computedActiveEdges();
        } else {
          this.activeEdges = [];
        }
      }

      if (this.args.onAllocationSelect) this.args.onAllocationSelect(this.activeAllocation && this.activeAllocation.allocation);
      if (this.args.onNodeSelect) this.args.onNodeSelect(this.activeNode);
    }

    determineViewportColumns() {
      this.viewportColumns = this.element.clientWidth < 900 ? 1 : 2;
    }

    resizeEdges() {
      if (this.activeEdges.length > 0) {
        this.computedActiveEdges();
      }
    }

    computedActiveEdges() {
      // Wait a render cycle
      (0, _runloop.next)(() => {
        const path = (0, _d3Shape.line)().curve(_d3Shape.curveBasis); // 1. Get the active element

        const allocation = this.activeAllocation.allocation;
        const activeEl = this.element.querySelector(`[data-allocation-id="${allocation.id}"]`);
        const activePoint = centerOfBBox(activeEl.getBoundingClientRect()); // 2. Collect the mem and cpu pairs for all selected allocs

        const selectedMem = Array.from(this.element.querySelectorAll('.memory .bar.is-selected'));
        const selectedPairs = selectedMem.map(mem => {
          const id = mem.closest('[data-allocation-id]').dataset.allocationId;
          const cpu = mem.closest('.topo-viz-node').querySelector(`.cpu .bar[data-allocation-id="${id}"]`);
          return [mem, cpu];
        });
        const selectedPoints = selectedPairs.map(pair => {
          return pair.map(el => centerOfBBox(el.getBoundingClientRect()));
        }); // 3. For each pair, compute the midpoint of the truncated triangle of points [Mem, Cpu, Active]

        selectedPoints.forEach(points => {
          const d1 = pointBetween(points[0], activePoint, 100, 0.5);
          const d2 = pointBetween(points[1], activePoint, 100, 0.5);
          points.push(midpoint(d1, d2));
        }); // 4. Generate curves for each active->mem and active->cpu pair going through the bisector

        const curves = []; // Steps are used to restrict the range of curves. The closer control points are placed, the less
        // curvature the curve generator will generate.

        const stepsMain = [0, 0.8, 1.0]; // The second prong the fork does not need to retrace the entire path from the activePoint

        const stepsSecondary = [0.8, 1.0];
        selectedPoints.forEach(points => {
          curves.push(curveFromPoints(...pointsAlongPath(activePoint, points[2], stepsMain), points[0]), curveFromPoints(...pointsAlongPath(activePoint, points[2], stepsSecondary), points[1]));
        });
        this.activeEdges = curves.map(curve => path(curve));
        this.edgeOffset = {
          x: window.scrollX,
          y: window.scrollY
        };
      });
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "system", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "element", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return null;
    }
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "topology", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return {
        datacenters: []
      };
    }
  }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, "activeNode", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return null;
    }
  }), _descriptor5 = _applyDecoratedDescriptor(_class.prototype, "activeAllocation", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return null;
    }
  }), _descriptor6 = _applyDecoratedDescriptor(_class.prototype, "activeEdges", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return [];
    }
  }), _descriptor7 = _applyDecoratedDescriptor(_class.prototype, "edgeOffset", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return {
        x: 0,
        y: 0
      };
    }
  }), _descriptor8 = _applyDecoratedDescriptor(_class.prototype, "viewportColumns", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return 2;
    }
  }), _descriptor9 = _applyDecoratedDescriptor(_class.prototype, "highlightAllocation", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return null;
    }
  }), _descriptor10 = _applyDecoratedDescriptor(_class.prototype, "tooltipProps", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return {};
    }
  }), _descriptor11 = _applyDecoratedDescriptor(_class.prototype, "tooltipStyle", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class.prototype, "buildTopology", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "buildTopology"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "captureElement", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "captureElement"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "showNodeDetails", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "showNodeDetails"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "showTooltip", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "showTooltip"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "hideTooltip", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "hideTooltip"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "associateAllocations", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "associateAllocations"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "determineViewportColumns", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "determineViewportColumns"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "resizeEdges", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "resizeEdges"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "computedActiveEdges", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "computedActiveEdges"), _class.prototype)), _class));
  _exports.default = TopoViz;

  function centerOfBBox(bbox) {
    return {
      x: bbox.x + bbox.width / 2,
      y: bbox.y + bbox.height / 2
    };
  }

  function dist(p1, p2) {
    return Math.sqrt(Math.pow(p2.x - p1.x, 2) + Math.pow(p2.y - p1.y, 2));
  } // Return the point between p1 and p2 at len (or pct if len > dist(p1, p2))


  function pointBetween(p1, p2, len, pct) {
    const d = dist(p1, p2);
    const ratio = d < len ? pct : len / d;
    return pointBetweenPct(p1, p2, ratio);
  }

  function pointBetweenPct(p1, p2, pct) {
    const dx = p2.x - p1.x;
    const dy = p2.y - p1.y;
    return {
      x: p1.x + dx * pct,
      y: p1.y + dy * pct
    };
  }

  function pointsAlongPath(p1, p2, pcts) {
    return pcts.map(pct => pointBetweenPct(p1, p2, pct));
  }

  function midpoint(p1, p2) {
    return pointBetweenPct(p1, p2, 0.5);
  }

  function curveFromPoints() {
    for (var _len = arguments.length, points = new Array(_len), _key = 0; _key < _len; _key++) {
      points[_key] = arguments[_key];
    }

    return points.map(p => [p.x, p.y]);
  }
});
;define("nomad-ui/components/topo-viz/datacenter", ["exports", "@glimmer/component"], function (_exports, _component) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@glimmer/component"eaimeta@70e063a35619d71f

  class TopoVizDatacenter extends _component.default {
    get scheduledAllocations() {
      return this.args.datacenter.nodes.reduce((all, node) => all.concat(node.allocations.filterBy('allocation.isScheduled')), []);
    }

    get aggregatedAllocationResources() {
      return this.scheduledAllocations.reduce((totals, allocation) => {
        totals.cpu += allocation.cpu;
        totals.memory += allocation.memory;
        return totals;
      }, {
        cpu: 0,
        memory: 0
      });
    }

    get aggregatedNodeResources() {
      return this.args.datacenter.nodes.reduce((totals, node) => {
        totals.cpu += node.cpu;
        totals.memory += node.memory;
        return totals;
      }, {
        cpu: 0,
        memory: 0
      });
    }

  }

  _exports.default = TopoVizDatacenter;

  window.__CLASSIC_OWN_CLASSES__.set(TopoVizDatacenter, true);
});
;define("nomad-ui/components/topo-viz/node", ["exports", "@glimmer/component", "@glimmer/tracking", "@ember/object", "@ember/object/internals"], function (_exports, _component, _tracking, _object, _internals) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _descriptor, _descriptor2, _descriptor3, _descriptor4;

  0; //eaimeta@70e063a35619d71f0,"@glimmer/component",0,"@glimmer/tracking",0,"@ember/object",0,"@ember/object/internals"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let TopoVizNode = (_class = class TopoVizNode extends _component.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "data", _descriptor, this);

      _initializerDefineProperty(this, "dimensionsWidth", _descriptor2, this);

      _initializerDefineProperty(this, "padding", _descriptor3, this);

      _initializerDefineProperty(this, "activeAllocation", _descriptor4, this);
    }

    get height() {
      return this.args.heightScale ? this.args.heightScale(this.args.node.memory) : 15;
    }

    get labelHeight() {
      return this.height / 2;
    }

    get paddingLeft() {
      const labelWidth = 20;
      return this.padding + labelWidth;
    } // Since strokes are placed centered on the perimeter of fills, The width of the stroke needs to be removed from
    // the height of the fill to match unstroked height and avoid clipping.


    get selectedHeight() {
      return this.height - 1;
    } // Since strokes are placed centered on the perimeter of fills, half the width of the stroke needs to be added to
    // the yOffset to match heights with unstroked shapes.


    get selectedYOffset() {
      return this.height + 2.5;
    }

    get yOffset() {
      return this.height + 2;
    }

    get maskHeight() {
      return this.height + this.yOffset;
    }

    get totalHeight() {
      return this.maskHeight + this.padding * 2;
    }

    get maskId() {
      return `topo-viz-node-mask-${(0, _internals.guidFor)(this)}`;
    }

    get count() {
      return this.allocations.length;
    }

    get allocations() {
      // Sort by the delta between memory and cpu percent. This creates the least amount of
      // drift between the positional alignment of an alloc's cpu and memory representations.
      return this.args.node.allocations.filterBy('allocation.isScheduled').sort((a, b) => {
        const deltaA = Math.abs(a.memoryPercent - a.cpuPercent);
        const deltaB = Math.abs(b.memoryPercent - b.cpuPercent);
        return deltaA - deltaB;
      });
    }

    async reloadNode() {
      if (this.args.node.isPartial) {
        await this.args.node.reload();
        this.data = this.computeData(this.dimensionsWidth);
      }
    }

    render(svg) {
      this.dimensionsWidth = svg.clientWidth - this.padding - this.paddingLeft;
      this.data = this.computeData(this.dimensionsWidth);
    }

    updateRender(svg) {
      // Only update all data when the width changes
      const newWidth = svg.clientWidth - this.padding - this.paddingLeft;

      if (newWidth !== this.dimensionsWidth) {
        this.dimensionsWidth = newWidth;
        this.data = this.computeData(this.dimensionsWidth);
      }
    }

    highlightAllocation(allocation, _ref) {
      let {
        target
      } = _ref;
      this.activeAllocation = allocation;
      this.args.onAllocationFocus && this.args.onAllocationFocus(allocation, target);
    }

    allocationBlur() {
      this.args.onAllocationBlur && this.args.onAllocationBlur();
    }

    clearHighlight() {
      this.activeAllocation = null;
    }

    selectNode() {
      if (this.args.isDense && this.args.onNodeSelect) {
        this.args.onNodeSelect(this.args.node.isSelected ? null : this.args.node);
      }
    }

    selectAllocation(allocation) {
      if (this.args.onAllocationSelect) this.args.onAllocationSelect(allocation);
    }

    containsActiveTaskGroup() {
      return this.args.node.allocations.some(allocation => allocation.taskGroupName === this.args.activeTaskGroup && allocation.belongsTo('job').id() === this.args.activeJobId);
    }

    computeData(width) {
      const allocations = this.allocations;
      let cpuOffset = 0;
      let memoryOffset = 0;
      const cpu = [];
      const memory = [];

      for (const allocation of allocations) {
        const {
          cpuPercent,
          memoryPercent,
          isSelected
        } = allocation;
        const isFirst = allocation === allocations[0];
        let cpuWidth = cpuPercent * width - 1;
        let memoryWidth = memoryPercent * width - 1;

        if (isFirst) {
          cpuWidth += 0.5;
          memoryWidth += 0.5;
        }

        if (isSelected) {
          cpuWidth--;
          memoryWidth--;
        }

        cpu.push({
          allocation,
          offset: cpuOffset * 100,
          percent: cpuPercent * 100,
          width: Math.max(cpuWidth, 0),
          x: cpuOffset * width + (isFirst ? 0 : 0.5) + (isSelected ? 0.5 : 0),
          className: allocation.allocation.clientStatus
        });
        memory.push({
          allocation,
          offset: memoryOffset * 100,
          percent: memoryPercent * 100,
          width: Math.max(memoryWidth, 0),
          x: memoryOffset * width + (isFirst ? 0 : 0.5) + (isSelected ? 0.5 : 0),
          className: allocation.allocation.clientStatus
        });
        cpuOffset += cpuPercent;
        memoryOffset += memoryPercent;
      }

      const cpuRemainder = {
        x: cpuOffset * width + 0.5,
        width: Math.max(width - cpuOffset * width, 0)
      };
      const memoryRemainder = {
        x: memoryOffset * width + 0.5,
        width: Math.max(width - memoryOffset * width, 0)
      };
      return {
        cpu,
        memory,
        cpuRemainder,
        memoryRemainder,
        cpuLabel: {
          x: -this.paddingLeft / 2,
          y: this.height / 2 + this.yOffset
        },
        memoryLabel: {
          x: -this.paddingLeft / 2,
          y: this.height / 2
        }
      };
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "data", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return {
        cpu: [],
        memory: []
      };
    }
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "dimensionsWidth", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return 0;
    }
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "padding", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return 5;
    }
  }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, "activeAllocation", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return null;
    }
  }), _applyDecoratedDescriptor(_class.prototype, "reloadNode", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "reloadNode"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "render", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "render"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "updateRender", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "updateRender"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "highlightAllocation", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "highlightAllocation"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "allocationBlur", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "allocationBlur"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "clearHighlight", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "clearHighlight"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "selectNode", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "selectNode"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "selectAllocation", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "selectAllocation"), _class.prototype)), _class);
  _exports.default = TopoVizNode;
});
;define("nomad-ui/components/trigger", ["exports", "@ember/component", "@ember/template-factory", "@ember/object", "@glimmer/component", "@glimmer/tracking", "ember-concurrency", "@ember/runloop"], function (_exports, _component, _templateFactory, _object, _component2, _tracking, _emberConcurrency, _runloop) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _class, _descriptor, _descriptor2, _descriptor3;

  0; //eaimeta@70e063a35619d71f0,"@ember/object",0,"@glimmer/component",0,"@glimmer/tracking",0,"ember-concurrency",0,"@ember/runloop",0,"@ember/template-factory"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const __COLOCATED_TEMPLATE__ = (0, _templateFactory.createTemplateFactory)(
  /*
    {{!
    Copyright (c) HashiCorp, Inc.
    SPDX-License-Identifier: MPL-2.0
  ~}}
  
  {{yield (hash data=this.data fns=this.fns)}}
  */
  {
    "id": "scO/eAjO",
    "block": "[[[18,1,[[28,[37,1],null,[[\"data\",\"fns\"],[[30,0,[\"data\"]],[30,0,[\"fns\"]]]]]]]],[\"&default\"],false,[\"yield\",\"hash\"]]",
    "moduleName": "nomad-ui/components/trigger.hbs",
    "isStrictMode": false
  });
  /**
   * Copyright (c) HashiCorp, Inc.
   * SPDX-License-Identifier: MPL-2.0
   */


  const noOp = () => undefined;

  let Trigger = (_dec = (0, _emberConcurrency.task)(function* () {
    this._reset();

    try {
      this.result = yield this.args.do();
      this.onSuccess(this.result);
    } catch (e) {
      this.error = {
        Error: e
      };
      this.onError(this.error);
    }
  }), (_class = class Trigger extends _component2.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "error", _descriptor, this);

      _initializerDefineProperty(this, "result", _descriptor2, this);

      _initializerDefineProperty(this, "triggerTask", _descriptor3, this);
    }

    get isBusy() {
      return this.triggerTask.isRunning;
    }

    get isIdle() {
      return this.triggerTask.isIdle;
    }

    get isSuccess() {
      var _this$triggerTask$las;

      return (_this$triggerTask$las = this.triggerTask.last) === null || _this$triggerTask$las === void 0 ? void 0 : _this$triggerTask$las.isSuccessful;
    }

    get isError() {
      return !!this.error;
    }

    get fns() {
      return {
        do: this.onTrigger
      };
    }

    get onError() {
      return this.args.onError ?? noOp;
    }

    get onSuccess() {
      return this.args.onSuccess ?? noOp;
    }

    get data() {
      const {
        isBusy,
        isIdle,
        isSuccess,
        isError,
        result
      } = this;
      return {
        isBusy,
        isIdle,
        isSuccess,
        isError,
        result
      };
    }

    _reset() {
      this.result = null;
      this.error = null;
    }

    onTrigger() {
      (0, _runloop.schedule)('actions', () => {
        this.triggerTask.perform();
      });
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "error", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return null;
    }
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "result", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return null;
    }
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "triggerTask", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class.prototype, "onTrigger", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "onTrigger"), _class.prototype)), _class));
  _exports.default = Trigger;
  (0, _component.setComponentTemplate)(__COLOCATED_TEMPLATE__, Trigger);
});
;define("nomad-ui/components/two-step-button", ["exports", "@ember/component", "@ember/object", "@ember/runloop", "@ember/object/computed", "ember-concurrency", "rsvp", "@ember-decorators/component"], function (_exports, _component, _object, _runloop, _computed, _emberConcurrency, _rsvp, _component2) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _class, _class2, _descriptor, _descriptor2, _descriptor3;

  0; //eaimeta@70e063a35619d71f0,"@ember/component",0,"@ember/object",0,"@ember/runloop",0,"@ember/object/computed",0,"ember-concurrency",0,"rsvp",0,"@ember-decorators/component",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let TwoStepButton = (_dec = (0, _component2.classNames)('two-step-button'), _dec2 = (0, _component2.classNameBindings)('inlineText:has-inline-text', 'fadingBackground:has-fading-background'), _dec3 = (0, _computed.equal)('state', 'idle'), _dec4 = (0, _computed.equal)('state', 'prompt'), _dec5 = (0, _emberConcurrency.task)(function* () {
    while (true) {
      let ev = yield (0, _emberConcurrency.waitForEvent)(document.body, 'click');

      if (!this.element.contains(ev.target) && !this.awaitingConfirmation) {
        if (this.onCancel) {
          this.onCancel();
        }

        this.send('setToIdle');
      }
    }
  }), classic(_class = _dec(_class = _dec2(_class = (_class2 = class TwoStepButton extends _component.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "idleText", '');

      _defineProperty(this, "cancelText", '');

      _defineProperty(this, "confirmText", '');

      _defineProperty(this, "confirmationMessage", '');

      _defineProperty(this, "awaitingConfirmation", false);

      _defineProperty(this, "disabled", false);

      _defineProperty(this, "alignRight", false);

      _defineProperty(this, "inlineText", false);

      _defineProperty(this, "state", 'idle');

      _initializerDefineProperty(this, "isIdle", _descriptor, this);

      _initializerDefineProperty(this, "isPendingConfirmation", _descriptor2, this);

      _initializerDefineProperty(this, "cancelOnClickOutside", _descriptor3, this);
    }

    onConfirm() {}

    onCancel() {}

    onPrompt() {}

    setToIdle() {
      this.set('state', 'idle');
      this.cancelOnClickOutside.cancelAll();
    }

    promptForConfirmation() {
      if (this.onPrompt) {
        this.onPrompt();
      }

      this.set('state', 'prompt');
      (0, _runloop.next)(() => {
        this.cancelOnClickOutside.perform();
      });
    }

    confirm() {
      _rsvp.default.resolve(this.onConfirm()).then(() => {
        this.send('setToIdle');
      });
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "isIdle", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "isPendingConfirmation", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, "cancelOnClickOutside", [_dec5], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "setToIdle", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "setToIdle"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "promptForConfirmation", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "promptForConfirmation"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "confirm", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "confirm"), _class2.prototype)), _class2)) || _class) || _class) || _class);
  _exports.default = TwoStepButton;
});
;define("nomad-ui/components/variable-form", ["exports", "@ember/component", "@ember/template-factory", "@glimmer/component", "@ember/object", "@glimmer/tracking", "@ember/service", "nomad-ui/helpers/trim-path", "ember-copy", "@ember/array/mutable", "@ember/array", "nomad-ui/helpers/stringify-object", "nomad-ui/utils/notify-conflict", "lodash.isequal"], function (_exports, _component, _templateFactory, _component2, _object, _tracking, _service, _trimPath, _emberCopy, _mutable, _array, _stringifyObject, _notifyConflict, _lodash) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _class, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8, _descriptor9;

  0; //eaimeta@70e063a35619d71f0,"@glimmer/component",0,"@ember/object",0,"@glimmer/tracking",0,"@ember/service",0,"nomad-ui/helpers/trim-path",0,"ember-copy",0,"@ember/object",0,"@ember/array/mutable",0,"@ember/array",0,"nomad-ui/helpers/stringify-object",0,"nomad-ui/utils/notify-conflict",0,"lodash.isequal",0,"@ember/template-factory"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const __COLOCATED_TEMPLATE__ = (0, _templateFactory.createTemplateFactory)(
  /*
    {{!
    Copyright (c) HashiCorp, Inc.
    SPDX-License-Identifier: MPL-2.0
  ~}}
  
  {{did-update this.onViewChange @view}}
  {{did-insert this.establishKeyValues}}
  <form class="new-variables" autocomplete="off" {{on "submit" this.save}}>
  
    {{#if @model.isNew}}
      {{#unless this.isJobTemplateVariable}}
        <div class="related-entities related-entities-hint">
          <p>Prefix your path with <code>nomad/jobs</code> to automatically make your variable accessible to all jobs. <br />
          Adding job name, group name, or task name will make your variable available to that specific job, group, or task. <br />
          Format: <code>nomad/jobs/&lt;jobname&gt;</code>, <code>nomad/jobs/&lt;jobname&gt;/&lt;groupname&gt;</code>, <code>nomad/jobs/&lt;jobname&gt;/&lt;groupname&gt;/&lt;taskname&gt;</code></p>
        </div>
      {{/unless}}
  
      {{#if this.shouldShowLinkedEntities}}
        <VariableForm::RelatedEntities
          @new={{true}}
          @job={{@model.pathLinkedEntities.job}}
          @group={{@model.pathLinkedEntities.group}}
          @task={{@model.pathLinkedEntities.task}}
          @namespace={{this.variableNamespace}}
        />
      {{/if}}
  
    {{/if}}
  
    {{#if this.hasConflict}}
      <div class="notification conflict is-danger">
        <h3 class="title is-4">Heads up! Your variable has a conflict.</h3>
        <p>This might be because someone else tried saving in the time since you've had it open.</p>
        {{#if this.conflictingVariable.modifyTime}}
          <span class="tooltip" aria-label="{{format-ts this.conflictingVariable.modifyTime}}">
            {{moment-from-now this.conflictingVariable.modifyTime}}
          </span>
        {{/if}}
        {{#if this.conflictingVariable.items}}
          <pre><code>{{stringify-object this.conflictingVariable.items whitespace=2}}</code></pre>
        {{else}}
          <p>Your ACL token limits your ability to see further details about the conflicting variable.</p>
        {{/if}}
        <div class="options">
          <button data-test-refresh-button type="button" class="button" {{on "click" this.refresh}}>Refresh your browser</button>
          <button data-test-overwrite-button type="button" class="button is-danger" {{on "click" this.saveWithOverwrite}}>Overwrite anyway</button>
        </div>
      </div>
    {{/if}}
  
    <div class={{if this.namespaceOptions "path-namespace"}}>
      <label>
        <span>
          Path
        </span>
        <Input
          @type="text"
          @value={{this.path}}
          placeholder="nomad/jobs/my-job/my-group/my-task"
          class="input path-input {{if this.duplicatePathWarning "error"}}"
          {{on "input" this.setModelPath}}
          disabled={{not @model.isNew}}
          {{autofocus}}
          data-test-path-input
        />
        {{#if this.duplicatePathWarning}}
          <p class="duplicate-path-error help is-danger">
            There is already a variable located at
            {{this.path}}
            .
            <br />
            Please choose a different path, or
            <LinkTo
              @route="variables.variable.edit"
              @model={{this.duplicatePathWarning.path}}
            >
              edit the existing variable
            </LinkTo>
            .
          </p>
        {{/if}}
        {{#if this.isJobTemplateVariable}}
          <p class="help job-template-hint">
            Use this variable to generate job templates with
            <code>nomad job init -template={{this.jobTemplateName}}
              <CopyButton
                @clipboardText="nomad job init -template={{this.jobTemplateName}}"
              />
            </code>
          </p>
        {{/if}}
      </label>
      <VariableForm::NamespaceFilter 
        @data={{hash 
          disabled=(not @model.isNew)
          selection=this.variableNamespace
          namespaceOptions=this.namespaceOptions
        }}
        @fns={{hash
          onSelect=this.setNamespace
          setNamespaceOptions=this.setNamespaceOptions
        }}
      />
    </div>
    {{#if this.isJobTemplateVariable}}
      <VariableForm::JobTemplateEditor
        @keyValues={{this.keyValues}}
        @updateKeyValue={{this.updateKeyValue}}
      />
    {{else}}
      {{#if (eq this.view "json")}}
        <div
          class="editor-wrapper boxed-section-body is-full-bleed
            {{if this.JSONError 'error'}}"
        >
          <div
            data-test-json-editor
            {{code-mirror
              content=this.JSONItems
              onUpdate=this.updateCode
              extraKeys=(hash Cmd-Enter=(action "save"))
            }}
          ></div>
          {{#if this.JSONError}}
            <p class="help is-danger">
              {{this.JSONError}}
            </p>
          {{/if}}
        </div>
      {{else}}
        {{#each this.keyValues as |entry iter|}}
          <div class="key-value">
            <label>
              <span>
                Key
              </span>
              <Input
                data-test-var-key
                @type="text"
                @value={{entry.key}}
                class="input"
                {{autofocus ignore=(eq iter 0)}}
                {{on "input" (fn this.validateKey entry)}}
              />
            </label>
            <VariableForm::InputGroup @entry={{entry}} />
            <button
              class="delete-row button is-danger is-inverted"
              type="button"
              {{on "click" (action this.deleteRow entry)}}
              disabled={{eq this.keyValues.length 1}}
            >
              Delete
            </button>
            {{#each-in entry.warnings as |k v|}}
              <span class="key-value-error help is-danger">
                {{v}}
              </span>
            {{/each-in}}
          </div>
        {{/each}}
      {{/if}}
    {{/if}}
  
    <footer>
      {{#unless this.isJSONView}}
        {{#unless this.isJobTemplateVariable}}
          <button
            class="add-more button is-info is-inverted"
            type="button"
            disabled={{not (and this.keyValues.lastObject.key this.keyValues.lastObject.value)}}
            {{on "click" this.appendRow}}
            data-test-add-kv
          >
            Add More
          </button>
        {{/unless}}
      {{/unless}}
      <button
        disabled={{this.shouldDisableSave}}
        class="button is-primary save"
        type="submit"
        data-test-submit-var
      >
        Save
        {{pluralize "Variable" @this.keyValues.length}}
      </button>
    </footer>
  </form>
  */
  {
    "id": "yUvYWNGX",
    "block": "[[[1,[28,[35,0],[[30,0,[\"onViewChange\"]],[30,1]],null]],[1,\"\\n\"],[1,[28,[35,1],[[30,0,[\"establishKeyValues\"]]],null]],[1,\"\\n\"],[11,\"form\"],[24,0,\"new-variables\"],[24,\"autocomplete\",\"off\"],[4,[38,2],[\"submit\",[30,0,[\"save\"]]],null],[12],[1,\"\\n\\n\"],[41,[30,2,[\"isNew\"]],[[[41,[51,[30,0,[\"isJobTemplateVariable\"]]],[[[1,\"      \"],[10,0],[14,0,\"related-entities related-entities-hint\"],[12],[1,\"\\n        \"],[10,2],[12],[1,\"Prefix your path with \"],[10,\"code\"],[12],[1,\"nomad/jobs\"],[13],[1,\" to automatically make your variable accessible to all jobs. \"],[10,\"br\"],[12],[13],[1,\"\\n        Adding job name, group name, or task name will make your variable available to that specific job, group, or task. \"],[10,\"br\"],[12],[13],[1,\"\\n        Format: \"],[10,\"code\"],[12],[1,\"nomad/jobs/<jobname>\"],[13],[1,\", \"],[10,\"code\"],[12],[1,\"nomad/jobs/<jobname>/<groupname>\"],[13],[1,\", \"],[10,\"code\"],[12],[1,\"nomad/jobs/<jobname>/<groupname>/<taskname>\"],[13],[13],[1,\"\\n      \"],[13],[1,\"\\n\"]],[]],null],[1,\"\\n\"],[41,[30,0,[\"shouldShowLinkedEntities\"]],[[[1,\"      \"],[8,[39,5],null,[[\"@new\",\"@job\",\"@group\",\"@task\",\"@namespace\"],[true,[30,2,[\"pathLinkedEntities\",\"job\"]],[30,2,[\"pathLinkedEntities\",\"group\"]],[30,2,[\"pathLinkedEntities\",\"task\"]],[30,0,[\"variableNamespace\"]]]],null],[1,\"\\n\"]],[]],null],[1,\"\\n\"]],[]],null],[1,\"\\n\"],[41,[30,0,[\"hasConflict\"]],[[[1,\"    \"],[10,0],[14,0,\"notification conflict is-danger\"],[12],[1,\"\\n      \"],[10,\"h3\"],[14,0,\"title is-4\"],[12],[1,\"Heads up! Your variable has a conflict.\"],[13],[1,\"\\n      \"],[10,2],[12],[1,\"This might be because someone else tried saving in the time since you've had it open.\"],[13],[1,\"\\n\"],[41,[30,0,[\"conflictingVariable\",\"modifyTime\"]],[[[1,\"        \"],[10,1],[14,0,\"tooltip\"],[15,\"aria-label\",[29,[[28,[37,6],[[30,0,[\"conflictingVariable\",\"modifyTime\"]]],null]]]],[12],[1,\"\\n          \"],[1,[28,[35,7],[[30,0,[\"conflictingVariable\",\"modifyTime\"]]],null]],[1,\"\\n        \"],[13],[1,\"\\n\"]],[]],null],[41,[30,0,[\"conflictingVariable\",\"items\"]],[[[1,\"        \"],[10,\"pre\"],[12],[10,\"code\"],[12],[1,[28,[35,8],[[30,0,[\"conflictingVariable\",\"items\"]]],[[\"whitespace\"],[2]]]],[13],[13],[1,\"\\n\"]],[]],[[[1,\"        \"],[10,2],[12],[1,\"Your ACL token limits your ability to see further details about the conflicting variable.\"],[13],[1,\"\\n\"]],[]]],[1,\"      \"],[10,0],[14,0,\"options\"],[12],[1,\"\\n        \"],[11,\"button\"],[24,0,\"button\"],[24,4,\"button\"],[4,[38,2],[\"click\",[30,0,[\"refresh\"]]],null],[12],[1,\"Refresh your browser\"],[13],[1,\"\\n        \"],[11,\"button\"],[24,0,\"button is-danger\"],[24,4,\"button\"],[4,[38,2],[\"click\",[30,0,[\"saveWithOverwrite\"]]],null],[12],[1,\"Overwrite anyway\"],[13],[1,\"\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n\"]],[]],null],[1,\"\\n  \"],[10,0],[15,0,[52,[30,0,[\"namespaceOptions\"]],\"path-namespace\"]],[12],[1,\"\\n    \"],[10,\"label\"],[12],[1,\"\\n      \"],[10,1],[12],[1,\"\\n        Path\\n      \"],[13],[1,\"\\n      \"],[8,[39,9],[[24,\"placeholder\",\"nomad/jobs/my-job/my-group/my-task\"],[16,0,[29,[\"input path-input \",[52,[30,0,[\"duplicatePathWarning\"]],\"error\"]]]],[16,\"disabled\",[28,[37,10],[[30,2,[\"isNew\"]]],null]],[4,[38,2],[\"input\",[30,0,[\"setModelPath\"]]],null],[4,[38,11],null,null]],[[\"@type\",\"@value\"],[\"text\",[30,0,[\"path\"]]]],null],[1,\"\\n\"],[41,[30,0,[\"duplicatePathWarning\"]],[[[1,\"        \"],[10,2],[14,0,\"duplicate-path-error help is-danger\"],[12],[1,\"\\n          There is already a variable located at\\n          \"],[1,[30,0,[\"path\"]]],[1,\"\\n          .\\n          \"],[10,\"br\"],[12],[13],[1,\"\\n          Please choose a different path, or\\n          \"],[8,[39,12],null,[[\"@route\",\"@model\"],[\"variables.variable.edit\",[30,0,[\"duplicatePathWarning\",\"path\"]]]],[[\"default\"],[[[[1,\"\\n            edit the existing variable\\n          \"]],[]]]]],[1,\"\\n          .\\n        \"],[13],[1,\"\\n\"]],[]],null],[41,[30,0,[\"isJobTemplateVariable\"]],[[[1,\"        \"],[10,2],[14,0,\"help job-template-hint\"],[12],[1,\"\\n          Use this variable to generate job templates with\\n          \"],[10,\"code\"],[12],[1,\"nomad job init -template=\"],[1,[30,0,[\"jobTemplateName\"]]],[1,\"\\n            \"],[8,[39,13],null,[[\"@clipboardText\"],[[29,[\"nomad job init -template=\",[30,0,[\"jobTemplateName\"]]]]]],null],[1,\"\\n          \"],[13],[1,\"\\n        \"],[13],[1,\"\\n\"]],[]],null],[1,\"    \"],[13],[1,\"\\n    \"],[8,[39,14],null,[[\"@data\",\"@fns\"],[[28,[37,15],null,[[\"disabled\",\"selection\",\"namespaceOptions\"],[[28,[37,10],[[30,2,[\"isNew\"]]],null],[30,0,[\"variableNamespace\"]],[30,0,[\"namespaceOptions\"]]]]],[28,[37,15],null,[[\"onSelect\",\"setNamespaceOptions\"],[[30,0,[\"setNamespace\"]],[30,0,[\"setNamespaceOptions\"]]]]]]],null],[1,\"\\n  \"],[13],[1,\"\\n\"],[41,[30,0,[\"isJobTemplateVariable\"]],[[[1,\"    \"],[8,[39,16],null,[[\"@keyValues\",\"@updateKeyValue\"],[[30,0,[\"keyValues\"]],[30,0,[\"updateKeyValue\"]]]],null],[1,\"\\n\"]],[]],[[[41,[28,[37,17],[[30,0,[\"view\"]],\"json\"],null],[[[1,\"      \"],[10,0],[15,0,[29,[\"editor-wrapper boxed-section-body is-full-bleed\\n          \",[52,[30,0,[\"JSONError\"]],\"error\"]]]],[12],[1,\"\\n        \"],[11,0],[4,[38,18],null,[[\"content\",\"onUpdate\",\"extraKeys\"],[[30,0,[\"JSONItems\"]],[30,0,[\"updateCode\"]],[28,[37,15],null,[[\"Cmd-Enter\"],[[28,[37,19],[[30,0],\"save\"],null]]]]]]],[12],[13],[1,\"\\n\"],[41,[30,0,[\"JSONError\"]],[[[1,\"          \"],[10,2],[14,0,\"help is-danger\"],[12],[1,\"\\n            \"],[1,[30,0,[\"JSONError\"]]],[1,\"\\n          \"],[13],[1,\"\\n\"]],[]],null],[1,\"      \"],[13],[1,\"\\n\"]],[]],[[[42,[28,[37,21],[[28,[37,21],[[30,0,[\"keyValues\"]]],null]],null],null,[[[1,\"        \"],[10,0],[14,0,\"key-value\"],[12],[1,\"\\n          \"],[10,\"label\"],[12],[1,\"\\n            \"],[10,1],[12],[1,\"\\n              Key\\n            \"],[13],[1,\"\\n            \"],[8,[39,9],[[24,0,\"input\"],[4,[38,11],null,[[\"ignore\"],[[28,[37,17],[[30,4],0],null]]]],[4,[38,2],[\"input\",[28,[37,22],[[30,0,[\"validateKey\"]],[30,3]],null]],null]],[[\"@type\",\"@value\"],[\"text\",[30,3,[\"key\"]]]],null],[1,\"\\n          \"],[13],[1,\"\\n          \"],[8,[39,23],null,[[\"@entry\"],[[30,3]]],null],[1,\"\\n          \"],[11,\"button\"],[24,0,\"delete-row button is-danger is-inverted\"],[16,\"disabled\",[28,[37,17],[[30,0,[\"keyValues\",\"length\"]],1],null]],[24,4,\"button\"],[4,[38,2],[\"click\",[28,[37,19],[[30,0],[30,0,[\"deleteRow\"]],[30,3]],null]],null],[12],[1,\"\\n            Delete\\n          \"],[13],[1,\"\\n\"],[42,[28,[37,24],[[30,3,[\"warnings\"]]],null],null,[[[1,\"            \"],[10,1],[14,0,\"key-value-error help is-danger\"],[12],[1,\"\\n              \"],[1,[30,5]],[1,\"\\n            \"],[13],[1,\"\\n\"]],[5,6]],null],[1,\"        \"],[13],[1,\"\\n\"]],[3,4]],null]],[]]]],[]]],[1,\"\\n  \"],[10,\"footer\"],[12],[1,\"\\n\"],[41,[51,[30,0,[\"isJSONView\"]]],[[[41,[51,[30,0,[\"isJobTemplateVariable\"]]],[[[1,\"        \"],[11,\"button\"],[24,0,\"add-more button is-info is-inverted\"],[16,\"disabled\",[28,[37,10],[[28,[37,25],[[30,0,[\"keyValues\",\"lastObject\",\"key\"]],[30,0,[\"keyValues\",\"lastObject\",\"value\"]]],null]],null]],[24,4,\"button\"],[4,[38,2],[\"click\",[30,0,[\"appendRow\"]]],null],[12],[1,\"\\n          Add More\\n        \"],[13],[1,\"\\n\"]],[]],null]],[]],null],[1,\"    \"],[10,\"button\"],[15,\"disabled\",[30,0,[\"shouldDisableSave\"]]],[14,0,\"button is-primary save\"],[14,4,\"submit\"],[12],[1,\"\\n      Save\\n      \"],[1,[28,[35,26],[\"Variable\",[30,7,[\"length\"]]],null]],[1,\"\\n    \"],[13],[1,\"\\n  \"],[13],[1,\"\\n\"],[13]],[\"@view\",\"@model\",\"entry\",\"iter\",\"v\",\"k\",\"@keyValues\"],false,[\"did-update\",\"did-insert\",\"on\",\"if\",\"unless\",\"variable-form/related-entities\",\"format-ts\",\"moment-from-now\",\"stringify-object\",\"input\",\"not\",\"autofocus\",\"link-to\",\"copy-button\",\"variable-form/namespace-filter\",\"hash\",\"variable-form/job-template-editor\",\"eq\",\"code-mirror\",\"action\",\"each\",\"-track-array\",\"fn\",\"variable-form/input-group\",\"-each-in\",\"and\",\"pluralize\"]]",
    "moduleName": "nomad-ui/components/variable-form.hbs",
    "isStrictMode": false
  });
  /**
   * Copyright (c) HashiCorp, Inc.
   * SPDX-License-Identifier: MPL-2.0
   */
  // @ts-check


  const EMPTY_KV = {
    key: '',
    value: '',
    warnings: _object.default.create()
  }; // Capture characters that are not _, letters, or numbers using Unicode.

  const invalidKeyCharactersRegex = new RegExp(/[^_\p{Letter}\p{Number}]/gu);
  let VariableFormComponent = (_dec = (0, _object.computed)('args.model.{keyValues,path}', 'keyValues.@each.{key,value}', 'path'), (_class = class VariableFormComponent extends _component2.default {
    /**
     * @typedef {Object} conflictingVariable
     * @property {string} ModifyTime
     * @property {Object} Items
     */

    /**
     * @type {conflictingVariable}
     */
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "notifications", _descriptor, this);

      _initializerDefineProperty(this, "router", _descriptor2, this);

      _initializerDefineProperty(this, "store", _descriptor3, this);

      _initializerDefineProperty(this, "variableNamespace", _descriptor4, this);

      _initializerDefineProperty(this, "namespaceOptions", _descriptor5, this);

      _initializerDefineProperty(this, "hasConflict", _descriptor6, this);

      _initializerDefineProperty(this, "conflictingVariable", _descriptor7, this);

      _initializerDefineProperty(this, "path", _descriptor8, this);

      _defineProperty(this, "keyValues", (0, _array.A)([]));

      _defineProperty(this, "JSONItems", '{}');

      _defineProperty(this, "view", this.args.view);

      _initializerDefineProperty(this, "JSONError", _descriptor9, this);

      _defineProperty(this, "hasRemovedExitHandler", false);

      (0, _object.set)(this, 'path', this.args.model.path);
      this.addExitHandler();
    }

    setNamespace(namespace) {
      this.variableNamespace = namespace;
    }

    setNamespaceOptions(options) {
      this.namespaceOptions = options; // Set first namespace option

      if (options.length) {
        this.variableNamespace = this.args.model.namespace;
      }
    }

    get shouldDisableSave() {
      var _this$path, _this$path2, _this$path3;

      const disallowedPath = ((_this$path = this.path) === null || _this$path === void 0 ? void 0 : _this$path.startsWith('nomad/')) && !((_this$path2 = this.path) !== null && _this$path2 !== void 0 && _this$path2.startsWith('nomad/jobs') || (_this$path3 = this.path) !== null && _this$path3 !== void 0 && _this$path3.startsWith('nomad/job-templates') && (0, _trimPath.trimPath)([this.path]) !== 'nomad/job-templates');
      return !!this.JSONError || !this.path || disallowedPath;
    }

    get isJobTemplateVariable() {
      var _this$path4;

      return (_this$path4 = this.path) === null || _this$path4 === void 0 ? void 0 : _this$path4.startsWith('nomad/job-templates/');
    }

    get jobTemplateName() {
      return this.path.split('nomad/job-templates/').slice(-1);
    }
    /**
     * @type {MutableArray<{key: string, value: string, warnings: EmberObject}>}
     */


    establishKeyValues() {
      var _copy, _this$args$model, _this$args$model2;

      const keyValues = (_copy = (0, _emberCopy.copy)(((_this$args$model = this.args.model) === null || _this$args$model === void 0 ? void 0 : _this$args$model.keyValues) || [])) === null || _copy === void 0 ? void 0 : _copy.map(kv => {
        return {
          key: kv.key,
          value: kv.value,
          warnings: _object.default.create()
        };
      });
      /**
       * Appends a row to the end of the Items list if you're editing an existing variable.
       * This will allow it to auto-focus and make all other rows deletable
       */

      if (!((_this$args$model2 = this.args.model) !== null && _this$args$model2 !== void 0 && _this$args$model2.isNew)) {
        keyValues.pushObject((0, _emberCopy.copy)(EMPTY_KV));
      }

      (0, _object.set)(this, 'keyValues', keyValues);
      this.JSONItems = (0, _stringifyObject.stringifyObject)([this.keyValues.reduce((acc, _ref2) => {
        let {
          key,
          value
        } = _ref2;
        acc[key] = value;
        return acc;
      }, {})]);
    }
    /**
     * @typedef {Object} DuplicatePathWarning
     * @property {string} path
     */

    /**
     * @type {DuplicatePathWarning}
     */


    get duplicatePathWarning() {
      const existingVariables = this.args.existingVariables || [];
      const pathValue = (0, _trimPath.trimPath)([this.path]);
      let existingVariable = existingVariables.without(this.args.model).find(v => v.path === pathValue && (v.namespace === this.variableNamespace || !this.variableNamespace));

      if (existingVariable) {
        return {
          path: existingVariable.path
        };
      } else {
        return null;
      }
    }

    validateKey(entry, e) {
      const value = e.target.value; // Only letters, numbers, and _ are allowed in keys

      const invalidChars = value.match(invalidKeyCharactersRegex);

      if (invalidChars) {
        const invalidCharsOuput = [...new Set(invalidChars)].sort().map(c => `'${c}'`);
        entry.warnings.set('dottedKeyError', `${value} contains characters [${invalidCharsOuput}] that require the "index" function for direct access in templates.`);
      } else {
        delete entry.warnings.dottedKeyError;
        entry.warnings.notifyPropertyChange('dottedKeyError');
      } // no duplicate keys


      const existingKeys = this.keyValues.map(kv => kv.key);

      if (existingKeys.includes(value)) {
        entry.warnings.set('duplicateKeyError', 'Key already exists.');
      } else {
        delete entry.warnings.duplicateKeyError;
        entry.warnings.notifyPropertyChange('duplicateKeyError');
      }
    }

    appendRow() {
      // Clear our any entity errors
      let newRow = (0, _emberCopy.copy)(EMPTY_KV);
      newRow.warnings = _object.default.create();
      this.keyValues.pushObject(newRow);
    }

    deleteRow(row) {
      this.keyValues.removeObject(row);
    }

    refresh() {
      window.location.reload();
    }

    saveWithOverwrite(e) {
      (0, _object.set)(this, 'conflictingVariable', null);
      this.save(e, true);
    }
    /**
     *
     * @param {KeyboardEvent} e
     */


    setModelPath(e) {
      (0, _object.set)(this.args.model, 'path', e.target.value);
    }

    updateKeyValue(key, value) {
      if (this.keyValues.find(kv => kv.key === key)) {
        this.keyValues.find(kv => kv.key === key).value = value;
      } else {
        this.keyValues.pushObject({
          key,
          value,
          warnings: _object.default.create()
        });
      }
    }

    async save(e) {
      let overwrite = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;

      if (e.type === 'submit') {
        e.preventDefault();
      }

      if (this.view === 'json') {
        this.translateAndValidateItems('table');
      }

      try {
        var _this$args$model3;

        const nonEmptyItems = (0, _array.A)(this.keyValues.filter(item => item.key.trim() && item.value));

        if (!nonEmptyItems.length) {
          throw new Error('Please provide at least one key/value pair.');
        } else {
          (0, _object.set)(this, 'keyValues', nonEmptyItems);
        }

        if ((_this$args$model3 = this.args.model) !== null && _this$args$model3 !== void 0 && _this$args$model3.isNew) {
          if (this.namespaceOptions) {
            this.args.model.set('namespace', this.variableNamespace);
          } else {
            const [namespace] = this.store.peekAll('namespace').toArray();
            this.args.model.set('namespace', namespace.id);
          }
        }

        this.args.model.set('keyValues', this.keyValues);
        this.args.model.set('path', this.path);
        this.args.model.setAndTrimPath();
        await this.args.model.save({
          adapterOptions: {
            overwrite
          }
        });
        this.notifications.add({
          title: 'Variable saved',
          message: `${this.path} successfully saved`,
          color: 'success'
        });
        this.removeExitHandler();
        this.router.transitionTo('variables.variable', this.args.model.id);
      } catch (error) {
        (0, _notifyConflict.default)(this)(error);

        if (!this.hasConflict) {
          this.notifications.add({
            title: `Error saving ${this.path}`,
            message: error,
            color: 'critical',
            sticky: true
          });
        } else {
          var _error$errors$;

          if ((_error$errors$ = error.errors[0]) !== null && _error$errors$ !== void 0 && _error$errors$.detail) {
            (0, _object.set)(this, 'conflictingVariable', error.errors[0].detail);
          }

          window.scrollTo(0, 0); // because the k/v list may be long, ensure the user is snapped to top to read error
        }
      }
    } //#region JSON Editing


    get isJSONView() {
      return this.args.view === 'json';
    } // Prevent duplicate onUpdate events when @view is set to its already-existing value,
    // which happens because parent's queryParams and toggle button both resolve independently.


    onViewChange(_ref3) {
      let [view] = _ref3;

      if (view !== this.view) {
        (0, _object.set)(this, 'view', view);
        this.translateAndValidateItems(view);
      }
    }

    translateAndValidateItems(view) {
      // TODO: move the translation functions in serializers/variable.js to generic importable functions.
      if (view === 'json') {
        // Translate table to JSON
        (0, _object.set)(this, 'JSONItems', (0, _stringifyObject.stringifyObject)([this.keyValues.filter(item => item.key.trim() && item.value) // remove empty items when translating to JSON
        .reduce((acc, _ref4) => {
          let {
            key,
            value
          } = _ref4;
          acc[key] = value;
          return acc;
        }, {})])); // Give the user a foothold if they're transitioning an empty K/V form into JSON

        if (!Object.keys(JSON.parse(this.JSONItems)).length) {
          (0, _object.set)(this, 'JSONItems', (0, _stringifyObject.stringifyObject)([{
            '': ''
          }]));
        }
      } else if (view === 'table') {
        // Translate JSON to table
        (0, _object.set)(this, 'keyValues', (0, _array.A)(Object.entries(JSON.parse(this.JSONItems)).map(_ref5 => {
          let [key, value] = _ref5;
          return {
            key,
            value: typeof value === 'string' ? value : JSON.stringify(value),
            warnings: _object.default.create()
          };
        }))); // If the JSON object is empty at switch time, add an empty KV in to give the user a foothold

        if (!Object.keys(JSON.parse(this.JSONItems)).length) {
          this.appendRow();
        }
      } // Reset any error state, since the errorring json will not persist


      (0, _object.set)(this, 'JSONError', null);
    }
    /**
     * @type {string}
     */


    /**
     *
     * @param {string} value
     */
    updateCode(value, codemirror) {
      codemirror.performLint();

      try {
        var _codemirror$state$lin;

        const hasLintErrors = (codemirror === null || codemirror === void 0 ? void 0 : (_codemirror$state$lin = codemirror.state.lint.marked) === null || _codemirror$state$lin === void 0 ? void 0 : _codemirror$state$lin.length) > 0;

        if (hasLintErrors || !JSON.parse(value)) {
          throw new Error('Invalid JSON');
        } // "myString" is valid JSON, but it's not a valid Variable.
        // Ditto for an array of objects. We expect a single object to be a Variable.


        const hasFormatErrors = JSON.parse(value) instanceof Array || typeof JSON.parse(value) !== 'object';

        if (hasFormatErrors) {
          throw new Error('A Variable must be formatted as a single JSON object');
        }

        (0, _object.set)(this, 'JSONError', null);
        (0, _object.set)(this, 'JSONItems', value);
      } catch (error) {
        (0, _object.set)(this, 'JSONError', error);
      }
    } //#endregion JSON Editing


    get shouldShowLinkedEntities() {
      var _this$args$model$path, _this$args$model$path2, _this$args$model$path3;

      return ((_this$args$model$path = this.args.model.pathLinkedEntities) === null || _this$args$model$path === void 0 ? void 0 : _this$args$model$path.job) || ((_this$args$model$path2 = this.args.model.pathLinkedEntities) === null || _this$args$model$path2 === void 0 ? void 0 : _this$args$model$path2.group) || ((_this$args$model$path3 = this.args.model.pathLinkedEntities) === null || _this$args$model$path3 === void 0 ? void 0 : _this$args$model$path3.task) || (0, _trimPath.trimPath)([this.path]) === 'nomad/jobs';
    } //#region Unsaved Changes Confirmation


    get hasUserModifiedAttributes() {
      const compactedBasicKVs = this.keyValues.map(kv => ({
        key: kv.key,
        value: kv.value
      })).filter(kv => kv.key || kv.value);
      const compactedPassedKVs = this.args.model.keyValues.filter(kv => kv.key || kv.value);
      const unequal = !(0, _lodash.default)(compactedBasicKVs, compactedPassedKVs) || !(0, _lodash.default)(this.path, this.args.model.path);
      return unequal;
    }

    addExitHandler() {
      this.router.on('routeWillChange', this, this.confirmExit);
    }

    removeExitHandler() {
      if (!this.hasRemovedExitHandler) {
        this.router.off('routeWillChange', this, this.confirmExit);
        this.hasRemovedExitHandler = true;
      }
    }

    confirmExit(transition) {
      if (transition.isAborted || transition.queryParamsOnly) return;

      if (this.hasUserModifiedAttributes) {
        if (!confirm('Your variable has unsaved changes. Are you sure you want to leave?')) {
          transition.abort();
        } else {
          this.removeExitHandler();
        }
      }
    }

    willDestroy() {
      super.willDestroy(...arguments);
      this.removeExitHandler();
    } //#endregion Unsaved Changes Confirmation


  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "notifications", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "router", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "store", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, "variableNamespace", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return null;
    }
  }), _descriptor5 = _applyDecoratedDescriptor(_class.prototype, "namespaceOptions", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return null;
    }
  }), _descriptor6 = _applyDecoratedDescriptor(_class.prototype, "hasConflict", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return false;
    }
  }), _descriptor7 = _applyDecoratedDescriptor(_class.prototype, "conflictingVariable", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return null;
    }
  }), _descriptor8 = _applyDecoratedDescriptor(_class.prototype, "path", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return '';
    }
  }), _applyDecoratedDescriptor(_class.prototype, "setNamespace", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "setNamespace"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "setNamespaceOptions", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "setNamespaceOptions"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "establishKeyValues", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "establishKeyValues"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "validateKey", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "validateKey"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "appendRow", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "appendRow"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "deleteRow", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "deleteRow"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "refresh", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "refresh"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "saveWithOverwrite", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "saveWithOverwrite"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "setModelPath", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "setModelPath"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "updateKeyValue", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "updateKeyValue"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "save", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "save"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "onViewChange", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "onViewChange"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "translateAndValidateItems", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "translateAndValidateItems"), _class.prototype), _descriptor9 = _applyDecoratedDescriptor(_class.prototype, "JSONError", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return null;
    }
  }), _applyDecoratedDescriptor(_class.prototype, "updateCode", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "updateCode"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "hasUserModifiedAttributes", [_dec], Object.getOwnPropertyDescriptor(_class.prototype, "hasUserModifiedAttributes"), _class.prototype)), _class));
  _exports.default = VariableFormComponent;
  (0, _component.setComponentTemplate)(__COLOCATED_TEMPLATE__, VariableFormComponent);
});
;define("nomad-ui/components/variable-form/input-group", ["exports", "@ember/component", "@ember/template-factory", "@ember/object", "@glimmer/component", "@glimmer/tracking"], function (_exports, _component, _templateFactory, _object, _component2, _tracking) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _descriptor;

  0; //eaimeta@70e063a35619d71f0,"@ember/object",0,"@glimmer/component",0,"@glimmer/tracking",0,"@ember/template-factory"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const __COLOCATED_TEMPLATE__ = (0, _templateFactory.createTemplateFactory)(
  /*
    {{!
    Copyright (c) HashiCorp, Inc.
    SPDX-License-Identifier: MPL-2.0
  ~}}
  
  <label class="value-label">
    <span>
      Value
    </span>
    <Input
      @type={{this.inputType}}
      @value={{@entry.value}}
      class="input value-input"
      {{! prevent auto-fill }}
      autocomplete="new-password"
      data-test-var-value
    />
    <button
      class="show-hide-values button is-light"
      type="button"
      tabindex="-1"
      {{on "click" this.toggleInputType}}
    >
      <FlightIcon
        @name={{if this.isObscured "eye-off" "eye"}}
        @title={{if this.isObscured "Show Value" "Hide Value"}}
      />
    </button>
  </label>
  */
  {
    "id": "gPcLZ3JV",
    "block": "[[[10,\"label\"],[14,0,\"value-label\"],[12],[1,\"\\n  \"],[10,1],[12],[1,\"\\n    Value\\n  \"],[13],[1,\"\\n  \"],[8,[39,0],[[24,0,\"input value-input\"],[24,\"autocomplete\",\"new-password\"]],[[\"@type\",\"@value\"],[[30,0,[\"inputType\"]],[30,1,[\"value\"]]]],null],[1,\"\\n  \"],[11,\"button\"],[24,0,\"show-hide-values button is-light\"],[24,\"tabindex\",\"-1\"],[24,4,\"button\"],[4,[38,1],[\"click\",[30,0,[\"toggleInputType\"]]],null],[12],[1,\"\\n    \"],[8,[39,2],null,[[\"@name\",\"@title\"],[[52,[30,0,[\"isObscured\"]],\"eye-off\",\"eye\"],[52,[30,0,[\"isObscured\"]],\"Show Value\",\"Hide Value\"]]],null],[1,\"\\n  \"],[13],[1,\"\\n\"],[13]],[\"@entry\"],false,[\"input\",\"on\",\"flight-icon\",\"if\"]]",
    "moduleName": "nomad-ui/components/variable-form/input-group.hbs",
    "isStrictMode": false
  });
  /**
   * Copyright (c) HashiCorp, Inc.
   * SPDX-License-Identifier: MPL-2.0
   */
  // @ts-check


  let InputGroup = (_class = class InputGroup extends _component2.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "isObscured", _descriptor, this);
    }

    get inputType() {
      return this.isObscured ? 'password' : 'text';
    }

    toggleInputType() {
      this.isObscured = !this.isObscured;
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "isObscured", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return true;
    }
  }), _applyDecoratedDescriptor(_class.prototype, "toggleInputType", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "toggleInputType"), _class.prototype)), _class);
  _exports.default = InputGroup;
  (0, _component.setComponentTemplate)(__COLOCATED_TEMPLATE__, InputGroup);
});
;define("nomad-ui/components/variable-form/job-template-editor", ["exports", "@ember/component", "@ember/template-factory", "@ember/object", "@glimmer/component", "@glimmer/tracking"], function (_exports, _component, _templateFactory, _object, _component2, _tracking) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _descriptor, _descriptor2;

  0; //eaimeta@70e063a35619d71f0,"@ember/object",0,"@glimmer/component",0,"@glimmer/tracking",0,"@ember/template-factory"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const __COLOCATED_TEMPLATE__ = (0, _templateFactory.createTemplateFactory)(
  /*
    {{!
    Copyright (c) HashiCorp, Inc.
    SPDX-License-Identifier: MPL-2.0
  ~}}
  
  {{did-insert this.establishKeyValues}}
  <div>
    <label>
      <span>
        Description
      </span>
      <Input
        @type="text"
        @value={{this.description}}
        {{on "input" this.updateDescription}}
        class="input value-input"
        data-test-template-description
      />
    </label>
  </div>
  <div>
    <label>
      <span>
        Job Template
      </span>
      <div
        data-test-template-json
        {{code-mirror
          theme="hashi"
          mode="ruby"
          autofocus=false
          content=this.template
          onUpdate=(action this.updateTemplate)
        }}
      ></div>
    </label>
  </div>
  
  */
  {
    "id": "os2WqFa8",
    "block": "[[[1,[28,[35,0],[[30,0,[\"establishKeyValues\"]]],null]],[1,\"\\n\"],[10,0],[12],[1,\"\\n  \"],[10,\"label\"],[12],[1,\"\\n    \"],[10,1],[12],[1,\"\\n      Description\\n    \"],[13],[1,\"\\n    \"],[8,[39,1],[[24,0,\"input value-input\"],[4,[38,2],[\"input\",[30,0,[\"updateDescription\"]]],null]],[[\"@type\",\"@value\"],[\"text\",[30,0,[\"description\"]]]],null],[1,\"\\n  \"],[13],[1,\"\\n\"],[13],[1,\"\\n\"],[10,0],[12],[1,\"\\n  \"],[10,\"label\"],[12],[1,\"\\n    \"],[10,1],[12],[1,\"\\n      Job Template\\n    \"],[13],[1,\"\\n    \"],[11,0],[4,[38,3],null,[[\"theme\",\"mode\",\"autofocus\",\"content\",\"onUpdate\"],[\"hashi\",\"ruby\",false,[30,0,[\"template\"]],[28,[37,4],[[30,0],[30,0,[\"updateTemplate\"]]],null]]]],[12],[13],[1,\"\\n  \"],[13],[1,\"\\n\"],[13],[1,\"\\n\"]],[],false,[\"did-insert\",\"input\",\"on\",\"code-mirror\",\"action\"]]",
    "moduleName": "nomad-ui/components/variable-form/job-template-editor.hbs",
    "isStrictMode": false
  });
  /**
   * Copyright (c) HashiCorp, Inc.
   * SPDX-License-Identifier: MPL-2.0
   */
  // @ts-check


  let JobTemplateEditor = (_class = class JobTemplateEditor extends _component2.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "description", _descriptor, this);

      _initializerDefineProperty(this, "template", _descriptor2, this);
    }

    establishKeyValues() {
      var _this$args$keyValues$, _this$args$keyValues$2;

      this.description = (_this$args$keyValues$ = this.args.keyValues.findBy('key', 'description')) === null || _this$args$keyValues$ === void 0 ? void 0 : _this$args$keyValues$.value;
      this.template = (_this$args$keyValues$2 = this.args.keyValues.findBy('key', 'template')) === null || _this$args$keyValues$2 === void 0 ? void 0 : _this$args$keyValues$2.value;
    }

    updateDescription(event) {
      this.args.updateKeyValue('description', event.target.value);
    }

    updateTemplate(value) {
      this.args.updateKeyValue('template', value);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "description", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "template", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class.prototype, "establishKeyValues", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "establishKeyValues"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "updateDescription", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "updateDescription"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "updateTemplate", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "updateTemplate"), _class.prototype)), _class);
  _exports.default = JobTemplateEditor;
  (0, _component.setComponentTemplate)(__COLOCATED_TEMPLATE__, JobTemplateEditor);
});
;define("nomad-ui/components/variable-form/namespace-filter", ["exports", "@ember/component", "@ember/template-factory", "@ember/object", "@ember/service", "@glimmer/component"], function (_exports, _component, _templateFactory, _object, _service, _component2) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _descriptor;

  0; //eaimeta@70e063a35619d71f0,"@ember/object",0,"@ember/service",0,"@glimmer/component",0,"@ember/template-factory"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const __COLOCATED_TEMPLATE__ = (0, _templateFactory.createTemplateFactory)(
  /*
    {{!
    Copyright (c) HashiCorp, Inc.
    SPDX-License-Identifier: MPL-2.0
  ~}}
  
  <Trigger @do={{this.fetchNamespaces}} @onSuccess={{this.formatAndSetNamespaces}} as |trigger|>
    {{did-insert trigger.fns.do}}
    {{! No-op on Error}}
    {{! No Loading Behavior }}
    {{#if trigger.data.isSuccess}}
      {{#if trigger.data.result}}
        {{#if @data.namespaceOptions}}
          <label>
            <span>
              Namespace
            </span>
            <SingleSelectDropdown
              data-test-variable-namespace-filter
              @label="Namespace"
              @disabled={{@data.disabled}}
              @options={{@data.namespaceOptions}}
              @selection={{@data.selection}}
              @onSelect={{@fns.onSelect}}
            />
          </label>
        {{/if}}
      {{/if}}
    {{/if}}
  </Trigger>
  */
  {
    "id": "Fw8RaO54",
    "block": "[[[8,[39,0],null,[[\"@do\",\"@onSuccess\"],[[30,0,[\"fetchNamespaces\"]],[30,0,[\"formatAndSetNamespaces\"]]]],[[\"default\"],[[[[1,\"\\n  \"],[1,[28,[35,1],[[30,1,[\"fns\",\"do\"]]],null]],[1,\"\\n\"],[41,[30,1,[\"data\",\"isSuccess\"]],[[[41,[30,1,[\"data\",\"result\"]],[[[41,[30,2,[\"namespaceOptions\"]],[[[1,\"        \"],[10,\"label\"],[12],[1,\"\\n          \"],[10,1],[12],[1,\"\\n            Namespace\\n          \"],[13],[1,\"\\n          \"],[8,[39,3],null,[[\"@label\",\"@disabled\",\"@options\",\"@selection\",\"@onSelect\"],[\"Namespace\",[30,2,[\"disabled\"]],[30,2,[\"namespaceOptions\"]],[30,2,[\"selection\"]],[30,3,[\"onSelect\"]]]],null],[1,\"\\n        \"],[13],[1,\"\\n\"]],[]],null]],[]],null]],[]],null]],[1]]]]]],[\"trigger\",\"@data\",\"@fns\"],false,[\"trigger\",\"did-insert\",\"if\",\"single-select-dropdown\"]]",
    "moduleName": "nomad-ui/components/variable-form/namespace-filter.hbs",
    "isStrictMode": false
  });
  /**
   * Copyright (c) HashiCorp, Inc.
   * SPDX-License-Identifier: MPL-2.0
   */
  // @ts-check


  let NamespaceFilter = (_class = class NamespaceFilter extends _component2.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "store", _descriptor, this);
    }

    async fetchNamespaces() {
      return this.store.findAll('namespace');
    }

    formatAndSetNamespaces() {
      // Triggered on the promise in fetchNamespaces resolving
      const namespaces = this.store.peekAll('namespace').map(_ref2 => {
        let {
          name
        } = _ref2;
        return {
          key: name,
          label: name
        };
      });
      if (namespaces.length <= 1) return null;
      this.args.fns.setNamespaceOptions(namespaces);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "store", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class.prototype, "fetchNamespaces", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "fetchNamespaces"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "formatAndSetNamespaces", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "formatAndSetNamespaces"), _class.prototype)), _class);
  _exports.default = NamespaceFilter;
  (0, _component.setComponentTemplate)(__COLOCATED_TEMPLATE__, NamespaceFilter);
});
;define("nomad-ui/components/variable-form/related-entities", ["exports", "@ember/component", "@ember/template-factory", "@ember/component/template-only"], function (_exports, _component, _templateFactory, _templateOnly) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/component/template-only",0,"@ember/template-factory"eaimeta@70e063a35619d71f

  const __COLOCATED_TEMPLATE__ = (0, _templateFactory.createTemplateFactory)(
  /*
    {{!
    Copyright (c) HashiCorp, Inc.
    SPDX-License-Identifier: MPL-2.0
  ~}}
  
  <p class="related-entities notification">
  <FlightIcon @name="info-fill" @color="var(--blue)" />
  <span>
      This variable {{#if @new}}will be{{else}}is{{/if}} accessible by 
      {{#if @task}}
      task <strong>{{@task}}</strong> in group <LinkTo @route="jobs.job.task-group" @models={{array (concat @job "@" @namespace) @group}}>{{@group}} <FlightIcon @name="external-link" /></LinkTo>
      {{else if @group}}
      group <LinkTo @route="jobs.job.task-group" @models={{array (concat @job "@" @namespace) @group}}>{{@group}} <FlightIcon @name="external-link" /></LinkTo>
      {{else if @job}}
      job <LinkTo @route="jobs.job" @model={{concat @job "@" @namespace}}>{{@job}} <FlightIcon @name="external-link" /></LinkTo>
      {{else}}
      all nomad jobs in this namespace
      {{/if}}
  </span>
  </p>
  
  */
  {
    "id": "cJeZfexE",
    "block": "[[[10,2],[14,0,\"related-entities notification\"],[12],[1,\"\\n\"],[8,[39,0],null,[[\"@name\",\"@color\"],[\"info-fill\",\"var(--blue)\"]],null],[1,\"\\n\"],[10,1],[12],[1,\"\\n    This variable \"],[41,[30,1],[[[1,\"will be\"]],[]],[[[1,\"is\"]],[]]],[1,\" accessible by \\n\"],[41,[30,2],[[[1,\"    task \"],[10,\"strong\"],[12],[1,[30,2]],[13],[1,\" in group \"],[8,[39,2],null,[[\"@route\",\"@models\"],[\"jobs.job.task-group\",[28,[37,3],[[28,[37,4],[[30,3],\"@\",[30,4]],null],[30,5]],null]]],[[\"default\"],[[[[1,[30,5]],[1,\" \"],[8,[39,0],null,[[\"@name\"],[\"external-link\"]],null]],[]]]]],[1,\"\\n\"]],[]],[[[41,[30,5],[[[1,\"    group \"],[8,[39,2],null,[[\"@route\",\"@models\"],[\"jobs.job.task-group\",[28,[37,3],[[28,[37,4],[[30,3],\"@\",[30,4]],null],[30,5]],null]]],[[\"default\"],[[[[1,[30,5]],[1,\" \"],[8,[39,0],null,[[\"@name\"],[\"external-link\"]],null]],[]]]]],[1,\"\\n\"]],[]],[[[41,[30,3],[[[1,\"    job \"],[8,[39,2],null,[[\"@route\",\"@model\"],[\"jobs.job\",[28,[37,4],[[30,3],\"@\",[30,4]],null]]],[[\"default\"],[[[[1,[30,3]],[1,\" \"],[8,[39,0],null,[[\"@name\"],[\"external-link\"]],null]],[]]]]],[1,\"\\n\"]],[]],[[[1,\"    all nomad jobs in this namespace\\n    \"]],[]]]],[]]]],[]]],[13],[1,\"\\n\"],[13],[1,\"\\n\"]],[\"@new\",\"@task\",\"@job\",\"@namespace\",\"@group\"],false,[\"flight-icon\",\"if\",\"link-to\",\"array\",\"concat\"]]",
    "moduleName": "nomad-ui/components/variable-form/related-entities.hbs",
    "isStrictMode": false
  });

  var _default = (0, _component.setComponentTemplate)(__COLOCATED_TEMPLATE__, (0, _templateOnly.default)());

  _exports.default = _default;
});
;define("nomad-ui/components/variable-paths", ["exports", "@ember/component", "@ember/template-factory", "@glimmer/component", "@ember/object", "@ember/service", "nomad-ui/utils/compact-path"], function (_exports, _component, _templateFactory, _component2, _object, _service, _compactPath) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _descriptor, _descriptor2;

  0; //eaimeta@70e063a35619d71f0,"@glimmer/component",0,"@ember/object",0,"@ember/service",0,"nomad-ui/utils/compact-path",0,"@ember/template-factory"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const __COLOCATED_TEMPLATE__ = (0, _templateFactory.createTemplateFactory)(
  /*
    {{!
    Copyright (c) HashiCorp, Inc.
    SPDX-License-Identifier: MPL-2.0
  ~}}
  
  <ListTable class="path-tree" @source={{@branch}} as |t|>
    <t.head>
      <th>
        Path
      </th>
      <th>
        Namespace
      </th>
      <th>
        Last Modified
      </th>
    </t.head>
    <tbody>
      {{#each this.folders as |folder|}}
        <tr data-test-folder-row {{on "click" (fn this.handleFolderClick folder.data.absolutePath)}}>
          <td colspan="3"
            {{keyboard-shortcut 
              enumerated=true
              action=(fn this.handleFolderClick folder.data.absolutePath)
            }}
          >
            <span>
              <FlightIcon @name="folder" />
              <LinkTo @route="variables.path" @model={{folder.data.absolutePath}} @query={{hash namespace="*"}}>
                {{trim-path folder.name}}
              </LinkTo>
            </span>
          </td>
        </tr>
      {{/each}}
  
      {{#each this.files as |file|}}
        <tr
          data-test-file-row
          {{on "click" (fn this.handleFileClick file)}}
          class={{if (can "read variable" path=file.absoluteFilePath namespace=file.variable.namespace) "" "inaccessible"}}
          {{keyboard-shortcut 
            enumerated=true
            action=(fn this.handleFileClick file)
          }}
        >
          <td>
            <FlightIcon @name="file-text" />
            {{#if (can "read variable" path=file.absoluteFilePath namespace=file.variable.namespace)}}
            <LinkTo
              @route="variables.variable"
              @model={{file.variable.id}}
              @query={{hash namespace="*"}}
            >
              {{file.name}}
            </LinkTo>
            {{else}}
              <span title="Your access policy does not allow you to view the contents of {{file.name}}">{{file.name}}</span>
            {{/if}}
          </td>
          <td>
            {{file.variable.namespace}}
          </td>
          <td>
            <span class="tooltip" aria-label="{{format-ts file.variable.modifyTime}}">
              {{moment-from-now file.variable.modifyTime}}
            </span>
          </td>
        </tr>
      {{/each}}
  
    </tbody>
        </ListTable>
  
  */
  {
    "id": "bbG02UgW",
    "block": "[[[8,[39,0],[[24,0,\"path-tree\"]],[[\"@source\"],[[30,1]]],[[\"default\"],[[[[1,\"\\n  \"],[8,[30,2,[\"head\"]],null,null,[[\"default\"],[[[[1,\"\\n    \"],[10,\"th\"],[12],[1,\"\\n      Path\\n    \"],[13],[1,\"\\n    \"],[10,\"th\"],[12],[1,\"\\n      Namespace\\n    \"],[13],[1,\"\\n    \"],[10,\"th\"],[12],[1,\"\\n      Last Modified\\n    \"],[13],[1,\"\\n  \"]],[]]]]],[1,\"\\n  \"],[10,\"tbody\"],[12],[1,\"\\n\"],[42,[28,[37,2],[[28,[37,2],[[30,0,[\"folders\"]]],null]],null],null,[[[1,\"      \"],[11,\"tr\"],[4,[38,3],[\"click\",[28,[37,4],[[30,0,[\"handleFolderClick\"]],[30,3,[\"data\",\"absolutePath\"]]],null]],null],[12],[1,\"\\n        \"],[11,\"td\"],[24,\"colspan\",\"3\"],[4,[38,5],null,[[\"enumerated\",\"action\"],[true,[28,[37,4],[[30,0,[\"handleFolderClick\"]],[30,3,[\"data\",\"absolutePath\"]]],null]]]],[12],[1,\"\\n          \"],[10,1],[12],[1,\"\\n            \"],[8,[39,6],null,[[\"@name\"],[\"folder\"]],null],[1,\"\\n            \"],[8,[39,7],null,[[\"@route\",\"@model\",\"@query\"],[\"variables.path\",[30,3,[\"data\",\"absolutePath\"]],[28,[37,8],null,[[\"namespace\"],[\"*\"]]]]],[[\"default\"],[[[[1,\"\\n              \"],[1,[28,[35,9],[[30,3,[\"name\"]]],null]],[1,\"\\n            \"]],[]]]]],[1,\"\\n          \"],[13],[1,\"\\n        \"],[13],[1,\"\\n      \"],[13],[1,\"\\n\"]],[3]],null],[1,\"\\n\"],[42,[28,[37,2],[[28,[37,2],[[30,0,[\"files\"]]],null]],null],null,[[[1,\"      \"],[11,\"tr\"],[16,0,[52,[28,[37,11],[\"read variable\"],[[\"path\",\"namespace\"],[[30,4,[\"absoluteFilePath\"]],[30,4,[\"variable\",\"namespace\"]]]]],\"\",\"inaccessible\"]],[4,[38,3],[\"click\",[28,[37,4],[[30,0,[\"handleFileClick\"]],[30,4]],null]],null],[4,[38,5],null,[[\"enumerated\",\"action\"],[true,[28,[37,4],[[30,0,[\"handleFileClick\"]],[30,4]],null]]]],[12],[1,\"\\n        \"],[10,\"td\"],[12],[1,\"\\n          \"],[8,[39,6],null,[[\"@name\"],[\"file-text\"]],null],[1,\"\\n\"],[41,[28,[37,11],[\"read variable\"],[[\"path\",\"namespace\"],[[30,4,[\"absoluteFilePath\"]],[30,4,[\"variable\",\"namespace\"]]]]],[[[1,\"          \"],[8,[39,7],null,[[\"@route\",\"@model\",\"@query\"],[\"variables.variable\",[30,4,[\"variable\",\"id\"]],[28,[37,8],null,[[\"namespace\"],[\"*\"]]]]],[[\"default\"],[[[[1,\"\\n            \"],[1,[30,4,[\"name\"]]],[1,\"\\n          \"]],[]]]]],[1,\"\\n\"]],[]],[[[1,\"            \"],[10,1],[15,\"title\",[29,[\"Your access policy does not allow you to view the contents of \",[30,4,[\"name\"]]]]],[12],[1,[30,4,[\"name\"]]],[13],[1,\"\\n\"]],[]]],[1,\"        \"],[13],[1,\"\\n        \"],[10,\"td\"],[12],[1,\"\\n          \"],[1,[30,4,[\"variable\",\"namespace\"]]],[1,\"\\n        \"],[13],[1,\"\\n        \"],[10,\"td\"],[12],[1,\"\\n          \"],[10,1],[14,0,\"tooltip\"],[15,\"aria-label\",[29,[[28,[37,12],[[30,4,[\"variable\",\"modifyTime\"]]],null]]]],[12],[1,\"\\n            \"],[1,[28,[35,13],[[30,4,[\"variable\",\"modifyTime\"]]],null]],[1,\"\\n          \"],[13],[1,\"\\n        \"],[13],[1,\"\\n      \"],[13],[1,\"\\n\"]],[4]],null],[1,\"\\n  \"],[13],[1,\"\\n      \"]],[2]]]]],[1,\"\\n\"]],[\"@branch\",\"t\",\"folder\",\"file\"],false,[\"list-table\",\"each\",\"-track-array\",\"on\",\"fn\",\"keyboard-shortcut\",\"flight-icon\",\"link-to\",\"hash\",\"trim-path\",\"if\",\"can\",\"format-ts\",\"moment-from-now\"]]",
    "moduleName": "nomad-ui/components/variable-paths.hbs",
    "isStrictMode": false
  });
  /**
   * Copyright (c) HashiCorp, Inc.
   * SPDX-License-Identifier: MPL-2.0
   */
  // @ts-check


  let VariablePathsComponent = (_class = class VariablePathsComponent extends _component2.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "router", _descriptor, this);

      _initializerDefineProperty(this, "can", _descriptor2, this);
    }

    /**
     * @returns {Array<Object.<string, Object>>}
     */
    get folders() {
      return Object.entries(this.args.branch.children).map(_ref2 => {
        let [name] = _ref2;
        return (0, _compactPath.default)(this.args.branch.children[name], name);
      });
    }

    get files() {
      return this.args.branch.files;
    }

    async handleFolderClick(path) {
      this.router.transitionTo('variables.path', path);
    }

    async handleFileClick(_ref3) {
      let {
        path,
        variable: {
          id,
          namespace
        }
      } = _ref3;

      if (this.can.can('read variable', null, {
        path,
        namespace
      })) {
        this.router.transitionTo('variables.variable', id);
      }
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "router", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "can", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class.prototype, "handleFolderClick", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "handleFolderClick"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "handleFileClick", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "handleFileClick"), _class.prototype)), _class);
  _exports.default = VariablePathsComponent;
  (0, _component.setComponentTemplate)(__COLOCATED_TEMPLATE__, VariablePathsComponent);
});
;define("nomad-ui/controllers/allocations/allocation", ["exports", "@ember/controller", "@ember/service", "nomad-ui/utils/classes/query-params"], function (_exports, _controller, _service, _queryParams) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _descriptor;

  0; //eaimeta@70e063a35619d71f0,"@ember/controller",0,"@ember/service",0,"nomad-ui/utils/classes/query-params"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let AllocationsAllocationController = (_class = class AllocationsAllocationController extends _controller.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "store", _descriptor, this);
    }

    get allocation() {
      return this.model;
    }

    get job() {
      const allocation = this.model;
      const jobId = allocation.belongsTo('job').id();
      const job = this.store.peekRecord('job', jobId);
      return job;
    }

    get jobNamespace() {
      const jobNamespaceId = this.job.belongsTo('namespace').id();
      return jobNamespaceId || 'default';
    } // Allocation breadcrumbs extend from job / task group breadcrumbs
    // even though the route structure does not.


    get breadcrumbs() {
      const {
        allocation,
        job,
        jobNamespace
      } = this;
      const jobQueryParams = (0, _queryParams.qpBuilder)({
        jobNamespace
      });
      return [{
        label: 'Jobs',
        args: ['jobs.index', jobQueryParams]
      }, {
        type: 'job',
        job: job
      }, {
        title: 'Task Group',
        label: allocation.taskGroupName,
        args: ['jobs.job.task-group', job.idWithNamespace, allocation.taskGroupName]
      }, {
        title: 'Allocation',
        label: allocation.shortId,
        args: ['allocations.allocation', allocation]
      }];
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "store", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class);
  _exports.default = AllocationsAllocationController;
});
;define("nomad-ui/controllers/allocations/allocation/fs-root", ["exports", "nomad-ui/controllers/allocations/allocation/fs"], function (_exports, _fs) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"nomad-ui/controllers/allocations/allocation/fs"eaimeta@70e063a35619d71f

  class FsRootController extends _fs.default {}

  _exports.default = FsRootController;

  window.__CLASSIC_OWN_CLASSES__.set(FsRootController, true);
});
;define("nomad-ui/controllers/allocations/allocation/fs", ["exports", "@ember/controller", "@ember/object"], function (_exports, _controller, _object) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _class;

  0; //eaimeta@70e063a35619d71f0,"@ember/controller",0,"@ember/object"eaimeta@70e063a35619d71f

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  let FsController = (_dec = (0, _object.computed)('path'), (_class = class FsController extends _controller.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "queryParams", [{
        sortProperty: 'sort'
      }, {
        sortDescending: 'desc'
      }]);

      _defineProperty(this, "sortProperty", 'Name');

      _defineProperty(this, "sortDescending", false);

      _defineProperty(this, "path", null);

      _defineProperty(this, "allocation", null);

      _defineProperty(this, "directoryEntries", null);

      _defineProperty(this, "isFile", null);

      _defineProperty(this, "stat", null);
    }

    get pathWithLeadingSlash() {
      const path = this.path;

      if (path.startsWith('/')) {
        return path;
      } else {
        return `/${path}`;
      }
    }

  }, (_applyDecoratedDescriptor(_class.prototype, "pathWithLeadingSlash", [_dec], Object.getOwnPropertyDescriptor(_class.prototype, "pathWithLeadingSlash"), _class.prototype)), _class));
  _exports.default = FsController;
});
;define("nomad-ui/controllers/allocations/allocation/index", ["exports", "@ember/controller", "@ember/service", "@ember/object", "@ember-decorators/object", "ember-overridable-computed", "@ember/object/computed", "ember-concurrency", "nomad-ui/mixins/sortable", "nomad-ui/helpers/lazy-click", "nomad-ui/utils/properties/watch", "nomad-ui/utils/message-from-adapter-error", "@glimmer/tracking"], function (_exports, _controller, _service, _object, _object2, _emberOverridableComputed, _computed, _emberConcurrency, _sortable, _lazyClick, _watch, _messageFromAdapterError, _tracking) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _dec9, _dec10, _dec11, _dec12, _dec13, _dec14, _dec15, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8, _descriptor9, _descriptor10, _descriptor11;

  0; //eaimeta@70e063a35619d71f0,"@ember/controller",0,"@ember/service",0,"@ember/object",0,"@ember-decorators/object",0,"ember-overridable-computed",0,"@ember/object/computed",0,"ember-concurrency",0,"nomad-ui/mixins/sortable",0,"nomad-ui/helpers/lazy-click",0,"nomad-ui/utils/properties/watch",0,"nomad-ui/utils/message-from-adapter-error",0,"ember-classic-decorator",0,"@ember/object/computed",0,"@glimmer/tracking"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let IndexController = (_dec = (0, _computed.alias)('model.states'), _dec2 = (0, _computed.alias)('listSorted'), _dec3 = (0, _emberOverridableComputed.computed)(function () {
    // { title, description }
    return null;
  }), _dec4 = (0, _object.computed)('model.allocatedResources.ports.@each.label'), _dec5 = (0, _object.computed)('model.states.@each.task'), _dec6 = (0, _object.computed)('tasks.@each.services'), _dec7 = (0, _object.computed)('model.taskGroup.services.@each.name'), _dec8 = (0, _computed.union)('taskServices', 'groupServices'), _dec9 = (0, _object.computed)('model.{healthChecks,id}', 'services'), _dec10 = (0, _watch.watchRecord)('allocation'), _dec11 = (0, _object2.observes)('model.nextAllocation.clientStatus'), _dec12 = (0, _emberConcurrency.task)(function* () {
    try {
      yield this.model.stop(); // Eagerly update the allocation clientStatus to avoid flickering

      this.model.set('clientStatus', 'complete');
    } catch (err) {
      this.set('error', {
        title: 'Could Not Stop Allocation',
        description: (0, _messageFromAdapterError.default)(err, 'manage allocation lifecycle')
      });
    }
  }), _dec13 = (0, _emberConcurrency.task)(function* () {
    try {
      yield this.model.restart();
    } catch (err) {
      this.set('error', {
        title: 'Could Not Restart Allocation',
        description: (0, _messageFromAdapterError.default)(err, 'manage allocation lifecycle')
      });
    }
  }), _dec14 = (0, _emberConcurrency.task)(function* () {
    try {
      yield this.model.restartAll();
    } catch (err) {
      this.set('error', {
        title: 'Could Not Restart All Tasks',
        description: (0, _messageFromAdapterError.default)(err, 'manage allocation lifecycle')
      });
      console.error(err);
    }
  }), _dec15 = (0, _object.computed)('activeServiceID', 'services'), classic(_class = (_class2 = class IndexController extends _controller.default.extend(_sortable.default) {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "token", _descriptor, this);

      _initializerDefineProperty(this, "store", _descriptor2, this);

      _defineProperty(this, "queryParams", [{
        sortProperty: 'sort'
      }, {
        sortDescending: 'desc'
      }, {
        activeServiceID: 'service'
      }]);

      _defineProperty(this, "sortProperty", 'name');

      _defineProperty(this, "sortDescending", false);

      _initializerDefineProperty(this, "listToSort", _descriptor3, this);

      _initializerDefineProperty(this, "sortedStates", _descriptor4, this);

      _defineProperty(this, "preempter", null);

      _initializerDefineProperty(this, "error", _descriptor5, this);

      _initializerDefineProperty(this, "services", _descriptor6, this);

      _initializerDefineProperty(this, "watchNext", _descriptor7, this);

      _initializerDefineProperty(this, "stopAllocation", _descriptor8, this);

      _initializerDefineProperty(this, "restartAllocation", _descriptor9, this);

      _initializerDefineProperty(this, "restartAll", _descriptor10, this);

      _initializerDefineProperty(this, "activeServiceID", _descriptor11, this);

      _defineProperty(this, "keyCommands", [{
        label: 'Close Evaluations Sidebar',
        pattern: ['Escape'],
        action: () => this.closeSidebar()
      }]);
    }

    get ports() {
      return (this.get('model.allocatedResources.ports') || []).sortBy('label');
    }

    get tasks() {
      return this.get('model.states').mapBy('task') || [];
    }

    get taskServices() {
      return this.get('tasks').map(t => (t && t.services || []).toArray()).flat().compact();
    }

    get groupServices() {
      return (this.get('model.taskGroup.services') || []).sortBy('name');
    }

    get servicesWithHealthChecks() {
      return this.services.map(service => {
        if (this.model.healthChecks) {
          var _Object$values;

          const healthChecks = (_Object$values = Object.values(this.model.healthChecks)) === null || _Object$values === void 0 ? void 0 : _Object$values.filter(check => {
            const refPrefix = check.Task || check.Group.split('.')[1].split('[')[0];
            const currentServiceName = `${refPrefix}-${check.Service}`;
            return currentServiceName === service.refID;
          });
          healthChecks.forEach(check => {
            service.healthChecks.pushObject(check);
          });
        } // Contextualize healthchecks for the allocation we're in


        service.healthChecks = service.healthChecks.filterBy('Alloc', this.model.id);
        return service;
      });
    }

    onDismiss() {
      this.set('error', null);
    }

    observeWatchNext() {
      const nextAllocation = this.model.nextAllocation;

      if (nextAllocation && nextAllocation.content) {
        this.watchNext.perform(nextAllocation);
      } else {
        this.watchNext.cancelAll();
      }
    }

    gotoTask(allocation, task) {
      this.transitionToRoute('allocations.allocation.task', task);
    }

    taskClick(allocation, task, event) {
      (0, _lazyClick.lazyClick)([() => this.send('gotoTask', allocation, task), event]);
    } //#region Services


    handleServiceClick(service) {
      this.set('activeServiceID', service.refID);
    }

    get activeService() {
      return this.services.findBy('refID', this.activeServiceID);
    }

    closeSidebar() {
      this.set('activeServiceID', null);
    } //#endregion Services


  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "token", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "store", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, "listToSort", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, "sortedStates", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor5 = _applyDecoratedDescriptor(_class2.prototype, "error", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "ports", [_dec4], Object.getOwnPropertyDescriptor(_class2.prototype, "ports"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "tasks", [_dec5], Object.getOwnPropertyDescriptor(_class2.prototype, "tasks"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "taskServices", [_dec6], Object.getOwnPropertyDescriptor(_class2.prototype, "taskServices"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "groupServices", [_dec7], Object.getOwnPropertyDescriptor(_class2.prototype, "groupServices"), _class2.prototype), _descriptor6 = _applyDecoratedDescriptor(_class2.prototype, "services", [_dec8], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "servicesWithHealthChecks", [_dec9], Object.getOwnPropertyDescriptor(_class2.prototype, "servicesWithHealthChecks"), _class2.prototype), _descriptor7 = _applyDecoratedDescriptor(_class2.prototype, "watchNext", [_dec10], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "observeWatchNext", [_dec11], Object.getOwnPropertyDescriptor(_class2.prototype, "observeWatchNext"), _class2.prototype), _descriptor8 = _applyDecoratedDescriptor(_class2.prototype, "stopAllocation", [_dec12], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor9 = _applyDecoratedDescriptor(_class2.prototype, "restartAllocation", [_dec13], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor10 = _applyDecoratedDescriptor(_class2.prototype, "restartAll", [_dec14], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "gotoTask", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "gotoTask"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "taskClick", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "taskClick"), _class2.prototype), _descriptor11 = _applyDecoratedDescriptor(_class2.prototype, "activeServiceID", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return null;
    }
  }), _applyDecoratedDescriptor(_class2.prototype, "handleServiceClick", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "handleServiceClick"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "activeService", [_dec15], Object.getOwnPropertyDescriptor(_class2.prototype, "activeService"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "closeSidebar", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "closeSidebar"), _class2.prototype)), _class2)) || _class);
  _exports.default = IndexController;
});
;define("nomad-ui/controllers/allocations/allocation/task", ["exports", "@ember/controller"], function (_exports, _controller) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/controller"eaimeta@70e063a35619d71f

  class AllocationsAllocationTaskController extends _controller.default {
    get task() {
      return this.model;
    }

    get breadcrumb() {
      return {
        title: 'Task',
        label: this.task.get('name'),
        args: ['allocations.allocation.task', this.task.get('allocation'), this.task]
      };
    }

  }

  _exports.default = AllocationsAllocationTaskController;

  window.__CLASSIC_OWN_CLASSES__.set(AllocationsAllocationTaskController, true);
});
;define("nomad-ui/controllers/allocations/allocation/task/fs-root", ["exports", "nomad-ui/controllers/allocations/allocation/task/fs"], function (_exports, _fs) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"nomad-ui/controllers/allocations/allocation/task/fs"eaimeta@70e063a35619d71f

  class FsRootController extends _fs.default {}

  _exports.default = FsRootController;

  window.__CLASSIC_OWN_CLASSES__.set(FsRootController, true);
});
;define("nomad-ui/controllers/allocations/allocation/task/fs", ["exports", "@ember/controller", "@ember/object"], function (_exports, _controller, _object) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _class;

  0; //eaimeta@70e063a35619d71f0,"@ember/controller",0,"@ember/object"eaimeta@70e063a35619d71f

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  let FsController = (_dec = (0, _object.computed)('path'), (_class = class FsController extends _controller.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "queryParams", [{
        sortProperty: 'sort'
      }, {
        sortDescending: 'desc'
      }]);

      _defineProperty(this, "sortProperty", 'Name');

      _defineProperty(this, "sortDescending", false);

      _defineProperty(this, "path", null);

      _defineProperty(this, "taskState", null);

      _defineProperty(this, "directoryEntries", null);

      _defineProperty(this, "isFile", null);

      _defineProperty(this, "stat", null);
    }

    get pathWithLeadingSlash() {
      const path = this.path;

      if (path.startsWith('/')) {
        return path;
      } else {
        return `/${path}`;
      }
    }

  }, (_applyDecoratedDescriptor(_class.prototype, "pathWithLeadingSlash", [_dec], Object.getOwnPropertyDescriptor(_class.prototype, "pathWithLeadingSlash"), _class.prototype)), _class));
  _exports.default = FsController;
});
;define("nomad-ui/controllers/allocations/allocation/task/index", ["exports", "@ember/controller", "ember-overridable-computed", "ember-concurrency", "nomad-ui/utils/message-from-adapter-error"], function (_exports, _controller, _emberOverridableComputed, _emberConcurrency, _messageFromAdapterError) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _class, _class2, _descriptor, _descriptor2;

  0; //eaimeta@70e063a35619d71f0,"@ember/controller",0,"ember-overridable-computed",0,"ember-concurrency",0,"ember-classic-decorator",0,"nomad-ui/utils/message-from-adapter-error"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let IndexController = (_dec = (0, _emberOverridableComputed.computed)(() => {
    // { title, description }
    return null;
  }), _dec2 = (0, _emberConcurrency.task)(function* () {
    try {
      yield this.model.restart();
    } catch (err) {
      this.set('error', {
        title: 'Could Not Restart Task',
        description: (0, _messageFromAdapterError.default)(err, 'manage allocation lifecycle')
      });
    }
  }), classic(_class = (_class2 = class IndexController extends _controller.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "error", _descriptor, this);

      _initializerDefineProperty(this, "restartTask", _descriptor2, this);
    }

    onDismiss() {
      this.set('error', null);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "error", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "restartTask", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class2)) || _class);
  _exports.default = IndexController;
});
;define("nomad-ui/controllers/application", ["exports", "@ember/service", "@ember/controller", "@ember/runloop", "@ember-decorators/object", "@ember/object", "ember", "nomad-ui/utils/codes-for-error", "nomad-ui/utils/no-leader-error", "nomad-ui/utils/ott-exchange-error", "nomad-ui/services/keyboard"], function (_exports, _service, _controller, _runloop, _object, _object2, _ember, _codesForError, _noLeaderError, _ottExchangeError, _keyboard) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5;

  0; //eaimeta@70e063a35619d71f0,"@ember/service",0,"@ember/controller",0,"@ember/runloop",0,"@ember-decorators/object",0,"@ember/object",0,"ember",0,"nomad-ui/utils/codes-for-error",0,"nomad-ui/utils/no-leader-error",0,"nomad-ui/utils/ott-exchange-error",0,"ember-classic-decorator",0,"nomad-ui/services/keyboard"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR; // eslint-disable-next-line no-unused-vars

  let ApplicationController = (_dec = (0, _object2.computed)('error'), _dec2 = (0, _object2.computed)('error'), _dec3 = (0, _object2.computed)('errorCodes.[]'), _dec4 = (0, _object2.computed)('errorCodes.[]'), _dec5 = (0, _object2.computed)('errorCodes.[]'), _dec6 = (0, _object2.computed)('error'), _dec7 = (0, _object2.computed)('error'), _dec8 = (0, _object.observes)('error'), classic(_class = (_class2 = class ApplicationController extends _controller.default {
    /**
     * @type {KeyboardService}
     */
    // eslint-disable-next-line ember/classic-decorator-hooks
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "config", _descriptor, this);

      _initializerDefineProperty(this, "system", _descriptor2, this);

      _initializerDefineProperty(this, "token", _descriptor3, this);

      _initializerDefineProperty(this, "notifications", _descriptor4, this);

      _initializerDefineProperty(this, "keyboard", _descriptor5, this);

      _defineProperty(this, "queryParams", [{
        region: 'region'
      }, {
        oneTimeToken: 'ott'
      }]);

      _defineProperty(this, "region", null);

      _defineProperty(this, "oneTimeToken", '');

      _defineProperty(this, "error", null);

      this.keyboard.listenForKeypress();
    }

    get errorStr() {
      return this.error.toString();
    }

    get errorCodes() {
      return (0, _codesForError.default)(this.error);
    }

    get is403() {
      return this.errorCodes.includes('403');
    }

    get is404() {
      return this.errorCodes.includes('404');
    }

    get is500() {
      return this.errorCodes.includes('500');
    }

    get isNoLeader() {
      const error = this.error;
      return error instanceof _noLeaderError.default;
    }

    get isOTTExchange() {
      const error = this.error;
      return error instanceof _ottExchangeError.default;
    }

    throwError() {
      if (this.get('config.isDev')) {
        (0, _runloop.next)(() => {
          throw this.error;
        });
      } else if (!_ember.default.testing) {
        (0, _runloop.next)(() => {
          // eslint-disable-next-line
          console.warn('UNRECOVERABLE ERROR:', this.error);
        });
      }
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "config", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "system", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, "token", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, "notifications", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor5 = _applyDecoratedDescriptor(_class2.prototype, "keyboard", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "errorStr", [_dec], Object.getOwnPropertyDescriptor(_class2.prototype, "errorStr"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "errorCodes", [_dec2], Object.getOwnPropertyDescriptor(_class2.prototype, "errorCodes"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "is403", [_dec3], Object.getOwnPropertyDescriptor(_class2.prototype, "is403"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "is404", [_dec4], Object.getOwnPropertyDescriptor(_class2.prototype, "is404"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "is500", [_dec5], Object.getOwnPropertyDescriptor(_class2.prototype, "is500"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "isNoLeader", [_dec6], Object.getOwnPropertyDescriptor(_class2.prototype, "isNoLeader"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "isOTTExchange", [_dec7], Object.getOwnPropertyDescriptor(_class2.prototype, "isOTTExchange"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "throwError", [_dec8], Object.getOwnPropertyDescriptor(_class2.prototype, "throwError"), _class2.prototype)), _class2)) || _class);
  _exports.default = ApplicationController;
});
;define("nomad-ui/controllers/clients", ["exports", "@ember/controller"], function (_exports, _controller) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/controller"eaimeta@70e063a35619d71f

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  class ClientsController extends _controller.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "isForbidden", false);
    }

  }

  _exports.default = ClientsController;

  window.__CLASSIC_OWN_CLASSES__.set(ClientsController, true);
});
;define("nomad-ui/controllers/clients/client", ["exports", "@ember/controller"], function (_exports, _controller) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/controller"eaimeta@70e063a35619d71f

  class ClientsClientController extends _controller.default {
    get client() {
      return this.model;
    }

    get breadcrumb() {
      return {
        title: 'Client',
        label: this.client.get('shortId'),
        args: ['clients.client', this.client.get('id')]
      };
    }

  }

  _exports.default = ClientsClientController;

  window.__CLASSIC_OWN_CLASSES__.set(ClientsClientController, true);
});
;define("nomad-ui/controllers/clients/client/index", ["exports", "@ember/object/computed", "@ember/controller", "@ember/object", "@ember-decorators/object", "@ember/runloop", "ember-concurrency", "lodash.intersection", "nomad-ui/mixins/sortable", "nomad-ui/mixins/searchable", "nomad-ui/utils/message-from-adapter-error", "nomad-ui/utils/qp-serialize", "nomad-ui/utils/properties/local-storage", "@ember/service", "@glimmer/tracking"], function (_exports, _computed, _controller, _object, _object2, _runloop, _emberConcurrency, _lodash, _sortable, _searchable, _messageFromAdapterError, _qpSerialize, _localStorage, _service, _tracking) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _dec9, _dec10, _dec11, _dec12, _dec13, _dec14, _dec15, _dec16, _dec17, _dec18, _dec19, _dec20, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8, _descriptor9, _descriptor10, _descriptor11, _descriptor12, _descriptor13;

  0; //eaimeta@70e063a35619d71f0,"@ember/object/computed",0,"@ember/controller",0,"@ember/object",0,"@ember-decorators/object",0,"@ember/runloop",0,"ember-concurrency",0,"lodash.intersection",0,"nomad-ui/mixins/sortable",0,"nomad-ui/mixins/searchable",0,"nomad-ui/utils/message-from-adapter-error",0,"nomad-ui/utils/qp-serialize",0,"ember-classic-decorator",0,"nomad-ui/utils/properties/local-storage",0,"@ember/service",0,"@glimmer/tracking"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let ClientController = (_dec = (0, _localStorage.default)('nomadShowSubTasks', false), _dec2 = (0, _object.computed)(), _dec3 = (0, _object.computed)('model.allocations.[]', 'preemptions.[]', 'onlyPreemptions'), _dec4 = (0, _object.computed)('visibleAllocations.[]', 'selectionNamespace', 'selectionJob', 'selectionStatus'), _dec5 = (0, _computed.alias)('filteredAllocations'), _dec6 = (0, _computed.alias)('listSorted'), _dec7 = (0, _computed.alias)('listSearched'), _dec8 = (0, _qpSerialize.deserializedQueryParam)('qpNamespace'), _dec9 = (0, _qpSerialize.deserializedQueryParam)('qpJob'), _dec10 = (0, _qpSerialize.deserializedQueryParam)('qpStatus'), _dec11 = (0, _object.computed)('model.allocations.@each.wasPreempted'), _dec12 = (0, _object.computed)('model.events.@each.time'), _dec13 = (0, _object.computed)('model.drivers.@each.name'), _dec14 = (0, _object.computed)('model.hostVolumes.@each.name'), _dec15 = (0, _emberConcurrency.task)(function* (value) {
    try {
      yield value ? this.model.setEligible() : this.model.setIneligible();
    } catch (err) {
      const error = (0, _messageFromAdapterError.default)(err) || 'Could not set eligibility';
      this.set('eligibilityError', error);
    }
  }).drop(), _dec16 = (0, _emberConcurrency.task)(function* () {
    try {
      this.set('flagAsDraining', false);
      yield this.model.cancelDrain();
      this.set('showDrainStoppedNotification', true);
    } catch (err) {
      this.set('flagAsDraining', true);
      const error = (0, _messageFromAdapterError.default)(err) || 'Could not stop drain';
      this.set('stopDrainError', error);
    }
  }).drop(), _dec17 = (0, _emberConcurrency.task)(function* () {
    try {
      yield this.model.forceDrain({
        IgnoreSystemJobs: this.model.drainStrategy.ignoreSystemJobs
      });
    } catch (err) {
      const error = (0, _messageFromAdapterError.default)(err) || 'Could not force drain';
      this.set('drainError', error);
    }
  }).drop(), _dec18 = (0, _object2.observes)('model.isDraining'), _dec19 = (0, _object.computed)('model.allocations.[]', 'selectionJob', 'selectionNamespace'), _dec20 = (0, _object.computed)('model.allocations.[]', 'selectionNamespace'), classic(_class = (_class2 = class ClientController extends _controller.default.extend(_sortable.default, _searchable.default) {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "notifications", _descriptor, this);

      _defineProperty(this, "queryParams", [{
        currentPage: 'page'
      }, {
        searchTerm: 'search'
      }, {
        sortProperty: 'sort'
      }, {
        sortDescending: 'desc'
      }, {
        onlyPreemptions: 'preemptions'
      }, {
        qpNamespace: 'namespace'
      }, {
        qpJob: 'job'
      }, {
        qpStatus: 'status'
      }, 'activeTask']);

      _defineProperty(this, "flagAsDraining", false);

      _defineProperty(this, "qpNamespace", '');

      _defineProperty(this, "qpJob", '');

      _defineProperty(this, "qpStatus", '');

      _defineProperty(this, "currentPage", 1);

      _defineProperty(this, "pageSize", 8);

      _defineProperty(this, "activeTask", null);

      _defineProperty(this, "sortProperty", 'modifyIndex');

      _defineProperty(this, "sortDescending", true);

      _initializerDefineProperty(this, "showSubTasks", _descriptor2, this);

      _defineProperty(this, "onlyPreemptions", false);

      _initializerDefineProperty(this, "listToSort", _descriptor3, this);

      _initializerDefineProperty(this, "listToSearch", _descriptor4, this);

      _initializerDefineProperty(this, "sortedAllocations", _descriptor5, this);

      _initializerDefineProperty(this, "selectionNamespace", _descriptor6, this);

      _initializerDefineProperty(this, "selectionJob", _descriptor7, this);

      _initializerDefineProperty(this, "selectionStatus", _descriptor8, this);

      _defineProperty(this, "eligibilityError", null);

      _defineProperty(this, "stopDrainError", null);

      _defineProperty(this, "drainError", null);

      _defineProperty(this, "showDrainNotification", false);

      _defineProperty(this, "showDrainUpdateNotification", false);

      _defineProperty(this, "showDrainStoppedNotification", false);

      _initializerDefineProperty(this, "setEligibility", _descriptor9, this);

      _initializerDefineProperty(this, "stopDrain", _descriptor10, this);

      _initializerDefineProperty(this, "forceDrain", _descriptor11, this);

      _initializerDefineProperty(this, "editingMetadata", _descriptor12, this);

      _initializerDefineProperty(this, "newMetaData", _descriptor13, this);
    }

    toggleShowSubTasks(e) {
      e.preventDefault();
      this.set('showSubTasks', !this.get('showSubTasks'));
    }

    get searchProps() {
      return ['shortId', 'name'];
    }

    get visibleAllocations() {
      return this.onlyPreemptions ? this.preemptions : this.model.allocations;
    }

    get filteredAllocations() {
      const {
        selectionNamespace,
        selectionJob,
        selectionStatus
      } = this;
      return this.visibleAllocations.filter(alloc => {
        if (selectionNamespace.length && !selectionNamespace.includes(alloc.get('namespace'))) {
          return false;
        }

        if (selectionJob.length && !selectionJob.includes(alloc.get('plainJobId'))) {
          return false;
        }

        if (selectionStatus.length && !selectionStatus.includes(alloc.clientStatus)) {
          return false;
        }

        return true;
      });
    }

    get preemptions() {
      return this.model.allocations.filterBy('wasPreempted');
    }

    get sortedEvents() {
      return this.get('model.events').sortBy('time').reverse();
    }

    get sortedDrivers() {
      return this.get('model.drivers').sortBy('name');
    }

    get sortedHostVolumes() {
      return this.model.hostVolumes.sortBy('name');
    }

    triggerDrainNotification() {
      if (!this.model.isDraining && this.flagAsDraining) {
        this.set('showDrainNotification', true);
      }

      this.set('flagAsDraining', this.model.isDraining);
    }

    gotoAllocation(allocation) {
      this.transitionToRoute('allocations.allocation', allocation.id);
    }

    setPreemptionFilter(value) {
      this.set('onlyPreemptions', value);
    }

    drainNotify(isUpdating) {
      this.set('showDrainUpdateNotification', isUpdating);
    }

    setDrainError(err) {
      const error = (0, _messageFromAdapterError.default)(err) || 'Could not run drain';
      this.set('drainError', error);
    }

    get optionsAllocationStatus() {
      return [{
        key: 'pending',
        label: 'Pending'
      }, {
        key: 'running',
        label: 'Running'
      }, {
        key: 'complete',
        label: 'Complete'
      }, {
        key: 'failed',
        label: 'Failed'
      }, {
        key: 'lost',
        label: 'Lost'
      }, {
        key: 'unknown',
        label: 'Unknown'
      }];
    }

    get optionsJob() {
      // Only show options for jobs in the selected namespaces, if any.
      const ns = this.selectionNamespace;
      const jobs = Array.from(new Set(this.model.allocations.filter(a => ns.length === 0 || ns.includes(a.namespace)).mapBy('plainJobId'))).compact(); // Update query param when the list of jobs changes.

      (0, _runloop.scheduleOnce)('actions', () => {
        // eslint-disable-next-line ember/no-side-effects
        this.set('qpJob', (0, _qpSerialize.serialize)((0, _lodash.default)(jobs, this.selectionJob)));
      });
      return jobs.sort().map(job => ({
        key: job,
        label: job
      }));
    }

    get optionsNamespace() {
      const ns = Array.from(new Set(this.model.allocations.mapBy('namespace'))).compact(); // Update query param when the list of namespaces changes.

      (0, _runloop.scheduleOnce)('actions', () => {
        // eslint-disable-next-line ember/no-side-effects
        this.set('qpNamespace', (0, _qpSerialize.serialize)((0, _lodash.default)(ns, this.selectionNamespace)));
      });
      return ns.sort().map(n => ({
        key: n,
        label: n
      }));
    }

    setFacetQueryParam(queryParam, selection) {
      this.set(queryParam, (0, _qpSerialize.serialize)(selection));
    }

    setActiveTaskQueryParam(task) {
      if (task) {
        this.set('activeTask', `${task.allocation.id}-${task.name}`);
      } else {
        this.set('activeTask', null);
      }
    } // #region metadata


    get hasMeta() {
      var _this$model$meta, _this$model$meta2;

      return ((_this$model$meta = this.model.meta) === null || _this$model$meta === void 0 ? void 0 : _this$model$meta.structured) && Object.keys((_this$model$meta2 = this.model.meta) === null || _this$model$meta2 === void 0 ? void 0 : _this$model$meta2.structured);
    }

    resetNewMetaData() {
      this.newMetaData = {
        key: '',
        value: ''
      };
    }

    validateMetadata(event) {
      if (event.key === 'Escape') {
        this.resetNewMetaData();
        this.editingMetadata = false;
      }
    }

    async addDynamicMetaData(_ref, e) {
      let {
        key,
        value
      } = _ref;

      try {
        e.preventDefault();
        await this.model.addMeta({
          [key]: value
        });
        this.notifications.add({
          title: 'Metadata added',
          message: `${key} successfully saved`,
          color: 'success'
        });
      } catch (err) {
        const error = (0, _messageFromAdapterError.default)(err) || 'Could not save new dynamic metadata';
        this.notifications.add({
          title: `Error saving Metadata`,
          message: error,
          color: 'critical',
          sticky: true
        });
      }
    } // #endregion metadata


  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "notifications", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "showSubTasks", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "toggleShowSubTasks", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "toggleShowSubTasks"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "searchProps", [_dec2], Object.getOwnPropertyDescriptor(_class2.prototype, "searchProps"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "visibleAllocations", [_dec3], Object.getOwnPropertyDescriptor(_class2.prototype, "visibleAllocations"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "filteredAllocations", [_dec4], Object.getOwnPropertyDescriptor(_class2.prototype, "filteredAllocations"), _class2.prototype), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, "listToSort", [_dec5], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, "listToSearch", [_dec6], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor5 = _applyDecoratedDescriptor(_class2.prototype, "sortedAllocations", [_dec7], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor6 = _applyDecoratedDescriptor(_class2.prototype, "selectionNamespace", [_dec8], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor7 = _applyDecoratedDescriptor(_class2.prototype, "selectionJob", [_dec9], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor8 = _applyDecoratedDescriptor(_class2.prototype, "selectionStatus", [_dec10], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "preemptions", [_dec11], Object.getOwnPropertyDescriptor(_class2.prototype, "preemptions"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "sortedEvents", [_dec12], Object.getOwnPropertyDescriptor(_class2.prototype, "sortedEvents"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "sortedDrivers", [_dec13], Object.getOwnPropertyDescriptor(_class2.prototype, "sortedDrivers"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "sortedHostVolumes", [_dec14], Object.getOwnPropertyDescriptor(_class2.prototype, "sortedHostVolumes"), _class2.prototype), _descriptor9 = _applyDecoratedDescriptor(_class2.prototype, "setEligibility", [_dec15], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor10 = _applyDecoratedDescriptor(_class2.prototype, "stopDrain", [_dec16], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor11 = _applyDecoratedDescriptor(_class2.prototype, "forceDrain", [_dec17], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "triggerDrainNotification", [_dec18], Object.getOwnPropertyDescriptor(_class2.prototype, "triggerDrainNotification"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "gotoAllocation", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "gotoAllocation"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "setPreemptionFilter", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "setPreemptionFilter"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "drainNotify", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "drainNotify"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "setDrainError", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "setDrainError"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "optionsJob", [_dec19], Object.getOwnPropertyDescriptor(_class2.prototype, "optionsJob"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "optionsNamespace", [_dec20], Object.getOwnPropertyDescriptor(_class2.prototype, "optionsNamespace"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "setActiveTaskQueryParam", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "setActiveTaskQueryParam"), _class2.prototype), _descriptor12 = _applyDecoratedDescriptor(_class2.prototype, "editingMetadata", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return false;
    }
  }), _descriptor13 = _applyDecoratedDescriptor(_class2.prototype, "newMetaData", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return {
        key: '',
        value: ''
      };
    }
  }), _applyDecoratedDescriptor(_class2.prototype, "resetNewMetaData", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "resetNewMetaData"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "validateMetadata", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "validateMetadata"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "addDynamicMetaData", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "addDynamicMetaData"), _class2.prototype)), _class2)) || _class);
  _exports.default = ClientController;
});
;define("nomad-ui/controllers/clients/client/monitor", ["exports", "@ember/controller"], function (_exports, _controller) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/controller"eaimeta@70e063a35619d71f

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  class ClientMonitorController extends _controller.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "queryParams", ['level']);

      _defineProperty(this, "level", 'info');
    }

  }

  _exports.default = ClientMonitorController;

  window.__CLASSIC_OWN_CLASSES__.set(ClientMonitorController, true);
});
;define("nomad-ui/controllers/clients/index", ["exports", "@ember/object/computed", "@ember/service", "@ember/controller", "@ember/object", "@ember/runloop", "lodash.intersection", "nomad-ui/mixins/sortable-factory", "nomad-ui/mixins/searchable", "nomad-ui/utils/qp-serialize"], function (_exports, _computed, _service, _controller, _object, _runloop, _lodash, _sortableFactory, _searchable, _qpSerialize) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _dec9, _dec10, _dec11, _dec12, _dec13, _dec14, _dec15, _dec16, _dec17, _dec18, _dec19, _dec20, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8, _descriptor9, _descriptor10, _descriptor11, _descriptor12, _descriptor13, _descriptor14, _descriptor15;

  0; //eaimeta@70e063a35619d71f0,"@ember/object/computed",0,"@ember/service",0,"@ember/controller",0,"@ember/object",0,"@ember/runloop",0,"lodash.intersection",0,"nomad-ui/mixins/sortable-factory",0,"nomad-ui/mixins/searchable",0,"nomad-ui/utils/qp-serialize",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let IndexController = (_dec = (0, _controller.inject)('clients'), _dec2 = (0, _computed.alias)('model.nodes'), _dec3 = (0, _computed.alias)('model.agents'), _dec4 = (0, _computed.readOnly)('userSettings.pageSize'), _dec5 = (0, _qpSerialize.deserializedQueryParam)('qpClass'), _dec6 = (0, _qpSerialize.deserializedQueryParam)('qpState'), _dec7 = (0, _qpSerialize.deserializedQueryParam)('qpDatacenter'), _dec8 = (0, _qpSerialize.deserializedQueryParam)('qpVersion'), _dec9 = (0, _qpSerialize.deserializedQueryParam)('qpVolume'), _dec10 = (0, _qpSerialize.deserializedQueryParam)('qpNodePool'), _dec11 = (0, _object.computed)('nodes.[]', 'selectionClass'), _dec12 = (0, _object.computed)('nodes.[]', 'selectionDatacenter'), _dec13 = (0, _object.computed)('nodes.[]', 'selectionVersion'), _dec14 = (0, _object.computed)('nodes.[]', 'selectionVolume'), _dec15 = (0, _object.computed)('selectionNodePool', 'model.nodePools.[]'), _dec16 = (0, _object.computed)('nodes.[]', 'selectionClass', 'selectionState', 'selectionDatacenter', 'selectionNodePool', 'selectionVersion', 'selectionVolume'), _dec17 = (0, _computed.alias)('filteredNodes'), _dec18 = (0, _computed.alias)('listSorted'), _dec19 = (0, _computed.alias)('listSearched'), _dec20 = (0, _computed.alias)('clientsController.isForbidden'), classic(_class = (_class2 = class IndexController extends _controller.default.extend((0, _sortableFactory.default)(['id', 'name', 'compositeStatus', 'datacenter', 'version']), _searchable.default) {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "userSettings", _descriptor, this);

      _initializerDefineProperty(this, "clientsController", _descriptor2, this);

      _initializerDefineProperty(this, "nodes", _descriptor3, this);

      _initializerDefineProperty(this, "agents", _descriptor4, this);

      _defineProperty(this, "queryParams", [{
        currentPage: 'page'
      }, {
        searchTerm: 'search'
      }, {
        sortProperty: 'sort'
      }, {
        sortDescending: 'desc'
      }, {
        qpClass: 'class'
      }, {
        qpState: 'state'
      }, {
        qpDatacenter: 'dc'
      }, {
        qpVersion: 'version'
      }, {
        qpVolume: 'volume'
      }, {
        qpNodePool: 'nodePool'
      }]);

      _defineProperty(this, "currentPage", 1);

      _initializerDefineProperty(this, "pageSize", _descriptor5, this);

      _defineProperty(this, "sortProperty", 'modifyIndex');

      _defineProperty(this, "sortDescending", true);

      _defineProperty(this, "qpClass", '');

      _defineProperty(this, "qpState", '');

      _defineProperty(this, "qpDatacenter", '');

      _defineProperty(this, "qpVersion", '');

      _defineProperty(this, "qpVolume", '');

      _defineProperty(this, "qpNodePool", '');

      _initializerDefineProperty(this, "selectionClass", _descriptor6, this);

      _initializerDefineProperty(this, "selectionState", _descriptor7, this);

      _initializerDefineProperty(this, "selectionDatacenter", _descriptor8, this);

      _initializerDefineProperty(this, "selectionVersion", _descriptor9, this);

      _initializerDefineProperty(this, "selectionVolume", _descriptor10, this);

      _initializerDefineProperty(this, "selectionNodePool", _descriptor11, this);

      _initializerDefineProperty(this, "listToSort", _descriptor12, this);

      _initializerDefineProperty(this, "listToSearch", _descriptor13, this);

      _initializerDefineProperty(this, "sortedNodes", _descriptor14, this);

      _initializerDefineProperty(this, "isForbidden", _descriptor15, this);
    }

    get searchProps() {
      return ['id', 'name', 'datacenter'];
    }

    get optionsClass() {
      const classes = Array.from(new Set(this.nodes.mapBy('nodeClass'))).compact().without(''); // Remove any invalid node classes from the query param/selection

      (0, _runloop.scheduleOnce)('actions', () => {
        // eslint-disable-next-line ember/no-side-effects
        this.set('qpClass', (0, _qpSerialize.serialize)((0, _lodash.default)(classes, this.selectionClass)));
      });
      return classes.sort().map(dc => ({
        key: dc,
        label: dc
      }));
    }

    get optionsState() {
      return [{
        key: 'initializing',
        label: 'Initializing'
      }, {
        key: 'ready',
        label: 'Ready'
      }, {
        key: 'down',
        label: 'Down'
      }, {
        key: 'ineligible',
        label: 'Ineligible'
      }, {
        key: 'draining',
        label: 'Draining'
      }, {
        key: 'disconnected',
        label: 'Disconnected'
      }];
    }

    get optionsDatacenter() {
      const datacenters = Array.from(new Set(this.nodes.mapBy('datacenter'))).compact(); // Remove any invalid datacenters from the query param/selection

      (0, _runloop.scheduleOnce)('actions', () => {
        // eslint-disable-next-line ember/no-side-effects
        this.set('qpDatacenter', (0, _qpSerialize.serialize)((0, _lodash.default)(datacenters, this.selectionDatacenter)));
      });
      return datacenters.sort().map(dc => ({
        key: dc,
        label: dc
      }));
    }

    get optionsVersion() {
      const versions = Array.from(new Set(this.nodes.mapBy('version'))).compact(); // Remove any invalid versions from the query param/selection

      (0, _runloop.scheduleOnce)('actions', () => {
        // eslint-disable-next-line ember/no-side-effects
        this.set('qpVersion', (0, _qpSerialize.serialize)((0, _lodash.default)(versions, this.selectionVersion)));
      });
      return versions.sort().map(v => ({
        key: v,
        label: v
      }));
    }

    get optionsVolume() {
      const flatten = (acc, val) => acc.concat(val.toArray());

      const allVolumes = this.nodes.mapBy('hostVolumes').reduce(flatten, []);
      const volumes = Array.from(new Set(allVolumes.mapBy('name')));
      (0, _runloop.scheduleOnce)('actions', () => {
        // eslint-disable-next-line ember/no-side-effects
        this.set('qpVolume', (0, _qpSerialize.serialize)((0, _lodash.default)(volumes, this.selectionVolume)));
      });
      return volumes.sort().map(volume => ({
        key: volume,
        label: volume
      }));
    }

    get optionsNodePool() {
      const availableNodePools = this.model.nodePools.filter(p => p.name !== 'all');
      (0, _runloop.scheduleOnce)('actions', () => {
        // eslint-disable-next-line ember/no-side-effects
        this.set('qpNodePool', (0, _qpSerialize.serialize)((0, _lodash.default)(availableNodePools.map(_ref => {
          let {
            name
          } = _ref;
          return name;
        }), this.selectionNodePool)));
      });
      return availableNodePools.map(nodePool => ({
        key: nodePool.name,
        label: nodePool.name
      }));
    }

    get filteredNodes() {
      const {
        selectionClass: classes,
        selectionState: states,
        selectionDatacenter: datacenters,
        selectionNodePool: nodePools,
        selectionVersion: versions,
        selectionVolume: volumes
      } = this;
      const onlyIneligible = states.includes('ineligible');
      const onlyDraining = states.includes('draining'); // states is a composite of node status and other node states

      const statuses = states.without('ineligible').without('draining');
      return this.nodes.filter(node => {
        if (classes.length && !classes.includes(node.get('nodeClass'))) return false;
        if (statuses.length && !statuses.includes(node.get('status'))) return false;
        if (datacenters.length && !datacenters.includes(node.get('datacenter'))) return false;
        if (versions.length && !versions.includes(node.get('version'))) return false;
        if (volumes.length && !node.hostVolumes.find(volume => volumes.includes(volume.name))) return false;

        if (nodePools.length && !nodePools.includes(node.get('nodePool'))) {
          return false;
        }

        if (onlyIneligible && node.get('isEligible')) return false;
        if (onlyDraining && !node.get('isDraining')) return false;
        return true;
      });
    }

    setFacetQueryParam(queryParam, selection) {
      this.set(queryParam, (0, _qpSerialize.serialize)(selection));
    }

    gotoNode(node) {
      this.transitionToRoute('clients.client', node);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "userSettings", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "clientsController", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, "nodes", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, "agents", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor5 = _applyDecoratedDescriptor(_class2.prototype, "pageSize", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "searchProps", [_object.computed], Object.getOwnPropertyDescriptor(_class2.prototype, "searchProps"), _class2.prototype), _descriptor6 = _applyDecoratedDescriptor(_class2.prototype, "selectionClass", [_dec5], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor7 = _applyDecoratedDescriptor(_class2.prototype, "selectionState", [_dec6], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor8 = _applyDecoratedDescriptor(_class2.prototype, "selectionDatacenter", [_dec7], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor9 = _applyDecoratedDescriptor(_class2.prototype, "selectionVersion", [_dec8], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor10 = _applyDecoratedDescriptor(_class2.prototype, "selectionVolume", [_dec9], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor11 = _applyDecoratedDescriptor(_class2.prototype, "selectionNodePool", [_dec10], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "optionsClass", [_dec11], Object.getOwnPropertyDescriptor(_class2.prototype, "optionsClass"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "optionsState", [_object.computed], Object.getOwnPropertyDescriptor(_class2.prototype, "optionsState"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "optionsDatacenter", [_dec12], Object.getOwnPropertyDescriptor(_class2.prototype, "optionsDatacenter"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "optionsVersion", [_dec13], Object.getOwnPropertyDescriptor(_class2.prototype, "optionsVersion"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "optionsVolume", [_dec14], Object.getOwnPropertyDescriptor(_class2.prototype, "optionsVolume"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "optionsNodePool", [_dec15], Object.getOwnPropertyDescriptor(_class2.prototype, "optionsNodePool"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "filteredNodes", [_dec16], Object.getOwnPropertyDescriptor(_class2.prototype, "filteredNodes"), _class2.prototype), _descriptor12 = _applyDecoratedDescriptor(_class2.prototype, "listToSort", [_dec17], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor13 = _applyDecoratedDescriptor(_class2.prototype, "listToSearch", [_dec18], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor14 = _applyDecoratedDescriptor(_class2.prototype, "sortedNodes", [_dec19], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor15 = _applyDecoratedDescriptor(_class2.prototype, "isForbidden", [_dec20], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "gotoNode", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "gotoNode"), _class2.prototype)), _class2)) || _class);
  _exports.default = IndexController;
});
;define("nomad-ui/controllers/csi/plugins", ["exports", "@ember/controller"], function (_exports, _controller) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/controller"eaimeta@70e063a35619d71f

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  class PluginsController extends _controller.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "isForbidden", false);
    }

  }

  _exports.default = PluginsController;

  window.__CLASSIC_OWN_CLASSES__.set(PluginsController, true);
});
;define("nomad-ui/controllers/csi/plugins/index", ["exports", "@ember/service", "@ember/object", "@ember/object/computed", "@ember/controller", "nomad-ui/mixins/sortable-factory", "nomad-ui/mixins/searchable", "nomad-ui/helpers/lazy-click"], function (_exports, _service, _object, _computed, _controller, _sortableFactory, _searchable, _lazyClick) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7;

  0; //eaimeta@70e063a35619d71f0,"@ember/service",0,"@ember/object",0,"@ember/object/computed",0,"@ember/controller",0,"nomad-ui/mixins/sortable-factory",0,"nomad-ui/mixins/searchable",0,"nomad-ui/helpers/lazy-click",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let IndexController = (_dec = (0, _controller.inject)('csi/plugins'), _dec2 = (0, _computed.alias)('pluginsController.isForbidden'), _dec3 = (0, _computed.readOnly)('userSettings.pageSize'), _dec4 = (0, _computed.alias)('model'), _dec5 = (0, _computed.alias)('listSorted'), _dec6 = (0, _computed.alias)('listSearched'), classic(_class = (_class2 = class IndexController extends _controller.default.extend((0, _sortableFactory.default)(['plainId', 'controllersHealthyProportion', 'nodesHealthyProportion', 'provider']), _searchable.default) {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "userSettings", _descriptor, this);

      _initializerDefineProperty(this, "pluginsController", _descriptor2, this);

      _initializerDefineProperty(this, "isForbidden", _descriptor3, this);

      _defineProperty(this, "queryParams", [{
        currentPage: 'page'
      }, {
        searchTerm: 'search'
      }, {
        sortProperty: 'sort'
      }, {
        sortDescending: 'desc'
      }]);

      _defineProperty(this, "currentPage", 1);

      _initializerDefineProperty(this, "pageSize", _descriptor4, this);

      _defineProperty(this, "sortProperty", 'id');

      _defineProperty(this, "sortDescending", false);

      _initializerDefineProperty(this, "listToSort", _descriptor5, this);

      _initializerDefineProperty(this, "listToSearch", _descriptor6, this);

      _initializerDefineProperty(this, "sortedPlugins", _descriptor7, this);
    }

    get searchProps() {
      return ['id'];
    }

    get fuzzySearchProps() {
      return ['id'];
    }

    gotoPlugin(plugin, event) {
      (0, _lazyClick.lazyClick)([() => this.transitionToRoute('csi.plugins.plugin', plugin.plainId), event]);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "userSettings", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "pluginsController", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, "isForbidden", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, "pageSize", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "searchProps", [_object.computed], Object.getOwnPropertyDescriptor(_class2.prototype, "searchProps"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "fuzzySearchProps", [_object.computed], Object.getOwnPropertyDescriptor(_class2.prototype, "fuzzySearchProps"), _class2.prototype), _descriptor5 = _applyDecoratedDescriptor(_class2.prototype, "listToSort", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor6 = _applyDecoratedDescriptor(_class2.prototype, "listToSearch", [_dec5], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor7 = _applyDecoratedDescriptor(_class2.prototype, "sortedPlugins", [_dec6], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "gotoPlugin", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "gotoPlugin"), _class2.prototype)), _class2)) || _class);
  _exports.default = IndexController;
});
;define("nomad-ui/controllers/csi/plugins/plugin", ["exports", "@ember/controller"], function (_exports, _controller) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/controller"eaimeta@70e063a35619d71f

  class CsiPluginsPluginController extends _controller.default {
    get plugin() {
      return this.model;
    }

    get breadcrumbs() {
      const {
        plainId
      } = this.plugin;
      return [{
        label: 'Plugins',
        args: ['csi.plugins']
      }, {
        label: plainId,
        args: ['csi.plugins.plugin', plainId]
      }];
    }

  }

  _exports.default = CsiPluginsPluginController;

  window.__CLASSIC_OWN_CLASSES__.set(CsiPluginsPluginController, true);
});
;define("nomad-ui/controllers/csi/plugins/plugin/allocations", ["exports", "@ember/controller", "@ember/service", "@ember/object", "@ember/object/computed", "nomad-ui/mixins/sortable-factory", "nomad-ui/helpers/lazy-click", "nomad-ui/utils/qp-serialize"], function (_exports, _controller, _service, _object, _computed, _sortableFactory, _lazyClick, _qpSerialize) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6;

  0; //eaimeta@70e063a35619d71f0,"@ember/controller",0,"@ember/service",0,"@ember/object",0,"@ember/object/computed",0,"nomad-ui/mixins/sortable-factory",0,"nomad-ui/helpers/lazy-click",0,"nomad-ui/utils/qp-serialize",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let AllocationsController = (_dec = (0, _computed.readOnly)('userSettings.pageSize'), _dec2 = (0, _qpSerialize.deserializedQueryParam)('qpType'), _dec3 = (0, _qpSerialize.deserializedQueryParam)('qpHealth'), _dec4 = (0, _object.computed)('model.{controllers.[],nodes.[]}'), _dec5 = (0, _object.computed)('combinedAllocations.[]', 'model.{controllers.[],nodes.[]}', 'selectionType', 'selectionHealth'), _dec6 = (0, _computed.alias)('filteredAllocations'), _dec7 = (0, _computed.alias)('listSorted'), classic(_class = (_class2 = class AllocationsController extends _controller.default.extend((0, _sortableFactory.default)(['updateTime', 'healthy'])) {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "userSettings", _descriptor, this);

      _defineProperty(this, "queryParams", [{
        currentPage: 'page'
      }, {
        sortProperty: 'sort'
      }, {
        sortDescending: 'desc'
      }, {
        qpHealth: 'healthy'
      }, {
        qpType: 'type'
      }]);

      _defineProperty(this, "currentPage", 1);

      _initializerDefineProperty(this, "pageSize", _descriptor2, this);

      _defineProperty(this, "sortProperty", 'updateTime');

      _defineProperty(this, "sortDescending", false);

      _defineProperty(this, "qpType", '');

      _defineProperty(this, "qpHealth", '');

      _initializerDefineProperty(this, "selectionType", _descriptor3, this);

      _initializerDefineProperty(this, "selectionHealth", _descriptor4, this);

      _initializerDefineProperty(this, "listToSort", _descriptor5, this);

      _initializerDefineProperty(this, "sortedAllocations", _descriptor6, this);
    }

    get optionsType() {
      return [{
        key: 'controller',
        label: 'Controller'
      }, {
        key: 'node',
        label: 'Node'
      }];
    }

    get optionsHealth() {
      return [{
        key: 'true',
        label: 'Healthy'
      }, {
        key: 'false',
        label: 'Unhealthy'
      }];
    }

    get combinedAllocations() {
      return this.model.controllers.toArray().concat(this.model.nodes.toArray());
    }

    get filteredAllocations() {
      const {
        selectionType: types,
        selectionHealth: healths
      } = this; // Instead of filtering the combined list, revert back to one of the two
      // pre-existing lists.

      let listToFilter = this.combinedAllocations;

      if (types.length === 1 && types[0] === 'controller') {
        listToFilter = this.model.controllers;
      } else if (types.length === 1 && types[0] === 'node') {
        listToFilter = this.model.nodes;
      }

      if (healths.length === 1 && healths[0] === 'true') return listToFilter.filterBy('healthy');
      if (healths.length === 1 && healths[0] === 'false') return listToFilter.filterBy('healthy', false);
      return listToFilter;
    }

    resetPagination() {
      if (this.currentPage != null) {
        this.set('currentPage', 1);
      }
    }

    setFacetQueryParam(queryParam, selection) {
      this.set(queryParam, (0, _qpSerialize.serialize)(selection));
    }

    gotoAllocation(allocation, event) {
      (0, _lazyClick.lazyClick)([() => this.transitionToRoute('allocations.allocation', allocation.id), event]);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "userSettings", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "pageSize", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, "selectionType", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, "selectionHealth", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "optionsType", [_object.computed], Object.getOwnPropertyDescriptor(_class2.prototype, "optionsType"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "optionsHealth", [_object.computed], Object.getOwnPropertyDescriptor(_class2.prototype, "optionsHealth"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "combinedAllocations", [_dec4], Object.getOwnPropertyDescriptor(_class2.prototype, "combinedAllocations"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "filteredAllocations", [_dec5], Object.getOwnPropertyDescriptor(_class2.prototype, "filteredAllocations"), _class2.prototype), _descriptor5 = _applyDecoratedDescriptor(_class2.prototype, "listToSort", [_dec6], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor6 = _applyDecoratedDescriptor(_class2.prototype, "sortedAllocations", [_dec7], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "gotoAllocation", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "gotoAllocation"), _class2.prototype)), _class2)) || _class);
  _exports.default = AllocationsController;
});
;define("nomad-ui/controllers/csi/plugins/plugin/index", ["exports", "@ember/controller", "@ember/object"], function (_exports, _controller, _object) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _class;

  0; //eaimeta@70e063a35619d71f0,"@ember/controller",0,"@ember/object"eaimeta@70e063a35619d71f

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  let IndexController = (_dec = (0, _object.computed)('model.controllers.@each.updateTime'), _dec2 = (0, _object.computed)('model.nodes.@each.updateTime'), (_class = class IndexController extends _controller.default {
    get sortedControllers() {
      return this.model.controllers.sortBy('updateTime').reverse();
    }

    get sortedNodes() {
      return this.model.nodes.sortBy('updateTime').reverse();
    }

    gotoAllocation(allocation) {
      this.transitionToRoute('allocations.allocation', allocation.id);
    }

  }, (_applyDecoratedDescriptor(_class.prototype, "sortedControllers", [_dec], Object.getOwnPropertyDescriptor(_class.prototype, "sortedControllers"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "sortedNodes", [_dec2], Object.getOwnPropertyDescriptor(_class.prototype, "sortedNodes"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "gotoAllocation", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "gotoAllocation"), _class.prototype)), _class));
  _exports.default = IndexController;
});
;define("nomad-ui/controllers/csi/volumes", ["exports", "@ember/controller"], function (_exports, _controller) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/controller"eaimeta@70e063a35619d71f

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  class VolumesController extends _controller.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "isForbidden", false);
    }

  }

  _exports.default = VolumesController;

  window.__CLASSIC_OWN_CLASSES__.set(VolumesController, true);
});
;define("nomad-ui/controllers/csi/volumes/index", ["exports", "@ember/service", "@ember/object", "@ember/object/computed", "@ember/runloop", "@ember/controller", "nomad-ui/mixins/sortable-factory", "nomad-ui/mixins/searchable", "nomad-ui/helpers/lazy-click", "nomad-ui/utils/qp-serialize"], function (_exports, _service, _object, _computed, _runloop, _controller, _sortableFactory, _searchable, _lazyClick, _qpSerialize) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8, _descriptor9;

  0; //eaimeta@70e063a35619d71f0,"@ember/service",0,"@ember/object",0,"@ember/object/computed",0,"@ember/runloop",0,"@ember/controller",0,"nomad-ui/mixins/sortable-factory",0,"nomad-ui/mixins/searchable",0,"nomad-ui/helpers/lazy-click",0,"nomad-ui/utils/qp-serialize",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let IndexController = (_dec = (0, _controller.inject)('csi/volumes'), _dec2 = (0, _computed.alias)('volumesController.isForbidden'), _dec3 = (0, _computed.readOnly)('userSettings.pageSize'), _dec4 = (0, _object.computed)('qpNamespace', 'model.namespaces.[]'), _dec5 = (0, _object.computed)('model.volumes.@each.parent', 'system.{namespaces.length}'), _dec6 = (0, _computed.alias)('visibleVolumes'), _dec7 = (0, _computed.alias)('listSorted'), _dec8 = (0, _computed.alias)('listSearched'), classic(_class = (_class2 = class IndexController extends _controller.default.extend((0, _sortableFactory.default)(['id', 'schedulable', 'controllersHealthyProportion', 'nodesHealthyProportion', 'provider']), _searchable.default) {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "system", _descriptor, this);

      _initializerDefineProperty(this, "userSettings", _descriptor2, this);

      _initializerDefineProperty(this, "keyboard", _descriptor3, this);

      _initializerDefineProperty(this, "volumesController", _descriptor4, this);

      _initializerDefineProperty(this, "isForbidden", _descriptor5, this);

      _defineProperty(this, "queryParams", [{
        currentPage: 'page'
      }, {
        searchTerm: 'search'
      }, {
        sortProperty: 'sort'
      }, {
        sortDescending: 'desc'
      }, {
        qpNamespace: 'namespace'
      }]);

      _defineProperty(this, "currentPage", 1);

      _initializerDefineProperty(this, "pageSize", _descriptor6, this);

      _defineProperty(this, "sortProperty", 'id');

      _defineProperty(this, "sortDescending", false);

      _defineProperty(this, "fuzzySearchEnabled", true);

      _initializerDefineProperty(this, "listToSort", _descriptor7, this);

      _initializerDefineProperty(this, "listToSearch", _descriptor8, this);

      _initializerDefineProperty(this, "sortedVolumes", _descriptor9, this);
    }

    get searchProps() {
      return ['name'];
    }

    get fuzzySearchProps() {
      return ['name'];
    }

    get optionsNamespaces() {
      const availableNamespaces = this.model.namespaces.map(namespace => ({
        key: namespace.name,
        label: namespace.name
      }));
      availableNamespaces.unshift({
        key: '*',
        label: 'All (*)'
      }); // Unset the namespace selection if it was server-side deleted

      if (!availableNamespaces.mapBy('key').includes(this.qpNamespace)) {
        // eslint-disable-next-line ember/no-incorrect-calls-with-inline-anonymous-functions
        (0, _runloop.scheduleOnce)('actions', () => {
          // eslint-disable-next-line ember/no-side-effects
          this.set('qpNamespace', '*');
        });
      }

      return availableNamespaces;
    }
    /**
      Visible volumes are those that match the selected namespace
    */


    get visibleVolumes() {
      if (!this.model.volumes) return [];
      return this.model.volumes.compact();
    }

    setFacetQueryParam(queryParam, selection) {
      this.set(queryParam, (0, _qpSerialize.serialize)(selection));
    }

    gotoVolume(volume, event) {
      (0, _lazyClick.lazyClick)([() => this.transitionToRoute('csi.volumes.volume', volume.get('idWithNamespace')), event]);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "system", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "userSettings", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, "keyboard", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, "volumesController", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor5 = _applyDecoratedDescriptor(_class2.prototype, "isForbidden", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor6 = _applyDecoratedDescriptor(_class2.prototype, "pageSize", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "searchProps", [_object.computed], Object.getOwnPropertyDescriptor(_class2.prototype, "searchProps"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "fuzzySearchProps", [_object.computed], Object.getOwnPropertyDescriptor(_class2.prototype, "fuzzySearchProps"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "optionsNamespaces", [_dec4], Object.getOwnPropertyDescriptor(_class2.prototype, "optionsNamespaces"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "visibleVolumes", [_dec5], Object.getOwnPropertyDescriptor(_class2.prototype, "visibleVolumes"), _class2.prototype), _descriptor7 = _applyDecoratedDescriptor(_class2.prototype, "listToSort", [_dec6], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor8 = _applyDecoratedDescriptor(_class2.prototype, "listToSearch", [_dec7], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor9 = _applyDecoratedDescriptor(_class2.prototype, "sortedVolumes", [_dec8], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "gotoVolume", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "gotoVolume"), _class2.prototype)), _class2)) || _class);
  _exports.default = IndexController;
});
;define("nomad-ui/controllers/csi/volumes/volume", ["exports", "@ember/controller", "@ember/service", "@ember/object", "nomad-ui/utils/classes/query-params"], function (_exports, _controller, _service, _object, _queryParams) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _class, _descriptor;

  0; //eaimeta@70e063a35619d71f0,"@ember/controller",0,"@ember/service",0,"@ember/object",0,"nomad-ui/utils/classes/query-params"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let VolumeController = (_dec = (0, _object.computed)('model.readAllocations.@each.modifyIndex'), _dec2 = (0, _object.computed)('model.writeAllocations.@each.modifyIndex'), (_class = class VolumeController extends _controller.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "system", _descriptor, this);

      _defineProperty(this, "queryParams", [{
        volumeNamespace: 'namespace'
      }]);

      _defineProperty(this, "volumeNamespace", 'default');
    }

    get volume() {
      return this.model;
    }

    get breadcrumbs() {
      const volume = this.volume;
      return [{
        label: 'Volumes',
        args: ['csi.volumes', (0, _queryParams.qpBuilder)({
          volumeNamespace: volume.get('namespace.name') || 'default'
        })]
      }, {
        label: volume.name,
        args: ['csi.volumes.volume', volume.plainId, (0, _queryParams.qpBuilder)({
          volumeNamespace: volume.get('namespace.name') || 'default'
        })]
      }];
    }

    get sortedReadAllocations() {
      return this.model.readAllocations.sortBy('modifyIndex').reverse();
    }

    get sortedWriteAllocations() {
      return this.model.writeAllocations.sortBy('modifyIndex').reverse();
    }

    gotoAllocation(allocation) {
      this.transitionToRoute('allocations.allocation', allocation.id);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "system", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class.prototype, "sortedReadAllocations", [_dec], Object.getOwnPropertyDescriptor(_class.prototype, "sortedReadAllocations"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "sortedWriteAllocations", [_dec2], Object.getOwnPropertyDescriptor(_class.prototype, "sortedWriteAllocations"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "gotoAllocation", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "gotoAllocation"), _class.prototype)), _class));
  _exports.default = VolumeController;
});
;define("nomad-ui/controllers/evaluations/index", ["exports", "@ember/application", "@ember/controller", "@ember/object", "@glimmer/tracking", "@ember/runloop", "@ember/service", "ember-statecharts", "ember-usable", "nomad-ui/machines/evaluations"], function (_exports, _application, _controller, _object, _tracking, _runloop, _service, _emberStatecharts, _emberUsable, _evaluations) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8, _descriptor9, _descriptor10, _descriptor11, _descriptor12;

  0; //eaimeta@70e063a35619d71f0,"@ember/application",0,"@ember/controller",0,"@ember/object",0,"@glimmer/tracking",0,"@ember/runloop",0,"@ember/service",0,"ember-statecharts",0,"ember-usable",0,"nomad-ui/machines/evaluations"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const ALL_NAMESPACE_WILDCARD = '*';
  let EvaluationsController = (_class = class EvaluationsController extends _controller.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "store", _descriptor, this);

      _initializerDefineProperty(this, "userSettings", _descriptor2, this);

      _initializerDefineProperty(this, "statechart", _descriptor3, this);

      _defineProperty(this, "queryParams", ['nextToken', 'currentEval', 'pageSize', 'status', {
        qpNamespace: 'namespace'
      }, 'type', 'searchTerm']);

      _initializerDefineProperty(this, "currentEval", _descriptor4, this);

      _defineProperty(this, "filters", ['status', 'qpNamespace', 'type', 'triggeredBy', 'searchTerm']);

      _initializerDefineProperty(this, "pageSize", _descriptor5, this);

      _initializerDefineProperty(this, "nextToken", _descriptor6, this);

      _initializerDefineProperty(this, "previousTokens", _descriptor7, this);

      _initializerDefineProperty(this, "status", _descriptor8, this);

      _initializerDefineProperty(this, "triggeredBy", _descriptor9, this);

      _initializerDefineProperty(this, "qpNamespace", _descriptor10, this);

      _initializerDefineProperty(this, "type", _descriptor11, this);

      _initializerDefineProperty(this, "searchTerm", _descriptor12, this);
    }

    _sidebarIsOpen() {
      return !!this.currentEval;
    }

    async loadEvaluation(context, _ref) {
      let {
        evaluation
      } = _ref;
      let evaluationId;

      if (evaluation !== null && evaluation !== void 0 && evaluation.id) {
        evaluationId = evaluation.id;
      } else {
        evaluationId = this.currentEval;
      }

      return this.store.findRecord('evaluation', evaluationId, {
        reload: true,
        adapterOptions: {
          related: true
        }
      });
    }

    async handleEvaluationClick(evaluation, e) {
      if (e instanceof MouseEvent || e instanceof KeyboardEvent && (e.code === 'Enter' || e.code === 'Space') || !e) {
        this.statechart.send('LOAD_EVALUATION', {
          evaluation
        });
      }
    }

    notifyEvalChange(_ref2) {
      let [evaluation] = _ref2;
      (0, _runloop.schedule)('actions', this, () => {
        this.statechart.send('CHANGE_EVAL', {
          evaluation
        });
      });
    }

    updateEvaluationQueryParameter(context, _ref3) {
      let {
        evaluation
      } = _ref3;
      this.currentEval = evaluation.id;
    }

    removeCurrentEvaluationQueryParameter() {
      this.currentEval = null;
    }

    get shouldDisableNext() {
      var _this$model$meta;

      return !((_this$model$meta = this.model.meta) !== null && _this$model$meta !== void 0 && _this$model$meta.nextToken);
    }

    get shouldDisablePrev() {
      return !this.previousTokens.length;
    }

    get optionsEvaluationsStatus() {
      return [{
        key: null,
        label: 'All'
      }, {
        key: 'blocked',
        label: 'Blocked'
      }, {
        key: 'pending',
        label: 'Pending'
      }, {
        key: 'complete',
        label: 'Complete'
      }, {
        key: 'failed',
        label: 'Failed'
      }, {
        key: 'canceled',
        label: 'Canceled'
      }];
    }

    get optionsTriggeredBy() {
      return [{
        key: null,
        label: 'All'
      }, {
        key: 'job-register',
        label: 'Job Register'
      }, {
        key: 'job-deregister',
        label: 'Job Deregister'
      }, {
        key: 'periodic-job',
        label: 'Periodic Job'
      }, {
        key: 'node-drain',
        label: 'Node Drain'
      }, {
        key: 'node-update',
        label: 'Node Update'
      }, {
        key: 'alloc-stop',
        label: 'Allocation Stop'
      }, {
        key: 'scheduled',
        label: 'Scheduled'
      }, {
        key: 'rolling-update',
        label: 'Rolling Update'
      }, {
        key: 'deployment-watcher',
        label: 'Deployment Watcher'
      }, {
        key: 'failed-follow-up',
        label: 'Failed Follow Up'
      }, {
        key: 'max-disconnect-timeout',
        label: 'Max Disconnect Timeout'
      }, {
        key: 'max-plan-attempts',
        label: 'Max Plan Attempts'
      }, {
        key: 'alloc-failure',
        label: 'Allocation Failure'
      }, {
        key: 'queued-allocs',
        label: 'Queued Allocations'
      }, {
        key: 'preemption',
        label: 'Preemption'
      }, {
        key: 'job-scaling',
        label: 'Job Scalling'
      }];
    }

    get optionsNamespaces() {
      const namespaces = this.store.peekAll('namespace').map(namespace => ({
        key: namespace.name,
        label: namespace.name
      })); // Create default namespace selection

      namespaces.unshift({
        key: ALL_NAMESPACE_WILDCARD,
        label: 'All (*)'
      });
      return namespaces;
    }

    get optionsType() {
      return [{
        key: null,
        label: 'All'
      }, {
        key: 'client',
        label: 'Client'
      }, {
        key: 'no client',
        label: 'No Client'
      }];
    }

    get hasFiltersApplied() {
      return this.filters.reduce((result, filter) => {
        // By default we always set qpNamespace to the '*' wildcard
        // We need to ensure that if namespace is the only filter, that we send the correct error message to the user
        if (this[filter] && filter !== 'qpNamespace') {
          result = true;
        }

        return result;
      }, false);
    }

    get currentFilters() {
      const result = [];

      for (const filter of this.filters) {
        const isNamespaceWildcard = filter === 'qpNamespace' && this[filter] === '*';

        if (this[filter] && !isNamespaceWildcard) {
          result.push({
            [filter]: this[filter]
          });
        }
      }

      return result;
    }

    get noMatchText() {
      let text = '';
      const cleanNames = {
        status: 'Status',
        qpNamespace: 'Namespace',
        type: 'Type',
        triggeredBy: 'Triggered By',
        searchTerm: 'Search Term'
      };

      if (this.hasFiltersApplied) {
        for (let i = 0; i < this.currentFilters.length; i++) {
          const filter = this.currentFilters[i];
          const [name] = Object.keys(filter);
          const filterName = cleanNames[name];
          const filterValue = filter[name];
          if (this.currentFilters.length === 1) return `${filterName}: ${filterValue}.`;
          if (i !== 0 && i !== this.currentFilters.length - 1) text = text.concat(`, ${filterName}: ${filterValue}`);
          if (i === 0) text = text.concat(`${filterName}: ${filterValue}`);

          if (i === this.currentFilters.length - 1) {
            return text.concat(`, ${filterName}: ${filterValue}.`);
          }
        }
      }

      return text;
    }

    onChange(newPageSize) {
      this.pageSize = newPageSize;
    }

    onNext(nextToken) {
      this.previousTokens = [...this.previousTokens, this.nextToken];
      this.nextToken = nextToken;
    }

    onPrev() {
      const lastToken = this.previousTokens.pop();
      this.previousTokens = [...this.previousTokens];
      this.nextToken = lastToken;
    }

    refresh() {
      const isDefaultParams = this.nextToken === null && this.status === null;

      if (isDefaultParams) {
        (0, _application.getOwner)(this).lookup('route:evaluations.index').refresh();
        return;
      }

      this._resetTokens();

      this.status = null;
      this.pageSize = this.userSettings.pageSize;
    }

    setQueryParam(qp, selection) {
      this._resetTokens();

      this[qp] = selection;
    }

    toggle() {
      this._resetTokens();

      this.shouldOnlyDisplayClientEvals = !this.shouldOnlyDisplayClientEvals;
    }

    _resetTokens() {
      this.nextToken = null;
      this.previousTokens = [];
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "store", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "userSettings", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "statechart", [_emberUsable.use], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return (0, _emberStatecharts.useMachine)(_evaluations.default).withConfig({
        services: {
          loadEvaluation: this.loadEvaluation
        },
        actions: {
          updateEvaluationQueryParameter: this.updateEvaluationQueryParameter,
          removeCurrentEvaluationQueryParameter: this.removeCurrentEvaluationQueryParameter
        },
        guards: {
          sidebarIsOpen: this._sidebarIsOpen
        }
      });
    }
  }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, "currentEval", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return null;
    }
  }), _applyDecoratedDescriptor(_class.prototype, "_sidebarIsOpen", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "_sidebarIsOpen"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "loadEvaluation", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "loadEvaluation"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "handleEvaluationClick", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "handleEvaluationClick"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "notifyEvalChange", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "notifyEvalChange"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "updateEvaluationQueryParameter", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "updateEvaluationQueryParameter"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "removeCurrentEvaluationQueryParameter", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "removeCurrentEvaluationQueryParameter"), _class.prototype), _descriptor5 = _applyDecoratedDescriptor(_class.prototype, "pageSize", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return this.userSettings.pageSize;
    }
  }), _descriptor6 = _applyDecoratedDescriptor(_class.prototype, "nextToken", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return null;
    }
  }), _descriptor7 = _applyDecoratedDescriptor(_class.prototype, "previousTokens", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return [];
    }
  }), _descriptor8 = _applyDecoratedDescriptor(_class.prototype, "status", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return null;
    }
  }), _descriptor9 = _applyDecoratedDescriptor(_class.prototype, "triggeredBy", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return null;
    }
  }), _descriptor10 = _applyDecoratedDescriptor(_class.prototype, "qpNamespace", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return ALL_NAMESPACE_WILDCARD;
    }
  }), _descriptor11 = _applyDecoratedDescriptor(_class.prototype, "type", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return null;
    }
  }), _descriptor12 = _applyDecoratedDescriptor(_class.prototype, "searchTerm", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return null;
    }
  }), _applyDecoratedDescriptor(_class.prototype, "onChange", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "onChange"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "onNext", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "onNext"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "onPrev", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "onPrev"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "refresh", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "refresh"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "setQueryParam", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "setQueryParam"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "toggle", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "toggle"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "_resetTokens", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "_resetTokens"), _class.prototype)), _class);
  _exports.default = EvaluationsController;
});
;define("nomad-ui/controllers/exec", ["exports", "@ember/service", "@ember/controller", "@ember/object", "@ember/object/computed", "nomad-ui/utils/escape-task-name", "nomad-ui/utils/classes/exec-command-editor-xterm-adapter", "nomad-ui/utils/classes/exec-socket-xterm-adapter", "nomad-ui/utils/properties/local-storage"], function (_exports, _service, _controller, _object, _computed, _escapeTaskName, _execCommandEditorXtermAdapter, _execSocketXtermAdapter, _localStorage) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8;

  0; //eaimeta@70e063a35619d71f0,"@ember/service",0,"@ember/controller",0,"@ember/object",0,"@ember/object/computed",0,"nomad-ui/utils/escape-task-name",0,"nomad-ui/utils/classes/exec-command-editor-xterm-adapter",0,"nomad-ui/utils/classes/exec-socket-xterm-adapter",0,"nomad-ui/utils/properties/local-storage",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;
  const ANSI_UI_GRAY_400 = '\x1b[38;2;142;150;163m';
  const ANSI_WHITE = '\x1b[0m';
  let ExecController = (_dec = (0, _localStorage.default)('nomadExecCommand', '/bin/bash'), _dec2 = (0, _object.computed)('model.allocations.@each.clientStatus'), _dec3 = (0, _computed.mapBy)('pendingAndRunningAllocations', 'taskGroup'), _dec4 = (0, _computed.uniq)('pendingAndRunningTaskGroups'), _dec5 = (0, _computed.sort)('uniquePendingAndRunningTaskGroups', 'taskGroupSorting'), _dec6 = (0, _computed.alias)('model.allocations'), _dec7 = (0, _object.computed)('allocations.{[],@each.isActive}', 'allocationShortId', 'taskName', 'taskGroupName', 'allocation', 'allocation.states.@each.{name,isRunning}'), classic(_class = (_class2 = class ExecController extends _controller.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "sockets", _descriptor, this);

      _initializerDefineProperty(this, "system", _descriptor2, this);

      _initializerDefineProperty(this, "token", _descriptor3, this);

      _defineProperty(this, "queryParams", ['allocation', 'namespace']);

      _initializerDefineProperty(this, "command", _descriptor4, this);

      _defineProperty(this, "socketOpen", false);

      _initializerDefineProperty(this, "pendingAndRunningTaskGroups", _descriptor5, this);

      _initializerDefineProperty(this, "uniquePendingAndRunningTaskGroups", _descriptor6, this);

      _defineProperty(this, "taskGroupSorting", ['name']);

      _initializerDefineProperty(this, "sortedTaskGroups", _descriptor7, this);

      _initializerDefineProperty(this, "allocations", _descriptor8, this);
    }

    get pendingAndRunningAllocations() {
      return this.model.allocations.filter(allocation => allocation.clientStatus === 'pending' || allocation.clientStatus === 'running');
    }

    setUpTerminal(Terminal) {
      this.terminal = new Terminal({
        fontFamily: 'monospace',
        fontWeight: '400'
      });
      window.execTerminal = this.terminal; // Issue to improve: https://github.com/hashicorp/nomad/issues/7457

      this.terminal.write(ANSI_UI_GRAY_400);

      if (this.sortedTaskGroups.length > 0) {
        this.terminal.writeln('Select a task to start your session.');
      } else {
        this.terminal.writeln(`There are no tasks running for this job.`);
      }
    }

    get taskState() {
      if (!this.allocations) {
        return false;
      }

      let allocation;

      if (this.allocationShortId) {
        allocation = this.allocations.findBy('shortId', this.allocationShortId);
      } else {
        allocation = this.allocations.find(allocation => allocation.states.filterBy('isActive').mapBy('name').includes(this.taskName));
      }

      if (allocation) {
        return allocation.states.find(state => state.name === this.taskName);
      }

      return undefined;
    }

    setTaskProperties(_ref) {
      let {
        allocationShortId,
        taskName,
        taskGroupName
      } = _ref;
      this.setProperties({
        allocationShortId,
        taskName,
        taskGroupName
      });

      if (this.taskState) {
        this.terminal.write(ANSI_UI_GRAY_400);
        this.terminal.writeln('');

        if (!allocationShortId) {
          this.terminal.writeln('Multiple instances of this task are running. The allocation below was selected by random draw.');
          this.terminal.writeln('');
        }

        this.terminal.writeln('Customize your command, then hit ‘return’ to run.');
        this.terminal.writeln('');
        this.terminal.write(`$ nomad alloc exec -i -t -task ${(0, _escapeTaskName.default)(taskName)} ${this.taskState.allocation.shortId} `);
        this.terminal.write(ANSI_WHITE);
        this.terminal.write(this.command);

        if (this.commandEditorAdapter) {
          this.commandEditorAdapter.destroy();
        }

        this.commandEditorAdapter = new _execCommandEditorXtermAdapter.default(this.terminal, this.openAndConnectSocket.bind(this), this.command);
      }
    }

    openAndConnectSocket(command) {
      if (this.taskState) {
        this.set('socketOpen', true);
        this.set('command', command);
        this.socket = this.sockets.getTaskStateSocket(this.taskState, command);
        new _execSocketXtermAdapter.default(this.terminal, this.socket, this.token.secret);
      } else {
        this.terminal.writeln(`Failed to open a socket because task ${this.taskName} is not active.`);
      }
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "sockets", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "system", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, "token", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, "command", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "pendingAndRunningAllocations", [_dec2], Object.getOwnPropertyDescriptor(_class2.prototype, "pendingAndRunningAllocations"), _class2.prototype), _descriptor5 = _applyDecoratedDescriptor(_class2.prototype, "pendingAndRunningTaskGroups", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor6 = _applyDecoratedDescriptor(_class2.prototype, "uniquePendingAndRunningTaskGroups", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor7 = _applyDecoratedDescriptor(_class2.prototype, "sortedTaskGroups", [_dec5], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor8 = _applyDecoratedDescriptor(_class2.prototype, "allocations", [_dec6], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "taskState", [_dec7], Object.getOwnPropertyDescriptor(_class2.prototype, "taskState"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "setTaskProperties", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "setTaskProperties"), _class2.prototype)), _class2)) || _class);
  _exports.default = ExecController;
});
;define("nomad-ui/controllers/jobs", ["exports", "@ember/controller"], function (_exports, _controller) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/controller"eaimeta@70e063a35619d71f

  // The WithNamespaceResetting Mixin uses Controller Injection and requires us to keep this controller around
  class JobsController extends _controller.default {}

  _exports.default = JobsController;

  window.__CLASSIC_OWN_CLASSES__.set(JobsController, true);
});
;define("nomad-ui/controllers/jobs/index", ["exports", "@ember/service", "@ember/object/computed", "@ember/controller", "@ember/object", "@ember/runloop", "lodash.intersection", "nomad-ui/mixins/sortable", "nomad-ui/mixins/searchable", "nomad-ui/utils/qp-serialize"], function (_exports, _service, _computed, _controller, _object, _runloop, _lodash, _sortable, _searchable, _qpSerialize) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _dec9, _dec10, _dec11, _dec12, _dec13, _dec14, _dec15, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8, _descriptor9, _descriptor10, _descriptor11;

  0; //eaimeta@70e063a35619d71f0,"@ember/service",0,"@ember/object/computed",0,"@ember/controller",0,"@ember/object",0,"@ember/runloop",0,"lodash.intersection",0,"nomad-ui/mixins/sortable",0,"nomad-ui/mixins/searchable",0,"nomad-ui/utils/qp-serialize",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;
  const DEFAULT_SORT_PROPERTY = 'modifyIndex';
  const DEFAULT_SORT_DESCENDING = true;
  let IndexController = (_dec = (0, _computed.readOnly)('userSettings.pageSize'), _dec2 = (0, _qpSerialize.deserializedQueryParam)('qpType'), _dec3 = (0, _qpSerialize.deserializedQueryParam)('qpStatus'), _dec4 = (0, _qpSerialize.deserializedQueryParam)('qpDatacenter'), _dec5 = (0, _qpSerialize.deserializedQueryParam)('qpPrefix'), _dec6 = (0, _qpSerialize.deserializedQueryParam)('qpNodePool'), _dec7 = (0, _object.computed)('selectionDatacenter', 'visibleJobs.[]'), _dec8 = (0, _object.computed)('selectionPrefix', 'visibleJobs.[]'), _dec9 = (0, _object.computed)('qpNamespace', 'model.namespaces.[]'), _dec10 = (0, _object.computed)('selectionNodePool', 'model.nodePools.[]'), _dec11 = (0, _object.computed)('model.jobs.@each.parent'), _dec12 = (0, _object.computed)('visibleJobs.[]', 'selectionType', 'selectionStatus', 'selectionDatacenter', 'selectionNodePool', 'selectionPrefix'), _dec13 = (0, _object.computed)('searchTerm', 'sortDescending', 'sortProperty'), _dec14 = (0, _computed.alias)('filteredJobs'), _dec15 = (0, _computed.alias)('listSearched'), classic(_class = (_class2 = class IndexController extends _controller.default.extend(_sortable.default, _searchable.default) {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "system", _descriptor, this);

      _initializerDefineProperty(this, "userSettings", _descriptor2, this);

      _initializerDefineProperty(this, "router", _descriptor3, this);

      _defineProperty(this, "isForbidden", false);

      _defineProperty(this, "queryParams", [{
        currentPage: 'page'
      }, {
        searchTerm: 'search'
      }, {
        sortProperty: 'sort'
      }, {
        sortDescending: 'desc'
      }, {
        qpType: 'type'
      }, {
        qpStatus: 'status'
      }, {
        qpDatacenter: 'dc'
      }, {
        qpPrefix: 'prefix'
      }, {
        qpNamespace: 'namespace'
      }, {
        qpNodePool: 'nodePool'
      }]);

      _defineProperty(this, "currentPage", 1);

      _initializerDefineProperty(this, "pageSize", _descriptor4, this);

      _defineProperty(this, "sortProperty", DEFAULT_SORT_PROPERTY);

      _defineProperty(this, "sortDescending", true);

      _defineProperty(this, "fuzzySearchEnabled", true);

      _defineProperty(this, "qpType", '');

      _defineProperty(this, "qpStatus", '');

      _defineProperty(this, "qpDatacenter", '');

      _defineProperty(this, "qpPrefix", '');

      _defineProperty(this, "qpNodePool", '');

      _initializerDefineProperty(this, "selectionType", _descriptor5, this);

      _initializerDefineProperty(this, "selectionStatus", _descriptor6, this);

      _initializerDefineProperty(this, "selectionDatacenter", _descriptor7, this);

      _initializerDefineProperty(this, "selectionPrefix", _descriptor8, this);

      _initializerDefineProperty(this, "selectionNodePool", _descriptor9, this);

      _initializerDefineProperty(this, "listToSearch", _descriptor10, this);

      _initializerDefineProperty(this, "listToSort", _descriptor11, this);

      _defineProperty(this, "isShowingDeploymentDetails", false);
    }

    get searchProps() {
      return ['id', 'name'];
    }

    get fuzzySearchProps() {
      return ['name'];
    }

    get optionsType() {
      return [{
        key: 'batch',
        label: 'Batch'
      }, {
        key: 'pack',
        label: 'Pack'
      }, {
        key: 'parameterized',
        label: 'Parameterized'
      }, {
        key: 'periodic',
        label: 'Periodic'
      }, {
        key: 'service',
        label: 'Service'
      }, {
        key: 'system',
        label: 'System'
      }, {
        key: 'sysbatch',
        label: 'System Batch'
      }];
    }

    get optionsStatus() {
      return [{
        key: 'pending',
        label: 'Pending'
      }, {
        key: 'running',
        label: 'Running'
      }, {
        key: 'dead',
        label: 'Dead'
      }];
    }

    get optionsDatacenter() {
      const flatten = (acc, val) => acc.concat(val);

      const allDatacenters = new Set(this.visibleJobs.mapBy('datacenters').reduce(flatten, [])); // Remove any invalid datacenters from the query param/selection

      const availableDatacenters = Array.from(allDatacenters).compact();
      (0, _runloop.scheduleOnce)('actions', () => {
        // eslint-disable-next-line ember/no-side-effects
        this.set('qpDatacenter', (0, _qpSerialize.serialize)((0, _lodash.default)(availableDatacenters, this.selectionDatacenter)));
      });
      return availableDatacenters.sort().map(dc => ({
        key: dc,
        label: dc
      }));
    }

    get optionsPrefix() {
      // A prefix is defined as the start of a job name up to the first - or .
      // ex: mktg-analytics -> mktg, ds.supermodel.classifier -> ds
      const hasPrefix = /.[-._]/; // Collect and count all the prefixes

      const allNames = this.visibleJobs.mapBy('name');
      const nameHistogram = allNames.reduce((hist, name) => {
        if (hasPrefix.test(name)) {
          const prefix = name.match(/(.+?)[-._]/)[1];
          hist[prefix] = hist[prefix] ? hist[prefix] + 1 : 1;
        }

        return hist;
      }, {}); // Convert to an array

      const nameTable = Object.keys(nameHistogram).map(key => ({
        prefix: key,
        count: nameHistogram[key]
      })); // Only consider prefixes that match more than one name

      const prefixes = nameTable.filter(name => name.count > 1); // Remove any invalid prefixes from the query param/selection

      const availablePrefixes = prefixes.mapBy('prefix');
      (0, _runloop.scheduleOnce)('actions', () => {
        // eslint-disable-next-line ember/no-side-effects
        this.set('qpPrefix', (0, _qpSerialize.serialize)((0, _lodash.default)(availablePrefixes, this.selectionPrefix)));
      }); // Sort, format, and include the count in the label

      return prefixes.sortBy('prefix').map(name => ({
        key: name.prefix,
        label: `${name.prefix} (${name.count})`
      }));
    }

    get optionsNamespaces() {
      const availableNamespaces = this.model.namespaces.map(namespace => ({
        key: namespace.name,
        label: namespace.name
      }));
      availableNamespaces.unshift({
        key: '*',
        label: 'All (*)'
      }); // Unset the namespace selection if it was server-side deleted

      if (!availableNamespaces.mapBy('key').includes(this.qpNamespace)) {
        (0, _runloop.scheduleOnce)('actions', () => {
          // eslint-disable-next-line ember/no-side-effects
          this.set('qpNamespace', '*');
        });
      }

      return availableNamespaces;
    }

    get optionsNodePool() {
      const availableNodePools = this.model.nodePools;
      (0, _runloop.scheduleOnce)('actions', () => {
        // eslint-disable-next-line ember/no-side-effects
        this.set('qpNodePool', (0, _qpSerialize.serialize)((0, _lodash.default)(availableNodePools.map(_ref => {
          let {
            name
          } = _ref;
          return name;
        }), this.selectionNodePool)));
      });
      return availableNodePools.map(nodePool => ({
        key: nodePool.name,
        label: nodePool.name
      }));
    }
    /**
      Visible jobs are those that match the selected namespace and aren't children
      of periodic or parameterized jobs.
    */


    get visibleJobs() {
      if (!this.model || !this.model.jobs) return [];
      return this.model.jobs.compact().filter(job => !job.isNew).filter(job => !job.get('parent.content'));
    }

    get filteredJobs() {
      const {
        selectionType: types,
        selectionStatus: statuses,
        selectionDatacenter: datacenters,
        selectionPrefix: prefixes,
        selectionNodePool: nodePools
      } = this; // A job must match ALL filter facets, but it can match ANY selection within a facet
      // Always return early to prevent unnecessary facet predicates.

      return this.visibleJobs.filter(job => {
        const shouldShowPack = types.includes('pack') && job.displayType.isPack;

        if (types.length && shouldShowPack) {
          return true;
        }

        if (types.length && !types.includes(job.get('displayType.type'))) {
          return false;
        }

        if (statuses.length && !statuses.includes(job.get('status'))) {
          return false;
        }

        if (datacenters.length && !job.get('datacenters').find(dc => datacenters.includes(dc))) {
          return false;
        }

        if (nodePools.length && !nodePools.includes(job.get('nodePool'))) {
          return false;
        }

        const name = job.get('name');

        if (prefixes.length && !prefixes.find(prefix => name.startsWith(prefix))) {
          return false;
        }

        return true;
      });
    }

    get unsortedSearchState() {
      return this.sortProperty === DEFAULT_SORT_PROPERTY && this.sortDescending === DEFAULT_SORT_DESCENDING && !!this.searchTerm;
    }

    // sortedJobs is what we use to populate the table;
    // If the user has searched but not sorted, we return the (fuzzy) searched list verbatim
    // If the user has sorted, we allow the fuzzy search to filter down the list, but return it in a sorted order.
    get sortedJobs() {
      return this.unsortedSearchState ? this.listSearched : this.listSorted;
    }

    setFacetQueryParam(queryParam, selection) {
      this.set(queryParam, (0, _qpSerialize.serialize)(selection));
    }

    goToRun() {
      this.router.transitionTo('jobs.run');
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "system", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "userSettings", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, "router", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, "pageSize", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "searchProps", [_object.computed], Object.getOwnPropertyDescriptor(_class2.prototype, "searchProps"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "fuzzySearchProps", [_object.computed], Object.getOwnPropertyDescriptor(_class2.prototype, "fuzzySearchProps"), _class2.prototype), _descriptor5 = _applyDecoratedDescriptor(_class2.prototype, "selectionType", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor6 = _applyDecoratedDescriptor(_class2.prototype, "selectionStatus", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor7 = _applyDecoratedDescriptor(_class2.prototype, "selectionDatacenter", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor8 = _applyDecoratedDescriptor(_class2.prototype, "selectionPrefix", [_dec5], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor9 = _applyDecoratedDescriptor(_class2.prototype, "selectionNodePool", [_dec6], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "optionsType", [_object.computed], Object.getOwnPropertyDescriptor(_class2.prototype, "optionsType"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "optionsStatus", [_object.computed], Object.getOwnPropertyDescriptor(_class2.prototype, "optionsStatus"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "optionsDatacenter", [_dec7], Object.getOwnPropertyDescriptor(_class2.prototype, "optionsDatacenter"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "optionsPrefix", [_dec8], Object.getOwnPropertyDescriptor(_class2.prototype, "optionsPrefix"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "optionsNamespaces", [_dec9], Object.getOwnPropertyDescriptor(_class2.prototype, "optionsNamespaces"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "optionsNodePool", [_dec10], Object.getOwnPropertyDescriptor(_class2.prototype, "optionsNodePool"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "visibleJobs", [_dec11], Object.getOwnPropertyDescriptor(_class2.prototype, "visibleJobs"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "filteredJobs", [_dec12], Object.getOwnPropertyDescriptor(_class2.prototype, "filteredJobs"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "unsortedSearchState", [_dec13], Object.getOwnPropertyDescriptor(_class2.prototype, "unsortedSearchState"), _class2.prototype), _descriptor10 = _applyDecoratedDescriptor(_class2.prototype, "listToSearch", [_dec14], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor11 = _applyDecoratedDescriptor(_class2.prototype, "listToSort", [_dec15], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "goToRun", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "goToRun"), _class2.prototype)), _class2)) || _class);
  _exports.default = IndexController;
});
;define("nomad-ui/controllers/jobs/job", ["exports", "@ember/controller", "@ember/object", "@ember/service"], function (_exports, _controller, _object, _service) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _descriptor, _descriptor2, _descriptor3;

  0; //eaimeta@70e063a35619d71f0,"@ember/controller",0,"@ember/object",0,"@ember/service"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let JobController = (_class = class JobController extends _controller.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "router", _descriptor, this);

      _initializerDefineProperty(this, "notifications", _descriptor2, this);

      _initializerDefineProperty(this, "store", _descriptor3, this);

      _defineProperty(this, "queryParams", [{
        jobNamespace: 'namespace'
      }]);

      _defineProperty(this, "jobNamespace", 'default');
    }

    get job() {
      return this.model;
    }

    notFoundJobHandler() {
      var _this$watchers$job$er, _this$watchers$job$er2;

      if (this.watchers.job.isError && (_this$watchers$job$er = this.watchers.job.error) !== null && _this$watchers$job$er !== void 0 && (_this$watchers$job$er2 = _this$watchers$job$er.errors) !== null && _this$watchers$job$er2 !== void 0 && _this$watchers$job$er2.some(e => e.status === '404')) {
        this.notifications.add({
          title: `Job "${this.job.name}" has been deleted`,
          message: 'The job you were looking at has been deleted; this is usually because it was purged from elsewhere.',
          color: 'critical',
          sticky: true
        });
        this.store.unloadRecord(this.job);
        this.router.transitionTo('jobs');
      }
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "router", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "notifications", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "store", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class.prototype, "notFoundJobHandler", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "notFoundJobHandler"), _class.prototype)), _class);
  _exports.default = JobController;
});
;define("nomad-ui/controllers/jobs/job/allocations", ["exports", "@ember/object/computed", "@ember/controller", "@ember/object", "@ember/runloop", "lodash.intersection", "nomad-ui/mixins/sortable", "nomad-ui/mixins/searchable", "nomad-ui/mixins/with-namespace-resetting", "nomad-ui/utils/qp-serialize"], function (_exports, _computed, _controller, _object, _runloop, _lodash, _sortable, _searchable, _withNamespaceResetting, _qpSerialize) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _dec9, _dec10, _dec11, _dec12, _dec13, _dec14, _dec15, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8, _descriptor9;

  0; //eaimeta@70e063a35619d71f0,"@ember/object/computed",0,"@ember/controller",0,"@ember/object",0,"@ember/runloop",0,"lodash.intersection",0,"nomad-ui/mixins/sortable",0,"nomad-ui/mixins/searchable",0,"nomad-ui/mixins/with-namespace-resetting",0,"nomad-ui/utils/qp-serialize",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let AllocationsController = (_dec = (0, _computed.alias)('model'), _dec2 = (0, _object.computed)('model.allocations.[]'), _dec3 = (0, _object.computed)('allocations.[]', 'selectionStatus', 'selectionClient', 'selectionTaskGroup', 'selectionVersion', 'selectionScheduling'), _dec4 = (0, _computed.alias)('filteredAllocations'), _dec5 = (0, _computed.alias)('listSorted'), _dec6 = (0, _computed.alias)('listSearched'), _dec7 = (0, _qpSerialize.deserializedQueryParam)('qpStatus'), _dec8 = (0, _qpSerialize.deserializedQueryParam)('qpClient'), _dec9 = (0, _qpSerialize.deserializedQueryParam)('qpTaskGroup'), _dec10 = (0, _qpSerialize.deserializedQueryParam)('qpVersion'), _dec11 = (0, _qpSerialize.deserializedQueryParam)('qpScheduling'), _dec12 = (0, _object.computed)('model.allocations.[]', 'selectionClient'), _dec13 = (0, _object.computed)('model.allocations.[]', 'selectionTaskGroup'), _dec14 = (0, _object.computed)('model.allocations.[]', 'selectionVersion'), _dec15 = (0, _object.computed)('model.allocations.[]', 'selectionScheduling'), classic(_class = (_class2 = class AllocationsController extends _controller.default.extend(_sortable.default, _searchable.default, _withNamespaceResetting.default) {
    constructor() {
      super(...arguments);

      _defineProperty(this, "queryParams", [{
        currentPage: 'page'
      }, {
        searchTerm: 'search'
      }, {
        sortProperty: 'sort'
      }, {
        sortDescending: 'desc'
      }, {
        qpStatus: 'status'
      }, {
        qpClient: 'client'
      }, {
        qpTaskGroup: 'taskGroup'
      }, {
        qpVersion: 'version'
      }, {
        qpScheduling: 'scheduling'
      }, 'activeTask']);

      _defineProperty(this, "qpStatus", '');

      _defineProperty(this, "qpClient", '');

      _defineProperty(this, "qpTaskGroup", '');

      _defineProperty(this, "qpVersion", '');

      _defineProperty(this, "qpScheduling", '');

      _defineProperty(this, "currentPage", 1);

      _defineProperty(this, "pageSize", 25);

      _defineProperty(this, "activeTask", null);

      _defineProperty(this, "sortProperty", 'modifyIndex');

      _defineProperty(this, "sortDescending", true);

      _initializerDefineProperty(this, "job", _descriptor, this);

      _initializerDefineProperty(this, "listToSort", _descriptor2, this);

      _initializerDefineProperty(this, "listToSearch", _descriptor3, this);

      _initializerDefineProperty(this, "sortedAllocations", _descriptor4, this);

      _initializerDefineProperty(this, "selectionStatus", _descriptor5, this);

      _initializerDefineProperty(this, "selectionClient", _descriptor6, this);

      _initializerDefineProperty(this, "selectionTaskGroup", _descriptor7, this);

      _initializerDefineProperty(this, "selectionVersion", _descriptor8, this);

      _initializerDefineProperty(this, "selectionScheduling", _descriptor9, this);
    }

    get searchProps() {
      return ['shortId', 'name', 'taskGroupName'];
    }

    get allocations() {
      return this.get('model.allocations') || [];
    }

    get filteredAllocations() {
      const {
        selectionStatus,
        selectionClient,
        selectionTaskGroup,
        selectionVersion,
        selectionScheduling
      } = this;
      return this.allocations.filter(alloc => {
        if (selectionStatus.length && !selectionStatus.includes(alloc.clientStatus)) {
          return false;
        }

        if (selectionClient.length && !selectionClient.includes(alloc.get('node.shortId'))) {
          return false;
        }

        if (selectionTaskGroup.length && !selectionTaskGroup.includes(alloc.taskGroupName)) {
          return false;
        }

        if (selectionVersion.length && !selectionVersion.includes(alloc.jobVersion)) {
          return false;
        }

        if (selectionScheduling.length) {
          if (selectionScheduling.includes('will-not-reschedule') && !alloc.willNotReschedule) {
            return false;
          }

          if (selectionScheduling.includes('will-not-restart') && !alloc.willNotRestart) {
            return false;
          }

          if (selectionScheduling.includes('has-been-rescheduled') && !alloc.hasBeenRescheduled) {
            return false;
          }

          if (selectionScheduling.includes('has-been-restarted') && !alloc.hasBeenRestarted) {
            return false;
          }

          return true;
        }

        return true;
      });
    }

    gotoAllocation(allocation) {
      this.transitionToRoute('allocations.allocation', allocation.id);
    }

    get optionsAllocationStatus() {
      return [{
        key: 'pending',
        label: 'Pending'
      }, {
        key: 'running',
        label: 'Running'
      }, {
        key: 'complete',
        label: 'Complete'
      }, {
        key: 'failed',
        label: 'Failed'
      }, {
        key: 'lost',
        label: 'Lost'
      }, {
        key: 'unknown',
        label: 'Unknown'
      }];
    }

    get optionsClients() {
      const clients = Array.from(new Set(this.model.allocations.mapBy('node.shortId'))).compact(); // Update query param when the list of clients changes.

      (0, _runloop.scheduleOnce)('actions', () => {
        // eslint-disable-next-line ember/no-side-effects
        this.set('qpClient', (0, _qpSerialize.serialize)((0, _lodash.default)(clients, this.selectionClient)));
      });
      return clients.sort().map(c => ({
        key: c,
        label: c
      }));
    }

    get optionsTaskGroups() {
      const taskGroups = Array.from(new Set(this.model.allocations.mapBy('taskGroupName'))).compact(); // Update query param when the list of task groups changes.

      (0, _runloop.scheduleOnce)('actions', () => {
        // eslint-disable-next-line ember/no-side-effects
        this.set('qpTaskGroup', (0, _qpSerialize.serialize)((0, _lodash.default)(taskGroups, this.selectionTaskGroup)));
      });
      return taskGroups.sort().map(tg => ({
        key: tg,
        label: tg
      }));
    }

    get optionsVersions() {
      const versions = Array.from(new Set(this.model.allocations.mapBy('jobVersion'))).compact(); // Update query param when the list of versions changes.

      (0, _runloop.scheduleOnce)('actions', () => {
        // eslint-disable-next-line ember/no-side-effects
        this.set('qpVersion', (0, _qpSerialize.serialize)((0, _lodash.default)(versions, this.selectionVersion)));
      });
      return versions.sort((a, b) => a - b).map(v => ({
        key: v,
        label: v
      }));
    }

    get optionsScheduling() {
      return [{
        key: 'has-been-rescheduled',
        label: 'Failed & Has Been Rescheduled'
      }, {
        key: 'will-not-reschedule',
        label: "Failed & Won't Reschedule"
      }, {
        key: 'has-been-restarted',
        label: 'Has Been Restarted'
      }, {
        key: 'will-not-restart',
        label: "Won't Restart"
      }];
    }

    setFacetQueryParam(queryParam, selection) {
      this.set(queryParam, (0, _qpSerialize.serialize)(selection));
    }

    setActiveTaskQueryParam(task) {
      if (task) {
        this.set('activeTask', `${task.allocation.id}-${task.name}`);
      } else {
        this.set('activeTask', null);
      }
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "job", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "searchProps", [_object.computed], Object.getOwnPropertyDescriptor(_class2.prototype, "searchProps"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "allocations", [_dec2], Object.getOwnPropertyDescriptor(_class2.prototype, "allocations"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "filteredAllocations", [_dec3], Object.getOwnPropertyDescriptor(_class2.prototype, "filteredAllocations"), _class2.prototype), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "listToSort", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, "listToSearch", [_dec5], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, "sortedAllocations", [_dec6], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor5 = _applyDecoratedDescriptor(_class2.prototype, "selectionStatus", [_dec7], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor6 = _applyDecoratedDescriptor(_class2.prototype, "selectionClient", [_dec8], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor7 = _applyDecoratedDescriptor(_class2.prototype, "selectionTaskGroup", [_dec9], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor8 = _applyDecoratedDescriptor(_class2.prototype, "selectionVersion", [_dec10], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor9 = _applyDecoratedDescriptor(_class2.prototype, "selectionScheduling", [_dec11], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "gotoAllocation", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "gotoAllocation"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "optionsClients", [_dec12], Object.getOwnPropertyDescriptor(_class2.prototype, "optionsClients"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "optionsTaskGroups", [_dec13], Object.getOwnPropertyDescriptor(_class2.prototype, "optionsTaskGroups"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "optionsVersions", [_dec14], Object.getOwnPropertyDescriptor(_class2.prototype, "optionsVersions"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "optionsScheduling", [_dec15], Object.getOwnPropertyDescriptor(_class2.prototype, "optionsScheduling"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "setActiveTaskQueryParam", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "setActiveTaskQueryParam"), _class2.prototype)), _class2)) || _class);
  _exports.default = AllocationsController;
});
;define("nomad-ui/controllers/jobs/job/clients", ["exports", "@ember/controller", "@ember/object", "@ember/runloop", "lodash.intersection", "@ember/object/computed", "nomad-ui/mixins/sortable-factory", "nomad-ui/mixins/searchable", "nomad-ui/mixins/with-namespace-resetting", "nomad-ui/utils/properties/job-client-status", "nomad-ui/utils/qp-serialize", "@ember/service"], function (_exports, _controller, _object, _runloop, _lodash, _computed, _sortableFactory, _searchable, _withNamespaceResetting, _jobClientStatus, _qpSerialize, _service) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _dec9, _dec10, _dec11, _dec12, _dec13, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8, _descriptor9;

  0; //eaimeta@70e063a35619d71f0,"@ember/controller",0,"@ember/object",0,"@ember/runloop",0,"lodash.intersection",0,"@ember/object/computed",0,"nomad-ui/mixins/sortable-factory",0,"nomad-ui/mixins/searchable",0,"nomad-ui/mixins/with-namespace-resetting",0,"nomad-ui/utils/properties/job-client-status",0,"nomad-ui/utils/qp-serialize",0,"ember-classic-decorator",0,"@ember/service"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let ClientsController = (_dec = (0, _qpSerialize.deserializedQueryParam)('qpStatus'), _dec2 = (0, _qpSerialize.deserializedQueryParam)('qpDatacenter'), _dec3 = (0, _qpSerialize.deserializedQueryParam)('qpClientClass'), _dec4 = (0, _computed.alias)('model'), _dec5 = (0, _jobClientStatus.default)('allNodes', 'job'), _dec6 = (0, _computed.alias)('filteredNodes'), _dec7 = (0, _computed.alias)('listSorted'), _dec8 = (0, _computed.alias)('listSearched'), _dec9 = (0, _object.computed)('store'), _dec10 = (0, _object.computed)('allNodes', 'jobClientStatus.byNode'), _dec11 = (0, _object.computed)('nodes', 'job.allocations', 'jobClientStatus.byNode', 'selectionStatus', 'selectionDatacenter', 'selectionClientClass'), _dec12 = (0, _object.computed)('selectionDatacenter', 'nodes'), _dec13 = (0, _object.computed)('selectionClientClass', 'nodes'), classic(_class = (_class2 = class ClientsController extends _controller.default.extend((0, _sortableFactory.default)(['id', 'name', 'jobStatus']), _searchable.default, _withNamespaceResetting.default) {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "store", _descriptor, this);

      _defineProperty(this, "queryParams", [{
        currentPage: 'page'
      }, {
        searchTerm: 'search'
      }, {
        qpStatus: 'status'
      }, {
        qpDatacenter: 'dc'
      }, {
        qpClientClass: 'clientclass'
      }, {
        sortProperty: 'sort'
      }, {
        sortDescending: 'desc'
      }]);

      _defineProperty(this, "qpStatus", '');

      _defineProperty(this, "qpDatacenter", '');

      _defineProperty(this, "qpClientClass", '');

      _defineProperty(this, "currentPage", 1);

      _defineProperty(this, "pageSize", 25);

      _defineProperty(this, "sortProperty", 'jobStatus');

      _defineProperty(this, "sortDescending", false);

      _initializerDefineProperty(this, "selectionStatus", _descriptor2, this);

      _initializerDefineProperty(this, "selectionDatacenter", _descriptor3, this);

      _initializerDefineProperty(this, "selectionClientClass", _descriptor4, this);

      _initializerDefineProperty(this, "job", _descriptor5, this);

      _initializerDefineProperty(this, "jobClientStatus", _descriptor6, this);

      _initializerDefineProperty(this, "listToSort", _descriptor7, this);

      _initializerDefineProperty(this, "listToSearch", _descriptor8, this);

      _initializerDefineProperty(this, "sortedClients", _descriptor9, this);
    }

    get allNodes() {
      return this.store.peekAll('node');
    }

    get nodes() {
      return this.allNodes.filter(node => this.jobClientStatus.byNode[node.id]);
    }

    get searchProps() {
      return ['node.id', 'node.name'];
    }

    get filteredNodes() {
      const {
        selectionStatus: statuses,
        selectionDatacenter: datacenters,
        selectionClientClass: clientClasses
      } = this;
      return this.nodes.filter(node => {
        if (statuses.length && !statuses.includes(this.jobClientStatus.byNode[node.id])) {
          return false;
        }

        if (datacenters.length && !datacenters.includes(node.datacenter)) {
          return false;
        }

        if (clientClasses.length && !clientClasses.includes(node.nodeClass)) {
          return false;
        }

        return true;
      }).map(node => {
        const allocations = this.job.allocations.filter(alloc => alloc.get('node.id') == node.id);
        return {
          node,
          jobStatus: this.jobClientStatus.byNode[node.id],
          allocations,
          createTime: eldestCreateTime(allocations),
          modifyTime: mostRecentModifyTime(allocations)
        };
      });
    }

    get optionsJobStatus() {
      return [{
        key: 'queued',
        label: 'Queued'
      }, {
        key: 'notScheduled',
        label: 'Not Scheduled'
      }, {
        key: 'starting',
        label: 'Starting'
      }, {
        key: 'running',
        label: 'Running'
      }, {
        key: 'complete',
        label: 'Complete'
      }, {
        key: 'degraded',
        label: 'Degraded'
      }, {
        key: 'failed',
        label: 'Failed'
      }, {
        key: 'lost',
        label: 'Lost'
      }, {
        key: 'unknown',
        label: 'Unknown'
      }];
    }

    get optionsDatacenter() {
      const datacenters = Array.from(new Set(this.nodes.mapBy('datacenter'))).compact(); // Update query param when the list of datacenters changes.

      (0, _runloop.scheduleOnce)('actions', () => {
        // eslint-disable-next-line ember/no-side-effects
        this.set('qpDatacenter', (0, _qpSerialize.serialize)((0, _lodash.default)(datacenters, this.selectionDatacenter)));
      });
      return datacenters.sort().map(dc => ({
        key: dc,
        label: dc
      }));
    }

    get optionsClientClass() {
      const clientClasses = Array.from(new Set(this.nodes.mapBy('nodeClass'))).compact(); // Update query param when the list of datacenters changes.

      (0, _runloop.scheduleOnce)('actions', () => {
        // eslint-disable-next-line ember/no-side-effects
        this.set('qpClientClass', (0, _qpSerialize.serialize)((0, _lodash.default)(clientClasses, this.selectionClientClass)));
      });
      return clientClasses.sort().map(clientClass => ({
        key: clientClass,
        label: clientClass
      }));
    }

    gotoClient(client) {
      this.transitionToRoute('clients.client', client);
    }

    setFacetQueryParam(queryParam, selection) {
      this.set(queryParam, (0, _qpSerialize.serialize)(selection));
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "store", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "selectionStatus", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, "selectionDatacenter", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, "selectionClientClass", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor5 = _applyDecoratedDescriptor(_class2.prototype, "job", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor6 = _applyDecoratedDescriptor(_class2.prototype, "jobClientStatus", [_dec5], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor7 = _applyDecoratedDescriptor(_class2.prototype, "listToSort", [_dec6], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor8 = _applyDecoratedDescriptor(_class2.prototype, "listToSearch", [_dec7], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor9 = _applyDecoratedDescriptor(_class2.prototype, "sortedClients", [_dec8], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "allNodes", [_dec9], Object.getOwnPropertyDescriptor(_class2.prototype, "allNodes"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "nodes", [_dec10], Object.getOwnPropertyDescriptor(_class2.prototype, "nodes"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "searchProps", [_object.computed], Object.getOwnPropertyDescriptor(_class2.prototype, "searchProps"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "filteredNodes", [_dec11], Object.getOwnPropertyDescriptor(_class2.prototype, "filteredNodes"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "optionsJobStatus", [_object.computed], Object.getOwnPropertyDescriptor(_class2.prototype, "optionsJobStatus"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "optionsDatacenter", [_dec12], Object.getOwnPropertyDescriptor(_class2.prototype, "optionsDatacenter"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "optionsClientClass", [_dec13], Object.getOwnPropertyDescriptor(_class2.prototype, "optionsClientClass"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "gotoClient", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "gotoClient"), _class2.prototype)), _class2)) || _class);
  _exports.default = ClientsController;

  function eldestCreateTime(allocations) {
    let eldest = null;

    for (const alloc of allocations) {
      if (!eldest || alloc.createTime < eldest) {
        eldest = alloc.createTime;
      }
    }

    return eldest;
  }

  function mostRecentModifyTime(allocations) {
    let mostRecent = null;

    for (const alloc of allocations) {
      if (!mostRecent || alloc.modifyTime > mostRecent) {
        mostRecent = alloc.modifyTime;
      }
    }

    return mostRecent;
  }
});
;define("nomad-ui/controllers/jobs/job/definition", ["exports", "@ember/controller", "@ember/object", "@ember/object/computed", "@ember/service", "@glimmer/tracking", "nomad-ui/mixins/with-namespace-resetting"], function (_exports, _controller, _object, _computed, _service, _tracking, _withNamespaceResetting) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8, _descriptor9;

  0; //eaimeta@70e063a35619d71f0,"@ember/controller",0,"@ember/object",0,"@ember/object/computed",0,"@ember/service",0,"@glimmer/tracking",0,"ember-classic-decorator",0,"nomad-ui/mixins/with-namespace-resetting"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let DefinitionController = (
  /**
   * Controller for handling job definition and specification, along with editing state and view.
   * @augments Controller
   */
  _dec = (0, _computed.alias)('model.definition'), _dec2 = (0, _computed.alias)('model.format'), _dec3 = (0, _computed.alias)('model.job'), _dec4 = (0, _computed.alias)('model.specification'), _dec5 = (0, _computed.alias)('model.variableFlags'), _dec6 = (0, _computed.alias)('model.variableLiteral'), classic(_class = (_class2 = class DefinitionController extends _controller.default.extend(_withNamespaceResetting.default) {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "definition", _descriptor, this);

      _initializerDefineProperty(this, "format", _descriptor2, this);

      _initializerDefineProperty(this, "job", _descriptor3, this);

      _initializerDefineProperty(this, "specification", _descriptor4, this);

      _initializerDefineProperty(this, "variableFlags", _descriptor5, this);

      _initializerDefineProperty(this, "variableLiteral", _descriptor6, this);

      _initializerDefineProperty(this, "view", _descriptor7, this);

      _initializerDefineProperty(this, "isEditing", _descriptor8, this);

      _defineProperty(this, "queryParams", ['isEditing', 'view']);

      _initializerDefineProperty(this, "router", _descriptor9, this);
    }

    /**
     * Get the context of the controller based on the editing state.
     * @returns {"edit"|"read"} The context, either 'edit' or 'read'.
     */
    get context() {
      return this.isEditing ? 'edit' : 'read';
    }
    /**
     * Toggle the editing state.
     * @param {boolean} [bool] - Optional boolean value to set the editing state.
     */


    toggleEdit(bool) {
      this.isEditing = bool || !this.isEditing;
    }
    /**
     * Update the view based on the selected view.
     * @param {"job-spec" | "full-definition"} selectedView - The selected view, either 'job-spec' or 'full-definition'.
     */


    selectView(selectedView) {
      this.view = selectedView;
    }

    onSubmit() {
      this.router.transitionTo('jobs.job', this.job.idWithNamespace);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "definition", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "format", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, "job", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, "specification", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor5 = _applyDecoratedDescriptor(_class2.prototype, "variableFlags", [_dec5], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor6 = _applyDecoratedDescriptor(_class2.prototype, "variableLiteral", [_dec6], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor7 = _applyDecoratedDescriptor(_class2.prototype, "view", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor8 = _applyDecoratedDescriptor(_class2.prototype, "isEditing", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return false;
    }
  }), _descriptor9 = _applyDecoratedDescriptor(_class2.prototype, "router", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "toggleEdit", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "toggleEdit"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "selectView", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "selectView"), _class2.prototype)), _class2)) || _class);
  _exports.default = DefinitionController;
});
;define("nomad-ui/controllers/jobs/job/deployments", ["exports", "@ember/controller", "nomad-ui/mixins/with-namespace-resetting", "@ember/object/computed"], function (_exports, _controller, _withNamespaceResetting, _computed) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _class, _class2, _descriptor;

  0; //eaimeta@70e063a35619d71f0,"@ember/controller",0,"nomad-ui/mixins/with-namespace-resetting",0,"@ember/object/computed",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let DeploymentsController = (_dec = (0, _computed.alias)('model'), classic(_class = (_class2 = class DeploymentsController extends _controller.default.extend(_withNamespaceResetting.default) {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "job", _descriptor, this);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "job", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class2)) || _class);
  _exports.default = DeploymentsController;
});
;define("nomad-ui/controllers/jobs/job/dispatch", ["exports", "@ember/controller"], function (_exports, _controller) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/controller"eaimeta@70e063a35619d71f

  // This may be safe to remove but we can't be sure, some route may try access this directly using this.controllerFor
  class JobsJobDispatchController extends _controller.default {}

  _exports.default = JobsJobDispatchController;

  window.__CLASSIC_OWN_CLASSES__.set(JobsJobDispatchController, true);
});
;define("nomad-ui/controllers/jobs/job/evaluations", ["exports", "@ember/object/computed", "@ember/controller", "nomad-ui/mixins/with-namespace-resetting", "nomad-ui/mixins/sortable"], function (_exports, _computed, _controller, _withNamespaceResetting, _sortable) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4;

  0; //eaimeta@70e063a35619d71f0,"@ember/object/computed",0,"@ember/controller",0,"nomad-ui/mixins/with-namespace-resetting",0,"nomad-ui/mixins/sortable",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let EvaluationsController = (_dec = (0, _computed.alias)('model'), _dec2 = (0, _computed.alias)('model.evaluations'), _dec3 = (0, _computed.alias)('evaluations'), _dec4 = (0, _computed.alias)('listSorted'), classic(_class = (_class2 = class EvaluationsController extends _controller.default.extend(_withNamespaceResetting.default, _sortable.default) {
    constructor() {
      super(...arguments);

      _defineProperty(this, "queryParams", [{
        sortProperty: 'sort'
      }, {
        sortDescending: 'desc'
      }]);

      _defineProperty(this, "sortProperty", 'modifyIndex');

      _defineProperty(this, "sortDescending", true);

      _initializerDefineProperty(this, "job", _descriptor, this);

      _initializerDefineProperty(this, "evaluations", _descriptor2, this);

      _initializerDefineProperty(this, "listToSort", _descriptor3, this);

      _initializerDefineProperty(this, "sortedEvaluations", _descriptor4, this);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "job", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "evaluations", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, "listToSort", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, "sortedEvaluations", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class2)) || _class);
  _exports.default = EvaluationsController;
});
;define("nomad-ui/controllers/jobs/job/index", ["exports", "@ember/controller", "@ember/object/computed", "@ember/service", "nomad-ui/mixins/with-namespace-resetting", "@ember/object", "@glimmer/tracking"], function (_exports, _controller, _computed, _service, _withNamespaceResetting, _object, _tracking) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4;

  0; //eaimeta@70e063a35619d71f0,"@ember/controller",0,"@ember/object/computed",0,"@ember/service",0,"nomad-ui/mixins/with-namespace-resetting",0,"ember-classic-decorator",0,"@ember/object",0,"@glimmer/tracking"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let IndexController = (_dec = (0, _computed.alias)('model'), classic(_class = (_class2 = class IndexController extends _controller.default.extend(_withNamespaceResetting.default) {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "system", _descriptor, this);

      _defineProperty(this, "queryParams", [{
        currentPage: 'page'
      }, {
        sortProperty: 'sort'
      }, {
        sortDescending: 'desc'
      }, 'activeTask', 'statusMode']);

      _defineProperty(this, "currentPage", 1);

      _initializerDefineProperty(this, "job", _descriptor2, this);

      _defineProperty(this, "sortProperty", 'name');

      _defineProperty(this, "sortDescending", false);

      _initializerDefineProperty(this, "activeTask", _descriptor3, this);

      _initializerDefineProperty(this, "statusMode", _descriptor4, this);
    }

    setActiveTaskQueryParam(task) {
      if (task) {
        this.activeTask = `${task.allocation.id}-${task.name}`;
      } else {
        this.activeTask = null;
      }
    }
    /**
     * @param {('current'|'historical')} mode
     */


    setStatusMode(mode) {
      this.statusMode = mode;
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "system", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "job", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, "activeTask", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return null;
    }
  }), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, "statusMode", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return 'current';
    }
  }), _applyDecoratedDescriptor(_class2.prototype, "setActiveTaskQueryParam", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "setActiveTaskQueryParam"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "setStatusMode", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "setStatusMode"), _class2.prototype)), _class2)) || _class);
  _exports.default = IndexController;
});
;define("nomad-ui/controllers/jobs/job/services", ["exports", "@ember/controller"], function (_exports, _controller) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/controller"eaimeta@70e063a35619d71f

  class JobsJobServicesController extends _controller.default {}

  _exports.default = JobsJobServicesController;

  window.__CLASSIC_OWN_CLASSES__.set(JobsJobServicesController, true);
});
;define("nomad-ui/controllers/jobs/job/services/index", ["exports", "@ember/controller", "nomad-ui/mixins/with-namespace-resetting", "nomad-ui/mixins/sortable", "@ember/object/computed", "@ember/object"], function (_exports, _controller, _withNamespaceResetting, _sortable, _computed, _object) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _dec9, _class, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5;

  0; //eaimeta@70e063a35619d71f0,"@ember/controller",0,"nomad-ui/mixins/with-namespace-resetting",0,"nomad-ui/mixins/sortable",0,"@ember/object/computed",0,"@ember/object",0,"@ember/object/computed"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let JobsJobServicesIndexController = (_dec = (0, _computed.alias)('model'), _dec2 = (0, _computed.alias)('job.taskGroups'), _dec3 = (0, _computed.alias)('services'), _dec4 = (0, _computed.alias)('listSorted'), _dec5 = (0, _object.computed)('taskGroups.@each.tasks'), _dec6 = (0, _object.computed)('tasks.@each.services'), _dec7 = (0, _object.computed)('model.taskGroup.services.@each.name', 'taskGroups'), _dec8 = (0, _computed.union)('taskServices', 'groupServices'), _dec9 = (0, _object.computed)('job.services.@each.{name,allocation}', 'job.services.length', 'serviceFragments'), (_class = class JobsJobServicesIndexController extends _controller.default.extend(_withNamespaceResetting.default, _sortable.default) {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "job", _descriptor, this);

      _initializerDefineProperty(this, "taskGroups", _descriptor2, this);

      _defineProperty(this, "queryParams", [{
        sortProperty: 'sort'
      }, {
        sortDescending: 'desc'
      }]);

      _defineProperty(this, "sortProperty", 'name');

      _defineProperty(this, "sortDescending", false);

      _initializerDefineProperty(this, "listToSort", _descriptor3, this);

      _initializerDefineProperty(this, "sortedServices", _descriptor4, this);

      _initializerDefineProperty(this, "serviceFragments", _descriptor5, this);
    }

    get tasks() {
      return this.taskGroups.map(group => group.tasks.toArray()).flat();
    }

    get taskServices() {
      return this.tasks.map(t => (t.services || []).toArray()).flat().compact().map(service => {
        service.level = 'task';
        return service;
      });
    }

    get groupServices() {
      return this.taskGroups.map(g => (g.services || []).toArray()).flat().compact().map(service => {
        service.level = 'group';
        return service;
      });
    }

    // Services, grouped by name, with aggregatable allocations.
    get services() {
      return this.serviceFragments.map(fragment => {
        fragment.instances = this.job.services.filter(s => s.name === fragment.name && s.derivedLevel === fragment.level);
        return fragment;
      });
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "job", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "taskGroups", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "listToSort", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, "sortedServices", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class.prototype, "tasks", [_dec5], Object.getOwnPropertyDescriptor(_class.prototype, "tasks"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "taskServices", [_dec6], Object.getOwnPropertyDescriptor(_class.prototype, "taskServices"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "groupServices", [_dec7], Object.getOwnPropertyDescriptor(_class.prototype, "groupServices"), _class.prototype), _descriptor5 = _applyDecoratedDescriptor(_class.prototype, "serviceFragments", [_dec8], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class.prototype, "services", [_dec9], Object.getOwnPropertyDescriptor(_class.prototype, "services"), _class.prototype)), _class));
  _exports.default = JobsJobServicesIndexController;
});
;define("nomad-ui/controllers/jobs/job/services/service", ["exports", "@ember/controller", "@ember/object", "@ember/service"], function (_exports, _controller, _object, _service) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _descriptor;

  0; //eaimeta@70e063a35619d71f0,"@ember/controller",0,"@ember/object",0,"@ember/service"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let JobsJobServicesServiceController = (_class = class JobsJobServicesServiceController extends _controller.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "router", _descriptor, this);

      _defineProperty(this, "queryParams", ['level']);
    }

    gotoAllocation(allocation) {
      this.router.transitionTo('allocations.allocation', allocation.get('id'));
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "router", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class.prototype, "gotoAllocation", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "gotoAllocation"), _class.prototype)), _class);
  _exports.default = JobsJobServicesServiceController;
});
;define("nomad-ui/controllers/jobs/job/task-group", ["exports", "@ember/service", "@ember/object/computed", "@ember/controller", "@ember/object", "@ember/runloop", "lodash.intersection", "nomad-ui/mixins/sortable", "nomad-ui/mixins/searchable", "nomad-ui/mixins/with-namespace-resetting", "nomad-ui/utils/qp-serialize", "nomad-ui/utils/properties/local-storage"], function (_exports, _service, _computed, _controller, _object, _runloop, _lodash, _sortable, _searchable, _withNamespaceResetting, _qpSerialize, _localStorage) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _dec9, _dec10, _dec11, _dec12, _dec13, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8, _descriptor9, _descriptor10, _descriptor11;

  0; //eaimeta@70e063a35619d71f0,"@ember/service",0,"@ember/object/computed",0,"@ember/controller",0,"@ember/object",0,"@ember/runloop",0,"lodash.intersection",0,"nomad-ui/mixins/sortable",0,"nomad-ui/mixins/searchable",0,"nomad-ui/mixins/with-namespace-resetting",0,"nomad-ui/utils/qp-serialize",0,"ember-classic-decorator",0,"nomad-ui/utils/properties/local-storage"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let TaskGroupController = (_dec = (0, _computed.readOnly)('userSettings.pageSize'), _dec2 = (0, _localStorage.default)('nomadShowSubTasks', true), _dec3 = (0, _object.computed)('model.allocations.[]'), _dec4 = (0, _object.computed)('allocations.[]', 'selectionStatus', 'selectionClient'), _dec5 = (0, _computed.alias)('filteredAllocations'), _dec6 = (0, _computed.alias)('listSorted'), _dec7 = (0, _computed.alias)('listSearched'), _dec8 = (0, _qpSerialize.deserializedQueryParam)('qpStatus'), _dec9 = (0, _qpSerialize.deserializedQueryParam)('qpClient'), _dec10 = (0, _object.computed)('model.scaleState.events.@each.time', function () {
    const events = (0, _object.get)(this, 'model.scaleState.events');

    if (events) {
      return events.sortBy('time').reverse();
    }

    return [];
  }), _dec11 = (0, _object.computed)('sortedScaleEvents.@each.hasCount', function () {
    const countEventsCount = this.sortedScaleEvents.filterBy('hasCount').length;
    return countEventsCount > 1 && countEventsCount >= this.sortedScaleEvents.length / 2;
  }), _dec12 = (0, _object.computed)('model.job.{namespace,runningDeployment}'), _dec13 = (0, _object.computed)('model.allocations.[]', 'selectionClient'), classic(_class = (_class2 = class TaskGroupController extends _controller.default.extend(_sortable.default, _searchable.default, _withNamespaceResetting.default) {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "userSettings", _descriptor, this);

      _initializerDefineProperty(this, "can", _descriptor2, this);

      _defineProperty(this, "queryParams", [{
        currentPage: 'page'
      }, {
        searchTerm: 'search'
      }, {
        sortProperty: 'sort'
      }, {
        sortDescending: 'desc'
      }, {
        qpStatus: 'status'
      }, {
        qpClient: 'client'
      }, 'activeTask']);

      _defineProperty(this, "currentPage", 1);

      _initializerDefineProperty(this, "pageSize", _descriptor3, this);

      _defineProperty(this, "qpStatus", '');

      _defineProperty(this, "qpClient", '');

      _defineProperty(this, "sortProperty", 'modifyIndex');

      _defineProperty(this, "sortDescending", true);

      _defineProperty(this, "activeTask", null);

      _initializerDefineProperty(this, "showSubTasks", _descriptor4, this);

      _initializerDefineProperty(this, "listToSort", _descriptor5, this);

      _initializerDefineProperty(this, "listToSearch", _descriptor6, this);

      _initializerDefineProperty(this, "sortedAllocations", _descriptor7, this);

      _initializerDefineProperty(this, "selectionStatus", _descriptor8, this);

      _initializerDefineProperty(this, "selectionClient", _descriptor9, this);

      _initializerDefineProperty(this, "sortedScaleEvents", _descriptor10, this);

      _initializerDefineProperty(this, "shouldShowScaleEventTimeline", _descriptor11, this);
    }

    get searchProps() {
      return ['shortId', 'name'];
    }

    toggleShowSubTasks(e) {
      e.preventDefault();
      this.set('showSubTasks', !this.get('showSubTasks'));
    }

    get allocations() {
      return this.get('model.allocations') || [];
    }

    get filteredAllocations() {
      const {
        selectionStatus,
        selectionClient
      } = this;
      return this.allocations.filter(alloc => {
        if (selectionStatus.length && !selectionStatus.includes(alloc.clientStatus)) {
          return false;
        }

        if (selectionClient.length && !selectionClient.includes(alloc.get('node.shortId'))) {
          return false;
        }

        return true;
      });
    }

    get tooltipText() {
      if (this.can.cannot('scale job', null, {
        namespace: this.model.job.namespace.get('name')
      })) return "You aren't allowed to scale task groups";
      if (this.model.job.runningDeployment) return 'You cannot scale task groups during a deployment';
      return undefined;
    }

    gotoAllocation(allocation) {
      this.transitionToRoute('allocations.allocation', allocation.id);
    }

    scaleTaskGroup(count) {
      return this.model.scale(count);
    }

    get optionsAllocationStatus() {
      return [{
        key: 'pending',
        label: 'Pending'
      }, {
        key: 'running',
        label: 'Running'
      }, {
        key: 'complete',
        label: 'Complete'
      }, {
        key: 'failed',
        label: 'Failed'
      }, {
        key: 'lost',
        label: 'Lost'
      }, {
        key: 'unknown',
        label: 'Unknown'
      }];
    }

    get optionsClients() {
      const clients = Array.from(new Set(this.model.allocations.mapBy('node.shortId'))).compact(); // Update query param when the list of clients changes.

      (0, _runloop.scheduleOnce)('actions', () => {
        // eslint-disable-next-line ember/no-side-effects
        this.set('qpClient', (0, _qpSerialize.serialize)((0, _lodash.default)(clients, this.selectionClient)));
      });
      return clients.sort().map(dc => ({
        key: dc,
        label: dc
      }));
    }

    setFacetQueryParam(queryParam, selection) {
      this.set(queryParam, (0, _qpSerialize.serialize)(selection));
    }

    get taskGroup() {
      return this.model;
    }

    get breadcrumb() {
      const {
        job,
        name
      } = this.taskGroup;
      return {
        title: 'Task Group',
        label: name,
        args: ['jobs.job.task-group', job, name]
      };
    }

    setActiveTaskQueryParam(task) {
      if (task) {
        this.set('activeTask', `${task.allocation.id}-${task.name}`);
      } else {
        this.set('activeTask', null);
      }
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "userSettings", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "can", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, "pageSize", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "searchProps", [_object.computed], Object.getOwnPropertyDescriptor(_class2.prototype, "searchProps"), _class2.prototype), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, "showSubTasks", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "toggleShowSubTasks", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "toggleShowSubTasks"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "allocations", [_dec3], Object.getOwnPropertyDescriptor(_class2.prototype, "allocations"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "filteredAllocations", [_dec4], Object.getOwnPropertyDescriptor(_class2.prototype, "filteredAllocations"), _class2.prototype), _descriptor5 = _applyDecoratedDescriptor(_class2.prototype, "listToSort", [_dec5], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor6 = _applyDecoratedDescriptor(_class2.prototype, "listToSearch", [_dec6], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor7 = _applyDecoratedDescriptor(_class2.prototype, "sortedAllocations", [_dec7], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor8 = _applyDecoratedDescriptor(_class2.prototype, "selectionStatus", [_dec8], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor9 = _applyDecoratedDescriptor(_class2.prototype, "selectionClient", [_dec9], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor10 = _applyDecoratedDescriptor(_class2.prototype, "sortedScaleEvents", [_dec10], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor11 = _applyDecoratedDescriptor(_class2.prototype, "shouldShowScaleEventTimeline", [_dec11], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "tooltipText", [_dec12], Object.getOwnPropertyDescriptor(_class2.prototype, "tooltipText"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "gotoAllocation", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "gotoAllocation"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "scaleTaskGroup", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "scaleTaskGroup"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "optionsClients", [_dec13], Object.getOwnPropertyDescriptor(_class2.prototype, "optionsClients"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "setActiveTaskQueryParam", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "setActiveTaskQueryParam"), _class2.prototype)), _class2)) || _class);
  _exports.default = TaskGroupController;
});
;define("nomad-ui/controllers/jobs/job/versions", ["exports", "@ember/controller", "nomad-ui/mixins/with-namespace-resetting", "@ember/object/computed", "@ember/object"], function (_exports, _controller, _withNamespaceResetting, _computed, _object) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _class, _class2, _descriptor;

  0; //eaimeta@70e063a35619d71f0,"@ember/controller",0,"nomad-ui/mixins/with-namespace-resetting",0,"@ember/object/computed",0,"@ember/object",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;
  const alertClassFallback = 'is-info';
  const errorLevelToAlertClass = {
    danger: 'is-danger',
    warn: 'is-warning'
  };
  let VersionsController = (_dec = (0, _computed.alias)('model'), _dec2 = (0, _object.computed)('error.level'), classic(_class = (_class2 = class VersionsController extends _controller.default.extend(_withNamespaceResetting.default) {
    constructor() {
      super(...arguments);

      _defineProperty(this, "error", null);

      _initializerDefineProperty(this, "job", _descriptor, this);
    }

    get errorLevelClass() {
      return errorLevelToAlertClass[this.get('error.level')] || alertClassFallback;
    }

    onDismiss() {
      this.set('error', null);
    }

    handleError(errorObject) {
      this.set('error', errorObject);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "job", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "errorLevelClass", [_dec2], Object.getOwnPropertyDescriptor(_class2.prototype, "errorLevelClass"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "handleError", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "handleError"), _class2.prototype)), _class2)) || _class);
  _exports.default = VersionsController;
});
;define("nomad-ui/controllers/jobs/run", ["exports", "@ember/controller", "@ember/object", "@glimmer/tracking"], function (_exports, _controller, _object, _tracking) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _descriptor;

  0; //eaimeta@70e063a35619d71f0,"@ember/controller",0,"@ember/object",0,"@glimmer/tracking"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let JobsRunController = (_class = class JobsRunController extends _controller.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "jsonTemplate", _descriptor, this);
    }

    setTemplate(template) {
      this.jsonTemplate = template;
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "jsonTemplate", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return null;
    }
  }), _applyDecoratedDescriptor(_class.prototype, "setTemplate", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "setTemplate"), _class.prototype)), _class);
  _exports.default = JobsRunController;
});
;define("nomad-ui/controllers/jobs/run/index", ["exports", "@ember/application", "@ember/controller", "@ember/object", "@ember/service"], function (_exports, _application, _controller, _object, _service) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _descriptor;

  0; //eaimeta@70e063a35619d71f0,"@ember/application",0,"@ember/controller",0,"@ember/object",0,"@ember/service"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let RunController = (_class = class RunController extends _controller.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "router", _descriptor, this);

      _defineProperty(this, "queryParams", ['template']);
    }

    handleSaveAsTemplate() {
      (0, _application.getOwner)(this).lookup('controller:jobs.run').setTemplate(this.model._newDefinition);
    }

    onSubmit(id, namespace) {
      this.router.transitionTo('jobs.job', `${id}@${namespace || 'default'}`);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "router", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class.prototype, "handleSaveAsTemplate", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "handleSaveAsTemplate"), _class.prototype)), _class);
  _exports.default = RunController;
});
;define("nomad-ui/controllers/jobs/run/templates/index", ["exports", "@ember/controller", "@ember/object", "@glimmer/tracking"], function (_exports, _controller, _object, _tracking) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _descriptor;

  0; //eaimeta@70e063a35619d71f0,"@ember/controller",0,"@ember/object",0,"@glimmer/tracking"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let JobsRunTemplatesIndexController = (_class = class JobsRunTemplatesIndexController extends _controller.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "selectedTemplate", _descriptor, this);
    }

    get templates() {
      return [...this.model.variables.toArray(), ...this.model.default];
    }

    onChange(e) {
      this.selectedTemplate = e.target.id;
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "selectedTemplate", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return null;
    }
  }), _applyDecoratedDescriptor(_class.prototype, "onChange", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "onChange"), _class.prototype)), _class);
  _exports.default = JobsRunTemplatesIndexController;
});
;define("nomad-ui/controllers/jobs/run/templates/manage", ["exports", "@ember/controller", "@ember/service", "@glimmer/tracking", "ember-concurrency"], function (_exports, _controller, _service, _tracking, _emberConcurrency) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _class, _descriptor, _descriptor2, _descriptor3, _descriptor4;

  0; //eaimeta@70e063a35619d71f0,"@ember/controller",0,"@ember/service",0,"@glimmer/tracking",0,"ember-concurrency"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let JobsRunTemplatesManageController = (_dec = (0, _emberConcurrency.task)(function* (model) {
    try {
      yield model.destroyRecord();
      this.notifications.add({
        title: 'Job template deleted',
        message: `${model.path} successfully deleted`,
        color: 'success'
      });
    } catch (err) {
      this.notifications.add({
        title: `Job template could not be deleted.`,
        message: err,
        color: 'critical',
        sticky: true
      });
    }
  }), (_class = class JobsRunTemplatesManageController extends _controller.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "notifications", _descriptor, this);

      _initializerDefineProperty(this, "router", _descriptor2, this);

      _initializerDefineProperty(this, "selectedTemplate", _descriptor3, this);

      _defineProperty(this, "columns", ['name', 'namespace', 'description', 'delete'].map(column => {
        return {
          key: column,
          label: `${column.charAt(0).toUpperCase()}${column.substring(1)}`
        };
      }));

      _initializerDefineProperty(this, "deleteTemplate", _descriptor4, this);
    }

    get templates() {
      return [...this.model.variables.toArray(), ...this.model.default];
    }

    formatTemplateLabel(path) {
      return path.split('nomad/job-templates/')[1];
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "notifications", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "router", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "selectedTemplate", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return null;
    }
  }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, "deleteTemplate", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class));
  _exports.default = JobsRunTemplatesManageController;
});
;define("nomad-ui/controllers/jobs/run/templates/new", ["exports", "@ember/controller", "@ember/service", "@ember/object", "@glimmer/tracking", "nomad-ui/helpers/trim-path"], function (_exports, _controller, _service, _object, _tracking, _trimPath) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6;

  0; //eaimeta@70e063a35619d71f0,"@ember/controller",0,"@ember/service",0,"@ember/object",0,"@glimmer/tracking",0,"nomad-ui/helpers/trim-path"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let JobsRunTemplatesNewController = (_class = class JobsRunTemplatesNewController extends _controller.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "router", _descriptor, this);

      _initializerDefineProperty(this, "store", _descriptor2, this);

      _initializerDefineProperty(this, "system", _descriptor3, this);

      _initializerDefineProperty(this, "templateName", _descriptor4, this);

      _initializerDefineProperty(this, "templateNamespace", _descriptor5, this);

      _initializerDefineProperty(this, "notifications", _descriptor6, this);
    }

    get namespaceOptions() {
      const namespaces = this.store.peekAll('namespace').map(_ref => {
        let {
          name
        } = _ref;
        return {
          key: name,
          label: name
        };
      });
      return namespaces;
    }

    get isDuplicateTemplate() {
      const templates = this.store.peekAll('variable');
      const templateName = (0, _trimPath.trimPath)([`nomad/job-templates/${this.templateName}`]);
      return !!templates.without(this.model).find(v => v.path === templateName && v.namespace === this.templateNamespace);
    }

    updateKeyValue(key, value) {
      if (this.model.keyValues.find(kv => kv.key === key)) {
        this.model.keyValues.find(kv => kv.key === key).value = value;
      } else {
        this.model.keyValues.pushObject({
          key,
          value
        });
      }
    }

    async save(e) {
      var _this$model;

      let overwrite = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;

      if (e.type === 'submit') {
        e.preventDefault();
      }

      if ((_this$model = this.model) !== null && _this$model !== void 0 && _this$model.isNew) {
        if (this.namespaceOptions) {
          this.model.set('namespace', this.templateNamespace);
        } else {
          const [namespace] = this.store.peekAll('namespace').toArray();
          this.model.set('namespace', namespace.id);
        }
      }

      this.model.set('path', `nomad/job-templates/${this.templateName}`);
      this.model.setAndTrimPath();

      try {
        await this.model.save({
          adapterOptions: {
            overwrite
          }
        });
        this.notifications.add({
          title: 'Job template saved',
          message: `${this.templateName} successfully saved`,
          color: 'success'
        });
        this.router.transitionTo('jobs.run.templates');
      } catch (e) {
        this.notifications.add({
          title: 'Job template cannot be saved.',
          message: e,
          color: 'critical'
        });
      }
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "router", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "store", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "system", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, "templateName", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return null;
    }
  }), _descriptor5 = _applyDecoratedDescriptor(_class.prototype, "templateNamespace", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return 'default';
    }
  }), _descriptor6 = _applyDecoratedDescriptor(_class.prototype, "notifications", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class.prototype, "updateKeyValue", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "updateKeyValue"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "save", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "save"), _class.prototype)), _class);
  _exports.default = JobsRunTemplatesNewController;
});
;define("nomad-ui/controllers/jobs/run/templates/template", ["exports", "@ember/controller", "@ember/service", "@ember/object", "@glimmer/tracking", "ember-concurrency"], function (_exports, _controller, _service, _object, _tracking, _emberConcurrency) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _class, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5;

  0; //eaimeta@70e063a35619d71f0,"@ember/controller",0,"@ember/service",0,"@ember/object",0,"@glimmer/tracking",0,"ember-concurrency"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let JobsRunTemplatesController = (_dec = (0, _emberConcurrency.task)(function* () {
    try {
      yield this.model.destroyRecord();
      this.notifications.add({
        title: 'Job template deleted',
        message: `${this.model.path} successfully deleted`,
        color: 'success'
      });
      this.router.transitionTo('jobs.run.templates.manage');
    } catch (err) {
      this.notifications.add({
        title: `Job template could not be deleted.`,
        message: err,
        color: 'critical',
        sticky: true
      });
    }
  }), (_class = class JobsRunTemplatesController extends _controller.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "notifications", _descriptor, this);

      _initializerDefineProperty(this, "router", _descriptor2, this);

      _initializerDefineProperty(this, "system", _descriptor3, this);

      _initializerDefineProperty(this, "formModalActive", _descriptor4, this);

      _initializerDefineProperty(this, "deleteTemplate", _descriptor5, this);
    }

    updateKeyValue(key, value) {
      if (this.model.keyValues.find(kv => kv.key === key)) {
        this.model.keyValues.find(kv => kv.key === key).value = value;
      } else {
        this.model.keyValues.pushObject({
          key,
          value
        });
      }
    }

    toggleModal() {
      this.formModalActive = !this.formModalActive;
    }

    async save(e) {
      let overwrite = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;

      if (e.type === 'submit') {
        e.preventDefault();
      }

      try {
        await this.model.save({
          adapterOptions: {
            overwrite
          }
        });
        this.notifications.add({
          title: 'Job template saved',
          message: `${this.model.path} successfully editted`,
          color: 'success'
        });
        this.router.transitionTo('jobs.run.templates');
      } catch (e) {
        this.notifications.add({
          title: 'Job template cannot be editted.',
          message: e,
          color: 'critical'
        });
      }
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "notifications", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "router", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "system", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, "formModalActive", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return false;
    }
  }), _applyDecoratedDescriptor(_class.prototype, "updateKeyValue", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "updateKeyValue"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "toggleModal", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "toggleModal"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "save", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "save"), _class.prototype), _descriptor5 = _applyDecoratedDescriptor(_class.prototype, "deleteTemplate", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class));
  _exports.default = JobsRunTemplatesController;
});
;define("nomad-ui/controllers/oidc-mock", ["exports", "@ember/controller", "@ember/object", "@ember/service", "ember"], function (_exports, _controller, _object, _service, _ember) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _descriptor;

  0; //eaimeta@70e063a35619d71f0,"@ember/controller",0,"@ember/object",0,"@ember/service",0,"ember"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let OidcMockController = (_class = class OidcMockController extends _controller.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "router", _descriptor, this);

      _defineProperty(this, "queryParams", ['auth_method', 'client_nonce', 'redirect_uri', 'meta']);
    }

    signIn(fakeAccount) {
      const url = `${this.redirect_uri.split('?')[0]}?code=${fakeAccount.accessor}&state=success`;

      if (_ember.default.testing) {
        this.router.transitionTo(url);
      } else {
        window.location = url;
      }
    }

    failToSignIn() {
      const url = `${this.redirect_uri.split('?')[0]}?state=failure`;

      if (_ember.default.testing) {
        this.router.transitionTo(url);
      } else {
        window.location = url;
      }
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "router", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class.prototype, "signIn", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "signIn"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "failToSignIn", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "failToSignIn"), _class.prototype)), _class);
  _exports.default = OidcMockController;
});
;define("nomad-ui/controllers/optimize", ["exports", "@ember/controller", "@ember/object", "@glimmer/tracking", "@ember/service", "@ember/runloop", "ember-concurrency", "lodash.intersection", "nomad-ui/utils/qp-serialize", "@ember/object/computed", "nomad-ui/mixins/searchable"], function (_exports, _controller, _object, _tracking, _service, _runloop, _emberConcurrency, _lodash, _qpSerialize, _computed, _searchable) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _class, _class2, _descriptor, _descriptor2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _class4, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8, _descriptor9, _descriptor10, _descriptor11, _descriptor12, _descriptor13, _descriptor14, _descriptor15, _descriptor16;

  0; //eaimeta@70e063a35619d71f0,"@ember/controller",0,"@ember/object",0,"@glimmer/tracking",0,"@ember/controller",0,"@ember/service",0,"@ember/runloop",0,"ember-concurrency",0,"lodash.intersection",0,"nomad-ui/utils/qp-serialize",0,"@ember/object",0,"@ember/object/computed",0,"nomad-ui/mixins/searchable",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let OptimizeController = (_dec3 = (0, _controller.inject)('optimize/summary'), _dec4 = (0, _qpSerialize.deserializedQueryParam)('qpType'), _dec5 = (0, _qpSerialize.deserializedQueryParam)('qpStatus'), _dec6 = (0, _qpSerialize.deserializedQueryParam)('qpDatacenter'), _dec7 = (0, _qpSerialize.deserializedQueryParam)('qpPrefix'), _dec8 = (0, _emberConcurrency.task)(function* () {
    const currentSummaryIndex = this.filteredSummaries.indexOf(this.activeRecommendationSummary);
    const nextSummary = this.filteredSummaries.objectAt(currentSummaryIndex + 1);

    if (nextSummary) {
      this.transitionToSummary(nextSummary);
    } else {
      this.send('reachedEnd');
    }
  }).drop(), (_class4 = class OptimizeController extends _controller.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "summaryController", _descriptor3, this);

      _initializerDefineProperty(this, "router", _descriptor4, this);

      _initializerDefineProperty(this, "system", _descriptor5, this);

      _defineProperty(this, "queryParams", [{
        searchTerm: 'search'
      }, {
        qpNamespace: 'namespacefilter'
      }, {
        qpType: 'type'
      }, {
        qpStatus: 'status'
      }, {
        qpDatacenter: 'dc'
      }, {
        qpPrefix: 'prefix'
      }]);

      _initializerDefineProperty(this, "searchTerm", _descriptor6, this);

      _initializerDefineProperty(this, "qpType", _descriptor7, this);

      _initializerDefineProperty(this, "qpStatus", _descriptor8, this);

      _initializerDefineProperty(this, "qpDatacenter", _descriptor9, this);

      _initializerDefineProperty(this, "qpPrefix", _descriptor10, this);

      _initializerDefineProperty(this, "qpNamespace", _descriptor11, this);

      _initializerDefineProperty(this, "selectionType", _descriptor12, this);

      _initializerDefineProperty(this, "selectionStatus", _descriptor13, this);

      _initializerDefineProperty(this, "selectionDatacenter", _descriptor14, this);

      _initializerDefineProperty(this, "selectionPrefix", _descriptor15, this);

      _defineProperty(this, "optionsType", [{
        key: 'service',
        label: 'Service'
      }, {
        key: 'system',
        label: 'System'
      }]);

      _defineProperty(this, "optionsStatus", [{
        key: 'pending',
        label: 'Pending'
      }, {
        key: 'running',
        label: 'Running'
      }, {
        key: 'dead',
        label: 'Dead'
      }]);

      _initializerDefineProperty(this, "proceed", _descriptor16, this);

      this.summarySearch = RecommendationSummarySearch.create({
        dataSource: this
      });
    }

    get namespaces() {
      return this.model.namespaces;
    }

    get summaries() {
      return this.model.summaries;
    }

    get optionsNamespaces() {
      const availableNamespaces = this.namespaces.map(namespace => ({
        key: namespace.name,
        label: namespace.name
      }));
      availableNamespaces.unshift({
        key: '*',
        label: 'All (*)'
      }); // Unset the namespace selection if it was server-side deleted

      if (!availableNamespaces.mapBy('key').includes(this.qpNamespace)) {
        (0, _runloop.scheduleOnce)('actions', () => {
          // eslint-disable-next-line ember/no-side-effects
          this.qpNamespace = '*';
        });
      }

      return availableNamespaces;
    }

    get optionsDatacenter() {
      const flatten = (acc, val) => acc.concat(val);

      const allDatacenters = new Set(this.summaries.mapBy('job.datacenters').reduce(flatten, [])); // Remove any invalid datacenters from the query param/selection

      const availableDatacenters = Array.from(allDatacenters).compact();
      (0, _runloop.scheduleOnce)('actions', () => {
        // eslint-disable-next-line ember/no-side-effects
        this.qpDatacenter = (0, _qpSerialize.serialize)((0, _lodash.default)(availableDatacenters, this.selectionDatacenter));
      });
      return availableDatacenters.sort().map(dc => ({
        key: dc,
        label: dc
      }));
    }

    get optionsPrefix() {
      // A prefix is defined as the start of a job name up to the first - or .
      // ex: mktg-analytics -> mktg, ds.supermodel.classifier -> ds
      const hasPrefix = /.[-._]/; // Collect and count all the prefixes

      const allNames = this.summaries.mapBy('job.name');
      const nameHistogram = allNames.reduce((hist, name) => {
        if (hasPrefix.test(name)) {
          const prefix = name.match(/(.+?)[-._]/)[1];
          hist[prefix] = hist[prefix] ? hist[prefix] + 1 : 1;
        }

        return hist;
      }, {}); // Convert to an array

      const nameTable = Object.keys(nameHistogram).map(key => ({
        prefix: key,
        count: nameHistogram[key]
      })); // Only consider prefixes that match more than one name

      const prefixes = nameTable.filter(name => name.count > 1); // Remove any invalid prefixes from the query param/selection

      const availablePrefixes = prefixes.mapBy('prefix');
      (0, _runloop.scheduleOnce)('actions', () => {
        // eslint-disable-next-line ember/no-side-effects
        this.qpPrefix = (0, _qpSerialize.serialize)((0, _lodash.default)(availablePrefixes, this.selectionPrefix));
      }); // Sort, format, and include the count in the label

      return prefixes.sortBy('prefix').map(name => ({
        key: name.prefix,
        label: `${name.prefix} (${name.count})`
      }));
    }

    get filteredSummaries() {
      const {
        selectionType: types,
        selectionStatus: statuses,
        selectionDatacenter: datacenters,
        selectionPrefix: prefixes
      } = this; // A summary’s job must match ALL filter facets, but it can match ANY selection within a facet
      // Always return early to prevent unnecessary facet predicates.

      return this.summarySearch.listSearched.filter(summary => {
        const job = summary.get('job');

        if (job.isDestroying) {
          return false;
        }

        if (this.qpNamespace !== '*' && job.get('namespace.name') !== this.qpNamespace) {
          return false;
        }

        if (types.length && !types.includes(job.get('displayType.type'))) {
          return false;
        }

        if (statuses.length && !statuses.includes(job.get('status'))) {
          return false;
        }

        if (datacenters.length && !job.get('datacenters').find(dc => datacenters.includes(dc))) {
          return false;
        }

        const name = job.get('name');

        if (prefixes.length && !prefixes.find(prefix => name.startsWith(prefix))) {
          return false;
        }

        return true;
      });
    }

    get activeRecommendationSummary() {
      if (this.router.currentRouteName === 'optimize.summary') {
        return this.summaryController.model;
      } else {
        return undefined;
      }
    } // This is a task because the accordion uses timeouts for animation
    // eslint-disable-next-line require-yield


    transitionToSummary(summary) {
      this.transitionToRoute('optimize.summary', summary.slug, {
        queryParams: {
          jobNamespace: summary.jobNamespace
        }
      });
    }

    setFacetQueryParam(queryParam, selection) {
      this[queryParam] = (0, _qpSerialize.serialize)(selection);
      this.syncActiveSummary();
    }

    syncActiveSummary() {
      (0, _runloop.scheduleOnce)('actions', () => {
        if (!this.activeRecommendationSummary || !this.filteredSummaries.includes(this.activeRecommendationSummary)) {
          const firstFilteredSummary = this.filteredSummaries.objectAt(0);

          if (firstFilteredSummary) {
            this.transitionToSummary(firstFilteredSummary);
          } else {
            this.transitionToRoute('optimize');
          }
        }
      });
    }

  }, (_descriptor3 = _applyDecoratedDescriptor(_class4.prototype, "summaryController", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class4.prototype, "router", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor5 = _applyDecoratedDescriptor(_class4.prototype, "system", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor6 = _applyDecoratedDescriptor(_class4.prototype, "searchTerm", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return '';
    }
  }), _descriptor7 = _applyDecoratedDescriptor(_class4.prototype, "qpType", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return '';
    }
  }), _descriptor8 = _applyDecoratedDescriptor(_class4.prototype, "qpStatus", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return '';
    }
  }), _descriptor9 = _applyDecoratedDescriptor(_class4.prototype, "qpDatacenter", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return '';
    }
  }), _descriptor10 = _applyDecoratedDescriptor(_class4.prototype, "qpPrefix", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return '';
    }
  }), _descriptor11 = _applyDecoratedDescriptor(_class4.prototype, "qpNamespace", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return '*';
    }
  }), _descriptor12 = _applyDecoratedDescriptor(_class4.prototype, "selectionType", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor13 = _applyDecoratedDescriptor(_class4.prototype, "selectionStatus", [_dec5], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor14 = _applyDecoratedDescriptor(_class4.prototype, "selectionDatacenter", [_dec6], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor15 = _applyDecoratedDescriptor(_class4.prototype, "selectionPrefix", [_dec7], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor16 = _applyDecoratedDescriptor(_class4.prototype, "proceed", [_dec8], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class4.prototype, "transitionToSummary", [_object.action], Object.getOwnPropertyDescriptor(_class4.prototype, "transitionToSummary"), _class4.prototype), _applyDecoratedDescriptor(_class4.prototype, "setFacetQueryParam", [_object.action], Object.getOwnPropertyDescriptor(_class4.prototype, "setFacetQueryParam"), _class4.prototype), _applyDecoratedDescriptor(_class4.prototype, "syncActiveSummary", [_object.action], Object.getOwnPropertyDescriptor(_class4.prototype, "syncActiveSummary"), _class4.prototype)), _class4));
  _exports.default = OptimizeController;
  let RecommendationSummarySearch = (_dec = (0, _computed.alias)('dataSource.summaries'), _dec2 = (0, _computed.alias)('dataSource.searchTerm'), classic(_class = (_class2 = class RecommendationSummarySearch extends _object.default.extend(_searchable.default) {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "listToSearch", _descriptor, this);

      _initializerDefineProperty(this, "searchTerm", _descriptor2, this);

      _defineProperty(this, "exactMatchEnabled", false);

      _defineProperty(this, "fuzzySearchEnabled", true);

      _defineProperty(this, "includeFuzzySearchMatches", true);
    }

    get fuzzySearchProps() {
      return ['slug'];
    }

  }, (_applyDecoratedDescriptor(_class2.prototype, "fuzzySearchProps", [_object.computed], Object.getOwnPropertyDescriptor(_class2.prototype, "fuzzySearchProps"), _class2.prototype), _descriptor = _applyDecoratedDescriptor(_class2.prototype, "listToSearch", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "searchTerm", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class2)) || _class);

  window.__CLASSIC_OWN_CLASSES__.set(RecommendationSummarySearch, true);
});
;define("nomad-ui/controllers/optimize/summary", ["exports", "@ember/controller"], function (_exports, _controller) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _class, _descriptor;

  0; //eaimeta@70e063a35619d71f0,"@ember/controller",0,"@ember/controller"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let OptimizeSummaryController = (_dec = (0, _controller.inject)('optimize'), (_class = class OptimizeSummaryController extends _controller.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "optimizeController", _descriptor, this);

      _defineProperty(this, "queryParams", [{
        jobNamespace: 'namespace'
      }]);
    }

    get summary() {
      return this.model;
    }

    get breadcrumb() {
      const {
        slug
      } = this.summary;
      return {
        label: slug.replace('/', ' / '),
        args: ['optimize.summary', slug]
      };
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "optimizeController", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class));
  _exports.default = OptimizeSummaryController;
});
;define("nomad-ui/controllers/policies/index", ["exports", "@ember/controller", "@ember/service", "@ember/object"], function (_exports, _controller, _service, _object) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _descriptor;

  0; //eaimeta@70e063a35619d71f0,"@ember/controller",0,"@ember/service",0,"@ember/object"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let PoliciesIndexController = (_class = class PoliciesIndexController extends _controller.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "router", _descriptor, this);
    }

    get policies() {
      return this.model.policies.map(policy => {
        policy.tokens = (this.model.tokens || []).filter(token => {
          return token.policies.includes(policy);
        });
        return policy;
      });
    }

    openPolicy(policy) {
      this.router.transitionTo('policies.policy', policy.name);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "router", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class.prototype, "openPolicy", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "openPolicy"), _class.prototype)), _class);
  _exports.default = PoliciesIndexController;
});
;define("nomad-ui/controllers/policies/policy", ["exports", "@ember/controller", "@ember/object", "@ember/service", "@glimmer/tracking", "@ember/object/computed", "ember-concurrency"], function (_exports, _controller, _object, _service, _tracking, _computed, _emberConcurrency) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _class, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8, _descriptor9, _descriptor10;

  0; //eaimeta@70e063a35619d71f0,"@ember/controller",0,"@ember/object",0,"@ember/service",0,"@glimmer/tracking",0,"@ember/object/computed",0,"ember-concurrency"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let PoliciesPolicyController = (_dec = (0, _computed.alias)('model.policy'), _dec2 = (0, _computed.alias)('model.tokens'), _dec3 = (0, _emberConcurrency.task)(function* () {
    try {
      yield this.policy.deleteRecord();
      yield this.policy.save();
      this.notifications.add({
        title: 'Policy Deleted',
        color: 'success',
        type: `success`,
        destroyOnClick: false
      });
      this.router.transitionTo('policies');
    } catch (err) {
      this.notifications.add({
        title: `Error deleting Policy ${this.policy.name}`,
        message: err,
        color: 'critical',
        sticky: true
      });
    }
  }), _dec4 = (0, _emberConcurrency.task)(function* () {
    try {
      const newToken = this.store.createRecord('token', {
        name: `Example Token for ${this.policy.name}`,
        policies: [this.policy],
        // New date 10 minutes into the future
        expirationTime: new Date(Date.now() + 10 * 60 * 1000),
        type: 'client'
      });
      yield newToken.save();
      yield this.refreshTokens();
      this.notifications.add({
        title: 'Example Token Created',
        message: `${newToken.secret}`,
        color: 'success',
        timeout: 30000,
        customAction: {
          label: 'Copy to Clipboard',
          action: () => {
            navigator.clipboard.writeText(newToken.secret);
          }
        }
      });
    } catch (err) {
      this.error = {
        title: 'Error creating new token',
        description: err
      };
      throw err;
    }
  }), _dec5 = (0, _emberConcurrency.task)(function* (token) {
    try {
      yield token.deleteRecord();
      yield token.save();
      yield this.refreshTokens();
      this.notifications.add({
        title: 'Token successfully deleted',
        color: 'success'
      });
    } catch (err) {
      this.error = {
        title: 'Error deleting token',
        description: err
      };
      throw err;
    }
  }), (_class = class PoliciesPolicyController extends _controller.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "notifications", _descriptor, this);

      _initializerDefineProperty(this, "router", _descriptor2, this);

      _initializerDefineProperty(this, "store", _descriptor3, this);

      _initializerDefineProperty(this, "policy", _descriptor4, this);

      _initializerDefineProperty(this, "tokens", _descriptor5, this);

      _initializerDefineProperty(this, "error", _descriptor6, this);

      _initializerDefineProperty(this, "isDeleting", _descriptor7, this);

      _initializerDefineProperty(this, "deletePolicy", _descriptor8, this);

      _initializerDefineProperty(this, "createTestToken", _descriptor9, this);

      _initializerDefineProperty(this, "deleteToken", _descriptor10, this);
    }

    get newTokenString() {
      return `nomad acl token create -name="<TOKEN_NAME>" -policy="${this.policy.name}" -type=client -ttl=<8h>`;
    }

    onDeletePrompt() {
      this.isDeleting = true;
    }

    onDeleteCancel() {
      this.isDeleting = false;
    }

    async refreshTokens() {
      this.tokens = this.store.peekAll('token').filter(token => {
        var _token$policyNames;

        return (_token$policyNames = token.policyNames) === null || _token$policyNames === void 0 ? void 0 : _token$policyNames.includes(decodeURIComponent(this.policy.name));
      });
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "notifications", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "router", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "store", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, "policy", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor5 = _applyDecoratedDescriptor(_class.prototype, "tokens", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor6 = _applyDecoratedDescriptor(_class.prototype, "error", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return null;
    }
  }), _descriptor7 = _applyDecoratedDescriptor(_class.prototype, "isDeleting", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return false;
    }
  }), _applyDecoratedDescriptor(_class.prototype, "onDeletePrompt", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "onDeletePrompt"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "onDeleteCancel", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "onDeleteCancel"), _class.prototype), _descriptor8 = _applyDecoratedDescriptor(_class.prototype, "deletePolicy", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor9 = _applyDecoratedDescriptor(_class.prototype, "createTestToken", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor10 = _applyDecoratedDescriptor(_class.prototype, "deleteToken", [_dec5], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class));
  _exports.default = PoliciesPolicyController;
});
;define("nomad-ui/controllers/servers", ["exports", "@ember/controller"], function (_exports, _controller) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/controller"eaimeta@70e063a35619d71f

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  class ServersController extends _controller.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "isForbidden", false);
    }

  }

  _exports.default = ServersController;

  window.__CLASSIC_OWN_CLASSES__.set(ServersController, true);
});
;define("nomad-ui/controllers/servers/index", ["exports", "@ember/object/computed", "@ember/controller", "nomad-ui/mixins/sortable"], function (_exports, _computed, _controller, _sortable) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _class, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6;

  0; //eaimeta@70e063a35619d71f0,"@ember/object/computed",0,"@ember/controller",0,"nomad-ui/mixins/sortable"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let IndexController = (_dec = (0, _controller.inject)('servers'), _dec2 = (0, _computed.alias)('serversController.isForbidden'), _dec3 = (0, _computed.alias)('model.nodes'), _dec4 = (0, _computed.alias)('model.agents'), _dec5 = (0, _computed.alias)('agents'), _dec6 = (0, _computed.alias)('listSorted'), (_class = class IndexController extends _controller.default.extend(_sortable.default) {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "serversController", _descriptor, this);

      _initializerDefineProperty(this, "isForbidden", _descriptor2, this);

      _initializerDefineProperty(this, "nodes", _descriptor3, this);

      _initializerDefineProperty(this, "agents", _descriptor4, this);

      _defineProperty(this, "queryParams", [{
        currentPage: 'page'
      }, {
        sortProperty: 'sort'
      }, {
        sortDescending: 'desc'
      }]);

      _defineProperty(this, "currentPage", 1);

      _defineProperty(this, "pageSize", 8);

      _defineProperty(this, "sortProperty", 'isLeader');

      _defineProperty(this, "sortDescending", true);

      _initializerDefineProperty(this, "listToSort", _descriptor5, this);

      _initializerDefineProperty(this, "sortedAgents", _descriptor6, this);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "serversController", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "isForbidden", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "nodes", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, "agents", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor5 = _applyDecoratedDescriptor(_class.prototype, "listToSort", [_dec5], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor6 = _applyDecoratedDescriptor(_class.prototype, "sortedAgents", [_dec6], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class));
  _exports.default = IndexController;
});
;define("nomad-ui/controllers/servers/server", ["exports", "@ember/controller"], function (_exports, _controller) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/controller"eaimeta@70e063a35619d71f

  class ServersServerController extends _controller.default {
    get server() {
      return this.model;
    }

  }

  _exports.default = ServersServerController;

  window.__CLASSIC_OWN_CLASSES__.set(ServersServerController, true);
});
;define("nomad-ui/controllers/servers/server/index", ["exports", "@ember/controller", "@ember/object"], function (_exports, _controller, _object) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _class, _class2;

  0; //eaimeta@70e063a35619d71f0,"@ember/controller",0,"@ember/object",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let ServerController = (_dec = (0, _object.computed)('model.tags'), classic(_class = (_class2 = class ServerController extends _controller.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "activeTab", 'tags');
    }

    get sortedTags() {
      const tags = this.get('model.tags') || {};
      return Object.keys(tags).map(name => ({
        name,
        value: tags[name]
      })).sortBy('name');
    }

    setTab(tab) {
      this.set('activeTab', tab);
    }

  }, (_applyDecoratedDescriptor(_class2.prototype, "sortedTags", [_dec], Object.getOwnPropertyDescriptor(_class2.prototype, "sortedTags"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "setTab", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "setTab"), _class2.prototype)), _class2)) || _class);
  _exports.default = ServerController;
});
;define("nomad-ui/controllers/servers/server/monitor", ["exports", "@ember/controller"], function (_exports, _controller) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/controller"eaimeta@70e063a35619d71f

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  class ServerMonitorController extends _controller.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "queryParams", ['level']);

      _defineProperty(this, "level", 'info');
    }

  }

  _exports.default = ServerMonitorController;

  window.__CLASSIC_OWN_CLASSES__.set(ServerMonitorController, true);
});
;define("nomad-ui/controllers/settings/tokens", ["exports", "@ember/service", "@ember/controller", "@ember/application", "@ember/object/computed", "@ember/object", "@glimmer/tracking", "ember"], function (_exports, _service, _controller, _application, _computed, _object, _tracking, _ember) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8, _descriptor9;

  0; //eaimeta@70e063a35619d71f0,"@ember/service",0,"@ember/controller",0,"@ember/application",0,"@ember/object/computed",0,"@ember/object",0,"ember-classic-decorator",0,"@glimmer/tracking",0,"ember"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;

  /**
   * @type {RegExp}
   */
  const JWT_MATCH_EXPRESSION = /^[a-zA-Z0-9-_]+\.[a-zA-Z0-9-_]+\.[a-zA-Z0-9-_]+$/;
  let Tokens = (_dec = (0, _computed.alias)('token.selfToken'), classic(_class = (_class2 = class Tokens extends _controller.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "token", _descriptor, this);

      _initializerDefineProperty(this, "store", _descriptor2, this);

      _initializerDefineProperty(this, "router", _descriptor3, this);

      _defineProperty(this, "queryParams", ['code', 'state', 'jwtAuthMethod']);

      _initializerDefineProperty(this, "secret", _descriptor4, this);

      _initializerDefineProperty(this, "signInStatus", _descriptor5, this);

      _initializerDefineProperty(this, "tokenRecord", _descriptor6, this);

      _initializerDefineProperty(this, "jwtAuthMethod", _descriptor7, this);

      _initializerDefineProperty(this, "code", _descriptor8, this);

      _initializerDefineProperty(this, "state", _descriptor9, this);
    }

    resetStore() {
      this.store.unloadAll();
    }

    clearTokenProperties() {
      this.token.setProperties({
        secret: undefined,
        tokenNotFound: false
      });
      this.signInStatus = null; // Clear out all data to ensure only data the anonymous token is privileged to see is shown

      this.resetStore();
      this.token.reset();
      this.store.findAll('auth-method');
    }
    /**
     * @returns {import('@ember/array/mutable').default<import('../../models/auth-method').default>}
     */


    get authMethods() {
      var _this$model;

      return ((_this$model = this.model) === null || _this$model === void 0 ? void 0 : _this$model.authMethods) || [];
    }

    get hasJWTAuthMethods() {
      return this.authMethods.any(method => method.type === 'JWT');
    }

    get nonTokenAuthMethods() {
      return this.authMethods.rejectBy('type', 'JWT');
    }

    get JWTAuthMethods() {
      return this.authMethods.filterBy('type', 'JWT');
    }

    get JWTAuthMethodOptions() {
      return this.JWTAuthMethods.map(method => ({
        key: method.name,
        label: method.name
      }));
    }

    get defaultJWTAuthMethod() {
      return this.JWTAuthMethods.findBy('default', true) || this.JWTAuthMethods[0];
    }

    setCurrentAuthMethod() {
      if (!this.jwtAuthMethod) {
        var _this$defaultJWTAuthM;

        this.jwtAuthMethod = (_this$defaultJWTAuthM = this.defaultJWTAuthMethod) === null || _this$defaultJWTAuthM === void 0 ? void 0 : _this$defaultJWTAuthM.name;
      }
    }
    /**
     * @type {string}
     */


    /**
     * @type {boolean}
     */
    get currentSecretIsJWT() {
      var _this$secret;

      return ((_this$secret = this.secret) === null || _this$secret === void 0 ? void 0 : _this$secret.length) > 36 && this.secret.match(JWT_MATCH_EXPRESSION);
    }

    async verifyToken() {
      const {
        secret
      } = this;
      /**
       * @type {import('../../adapters/token').default}
       */
      // Ember currently lacks types for getOwner: https://github.com/emberjs/ember.js/issues/19916
      // @ts-ignore

      const TokenAdapter = (0, _application.getOwner)(this).lookup('adapter:token');
      const isJWT = secret.length > 36 && secret.match(JWT_MATCH_EXPRESSION);

      if (isJWT) {
        const methodName = this.jwtAuthMethod; // If user passes a JWT token, but there is no JWT auth method, throw an error

        if (!methodName) {
          this.token.set('secret', undefined);
          this.signInStatus = 'jwtFailure';
          return;
        }

        this.clearTokenProperties(); // Set bearer token instead of findSelf etc.

        TokenAdapter.loginJWT(secret, methodName).then(token => {
          this.token.setProperties({
            secret: token.secret,
            tokenNotFound: false
          });
          this.set('secret', null); // Clear out all data to ensure only data the new token is privileged to see is shown

          this.resetStore(); // Refetch the token and associated policies

          this.token.get('fetchSelfTokenAndPolicies').perform().catch();
          this.signInStatus = 'success';
        }, () => {
          this.token.set('secret', undefined);
          this.signInStatus = 'failure';
        });
      } else {
        this.clearTokenProperties();
        this.token.set('secret', secret);
        this.set('secret', null);
        TokenAdapter.findSelf().then(() => {
          // Clear out all data to ensure only data the new token is privileged to see is shown
          this.resetStore(); // Refetch the token and associated policies

          this.token.get('fetchSelfTokenAndPolicies').perform().catch();
          this.signInStatus = 'success';
          this.token.set('tokenNotFound', false);
        }, () => {
          this.token.set('secret', undefined);
          this.signInStatus = 'failure';
        });
      }
    } // Generate a 20-char nonce, using window.crypto to
    // create a sufficiently-large output then trimming


    generateNonce() {
      let randomArray = new Uint32Array(10);
      crypto.getRandomValues(randomArray);
      return randomArray.join('').slice(0, 20);
    }

    redirectToSSO(method) {
      const provider = method.name;
      const nonce = this.generateNonce();
      window.localStorage.setItem('nomadOIDCNonce', nonce);
      window.localStorage.setItem('nomadOIDCAuthMethod', provider);
      let redirectURL;

      if (_ember.default.testing) {
        redirectURL = this.router.currentURL;
      } else {
        redirectURL = new URL(window.location.toString());
        redirectURL.search = '';
        redirectURL = redirectURL.href;
      }

      method.getAuthURL({
        AuthMethodName: provider,
        ClientNonce: nonce,
        RedirectUri: redirectURL
      }).then(_ref => {
        let {
          AuthURL
        } = _ref;

        if (_ember.default.testing) {
          this.router.transitionTo(AuthURL.split('/ui')[1]);
        } else {
          window.location = AuthURL;
        }
      });
    }

    get isValidatingToken() {
      if (this.code && this.state) {
        this.validateSSO();
        return true;
      } else {
        return false;
      }
    }

    async validateSSO() {
      let redirectURL;

      if (_ember.default.testing) {
        redirectURL = this.router.currentURL;
      } else {
        redirectURL = new URL(window.location.toString());
        redirectURL.search = '';
        redirectURL = redirectURL.href;
      }

      const res = await this.token.authorizedRequest('/v1/acl/oidc/complete-auth', {
        method: 'POST',
        body: JSON.stringify({
          AuthMethodName: window.localStorage.getItem('nomadOIDCAuthMethod'),
          ClientNonce: window.localStorage.getItem('nomadOIDCNonce'),
          Code: this.code,
          State: this.state,
          RedirectURI: redirectURL
        })
      });

      if (res.ok) {
        const data = await res.json();
        this.clearTokenProperties();
        this.token.set('secret', data.SecretID);
        this.state = null;
        this.code = null; // Refetch the token and associated policies

        this.token.get('fetchSelfTokenAndPolicies').perform().catch();
        this.signInStatus = 'success';
        this.token.set('tokenNotFound', false);
      } else {
        this.state = 'failure';
        this.code = null;
      }
    }

    get SSOFailure() {
      return this.state === 'failure';
    }

    get canSignIn() {
      return !this.tokenRecord || this.tokenRecord.isExpired;
    }

    get shouldShowPolicies() {
      return this.tokenRecord;
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "token", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "store", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, "router", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, "secret", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return this.token.secret;
    }
  }), _descriptor5 = _applyDecoratedDescriptor(_class2.prototype, "signInStatus", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return null;
    }
  }), _descriptor6 = _applyDecoratedDescriptor(_class2.prototype, "tokenRecord", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "clearTokenProperties", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "clearTokenProperties"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "setCurrentAuthMethod", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "setCurrentAuthMethod"), _class2.prototype), _descriptor7 = _applyDecoratedDescriptor(_class2.prototype, "jwtAuthMethod", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "verifyToken", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "verifyToken"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "redirectToSSO", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "redirectToSSO"), _class2.prototype), _descriptor8 = _applyDecoratedDescriptor(_class2.prototype, "code", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return null;
    }
  }), _descriptor9 = _applyDecoratedDescriptor(_class2.prototype, "state", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return null;
    }
  })), _class2)) || _class);
  _exports.default = Tokens;
});
;define("nomad-ui/controllers/topology", ["exports", "@ember/controller", "@ember/object", "@ember/object/computed", "@ember/service", "@glimmer/tracking", "nomad-ui/utils/units", "nomad-ui/utils/qp-serialize", "@ember/runloop", "lodash.intersection", "nomad-ui/mixins/searchable"], function (_exports, _controller, _object, _computed, _service, _tracking, _units, _qpSerialize, _runloop, _lodash, _searchable) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _dec9, _dec10, _dec11, _dec12, _dec13, _dec14, _dec15, _dec16, _dec17, _dec18, _dec19, _dec20, _dec21, _dec22, _dec23, _dec24, _dec25, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8, _descriptor9;

  0; //eaimeta@70e063a35619d71f0,"@ember/controller",0,"@ember/object",0,"@ember/object/computed",0,"@ember/service",0,"@glimmer/tracking",0,"ember-classic-decorator",0,"nomad-ui/utils/units",0,"nomad-ui/utils/qp-serialize",0,"@ember/runloop",0,"lodash.intersection",0,"nomad-ui/mixins/searchable"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;

  const sumAggregator = (sum, value) => sum + (value || 0);

  const formatter = new Intl.NumberFormat(window.navigator.locale || 'en', {
    maximumFractionDigits: 2
  });
  let TopologyControllers = (_dec = (0, _qpSerialize.deserializedQueryParam)('qpState'), _dec2 = (0, _qpSerialize.deserializedQueryParam)('qpClass'), _dec3 = (0, _qpSerialize.deserializedQueryParam)('qpDatacenter'), _dec4 = (0, _qpSerialize.deserializedQueryParam)('qpNodePool'), _dec5 = (0, _qpSerialize.deserializedQueryParam)('qpVersion'), _dec6 = (0, _object.computed)('model.nodes', 'nodes.[]', 'selectionClass'), _dec7 = (0, _object.computed)('model.nodes', 'nodes.[]', 'selectionDatacenter'), _dec8 = (0, _object.computed)('model.nodePools.[]', 'selectionNodePool'), _dec9 = (0, _object.computed)('model.nodes', 'nodes.[]', 'selectionVersion'), _dec10 = (0, _computed.alias)('userSettings.showTopoVizPollingNotice'), _dec11 = (0, _object.computed)('model.nodes.@each.datacenter'), _dec12 = (0, _object.computed)('model.allocations.@each.isScheduled'), _dec13 = (0, _object.computed)('model.nodes.@each.resources'), _dec14 = (0, _object.computed)('model.nodes.@each.resources'), _dec15 = (0, _object.computed)('totalMemory'), _dec16 = (0, _object.computed)('totalMemory'), _dec17 = (0, _object.computed)('totalCPU'), _dec18 = (0, _object.computed)('totalCPU'), _dec19 = (0, _object.computed)('scheduledAllocations.@each.allocatedResources'), _dec20 = (0, _object.computed)('scheduledAllocations.@each.allocatedResources'), _dec21 = (0, _object.computed)('totalMemory', 'totalReservedMemory'), _dec22 = (0, _object.computed)('totalCPU', 'totalReservedCPU'), _dec23 = (0, _object.computed)('activeAllocation.taskGroupName', 'scheduledAllocations.@each.{job,taskGroupName}'), _dec24 = (0, _object.computed)('activeNode'), _dec25 = (0, _object.computed)('siblingAllocations.@each.node'), classic(_class = (_class2 = class TopologyControllers extends _controller.default.extend(_searchable.default) {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "userSettings", _descriptor, this);

      _defineProperty(this, "queryParams", [{
        searchTerm: 'search'
      }, {
        qpState: 'status'
      }, {
        qpVersion: 'version'
      }, {
        qpClass: 'class'
      }, {
        qpDatacenter: 'dc'
      }, {
        qpNodePool: 'nodePool'
      }]);

      _initializerDefineProperty(this, "searchTerm", _descriptor2, this);

      _defineProperty(this, "qpState", '');

      _defineProperty(this, "qpVersion", '');

      _defineProperty(this, "qpClass", '');

      _defineProperty(this, "qpDatacenter", '');

      _defineProperty(this, "qpNodePool", '');

      _initializerDefineProperty(this, "selectionState", _descriptor3, this);

      _initializerDefineProperty(this, "selectionClass", _descriptor4, this);

      _initializerDefineProperty(this, "selectionDatacenter", _descriptor5, this);

      _initializerDefineProperty(this, "selectionNodePool", _descriptor6, this);

      _initializerDefineProperty(this, "selectionVersion", _descriptor7, this);

      _initializerDefineProperty(this, "showPollingNotice", _descriptor8, this);

      _initializerDefineProperty(this, "pre09Nodes", _descriptor9, this);
    }

    setFacetQueryParam(queryParam, selection) {
      this.set(queryParam, (0, _qpSerialize.serialize)(selection));
    }

    get optionsState() {
      return [{
        key: 'initializing',
        label: 'Initializing'
      }, {
        key: 'ready',
        label: 'Ready'
      }, {
        key: 'down',
        label: 'Down'
      }, {
        key: 'ineligible',
        label: 'Ineligible'
      }, {
        key: 'draining',
        label: 'Draining'
      }, {
        key: 'disconnected',
        label: 'Disconnected'
      }];
    }

    get optionsClass() {
      const classes = Array.from(new Set(this.model.nodes.mapBy('nodeClass'))).compact().without(''); // Remove any invalid node classes from the query param/selection

      (0, _runloop.scheduleOnce)('actions', () => {
        // eslint-disable-next-line ember/no-side-effects
        this.set('qpClass', (0, _qpSerialize.serialize)((0, _lodash.default)(classes, this.selectionClass)));
      });
      return classes.sort().map(dc => ({
        key: dc,
        label: dc
      }));
    }

    get optionsDatacenter() {
      const datacenters = Array.from(new Set(this.model.nodes.mapBy('datacenter'))).compact(); // Remove any invalid datacenters from the query param/selection

      (0, _runloop.scheduleOnce)('actions', () => {
        // eslint-disable-next-line ember/no-side-effects
        this.set('qpDatacenter', (0, _qpSerialize.serialize)((0, _lodash.default)(datacenters, this.selectionDatacenter)));
      });
      return datacenters.sort().map(dc => ({
        key: dc,
        label: dc
      }));
    }

    get optionsNodePool() {
      const availableNodePools = this.model.nodePools;
      (0, _runloop.scheduleOnce)('actions', () => {
        // eslint-disable-next-line ember/no-side-effects
        this.set('qpNodePool', (0, _qpSerialize.serialize)((0, _lodash.default)(availableNodePools.map(_ref => {
          let {
            name
          } = _ref;
          return name;
        }), this.selectionNodePool)));
      });
      return availableNodePools.sort().map(nodePool => ({
        key: nodePool.name,
        label: nodePool.name
      }));
    }

    get optionsVersion() {
      const versions = Array.from(new Set(this.model.nodes.mapBy('version'))).compact(); // Remove any invalid versions from the query param/selection

      (0, _runloop.scheduleOnce)('actions', () => {
        // eslint-disable-next-line ember/no-side-effects
        this.set('qpVersion', (0, _qpSerialize.serialize)((0, _lodash.default)(versions, this.selectionVersion)));
      });
      return versions.sort().map(v => ({
        key: v,
        label: v
      }));
    }

    get filteredNodes() {
      const {
        nodes
      } = this.model;
      return nodes.filter(node => {
        const {
          searchTerm,
          selectionState,
          selectionVersion,
          selectionDatacenter,
          selectionClass,
          selectionNodePool
        } = this;
        const matchState = selectionState.includes(node.status) || selectionState.includes('ineligible') && !node.isEligible || selectionState.includes('draining') && node.isDraining;
        return (selectionState.length ? matchState : true) && (selectionVersion.length ? selectionVersion.includes(node.version) : true) && (selectionDatacenter.length ? selectionDatacenter.includes(node.datacenter) : true) && (selectionClass.length ? selectionClass.includes(node.nodeClass) : true) && (selectionNodePool.length ? selectionNodePool.includes(node.nodePool) : true) && (node.name.includes(searchTerm) || node.datacenter.includes(searchTerm) || node.nodeClass.includes(searchTerm));
      });
    }

    get datacenters() {
      return Array.from(new Set(this.model.nodes.mapBy('datacenter'))).compact();
    }

    get scheduledAllocations() {
      return this.model.allocations.filterBy('isScheduled');
    }

    get totalMemory() {
      const mibs = this.model.nodes.mapBy('resources.memory').reduce(sumAggregator, 0);
      return mibs * 1024 * 1024;
    }

    get totalCPU() {
      return this.model.nodes.mapBy('resources.cpu').reduce((sum, cpu) => sum + (cpu || 0), 0);
    }

    get totalMemoryFormatted() {
      return formatter.format((0, _units.reduceBytes)(this.totalMemory)[0]);
    }

    get totalMemoryUnits() {
      return (0, _units.reduceBytes)(this.totalMemory)[1];
    }

    get totalCPUFormatted() {
      return formatter.format((0, _units.reduceHertz)(this.totalCPU, null, 'MHz')[0]);
    }

    get totalCPUUnits() {
      return (0, _units.reduceHertz)(this.totalCPU, null, 'MHz')[1];
    }

    get totalReservedMemory() {
      const mibs = this.scheduledAllocations.mapBy('allocatedResources.memory').reduce(sumAggregator, 0);
      return mibs * 1024 * 1024;
    }

    get totalReservedCPU() {
      return this.scheduledAllocations.mapBy('allocatedResources.cpu').reduce(sumAggregator, 0);
    }

    get reservedMemoryPercent() {
      if (!this.totalReservedMemory || !this.totalMemory) return 0;
      return this.totalReservedMemory / this.totalMemory;
    }

    get reservedCPUPercent() {
      if (!this.totalReservedCPU || !this.totalCPU) return 0;
      return this.totalReservedCPU / this.totalCPU;
    }

    get siblingAllocations() {
      if (!this.activeAllocation) return [];
      const taskGroup = this.activeAllocation.taskGroupName;
      const jobId = this.activeAllocation.belongsTo('job').id();
      return this.scheduledAllocations.filter(allocation => {
        return allocation.taskGroupName === taskGroup && allocation.belongsTo('job').id() === jobId;
      });
    }

    get nodeUtilization() {
      const node = this.activeNode;
      const [formattedMemory, memoryUnits] = (0, _units.reduceBytes)(node.memory * 1024 * 1024);
      const totalReservedMemory = node.allocations.mapBy('memory').reduce(sumAggregator, 0);
      const totalReservedCPU = node.allocations.mapBy('cpu').reduce(sumAggregator, 0);
      return {
        totalMemoryFormatted: formattedMemory.toFixed(2),
        totalMemoryUnits: memoryUnits,
        totalMemory: node.memory * 1024 * 1024,
        totalReservedMemory: totalReservedMemory * 1024 * 1024,
        reservedMemoryPercent: totalReservedMemory / node.memory,
        totalCPU: node.cpu,
        totalReservedCPU,
        reservedCPUPercent: totalReservedCPU / node.cpu
      };
    }

    get uniqueActiveAllocationNodes() {
      return this.siblingAllocations.mapBy('node.id').uniq();
    }

    async setAllocation(allocation) {
      if (allocation) {
        await allocation.reload();
        await allocation.job.reload();
      }

      this.set('activeAllocation', allocation);
    }

    setNode(node) {
      this.set('activeNode', node);
    }

    handleTopoVizDataError(errors) {
      const pre09NodesError = errors.findBy('type', 'filtered-nodes');

      if (pre09NodesError) {
        this.pre09Nodes = pre09NodesError.context;
      }
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "userSettings", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "searchTerm", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return '';
    }
  }), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, "selectionState", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, "selectionClass", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor5 = _applyDecoratedDescriptor(_class2.prototype, "selectionDatacenter", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor6 = _applyDecoratedDescriptor(_class2.prototype, "selectionNodePool", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor7 = _applyDecoratedDescriptor(_class2.prototype, "selectionVersion", [_dec5], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "optionsState", [_object.computed], Object.getOwnPropertyDescriptor(_class2.prototype, "optionsState"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "optionsClass", [_dec6], Object.getOwnPropertyDescriptor(_class2.prototype, "optionsClass"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "optionsDatacenter", [_dec7], Object.getOwnPropertyDescriptor(_class2.prototype, "optionsDatacenter"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "optionsNodePool", [_dec8], Object.getOwnPropertyDescriptor(_class2.prototype, "optionsNodePool"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "optionsVersion", [_dec9], Object.getOwnPropertyDescriptor(_class2.prototype, "optionsVersion"), _class2.prototype), _descriptor8 = _applyDecoratedDescriptor(_class2.prototype, "showPollingNotice", [_dec10], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor9 = _applyDecoratedDescriptor(_class2.prototype, "pre09Nodes", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return null;
    }
  }), _applyDecoratedDescriptor(_class2.prototype, "datacenters", [_dec11], Object.getOwnPropertyDescriptor(_class2.prototype, "datacenters"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "scheduledAllocations", [_dec12], Object.getOwnPropertyDescriptor(_class2.prototype, "scheduledAllocations"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "totalMemory", [_dec13], Object.getOwnPropertyDescriptor(_class2.prototype, "totalMemory"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "totalCPU", [_dec14], Object.getOwnPropertyDescriptor(_class2.prototype, "totalCPU"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "totalMemoryFormatted", [_dec15], Object.getOwnPropertyDescriptor(_class2.prototype, "totalMemoryFormatted"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "totalMemoryUnits", [_dec16], Object.getOwnPropertyDescriptor(_class2.prototype, "totalMemoryUnits"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "totalCPUFormatted", [_dec17], Object.getOwnPropertyDescriptor(_class2.prototype, "totalCPUFormatted"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "totalCPUUnits", [_dec18], Object.getOwnPropertyDescriptor(_class2.prototype, "totalCPUUnits"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "totalReservedMemory", [_dec19], Object.getOwnPropertyDescriptor(_class2.prototype, "totalReservedMemory"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "totalReservedCPU", [_dec20], Object.getOwnPropertyDescriptor(_class2.prototype, "totalReservedCPU"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "reservedMemoryPercent", [_dec21], Object.getOwnPropertyDescriptor(_class2.prototype, "reservedMemoryPercent"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "reservedCPUPercent", [_dec22], Object.getOwnPropertyDescriptor(_class2.prototype, "reservedCPUPercent"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "siblingAllocations", [_dec23], Object.getOwnPropertyDescriptor(_class2.prototype, "siblingAllocations"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "nodeUtilization", [_dec24], Object.getOwnPropertyDescriptor(_class2.prototype, "nodeUtilization"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "uniqueActiveAllocationNodes", [_dec25], Object.getOwnPropertyDescriptor(_class2.prototype, "uniqueActiveAllocationNodes"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "setAllocation", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "setAllocation"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "setNode", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "setNode"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "handleTopoVizDataError", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "handleTopoVizDataError"), _class2.prototype)), _class2)) || _class);
  _exports.default = TopologyControllers;
});
;define("nomad-ui/controllers/variables", ["exports", "@ember/controller", "@ember/object", "@glimmer/tracking"], function (_exports, _controller, _object, _tracking) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _descriptor;

  0; //eaimeta@70e063a35619d71f0,"@ember/controller",0,"@ember/object",0,"@glimmer/tracking"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const ALL_NAMESPACE_WILDCARD = '*';
  let VariablesController = (_class = class VariablesController extends _controller.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "queryParams", [{
        qpNamespace: 'namespace'
      }]);

      _initializerDefineProperty(this, "qpNamespace", _descriptor, this);
    }

    setNamespace(namespace) {
      this.qpNamespace = namespace;
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "qpNamespace", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return ALL_NAMESPACE_WILDCARD;
    }
  }), _applyDecoratedDescriptor(_class.prototype, "setNamespace", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "setNamespace"), _class.prototype)), _class);
  _exports.default = VariablesController;
});
;define("nomad-ui/controllers/variables/index", ["exports", "@ember/controller", "@ember/service", "@ember/object"], function (_exports, _controller, _service, _object) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _descriptor, _descriptor2, _descriptor3;

  0; //eaimeta@70e063a35619d71f0,"@ember/controller",0,"@ember/service",0,"@ember/object"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const ALL_NAMESPACE_WILDCARD = '*';
  let VariablesIndexController = (_class = class VariablesIndexController extends _controller.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "router", _descriptor, this);

      _initializerDefineProperty(this, "store", _descriptor2, this);

      _defineProperty(this, "isForbidden", false);

      _initializerDefineProperty(this, "variables", _descriptor3, this);
    }

    goToVariable(variable) {
      this.router.transitionTo('variables.variable', variable.path);
    }

    goToNewVariable() {
      this.router.transitionTo('variables.new');
    }

    setNamespace(namespace) {
      this.variables.setNamespace(namespace);
    }

    get namespaceSelection() {
      return this.variables.qpNamespace;
    }

    get hasVariables() {
      return this.model.variables.length;
    }

    get root() {
      return this.model.root;
    }

    get namespaceOptions() {
      const namespaces = this.store.peekAll('namespace').map(_ref => {
        let {
          name
        } = _ref;
        return {
          key: name,
          label: name
        };
      });
      if (namespaces.length <= 1) return null; // Create default namespace selection

      namespaces.unshift({
        key: ALL_NAMESPACE_WILDCARD,
        label: 'All (*)'
      });
      return namespaces;
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "router", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "store", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class.prototype, "goToVariable", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "goToVariable"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "goToNewVariable", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "goToNewVariable"), _class.prototype), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "variables", [_controller.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class.prototype, "setNamespace", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "setNamespace"), _class.prototype)), _class);
  _exports.default = VariablesIndexController;
});
;define("nomad-ui/controllers/variables/new", ["exports", "@ember/controller", "@ember/service", "@glimmer/tracking"], function (_exports, _controller, _service, _tracking) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _descriptor, _descriptor2;

  0; //eaimeta@70e063a35619d71f0,"@ember/controller",0,"@ember/service",0,"@glimmer/tracking"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let VariablesNewController = (_class = class VariablesNewController extends _controller.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "store", _descriptor, this);

      _defineProperty(this, "queryParams", ['path', 'view']);

      _initializerDefineProperty(this, "view", _descriptor2, this);
    }

    get existingVariables() {
      return this.store.peekAll('variable');
    } //#region Code View

    /**
     * @type {"table" | "json"}
     */


    toggleView() {
      if (this.view === 'table') {
        this.view = 'json';
      } else {
        this.view = 'table';
      }
    } //#endregion Code View


  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "store", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "view", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return 'table';
    }
  })), _class);
  _exports.default = VariablesNewController;
});
;define("nomad-ui/controllers/variables/path", ["exports", "@ember/controller", "@ember/service", "@ember/object"], function (_exports, _controller, _service, _object) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _descriptor, _descriptor2;

  0; //eaimeta@70e063a35619d71f0,"@ember/controller",0,"@ember/service",0,"@ember/object"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const ALL_NAMESPACE_WILDCARD = '*';
  let VariablesPathController = (_class = class VariablesPathController extends _controller.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "router", _descriptor, this);

      _initializerDefineProperty(this, "variables", _descriptor2, this);
    }

    get absolutePath() {
      var _this$model;

      return ((_this$model = this.model) === null || _this$model === void 0 ? void 0 : _this$model.absolutePath) || '';
    }

    get breadcrumbs() {
      if (this.absolutePath) {
        let crumbs = [];
        this.absolutePath.split('/').reduce((m, n) => {
          crumbs.push({
            label: n,
            args: [`variables.path`, m + n]
          });
          return m + n + '/';
        }, []);
        return crumbs;
      } else {
        return [];
      }
    }

    goToNewVariable() {
      this.router.transitionTo('variables.new', {
        queryParams: {
          path: `${this.absolutePath}/`
        }
      });
    }

    setNamespace(namespace) {
      this.variables.setNamespace(namespace);
    }

    get namespaceSelection() {
      return this.variables.qpNamespace;
    }

    get namespaceOptions() {
      const namespaces = this.store.peekAll('namespace').map(_ref => {
        let {
          name
        } = _ref;
        return {
          key: name,
          label: name
        };
      });
      if (namespaces.length <= 1) return null; // Create default namespace selection

      namespaces.unshift({
        key: ALL_NAMESPACE_WILDCARD,
        label: 'All (*)'
      });
      return namespaces;
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "router", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class.prototype, "goToNewVariable", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "goToNewVariable"), _class.prototype), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "variables", [_controller.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class.prototype, "setNamespace", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "setNamespace"), _class.prototype)), _class);
  _exports.default = VariablesPathController;
});
;define("nomad-ui/controllers/variables/variable", ["exports", "@ember/controller"], function (_exports, _controller) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/controller"eaimeta@70e063a35619d71f

  class VariablesVariableController extends _controller.default {
    get breadcrumbs() {
      let crumbs = [];
      let id = decodeURI(this.params.id.split('@').slice(0, -1).join('@')); // remove namespace

      let namespace = this.params.id.split('@').slice(-1)[0];
      id.split('/').reduce((m, n) => {
        crumbs.push({
          label: n,
          args: m + n === id // If the last crumb, link to the var itself
          ? [`variables.variable`, `${m + n}@${namespace}`] : [`variables.path`, m + n]
        });
        return m + n + '/';
      }, []);
      return crumbs;
    }

  }

  _exports.default = VariablesVariableController;

  window.__CLASSIC_OWN_CLASSES__.set(VariablesVariableController, true);
});
;define("nomad-ui/controllers/variables/variable/edit", ["exports", "@ember/controller", "@ember/service", "@glimmer/tracking"], function (_exports, _controller, _service, _tracking) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _descriptor, _descriptor2;

  0; //eaimeta@70e063a35619d71f0,"@ember/controller",0,"@ember/service",0,"@glimmer/tracking"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let VariablesVariableEditController = (_class = class VariablesVariableEditController extends _controller.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "store", _descriptor, this);

      _defineProperty(this, "queryParams", ['path', 'view']);

      _initializerDefineProperty(this, "view", _descriptor2, this);
    }

    get existingVariables() {
      return this.store.peekAll('variable');
    } //#region Code View

    /**
     * @type {"table" | "json"}
     */


    toggleView() {
      if (this.view === 'table') {
        this.view = 'json';
      } else {
        this.view = 'table';
      }
    } //#endregion Code View


  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "store", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "view", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return 'table';
    }
  })), _class);
  _exports.default = VariablesVariableEditController;
});
;define("nomad-ui/controllers/variables/variable/index", ["exports", "@ember/controller", "@ember/object", "ember-concurrency", "@ember/service", "@glimmer/tracking"], function (_exports, _controller, _object, _emberConcurrency, _service, _tracking) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _class, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7;

  0; //eaimeta@70e063a35619d71f0,"@ember/controller",0,"@ember/object",0,"ember-concurrency",0,"@ember/service",0,"@glimmer/tracking"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let VariablesVariableIndexController = (_dec = (0, _emberConcurrency.task)(function* () {
    try {
      yield this.model.deleteRecord();
      yield this.model.save();

      if (this.model.parentFolderPath) {
        this.router.transitionTo('variables.path', this.model.parentFolderPath);
      } else {
        this.router.transitionTo('variables');
      }

      this.notifications.add({
        title: 'Variable deleted',
        message: `${this.model.path} successfully deleted`,
        color: 'success'
      });
    } catch (err) {
      this.notifications.add({
        title: `Error deleting ${this.model.path}`,
        message: err,
        color: 'critical',
        sticky: true
      });
    }
  }), (_class = class VariablesVariableIndexController extends _controller.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "queryParams", ['view']);

      _initializerDefineProperty(this, "router", _descriptor, this);

      _defineProperty(this, "queryParams", ['sortProperty', 'sortDescending']);

      _initializerDefineProperty(this, "sortProperty", _descriptor2, this);

      _initializerDefineProperty(this, "sortDescending", _descriptor3, this);

      _initializerDefineProperty(this, "notifications", _descriptor4, this);

      _initializerDefineProperty(this, "isDeleting", _descriptor5, this);

      _initializerDefineProperty(this, "deleteVariableFile", _descriptor6, this);

      _initializerDefineProperty(this, "view", _descriptor7, this);
    }

    get sortedKeyValues() {
      const sorted = this.model.keyValues.sortBy(this.sortProperty);
      return this.sortDescending ? sorted : sorted.reverse();
    }

    onDeletePrompt() {
      this.isDeleting = true;
    }

    onDeleteCancel() {
      this.isDeleting = false;
    }

    toggleView() {
      if (this.view === 'table') {
        this.view = 'json';
      } else {
        this.view = 'table';
      }
    } //#endregion Code View


    get shouldShowLinkedEntities() {
      var _this$model$pathLinke, _this$model$pathLinke2, _this$model$pathLinke3;

      return ((_this$model$pathLinke = this.model.pathLinkedEntities) === null || _this$model$pathLinke === void 0 ? void 0 : _this$model$pathLinke.job) || ((_this$model$pathLinke2 = this.model.pathLinkedEntities) === null || _this$model$pathLinke2 === void 0 ? void 0 : _this$model$pathLinke2.group) || ((_this$model$pathLinke3 = this.model.pathLinkedEntities) === null || _this$model$pathLinke3 === void 0 ? void 0 : _this$model$pathLinke3.task) || this.model.path === 'nomad/jobs';
    }

    toggleRowVisibility(kv) {
      (0, _object.set)(kv, 'isVisible', !kv.isVisible);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "router", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "sortProperty", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return 'key';
    }
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "sortDescending", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return true;
    }
  }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, "notifications", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor5 = _applyDecoratedDescriptor(_class.prototype, "isDeleting", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return false;
    }
  }), _applyDecoratedDescriptor(_class.prototype, "onDeletePrompt", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "onDeletePrompt"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "onDeleteCancel", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "onDeleteCancel"), _class.prototype), _descriptor6 = _applyDecoratedDescriptor(_class.prototype, "deleteVariableFile", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor7 = _applyDecoratedDescriptor(_class.prototype, "view", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return 'table';
    }
  })), _class));
  _exports.default = VariablesVariableIndexController;
});
;define("nomad-ui/data-adapter", ["exports", "@ember-data/debug"], function (_exports, _debug) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _debug.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@ember-data/debug"eaimeta@70e063a35619d71f
});
;define("nomad-ui/flash/object", ["exports", "ember-cli-flash/flash/object"], function (_exports, _object) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _object.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-cli-flash/flash/object"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/-element", ["exports", "ember-element-helper/helpers/-element"], function (_exports, _element) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _element.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-element-helper/helpers/-element"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/all-icons", ["exports", "@ember/component/helper", "nomad-ui/svgs"], function (_exports, _helper, _svgs) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.allIcons = allIcons;
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/component/helper",0,"nomad-ui/svgs"eaimeta@70e063a35619d71f

  /**
   * Icons array
   *
   * Usage: {{#each (all-icons) as |icon|}}
   *
   * Returns the array of all icon strings available to {{x-icon}}. This is a bit of a hack
   * since the above SVGs import isn't available in the Storybook context.
   */
  function allIcons() {
    return Object.keys(_svgs.default);
  }

  var _default = (0, _helper.helper)(allIcons);

  _exports.default = _default;
});
;define("nomad-ui/helpers/and", ["exports", "ember-truth-helpers/helpers/and"], function (_exports, _and) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _and.default;
    }
  });
  Object.defineProperty(_exports, "and", {
    enumerable: true,
    get: function () {
      return _and.and;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-truth-helpers/helpers/and"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/append", ["exports", "ember-composable-helpers/helpers/append"], function (_exports, _append) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _append.default;
    }
  });
  Object.defineProperty(_exports, "append", {
    enumerable: true,
    get: function () {
      return _append.append;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-composable-helpers/helpers/append"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/assign", ["exports", "ember-assign-helper/helpers/assign"], function (_exports, _assign) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _assign.default;
    }
  });
  Object.defineProperty(_exports, "assign", {
    enumerable: true,
    get: function () {
      return _assign.assign;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-assign-helper/helpers/assign"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/async-escape-hatch", ["exports", "@ember/component/helper"], function (_exports, _helper) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.asyncEscapeHatch = asyncEscapeHatch;
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/component/helper"eaimeta@70e063a35619d71f

  function asyncEscapeHatch(_ref) {
    let [model, relationship] = _ref;
    return model[relationship].content;
  }

  var _default = _helper.default.helper(asyncEscapeHatch);

  _exports.default = _default;
});
;define("nomad-ui/helpers/bind", ["exports", "@ember/component/helper", "@ember/debug"], function (_exports, _helper, _debug) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.bind = bind;
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/component/helper",0,"@ember/debug"eaimeta@70e063a35619d71f

  /**
   * bind
   *
   * Usage: {{bind this.function}}
   *
   * Returns a version of a function bound to the template target (e.g., component or controller)
   */
  function bind(_ref) {
    let [func, target] = _ref;
    (true && !(typeof func === 'function') && (0, _debug.assert)('A function is required as the first argument', typeof func === 'function'));
    (true && !(target) && (0, _debug.assert)('A context is required as the second argument', target));
    return func.bind(target);
  }

  var _default = (0, _helper.helper)(bind);

  _exports.default = _default;
});
;define("nomad-ui/helpers/call", ["exports", "ember-composable-helpers/helpers/call"], function (_exports, _call) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _call.default;
    }
  });
  Object.defineProperty(_exports, "call", {
    enumerable: true,
    get: function () {
      return _call.call;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-composable-helpers/helpers/call"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/camelize", ["exports", "ember-cli-string-helpers/helpers/camelize"], function (_exports, _camelize) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _camelize.default;
    }
  });
  Object.defineProperty(_exports, "camelize", {
    enumerable: true,
    get: function () {
      return _camelize.camelize;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-cli-string-helpers/helpers/camelize"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/can", ["exports", "ember-can/helpers/can"], function (_exports, _can) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _can.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-can/helpers/can"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/cancel-all", ["exports", "ember-concurrency/helpers/cancel-all"], function (_exports, _cancelAll) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _cancelAll.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-concurrency/helpers/cancel-all"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/cannot", ["exports", "ember-can/helpers/cannot"], function (_exports, _cannot) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _cannot.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-can/helpers/cannot"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/capitalize", ["exports", "ember-cli-string-helpers/helpers/capitalize"], function (_exports, _capitalize) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _capitalize.default;
    }
  });
  Object.defineProperty(_exports, "capitalize", {
    enumerable: true,
    get: function () {
      return _capitalize.capitalize;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-cli-string-helpers/helpers/capitalize"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/chunk", ["exports", "ember-composable-helpers/helpers/chunk"], function (_exports, _chunk) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _chunk.default;
    }
  });
  Object.defineProperty(_exports, "chunk", {
    enumerable: true,
    get: function () {
      return _chunk.chunk;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-composable-helpers/helpers/chunk"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/classify", ["exports", "ember-cli-string-helpers/helpers/classify"], function (_exports, _classify) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _classify.default;
    }
  });
  Object.defineProperty(_exports, "classify", {
    enumerable: true,
    get: function () {
      return _classify.classify;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-cli-string-helpers/helpers/classify"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/clean-keycommand", ["exports", "@ember/component/helper"], function (_exports, _helper) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/component/helper"eaimeta@70e063a35619d71f

  const KEY_ALIAS_MAP = {
    ArrowRight: '→',
    ArrowLeft: '←',
    ArrowUp: '↑',
    ArrowDown: '↓',
    '+': ' + '
  };

  var _default = (0, _helper.helper)(function cleanKeycommand(_ref
  /*, named*/
  ) {
    let [key] = _ref;
    let cleaned = key;
    Object.keys(KEY_ALIAS_MAP).forEach(k => {
      cleaned = cleaned.replace(k, KEY_ALIAS_MAP[k]);
    });
    return cleaned;
  });

  _exports.default = _default;
});
;define("nomad-ui/helpers/compact", ["exports", "ember-composable-helpers/helpers/compact"], function (_exports, _compact) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _compact.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-composable-helpers/helpers/compact"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/compute", ["exports", "ember-composable-helpers/helpers/compute"], function (_exports, _compute) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _compute.default;
    }
  });
  Object.defineProperty(_exports, "compute", {
    enumerable: true,
    get: function () {
      return _compute.compute;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-composable-helpers/helpers/compute"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/conditionally-capitalize", ["exports", "@ember/component/helper"], function (_exports, _helper) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.conditionallyCapitalize = conditionallyCapitalize;
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/component/helper"eaimeta@70e063a35619d71f

  /**
   * If the condition is true, capitalize the first letter of the term.
   * Otherwise, return the term in lowercase.
   */
  function conditionallyCapitalize(_ref) {
    let [term, condition] = _ref;
    return condition ? `${term.charAt(0).toUpperCase()}${term.substring(1)}` : term.toLowerCase();
  }

  var _default = _helper.default.helper(conditionallyCapitalize);

  _exports.default = _default;
});
;define("nomad-ui/helpers/contains", ["exports", "ember-composable-helpers/helpers/contains"], function (_exports, _contains) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _contains.default;
    }
  });
  Object.defineProperty(_exports, "contains", {
    enumerable: true,
    get: function () {
      return _contains.contains;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-composable-helpers/helpers/contains"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/css-class", ["exports", "@ember/component/helper", "@ember/string"], function (_exports, _helper, _string) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.cssClass = cssClass;
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/component/helper",0,"@ember/string"eaimeta@70e063a35619d71f

  /**
   * CSS Class
   *
   * Usage: {{css-class updateType}}
   *
   * Outputs a css friendly class string from any human string.
   * Differs from dasherize by handling slashes.
   */
  function cssClass(_ref) {
    let [updateType] = _ref;
    return (0, _string.dasherize)(updateType.replace(/\//g, '-'));
  }

  var _default = (0, _helper.helper)(cssClass);

  _exports.default = _default;
});
;define("nomad-ui/helpers/dasherize", ["exports", "ember-cli-string-helpers/helpers/dasherize"], function (_exports, _dasherize) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _dasherize.default;
    }
  });
  Object.defineProperty(_exports, "dasherize", {
    enumerable: true,
    get: function () {
      return _dasherize.dasherize;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-cli-string-helpers/helpers/dasherize"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/dec", ["exports", "ember-composable-helpers/helpers/dec"], function (_exports, _dec) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _dec.default;
    }
  });
  Object.defineProperty(_exports, "dec", {
    enumerable: true,
    get: function () {
      return _dec.dec;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-composable-helpers/helpers/dec"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/dedupe-by-property", ["exports", "@ember/component/helper"], function (_exports, _helper) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/component/helper"eaimeta@70e063a35619d71f

  var _default = (0, _helper.helper)(function dedupeByProperty(_ref, _ref2) {
    let [arr] = _ref;
    let {
      prop
    } = _ref2;
    const seen = new Set();
    return arr.filter(item => {
      const val = item[prop];

      if (seen.has(val)) {
        return false;
      } else {
        seen.add(val);
        return true;
      }
    });
  });

  _exports.default = _default;
});
;define("nomad-ui/helpers/did-insert", ["exports", "ember-render-helpers/helpers/did-insert"], function (_exports, _didInsert) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _didInsert.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-render-helpers/helpers/did-insert"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/did-update", ["exports", "ember-render-helpers/helpers/did-update"], function (_exports, _didUpdate) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _didUpdate.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-render-helpers/helpers/did-update"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/drop", ["exports", "ember-composable-helpers/helpers/drop"], function (_exports, _drop) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _drop.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-composable-helpers/helpers/drop"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/element", ["exports", "ember-element-helper/helpers/element"], function (_exports, _element) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _element.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-element-helper/helpers/element"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/ember-power-select-is-group", ["exports", "ember-power-select/helpers/ember-power-select-is-group"], function (_exports, _emberPowerSelectIsGroup) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _emberPowerSelectIsGroup.default;
    }
  });
  Object.defineProperty(_exports, "emberPowerSelectIsGroup", {
    enumerable: true,
    get: function () {
      return _emberPowerSelectIsGroup.emberPowerSelectIsGroup;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-power-select/helpers/ember-power-select-is-group"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/ember-power-select-is-selected", ["exports", "ember-power-select/helpers/ember-power-select-is-selected"], function (_exports, _emberPowerSelectIsSelected) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _emberPowerSelectIsSelected.default;
    }
  });
  Object.defineProperty(_exports, "emberPowerSelectIsSelected", {
    enumerable: true,
    get: function () {
      return _emberPowerSelectIsSelected.emberPowerSelectIsSelected;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-power-select/helpers/ember-power-select-is-selected"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/ensure-safe-component", ["exports", "@embroider/util"], function (_exports, _util) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _util.EnsureSafeComponentHelper;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@embroider/util"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/entries", ["exports", "ember-composable-helpers/helpers/entries"], function (_exports, _entries) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _entries.default;
    }
  });
  Object.defineProperty(_exports, "entries", {
    enumerable: true,
    get: function () {
      return _entries.entries;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-composable-helpers/helpers/entries"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/eq-by", ["exports", "@ember/object", "@ember/component/helper"], function (_exports, _object, _helper) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.eqBy = eqBy;
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/object",0,"@ember/component/helper"eaimeta@70e063a35619d71f

  /**
   * Eq By
   *
   * Usage: {{eq-by "prop" obj1 obj2}}
   *
   * Returns true when obj1 and obj2 have the same value for property "prop"
   */
  function eqBy(_ref) {
    let [prop, obj1, obj2] = _ref;
    if (!prop || !obj1 || !obj2) return false;
    return (0, _object.get)(obj1, prop) === (0, _object.get)(obj2, prop);
  }

  var _default = (0, _helper.helper)(eqBy);

  _exports.default = _default;
});
;define("nomad-ui/helpers/eq", ["exports", "ember-truth-helpers/helpers/equal"], function (_exports, _equal) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _equal.default;
    }
  });
  Object.defineProperty(_exports, "equal", {
    enumerable: true,
    get: function () {
      return _equal.equal;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-truth-helpers/helpers/equal"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/filter-by", ["exports", "ember-composable-helpers/helpers/filter-by"], function (_exports, _filterBy) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _filterBy.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-composable-helpers/helpers/filter-by"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/filter", ["exports", "ember-composable-helpers/helpers/filter"], function (_exports, _filter) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _filter.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-composable-helpers/helpers/filter"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/find-by", ["exports", "ember-composable-helpers/helpers/find-by"], function (_exports, _findBy) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _findBy.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-composable-helpers/helpers/find-by"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/flatten", ["exports", "ember-composable-helpers/helpers/flatten"], function (_exports, _flatten) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _flatten.default;
    }
  });
  Object.defineProperty(_exports, "flatten", {
    enumerable: true,
    get: function () {
      return _flatten.flatten;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-composable-helpers/helpers/flatten"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/format-bytes", ["exports", "@ember/component/helper", "nomad-ui/utils/units"], function (_exports, _helper, _units) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/component/helper",0,"nomad-ui/utils/units"eaimeta@70e063a35619d71f

  /**
   * Bytes Formatter
   *
   * Usage: {{format-bytes bytes start="KiB"}}
   *
   * Outputs the bytes reduced to the largest supported unit size for which
   * bytes is larger than one.
   */
  function formatBytesHelper(_ref, _ref2) {
    let [bytes] = _ref;
    let {
      start
    } = _ref2;
    return (0, _units.formatBytes)(bytes, start);
  }

  var _default = _helper.default.helper(formatBytesHelper);

  _exports.default = _default;
});
;define("nomad-ui/helpers/format-date", ["exports", "moment", "@ember/component/helper"], function (_exports, _moment, _helper) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.formatTs = formatTs;
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"moment",0,"@ember/component/helper"eaimeta@70e063a35619d71f

  function formatTs(_ref) {
    let [date] = _ref;
    const format = 'MMMM D, YYYY';
    return (0, _moment.default)(date).format(format);
  }

  var _default = _helper.default.helper(formatTs);

  _exports.default = _default;
});
;define("nomad-ui/helpers/format-duration", ["exports", "@ember/component/helper", "nomad-ui/utils/format-duration"], function (_exports, _helper, _formatDuration) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/component/helper",0,"nomad-ui/utils/format-duration"eaimeta@70e063a35619d71f

  function formatDurationHelper(_ref, _ref2) {
    let [duration] = _ref;
    let {
      units,
      longForm
    } = _ref2;
    return (0, _formatDuration.default)(duration, units, longForm);
  }

  var _default = _helper.default.helper(formatDurationHelper);

  _exports.default = _default;
});
;define("nomad-ui/helpers/format-hertz", ["exports", "@ember/component/helper", "nomad-ui/utils/units"], function (_exports, _helper, _units) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/component/helper",0,"nomad-ui/utils/units"eaimeta@70e063a35619d71f

  /**
   * Hertz Formatter
   *
   * Usage: {{format-hertz hertz}}
   *
   * Outputs the frequency reduced to the largest supported unit size for which
   * the resulting number is larger than one.
   */
  function formatHertzHelper(_ref, _ref2) {
    let [hertz] = _ref;
    let {
      start
    } = _ref2;
    return (0, _units.formatHertz)(hertz, start || 'MHz');
  }

  var _default = _helper.default.helper(formatHertzHelper);

  _exports.default = _default;
});
;define("nomad-ui/helpers/format-id", ["exports", "@ember/component/helper"], function (_exports, _helper) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.formatID = formatID;
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/component/helper"eaimeta@70e063a35619d71f

  function formatID(_ref) {
    let [model, relationship] = _ref;
    const id = model.belongsTo(relationship).id();
    return {
      id,
      shortId: id.split('-')[0]
    };
  }

  var _default = _helper.default.helper(formatID);

  _exports.default = _default;
});
;define("nomad-ui/helpers/format-job-id", ["exports", "@ember/component/helper"], function (_exports, _helper) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.formatJobId = formatJobId;
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/component/helper"eaimeta@70e063a35619d71f

  function formatJobId(_ref) {
    let [jobId] = _ref;
    if (!jobId) return;
    return JSON.parse(jobId).join('@');
  }

  var _default = _helper.default.helper(formatJobId);

  _exports.default = _default;
});
;define("nomad-ui/helpers/format-month-ts", ["exports", "moment", "@ember/component/helper"], function (_exports, _moment, _helper) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.formatMonthTs = formatMonthTs;
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"moment",0,"@ember/component/helper"eaimeta@70e063a35619d71f

  function formatMonthTs(_ref) {
    let [date] = _ref;
    let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
    const format = options.short ? 'MMM D' : 'MMM DD HH:mm:ss ZZ';
    return (0, _moment.default)(date).format(format);
  }

  var _default = _helper.default.helper(formatMonthTs);

  _exports.default = _default;
});
;define("nomad-ui/helpers/format-percentage", ["exports", "@ember/component/helper"], function (_exports, _helper) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.formatPercentage = formatPercentage;
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/component/helper"eaimeta@70e063a35619d71f

  /**
   * Percentage Calculator
   *
   * Usage: {{format-percentage count total="number" complement="number"}}
   *
   * Outputs the ratio as a percentage, where ratio is either
   * `count / total` or `count / (count + complement)`
   */
  function formatPercentage(params) {
    let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
    const value = safeNumber(params[0]);
    const complement = options.complement;
    let ratio;
    let total = options.total;

    if (total != undefined) {
      total = safeNumber(total);
    } else if (complement != undefined) {
      total = value + safeNumber(complement);
    } else {
      // Ensures that ratio is between 0 and 1 when neither total or complement are defined
      total = value;
    } // Use zero instead of infinity when the divisor is zero


    ratio = total ? value / total : 0;
    return 0 < ratio && ratio < 0.01 ? '< 1%' : Math.round(ratio * 100) + '%';
  } // If a value is not a number, treat it as zero


  function safeNumber(value) {
    return isNaN(value) ? 0 : +value;
  }

  var _default = (0, _helper.helper)(formatPercentage);

  _exports.default = _default;
});
;define("nomad-ui/helpers/format-scheduled-bytes", ["exports", "@ember/component/helper", "nomad-ui/utils/units"], function (_exports, _helper, _units) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/component/helper",0,"nomad-ui/utils/units"eaimeta@70e063a35619d71f

  /**
   * Scheduled Bytes Formatter
   *
   * Usage: {{format-scheduled-bytes bytes start="KiB"}}
   *
   * Outputs the bytes reduced to the resolution the scheduler
   * and job spec operate at.
   */
  function formatScheduledBytesHelper(_ref, _ref2) {
    let [bytes] = _ref;
    let {
      start
    } = _ref2;
    return (0, _units.formatScheduledBytes)(bytes, start);
  }

  var _default = _helper.default.helper(formatScheduledBytesHelper);

  _exports.default = _default;
});
;define("nomad-ui/helpers/format-scheduled-hertz", ["exports", "@ember/component/helper", "nomad-ui/utils/units"], function (_exports, _helper, _units) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/component/helper",0,"nomad-ui/utils/units"eaimeta@70e063a35619d71f

  /**
   * Scheduled Hertz Formatter
   *
   * Usage: {{format-scheduled-hertz hertz}}
   *
   * Outputs the frequency reduced to the resolution the scheduler
   * and job spec operate at.
   */
  function formatScheduledHertzHelper(_ref, _ref2) {
    let [hertz] = _ref;
    let {
      start
    } = _ref2;
    return (0, _units.formatScheduledHertz)(hertz, start || 'MHz');
  }

  var _default = _helper.default.helper(formatScheduledHertzHelper);

  _exports.default = _default;
});
;define("nomad-ui/helpers/format-template-label", ["exports", "@ember/component/helper", "@ember/string"], function (_exports, _helper, _string) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/component/helper",0,"@ember/string"eaimeta@70e063a35619d71f

  var _default = (0, _helper.helper)(function formatTemplateLabel(_ref) {
    let [path] = _ref;
    // Removes the preceeding nomad/job-templates/default/
    let label;
    const delimiter = path.lastIndexOf('/');

    if (delimiter !== -1) {
      label = path.slice(delimiter + 1);
    } else {
      label = path;
    }

    return (0, _string.capitalize)(label).split('-').join(' ');
  });

  _exports.default = _default;
});
;define("nomad-ui/helpers/format-ts", ["exports", "moment", "@ember/component/helper"], function (_exports, _moment, _helper) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.formatTs = formatTs;
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"moment",0,"@ember/component/helper"eaimeta@70e063a35619d71f

  function formatTs(_ref) {
    let [date] = _ref;
    let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
    const format = options.short ? 'MMM D' : options.timeOnly ? 'HH:mm:ss' : "MMM DD, 'YY HH:mm:ss ZZ";
    return (0, _moment.default)(date).format(format);
  }

  var _default = _helper.default.helper(formatTs);

  _exports.default = _default;
});
;define("nomad-ui/helpers/format-volume-name", ["exports", "@ember/component/helper"], function (_exports, _helper) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.formatVolumeName = formatVolumeName;
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/component/helper"eaimeta@70e063a35619d71f

  /**
   * Volume Name Formatter
   *
   * Usage: {{format-volume-name source=string isPerAlloc=boolean volumeExtension=string}}
   *
   * Outputs a title/link for volumes that are per_alloc-aware.
   * (when a volume is per_alloc, its route location requires an additional extension)
   */
  function formatVolumeName(_, _ref) {
    let {
      source = '',
      isPerAlloc,
      volumeExtension
    } = _ref;
    return `${source}${isPerAlloc ? volumeExtension : ''}`;
  }

  var _default = (0, _helper.helper)(formatVolumeName);

  _exports.default = _default;
});
;define("nomad-ui/helpers/from-entries", ["exports", "ember-composable-helpers/helpers/from-entries"], function (_exports, _fromEntries) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _fromEntries.default;
    }
  });
  Object.defineProperty(_exports, "fromEntries", {
    enumerable: true,
    get: function () {
      return _fromEntries.fromEntries;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-composable-helpers/helpers/from-entries"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/group-by", ["exports", "ember-composable-helpers/helpers/group-by"], function (_exports, _groupBy) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _groupBy.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-composable-helpers/helpers/group-by"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/gt", ["exports", "ember-truth-helpers/helpers/gt"], function (_exports, _gt) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _gt.default;
    }
  });
  Object.defineProperty(_exports, "gt", {
    enumerable: true,
    get: function () {
      return _gt.gt;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-truth-helpers/helpers/gt"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/gte", ["exports", "ember-truth-helpers/helpers/gte"], function (_exports, _gte) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _gte.default;
    }
  });
  Object.defineProperty(_exports, "gte", {
    enumerable: true,
    get: function () {
      return _gte.gte;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-truth-helpers/helpers/gte"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/has-next", ["exports", "ember-composable-helpers/helpers/has-next"], function (_exports, _hasNext) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _hasNext.default;
    }
  });
  Object.defineProperty(_exports, "hasNext", {
    enumerable: true,
    get: function () {
      return _hasNext.hasNext;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-composable-helpers/helpers/has-next"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/has-previous", ["exports", "ember-composable-helpers/helpers/has-previous"], function (_exports, _hasPrevious) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _hasPrevious.default;
    }
  });
  Object.defineProperty(_exports, "hasPrevious", {
    enumerable: true,
    get: function () {
      return _hasPrevious.hasPrevious;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-composable-helpers/helpers/has-previous"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/hds-link-to-models", ["exports", "@hashicorp/design-system-components/helpers/hds-link-to-models"], function (_exports, _hdsLinkToModels) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _hdsLinkToModels.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/helpers/hds-link-to-models"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/hds-link-to-query", ["exports", "@hashicorp/design-system-components/helpers/hds-link-to-query"], function (_exports, _hdsLinkToQuery) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _hdsLinkToQuery.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/helpers/hds-link-to-query"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/html-safe", ["exports", "ember-cli-string-helpers/helpers/html-safe"], function (_exports, _htmlSafe) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _htmlSafe.default;
    }
  });
  Object.defineProperty(_exports, "htmlSafe", {
    enumerable: true,
    get: function () {
      return _htmlSafe.htmlSafe;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-cli-string-helpers/helpers/html-safe"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/humanize", ["exports", "ember-cli-string-helpers/helpers/humanize"], function (_exports, _humanize) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _humanize.default;
    }
  });
  Object.defineProperty(_exports, "humanize", {
    enumerable: true,
    get: function () {
      return _humanize.humanize;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-cli-string-helpers/helpers/humanize"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/if-key", ["exports", "ember-keyboard/helpers/if-key.js"], function (_exports, _ifKey) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _ifKey.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-keyboard/helpers/if-key.js"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/inc", ["exports", "ember-composable-helpers/helpers/inc"], function (_exports, _inc) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _inc.default;
    }
  });
  Object.defineProperty(_exports, "inc", {
    enumerable: true,
    get: function () {
      return _inc.inc;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-composable-helpers/helpers/inc"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/includes", ["exports", "ember-composable-helpers/helpers/includes"], function (_exports, _includes) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _includes.default;
    }
  });
  Object.defineProperty(_exports, "includes", {
    enumerable: true,
    get: function () {
      return _includes.includes;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-composable-helpers/helpers/includes"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/inline-svg", ["exports", "@ember/component/helper", "ember-inline-svg/helpers/inline-svg", "nomad-ui/svgs", "ember"], function (_exports, _helper, _inlineSvg, _svgs, _ember) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/component/helper",0,"ember-inline-svg/helpers/inline-svg",0,"nomad-ui/svgs",0,"ember"eaimeta@70e063a35619d71f

  let helper;

  if (_helper.default && _helper.helper) {
    helper = (0, _helper.helper)(function (_ref, options) {
      let [path] = _ref;
      return (0, _inlineSvg.inlineSvg)(_svgs.default, path, options);
    });
  } else {
    helper = _ember.default.Handlebars.makeBoundHelper(function (path, options) {
      return (0, _inlineSvg.inlineSvg)(_svgs.default, path, options.hash || {});
    });
  }

  var _default = helper;
  _exports.default = _default;
});
;define("nomad-ui/helpers/intersect", ["exports", "ember-composable-helpers/helpers/intersect"], function (_exports, _intersect) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _intersect.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-composable-helpers/helpers/intersect"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/invoke-fn", ["exports", "@ember/component/helper"], function (_exports, _helper) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/component/helper"eaimeta@70e063a35619d71f

  function invokeFn(_ref) {
    let [scope, fn] = _ref;
    let args = arguments[0].slice(2);
    return fn.apply(scope, args);
  }

  var _default = (0, _helper.helper)(invokeFn);

  _exports.default = _default;
});
;define("nomad-ui/helpers/invoke", ["exports", "ember-composable-helpers/helpers/invoke"], function (_exports, _invoke) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _invoke.default;
    }
  });
  Object.defineProperty(_exports, "invoke", {
    enumerable: true,
    get: function () {
      return _invoke.invoke;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-composable-helpers/helpers/invoke"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/is-after", ["exports", "ember-moment/helpers/is-after"], function (_exports, _isAfter) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _isAfter.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-moment/helpers/is-after"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/is-array", ["exports", "ember-truth-helpers/helpers/is-array"], function (_exports, _isArray) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _isArray.default;
    }
  });
  Object.defineProperty(_exports, "isArray", {
    enumerable: true,
    get: function () {
      return _isArray.isArray;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-truth-helpers/helpers/is-array"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/is-before", ["exports", "ember-moment/helpers/is-before"], function (_exports, _isBefore) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _isBefore.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-moment/helpers/is-before"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/is-between", ["exports", "ember-moment/helpers/is-between"], function (_exports, _isBetween) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _isBetween.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-moment/helpers/is-between"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/is-clipboard-supported", ["exports", "ember-cli-clipboard/helpers/is-clipboard-supported"], function (_exports, _isClipboardSupported) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _isClipboardSupported.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-cli-clipboard/helpers/is-clipboard-supported"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/is-empty", ["exports", "ember-truth-helpers/helpers/is-empty"], function (_exports, _isEmpty) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _isEmpty.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-truth-helpers/helpers/is-empty"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/is-equal", ["exports", "ember-truth-helpers/helpers/is-equal"], function (_exports, _isEqual) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _isEqual.default;
    }
  });
  Object.defineProperty(_exports, "isEqual", {
    enumerable: true,
    get: function () {
      return _isEqual.isEqual;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-truth-helpers/helpers/is-equal"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/is-object", ["exports", "@ember/component/helper"], function (_exports, _helper) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.isObject = isObject;
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/component/helper"eaimeta@70e063a35619d71f

  function isObject(_ref) {
    let [value] = _ref;
    const isObject = !Array.isArray(value) && value !== null && typeof value === 'object';
    return isObject;
  }

  var _default = _helper.default.helper(isObject);

  _exports.default = _default;
});
;define("nomad-ui/helpers/is-same-or-after", ["exports", "ember-moment/helpers/is-same-or-after"], function (_exports, _isSameOrAfter) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _isSameOrAfter.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-moment/helpers/is-same-or-after"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/is-same-or-before", ["exports", "ember-moment/helpers/is-same-or-before"], function (_exports, _isSameOrBefore) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _isSameOrBefore.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-moment/helpers/is-same-or-before"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/is-same", ["exports", "ember-moment/helpers/is-same"], function (_exports, _isSame) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _isSame.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-moment/helpers/is-same"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/join", ["exports", "ember-composable-helpers/helpers/join"], function (_exports, _join) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _join.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-composable-helpers/helpers/join"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/keyboard-commands", ["exports", "@ember/component/helper", "@ember/service"], function (_exports, _helper, _service) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _descriptor;

  0; //eaimeta@70e063a35619d71f0,"@ember/component/helper",0,"@ember/service"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  /**
    `{{keyboard-commands}}` helper used to initialize and tear down contextual keynav commands
    @public
    @method keyboard-commands
   */
  let keyboardCommands = (_class = class keyboardCommands extends _helper.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "keyboard", _descriptor, this);
    }

    compute(_ref) {
      let [commands] = _ref;

      if (commands) {
        this.commands = commands;
        this.keyboard.addCommands(commands);
      }
    }

    willDestroy() {
      super.willDestroy();
      this.keyboard.removeCommands(this.commands);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "keyboard", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class);
  _exports.default = keyboardCommands;
});
;define("nomad-ui/helpers/keys", ["exports", "ember-composable-helpers/helpers/keys"], function (_exports, _keys) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _keys.default;
    }
  });
  Object.defineProperty(_exports, "keys", {
    enumerable: true,
    get: function () {
      return _keys.keys;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-composable-helpers/helpers/keys"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/lazy-click", ["exports", "@ember/component/helper"], function (_exports, _helper) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.lazyClick = lazyClick;
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/component/helper"eaimeta@70e063a35619d71f

  /**
   * Lazy Click Event
   *
   * Usage: {{lazy-click action}}
   *
   * Calls the provided action only if the target isn't an anchor
   * that should be handled instead.
   */
  function lazyClick(_ref) {
    let [onClick, event] = _ref;

    if (!['a', 'button'].includes(event === null || event === void 0 ? void 0 : event.target.tagName.toLowerCase())) {
      onClick(event);
    }
  }

  var _default = _helper.default.helper(lazyClick);

  _exports.default = _default;
});
;define("nomad-ui/helpers/loc", ["exports", "@ember/string/helpers/loc"], function (_exports, _loc) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _loc.default;
    }
  });
  Object.defineProperty(_exports, "loc", {
    enumerable: true,
    get: function () {
      return _loc.loc;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@ember/string/helpers/loc"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/lowercase", ["exports", "ember-cli-string-helpers/helpers/lowercase"], function (_exports, _lowercase) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _lowercase.default;
    }
  });
  Object.defineProperty(_exports, "lowercase", {
    enumerable: true,
    get: function () {
      return _lowercase.lowercase;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-cli-string-helpers/helpers/lowercase"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/lt", ["exports", "ember-truth-helpers/helpers/lt"], function (_exports, _lt) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _lt.default;
    }
  });
  Object.defineProperty(_exports, "lt", {
    enumerable: true,
    get: function () {
      return _lt.lt;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-truth-helpers/helpers/lt"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/lte", ["exports", "ember-truth-helpers/helpers/lte"], function (_exports, _lte) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _lte.default;
    }
  });
  Object.defineProperty(_exports, "lte", {
    enumerable: true,
    get: function () {
      return _lte.lte;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-truth-helpers/helpers/lte"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/map-by", ["exports", "ember-composable-helpers/helpers/map-by"], function (_exports, _mapBy) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _mapBy.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-composable-helpers/helpers/map-by"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/map", ["exports", "ember-composable-helpers/helpers/map"], function (_exports, _map) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _map.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-composable-helpers/helpers/map"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/media", ["exports", "ember-responsive/helpers/media"], function (_exports, _media) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _media.default;
    }
  });
  Object.defineProperty(_exports, "media", {
    enumerable: true,
    get: function () {
      return _media.media;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-responsive/helpers/media"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/merge", ["exports", "@ember/component/helper"], function (_exports, _helper) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/component/helper"eaimeta@70e063a35619d71f

  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }

  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function merge(positional) {
    return positional.reduce((accum, val) => {
      accum = _objectSpread(_objectSpread({}, val), accum);
      return accum;
    }, {});
  }

  var _default = (0, _helper.helper)(merge);

  _exports.default = _default;
});
;define("nomad-ui/helpers/moment-add", ["exports", "ember-moment/helpers/moment-add"], function (_exports, _momentAdd) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _momentAdd.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-moment/helpers/moment-add"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/moment-calendar", ["exports", "ember-moment/helpers/moment-calendar"], function (_exports, _momentCalendar) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _momentCalendar.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-moment/helpers/moment-calendar"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/moment-diff", ["exports", "ember-moment/helpers/moment-diff"], function (_exports, _momentDiff) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _momentDiff.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-moment/helpers/moment-diff"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/moment-duration", ["exports", "ember-moment/helpers/moment-duration"], function (_exports, _momentDuration) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _momentDuration.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-moment/helpers/moment-duration"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/moment-format", ["exports", "ember-moment/helpers/moment-format"], function (_exports, _momentFormat) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _momentFormat.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-moment/helpers/moment-format"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/moment-from-now", ["exports", "ember-moment/helpers/moment-from-now"], function (_exports, _momentFromNow) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _momentFromNow.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-moment/helpers/moment-from-now"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/moment-from", ["exports", "ember-moment/helpers/moment-from"], function (_exports, _momentFrom) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _momentFrom.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-moment/helpers/moment-from"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/moment-subtract", ["exports", "ember-moment/helpers/moment-subtract"], function (_exports, _momentSubtract) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _momentSubtract.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-moment/helpers/moment-subtract"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/moment-to-date", ["exports", "ember-moment/helpers/moment-to-date"], function (_exports, _momentToDate) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _momentToDate.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-moment/helpers/moment-to-date"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/moment-to-now", ["exports", "ember-moment/helpers/moment-to-now"], function (_exports, _momentToNow) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _momentToNow.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-moment/helpers/moment-to-now"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/moment-to", ["exports", "ember-moment/helpers/moment-to"], function (_exports, _momentTo) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _momentTo.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-moment/helpers/moment-to"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/moment-unix", ["exports", "ember-moment/helpers/unix"], function (_exports, _unix) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _unix.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-moment/helpers/unix"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/moment", ["exports", "ember-moment/helpers/moment"], function (_exports, _moment) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _moment.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-moment/helpers/moment"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/next", ["exports", "ember-composable-helpers/helpers/next"], function (_exports, _next) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _next.default;
    }
  });
  Object.defineProperty(_exports, "next", {
    enumerable: true,
    get: function () {
      return _next.next;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-composable-helpers/helpers/next"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/noop", ["exports", "ember-composable-helpers/helpers/noop"], function (_exports, _noop) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _noop.default;
    }
  });
  Object.defineProperty(_exports, "noop", {
    enumerable: true,
    get: function () {
      return _noop.noop;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-composable-helpers/helpers/noop"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/not-eq", ["exports", "ember-truth-helpers/helpers/not-equal"], function (_exports, _notEqual) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _notEqual.default;
    }
  });
  Object.defineProperty(_exports, "notEqualHelper", {
    enumerable: true,
    get: function () {
      return _notEqual.notEqualHelper;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-truth-helpers/helpers/not-equal"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/not", ["exports", "ember-truth-helpers/helpers/not"], function (_exports, _not) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _not.default;
    }
  });
  Object.defineProperty(_exports, "not", {
    enumerable: true,
    get: function () {
      return _not.not;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-truth-helpers/helpers/not"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/now", ["exports", "ember-moment/helpers/now"], function (_exports, _now) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _now.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-moment/helpers/now"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/object-at", ["exports", "ember-composable-helpers/helpers/object-at"], function (_exports, _objectAt) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _objectAt.default;
    }
  });
  Object.defineProperty(_exports, "objectAt", {
    enumerable: true,
    get: function () {
      return _objectAt.objectAt;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-composable-helpers/helpers/object-at"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/on-key", ["exports", "ember-keyboard/helpers/on-key.js"], function (_exports, _onKey) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _onKey.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-keyboard/helpers/on-key.js"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/optional", ["exports", "ember-composable-helpers/helpers/optional"], function (_exports, _optional) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _optional.default;
    }
  });
  Object.defineProperty(_exports, "optional", {
    enumerable: true,
    get: function () {
      return _optional.optional;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-composable-helpers/helpers/optional"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/or", ["exports", "ember-truth-helpers/helpers/or"], function (_exports, _or) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _or.default;
    }
  });
  Object.defineProperty(_exports, "or", {
    enumerable: true,
    get: function () {
      return _or.or;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-truth-helpers/helpers/or"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/page-title", ["exports", "ember-page-title/helpers/page-title"], function (_exports, _pageTitle) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember-page-title/helpers/page-title"eaimeta@70e063a35619d71f

  var _default = _pageTitle.default;
  _exports.default = _default;
});
;define("nomad-ui/helpers/perform", ["exports", "ember-concurrency/helpers/perform"], function (_exports, _perform) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _perform.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-concurrency/helpers/perform"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/pick", ["exports", "ember-composable-helpers/helpers/pick"], function (_exports, _pick) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _pick.default;
    }
  });
  Object.defineProperty(_exports, "pick", {
    enumerable: true,
    get: function () {
      return _pick.pick;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-composable-helpers/helpers/pick"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/pipe-action", ["exports", "ember-composable-helpers/helpers/pipe-action"], function (_exports, _pipeAction) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _pipeAction.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-composable-helpers/helpers/pipe-action"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/pipe", ["exports", "ember-composable-helpers/helpers/pipe"], function (_exports, _pipe) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _pipe.default;
    }
  });
  Object.defineProperty(_exports, "pipe", {
    enumerable: true,
    get: function () {
      return _pipe.pipe;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-composable-helpers/helpers/pipe"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/pluralize", ["exports", "@ember/component/helper", "ember-inflector"], function (_exports, _helper, _emberInflector) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.pluralizeHelper = pluralizeHelper;
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/component/helper",0,"ember-inflector"eaimeta@70e063a35619d71f

  function pluralizeHelper(_ref) {
    let [term, count] = _ref;
    return count === 1 ? term : (0, _emberInflector.pluralize)(term);
  }

  var _default = _helper.default.helper(pluralizeHelper);

  _exports.default = _default;
});
;define("nomad-ui/helpers/previous", ["exports", "ember-composable-helpers/helpers/previous"], function (_exports, _previous) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _previous.default;
    }
  });
  Object.defineProperty(_exports, "previous", {
    enumerable: true,
    get: function () {
      return _previous.previous;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-composable-helpers/helpers/previous"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/qp-deserialize", ["exports", "@ember/component/helper", "nomad-ui/utils/qp-serialize"], function (_exports, _helper, _qpSerialize) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.qpDeserialize = qpDeserialize;
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/component/helper",0,"nomad-ui/utils/qp-serialize"eaimeta@70e063a35619d71f

  /**
   * Query Param Serialize
   *
   * Usage: {{qp-deserialize string}}
   *
   * Turns a serialized query param value string back into
   * an array of values.
   */
  function qpDeserialize(_ref) {
    let [str] = _ref;
    return (0, _qpSerialize.deserialize)(str);
  }

  var _default = (0, _helper.helper)(qpDeserialize);

  _exports.default = _default;
});
;define("nomad-ui/helpers/qp-serialize", ["exports", "@ember/component/helper", "nomad-ui/utils/qp-serialize"], function (_exports, _helper, _qpSerialize) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.qpSerialize = qpSerialize;
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/component/helper",0,"nomad-ui/utils/qp-serialize"eaimeta@70e063a35619d71f

  /**
   * Query Param Serialize
   *
   * Usage: {{qp-serialize array}}
   *
   * Turns an array of values into a safe url encoded query param
   * value. This serialization is used throughout the app for facets.
   */
  function qpSerialize(_ref) {
    let [values] = _ref;
    return (0, _qpSerialize.serialize)(values);
  }

  var _default = (0, _helper.helper)(qpSerialize);

  _exports.default = _default;
});
;define("nomad-ui/helpers/queue", ["exports", "ember-composable-helpers/helpers/queue"], function (_exports, _queue) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _queue.default;
    }
  });
  Object.defineProperty(_exports, "queue", {
    enumerable: true,
    get: function () {
      return _queue.queue;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-composable-helpers/helpers/queue"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/range", ["exports", "ember-composable-helpers/helpers/range"], function (_exports, _range) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _range.default;
    }
  });
  Object.defineProperty(_exports, "range", {
    enumerable: true,
    get: function () {
      return _range.range;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-composable-helpers/helpers/range"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/reduce", ["exports", "ember-composable-helpers/helpers/reduce"], function (_exports, _reduce) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _reduce.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-composable-helpers/helpers/reduce"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/reject-by", ["exports", "ember-composable-helpers/helpers/reject-by"], function (_exports, _rejectBy) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _rejectBy.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-composable-helpers/helpers/reject-by"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/repeat", ["exports", "ember-composable-helpers/helpers/repeat"], function (_exports, _repeat) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _repeat.default;
    }
  });
  Object.defineProperty(_exports, "repeat", {
    enumerable: true,
    get: function () {
      return _repeat.repeat;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-composable-helpers/helpers/repeat"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/reverse", ["exports", "ember-composable-helpers/helpers/reverse"], function (_exports, _reverse) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _reverse.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-composable-helpers/helpers/reverse"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/shuffle", ["exports", "ember-composable-helpers/helpers/shuffle"], function (_exports, _shuffle) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _shuffle.default;
    }
  });
  Object.defineProperty(_exports, "shuffle", {
    enumerable: true,
    get: function () {
      return _shuffle.shuffle;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-composable-helpers/helpers/shuffle"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/singularize", ["exports", "ember-inflector/lib/helpers/singularize"], function (_exports, _singularize) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember-inflector/lib/helpers/singularize"eaimeta@70e063a35619d71f

  var _default = _singularize.default;
  _exports.default = _default;
});
;define("nomad-ui/helpers/slice", ["exports", "ember-composable-helpers/helpers/slice"], function (_exports, _slice) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _slice.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-composable-helpers/helpers/slice"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/sort-by", ["exports", "ember-composable-helpers/helpers/sort-by"], function (_exports, _sortBy) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _sortBy.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-composable-helpers/helpers/sort-by"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/stringify-object", ["exports", "@ember/component/helper"], function (_exports, _helper) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.stringifyObject = stringifyObject;
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/component/helper"eaimeta@70e063a35619d71f

  /**
   * Changes a JSON object into a string
   */
  function stringifyObject(_ref) {
    let [obj] = _ref;
    let {
      replacer = null,
      whitespace = 2
    } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
    return JSON.stringify(obj, replacer, whitespace);
  }

  var _default = _helper.default.helper(stringifyObject);

  _exports.default = _default;
});
;define("nomad-ui/helpers/take", ["exports", "ember-composable-helpers/helpers/take"], function (_exports, _take) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _take.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-composable-helpers/helpers/take"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/task", ["exports", "ember-concurrency/helpers/task"], function (_exports, _task) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _task.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-concurrency/helpers/task"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/titleize", ["exports", "ember-cli-string-helpers/helpers/titleize"], function (_exports, _titleize) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _titleize.default;
    }
  });
  Object.defineProperty(_exports, "titleize", {
    enumerable: true,
    get: function () {
      return _titleize.titleize;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-cli-string-helpers/helpers/titleize"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/toggle-action", ["exports", "ember-composable-helpers/helpers/toggle-action"], function (_exports, _toggleAction) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _toggleAction.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-composable-helpers/helpers/toggle-action"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/toggle", ["exports", "ember-composable-helpers/helpers/toggle"], function (_exports, _toggle) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _toggle.default;
    }
  });
  Object.defineProperty(_exports, "toggle", {
    enumerable: true,
    get: function () {
      return _toggle.toggle;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-composable-helpers/helpers/toggle"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/trim-path", ["exports", "@ember/component/helper"], function (_exports, _helper) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.trimPath = trimPath;
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/component/helper"eaimeta@70e063a35619d71f

  /**
   * Trims any number of slashes from the beginning and end of a string.
   * @param {Array<string>} params
   * @returns {string}
   */
  function trimPath(_ref) {
    var _path;

    let [path] = _ref;
    if (!path) return;

    if (path.startsWith('/')) {
      path = trimPath([path.slice(1)]);
    }

    if ((_path = path) !== null && _path !== void 0 && _path.endsWith('/')) {
      path = trimPath([path.slice(0, -1)]);
    }

    return path;
  }

  var _default = _helper.default.helper(trimPath);

  _exports.default = _default;
});
;define("nomad-ui/helpers/trim", ["exports", "ember-cli-string-helpers/helpers/trim"], function (_exports, _trim) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _trim.default;
    }
  });
  Object.defineProperty(_exports, "trim", {
    enumerable: true,
    get: function () {
      return _trim.trim;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-cli-string-helpers/helpers/trim"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/truncate", ["exports", "ember-cli-string-helpers/helpers/truncate"], function (_exports, _truncate) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _truncate.default;
    }
  });
  Object.defineProperty(_exports, "truncate", {
    enumerable: true,
    get: function () {
      return _truncate.truncate;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-cli-string-helpers/helpers/truncate"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/underscore", ["exports", "ember-cli-string-helpers/helpers/underscore"], function (_exports, _underscore) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _underscore.default;
    }
  });
  Object.defineProperty(_exports, "underscore", {
    enumerable: true,
    get: function () {
      return _underscore.underscore;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-cli-string-helpers/helpers/underscore"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/union", ["exports", "ember-composable-helpers/helpers/union"], function (_exports, _union) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _union.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-composable-helpers/helpers/union"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/unix", ["exports", "ember-moment/helpers/unix"], function (_exports, _unix) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _unix.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-moment/helpers/unix"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/uppercase", ["exports", "ember-cli-string-helpers/helpers/uppercase"], function (_exports, _uppercase) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _uppercase.default;
    }
  });
  Object.defineProperty(_exports, "uppercase", {
    enumerable: true,
    get: function () {
      return _uppercase.uppercase;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-cli-string-helpers/helpers/uppercase"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/utc", ["exports", "ember-moment/helpers/utc"], function (_exports, _utc) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _utc.default;
    }
  });
  Object.defineProperty(_exports, "utc", {
    enumerable: true,
    get: function () {
      return _utc.utc;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-moment/helpers/utc"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/values", ["exports", "ember-composable-helpers/helpers/values"], function (_exports, _values) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _values.default;
    }
  });
  Object.defineProperty(_exports, "values", {
    enumerable: true,
    get: function () {
      return _values.values;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-composable-helpers/helpers/values"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/w", ["exports", "ember-cli-string-helpers/helpers/w"], function (_exports, _w) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _w.default;
    }
  });
  Object.defineProperty(_exports, "w", {
    enumerable: true,
    get: function () {
      return _w.w;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-cli-string-helpers/helpers/w"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/will-destroy", ["exports", "ember-render-helpers/helpers/will-destroy"], function (_exports, _willDestroy) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _willDestroy.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-render-helpers/helpers/will-destroy"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/without", ["exports", "ember-composable-helpers/helpers/without"], function (_exports, _without) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _without.default;
    }
  });
  Object.defineProperty(_exports, "without", {
    enumerable: true,
    get: function () {
      return _without.without;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-composable-helpers/helpers/without"eaimeta@70e063a35619d71f
});
;define("nomad-ui/helpers/x-icon", ["exports", "@ember/component/helper", "ember-inline-svg/helpers/inline-svg", "nomad-ui/svgs"], function (_exports, _helper, _inlineSvg, _svgs) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.xIcon = xIcon;
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/component/helper",0,"ember-inline-svg/helpers/inline-svg",0,"nomad-ui/svgs"eaimeta@70e063a35619d71f

  /**
   * Icon Helper
   *
   * Usage: {{x-icon name}}
   *
   * Renders an inline svg element by looking it up at `/public/images/icons/${name}.svg`
   */
  function xIcon(params, options) {
    const name = params[0];
    const classes = [options.class, 'icon', `icon-is-${name}`].compact().join(' ');
    return (0, _inlineSvg.inlineSvg)(_svgs.default, name, {
      class: classes
    });
  }

  var _default = (0, _helper.helper)(xIcon);

  _exports.default = _default;
});
;define("nomad-ui/helpers/xor", ["exports", "ember-truth-helpers/helpers/xor"], function (_exports, _xor) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _xor.default;
    }
  });
  Object.defineProperty(_exports, "xor", {
    enumerable: true,
    get: function () {
      return _xor.xor;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-truth-helpers/helpers/xor"eaimeta@70e063a35619d71f
});
;define("nomad-ui/initializers/app-env", ["exports"], function (_exports) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.initialize = initialize;
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71feaimeta@70e063a35619d71f

  /**
   * Copyright (c) HashiCorp, Inc.
   * SPDX-License-Identifier: MPL-2.0
   */
  function initialize() {
    const application = arguments[1] || arguments[0]; // Provides the app config to all templates

    application.inject('controller', 'config', 'service:config');
    application.inject('component', 'config', 'service:config');
  }

  var _default = {
    name: 'app-config',
    initialize
  };
  _exports.default = _default;
});
;define("nomad-ui/initializers/app-token", ["exports"], function (_exports) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.initialize = initialize;
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71feaimeta@70e063a35619d71f

  /**
   * Copyright (c) HashiCorp, Inc.
   * SPDX-License-Identifier: MPL-2.0
   */
  function initialize() {
    const application = arguments[1] || arguments[0]; // Provides the acl token service to all templates

    application.inject('controller', 'token', 'service:token');
    application.inject('component', 'token', 'service:token');
  }

  var _default = {
    name: 'app-token',
    initialize
  };
  _exports.default = _default;
});
;define("nomad-ui/initializers/container-debug-adapter", ["exports", "ember-resolver/resolvers/classic/container-debug-adapter"], function (_exports, _containerDebugAdapter) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember-resolver/resolvers/classic/container-debug-adapter"eaimeta@70e063a35619d71f

  var _default = {
    name: 'container-debug-adapter',

    initialize() {
      let app = arguments[1] || arguments[0];
      app.register('container-debug-adapter:main', _containerDebugAdapter.default);
    }

  };
  _exports.default = _default;
});
;define("nomad-ui/initializers/ember-cli-mirage", ["exports", "nomad-ui/config/environment", "ember-cli-mirage/get-rfc232-test-context", "ember-cli-mirage/start-mirage", "nomad-ui/mirage/config"], function (_exports, _environment, _getRfc232TestContext, _startMirage, config) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.startMirage = startMirage;
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"nomad-ui/config/environment",0,"ember-cli-mirage/get-rfc232-test-context",0,"ember-cli-mirage/start-mirage",0,"nomad-ui/mirage/config"eaimeta@70e063a35619d71f

  const {
    default: baseConfig,
    testConfig,
    makeServer
  } = config; //
  // This initializer does two things:
  //
  // 1. Pulls the mirage config objects from the application's config and
  //    registers them in the container so `ember-cli-mirage/start-mirage` can
  //    find them (since it doesn't have access to the app's namespace).
  // 2. Provides legacy support for auto-starting mirage in pre-rfc268 acceptance
  //    tests.
  //

  var _default = {
    name: 'ember-cli-mirage',

    initialize(application) {
      if (baseConfig) {
        application.register('mirage:base-config', baseConfig, {
          instantiate: false
        });
      }

      if (testConfig) {
        application.register('mirage:test-config', testConfig, {
          instantiate: false
        });
      }

      if (makeServer) {
        application.register('mirage:make-server', makeServer, {
          instantiate: false
        });
      }

      _environment.default['ember-cli-mirage'] = _environment.default['ember-cli-mirage'] || {};

      if (_shouldUseMirage(_environment.default.environment, _environment.default['ember-cli-mirage'])) {
        startMirage(_environment.default);
      }
    }

  };
  _exports.default = _default;

  function startMirage() {
    let env = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _environment.default;
    return (0, _startMirage.default)(null, {
      env,
      baseConfig,
      testConfig,
      makeServer
    });
  }

  function _shouldUseMirage(env, addonConfig) {
    if (typeof FastBoot !== 'undefined') {
      return false;
    }

    if ((0, _getRfc232TestContext.default)()) {
      return false;
    }

    let userDeclaredEnabled = typeof addonConfig.enabled !== 'undefined';

    let defaultEnabled = _defaultEnabled(env, addonConfig);

    return userDeclaredEnabled ? addonConfig.enabled : defaultEnabled;
  }
  /*
    Returns a boolean specifying the default behavior for whether
    to initialize Mirage.
  */


  function _defaultEnabled(env, addonConfig) {
    let usingInDev = env === 'development' && !addonConfig.usingProxy;
    let usingInTest = env === 'test';
    return usingInDev || usingInTest;
  }
});
;define("nomad-ui/initializers/ember-data-data-adapter", ["exports", "@ember-data/debug/setup"], function (_exports, _setup) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _setup.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@ember-data/debug/setup"eaimeta@70e063a35619d71f
});
;define("nomad-ui/initializers/ember-data", ["exports", "ember-data", "ember-data/setup-container"], function (_exports, _emberData, _setupContainer) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember-data",0,"ember-data/setup-container"eaimeta@70e063a35619d71f

  /*
    This code initializes EmberData in an Ember application.
  
    It ensures that the `store` service is automatically injected
    as the `store` property on all routes and controllers.
  */
  var _default = {
    name: 'ember-data',
    initialize: _setupContainer.default
  };
  _exports.default = _default;
});
;define("nomad-ui/initializers/ember-responsive-breakpoints", ["exports", "ember-responsive/initializers/responsive"], function (_exports, _responsive) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember-responsive/initializers/responsive"eaimeta@70e063a35619d71f

  var _default = _responsive.default;
  _exports.default = _default;
});
;define("nomad-ui/initializers/export-application-global", ["exports", "ember", "nomad-ui/config/environment"], function (_exports, _ember, _environment) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.initialize = initialize;
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember",0,"nomad-ui/config/environment"eaimeta@70e063a35619d71f

  function initialize() {
    var application = arguments[1] || arguments[0];

    if (_environment.default.exportApplicationGlobal !== false) {
      var theGlobal;

      if (typeof window !== 'undefined') {
        theGlobal = window;
      } else if (typeof global !== 'undefined') {
        theGlobal = global;
      } else if (typeof self !== 'undefined') {
        theGlobal = self;
      } else {
        // no reasonable global, just bail
        return;
      }

      var value = _environment.default.exportApplicationGlobal;
      var globalName;

      if (typeof value === 'string') {
        globalName = value;
      } else {
        globalName = _ember.default.String.classify(_environment.default.modulePrefix);
      }

      if (!theGlobal[globalName]) {
        theGlobal[globalName] = application;
        application.reopen({
          willDestroy: function () {
            this._super.apply(this, arguments);

            delete theGlobal[globalName];
          }
        });
      }
    }
  }

  var _default = {
    name: 'export-application-global',
    initialize: initialize
  };
  _exports.default = _default;
});
;define("nomad-ui/initializers/flash-messages", ["exports", "nomad-ui/config/environment", "@ember/debug", "ember-cli-flash/utils/flash-message-options"], function (_exports, _environment, _debug, _flashMessageOptions) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.initialize = initialize;
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"nomad-ui/config/environment",0,"@ember/debug",0,"ember-cli-flash/utils/flash-message-options"eaimeta@70e063a35619d71f

  /* eslint-disable ember/new-module-imports */
  const INJECTION_FACTORIES_DEPRECATION_MESSAGE = '[ember-cli-flash] Future versions of ember-cli-flash will no longer inject the service automatically. Instead, you should explicitly inject it into your Route, Controller or Component with `Ember.inject.service`.';

  function initialize() {
    const application = arguments[1] || arguments[0];
    const {
      flashMessageDefaults
    } = _environment.default || {};
    const {
      injectionFactories
    } = flashMessageDefaults || [];
    const options = (0, _flashMessageOptions.default)(flashMessageDefaults);
    const shouldShowDeprecation = !(injectionFactories && injectionFactories.length);
    (true && !(shouldShowDeprecation) && (0, _debug.deprecate)(INJECTION_FACTORIES_DEPRECATION_MESSAGE, shouldShowDeprecation, {
      id: 'ember-cli-flash.deprecate-injection-factories',
      until: '2.0.0',
      for: 'ember-cli-flash',
      since: {
        available: '1.3.12'
      }
    }));
    options.injectionFactories.forEach(factory => {
      application.inject(factory, 'flashMessages', 'service:flash-messages');
    });
  }

  var _default = {
    name: 'flash-messages',
    initialize
  };
  _exports.default = _default;
});
;define("nomad-ui/initializers/fragment-serializer", ["exports", "nomad-ui/serializers/fragment"], function (_exports, _fragment) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.initialize = initialize;
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"nomad-ui/serializers/fragment"eaimeta@70e063a35619d71f

  function initialize(application) {
    application.register('serializer:-fragment', _fragment.default);
  }

  var _default = {
    name: 'fragment-serializer',
    initialize: initialize
  };
  _exports.default = _default;
});
;define("nomad-ui/initializers/model-fragments", ["exports", "ember-data-model-fragments", "ember-data-model-fragments/ext"], function (_exports, _emberDataModelFragments, _ext) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember-data-model-fragments",0,"ember-data-model-fragments/ext"eaimeta@70e063a35619d71f

  var _default = {
    name: 'fragmentTransform',
    after: 'ember-data',

    initialize() {}

  };
  _exports.default = _default;
});
;define("nomad-ui/initializers/setup-ember-can", ["exports", "ember-can/initializers/setup-ember-can"], function (_exports, _setupEmberCan) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _setupEmberCan.default;
    }
  });
  Object.defineProperty(_exports, "initialize", {
    enumerable: true,
    get: function () {
      return _setupEmberCan.initialize;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-can/initializers/setup-ember-can"eaimeta@70e063a35619d71f
});
;define("nomad-ui/instance-initializers/ember-cli-mirage-autostart", ["exports", "ember-cli-mirage/instance-initializers/ember-cli-mirage-autostart"], function (_exports, _emberCliMirageAutostart) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _emberCliMirageAutostart.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-cli-mirage/instance-initializers/ember-cli-mirage-autostart"eaimeta@70e063a35619d71f
});
;define("nomad-ui/instance-initializers/ember-data", ["exports"], function (_exports) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71feaimeta@70e063a35619d71f

  /* exists only for things that historically used "after" or "before" */
  var _default = {
    name: 'ember-data',

    initialize() {}

  };
  _exports.default = _default;
});
;define("nomad-ui/machines/evaluations", ["exports", "xstate"], function (_exports, _xstate) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"xstate"eaimeta@70e063a35619d71f

  // Docs on using statecharts:  https://xstate.js.org/docs/packages/xstate-fsm/#api
  var _default = (0, _xstate.createMachine)({
    id: 'evaluations_ui',
    context: {
      evaluation: null
    },
    type: 'parallel',
    states: {
      table: {
        initial: 'unknown',
        on: {
          NEXT: {
            actions: ['requestNextPage', (0, _xstate.send)('MODAL_CLOSE')]
          },
          PREV: {
            actions: ['requestPrevPage', (0, _xstate.send)('MODAL_CLOSE')]
          },
          CHANGE_PAGES_SIZE: {
            actions: ['changePageSize', (0, _xstate.send)('MODAL_CLOSE')]
          },
          MODEL_UPDATED: '#unknown'
        },
        states: {
          unknown: {
            id: 'unknown',
            always: [{
              target: 'data',
              cond: 'hasData'
            }, {
              target: 'empty'
            }]
          },
          data: {},
          empty: {}
        }
      },
      sidebar: {
        initial: 'unknown',
        states: {
          unknown: {
            always: [{
              target: 'open',
              cond: 'sidebarIsOpen'
            }, {
              target: 'close'
            }]
          },
          open: {
            initial: 'busy',
            exit: ['removeCurrentEvaluationQueryParameter'],
            states: {
              busy: {
                invoke: {
                  src: 'loadEvaluation',
                  onDone: 'success',
                  onError: 'error'
                }
              },
              success: {
                entry: (0, _xstate.assign)({
                  evaluation: (context, event) => {
                    return event.data;
                  }
                }),
                on: {
                  LOAD_EVALUATION: {
                    target: 'busy',
                    actions: ['updateEvaluationQueryParameter']
                  }
                }
              },
              error: {
                entry: (0, _xstate.assign)({
                  error: (_ctx, event) => event.data
                }),
                on: {
                  RETRY: 'busy'
                }
              }
            },
            on: {
              MODAL_CLOSE: 'close',
              CHANGE_EVAL: [{
                target: 'close',
                cond: 'hasNoCurrentEval'
              }]
            }
          },
          close: {
            on: {
              LOAD_EVALUATION: {
                target: 'open',
                actions: ['updateEvaluationQueryParameter']
              },
              CHANGE_EVAL: [{
                target: 'open',
                cond: 'hasCurrentEval'
              }]
            }
          }
        }
      }
    }
  }, {
    services: {
      // Overridden in the controller
      async loadEvaluations() {},

      async loadEvaluation() {}

    },
    guards: {
      sidebarIsOpen() {
        return false;
      },

      hasData() {
        return true;
      },

      hasNoCurrentEval(_ctx, _ref) {
        let {
          evaluation
        } = _ref;
        return !evaluation;
      },

      hasCurrentEval(_ctx, _ref2) {
        let {
          evaluation
        } = _ref2;
        return evaluation;
      },

      notBusy(_ctx, _event, meta) {
        return !meta.state.matches({
          sidebar: {
            open: 'busy'
          }
        });
      }

    },
    actions: {
      updateEvaluationQueryParameter() {},

      removeCurrentEvaluationQueryParameter() {}

    }
  });

  _exports.default = _default;
});
;define("nomad-ui/mirage/common", ["exports", "nomad-ui/mirage/faker", "nomad-ui/mirage/utils"], function (_exports, _faker, _utils) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.generateResources = generateResources;
  _exports.generateNetworks = generateNetworks;
  _exports.generatePorts = generatePorts;
  _exports.STORAGE_PROVIDERS = _exports.HOSTS = _exports.DATACENTERS = void 0;
  0; //eaimeta@70e063a35619d71f0,"nomad-ui/mirage/faker",0,"nomad-ui/mirage/utils"eaimeta@70e063a35619d71f

  _faker.default.seed(1); // Realistically, resource reservations have a low cardinality


  const CPU_RESERVATIONS = [250, 500, 1000, 2000, 2500, 4000];
  const MEMORY_RESERVATIONS = [256, 512, 1024, 2048, 4096, 8192];
  const DISK_RESERVATIONS = [200, 500, 1000, 2000, 5000, 10000, 100000]; // There is also a good chance that certain resource restrictions are unbounded

  DISK_RESERVATIONS.push(...Array(500).fill(0));
  const NETWORK_MODES = ['bridge', 'host'];
  const DATACENTERS = (0, _utils.provide)(15, (n, i) => `${_faker.default.address.countryCode().toLowerCase()}${i}`);
  _exports.DATACENTERS = DATACENTERS;
  const HOSTS = (0, _utils.provide)(100, () => {
    const ip = _faker.default.random.boolean() ? _faker.default.internet.ip() : `[${_faker.default.internet.ipv6()}]`;
    return `${ip}:${_faker.default.random.number({
      min: 4000,
      max: 4999
    })}`;
  });
  _exports.HOSTS = HOSTS;
  const STORAGE_PROVIDERS = ['ebs', 'zfs', 'nfs', 'cow', 'moo'];
  _exports.STORAGE_PROVIDERS = STORAGE_PROVIDERS;

  function generateResources() {
    let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
    const resources = {
      Cpu: {
        CpuShares: options.CPU || _faker.default.helpers.randomize(CPU_RESERVATIONS)
      },
      Memory: {
        MemoryMB: options.MemoryMB || _faker.default.helpers.randomize(MEMORY_RESERVATIONS)
      },
      Disk: {
        DiskMB: options.DiskMB || _faker.default.helpers.randomize(DISK_RESERVATIONS)
      },
      Networks: generateNetworks(options.networks),
      Ports: generatePorts(options.networks)
    };

    if (_faker.default.random.boolean()) {
      const higherMemoryReservations = MEMORY_RESERVATIONS.filter(mb => mb > resources.Memory.MemoryMB);
      resources.Memory.MemoryMaxMB = _faker.default.helpers.randomize(higherMemoryReservations) || resources.Memory.MemoryMB + 1;
    } else {
      resources.Memory.MemoryMaxMB = 0;
    }

    return resources;
  }

  function generateNetworks() {
    let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
    return Array(_faker.default.random.number({
      min: 1,
      max: 3
    })).fill(null).map(() => ({
      Device: `eth${_faker.default.random.number({
        max: 5
      })}`,
      CIDR: '',
      IP: _faker.default.internet.ip(),
      MBits: 10,
      Mode: _faker.default.helpers.randomize(NETWORK_MODES),
      ReservedPorts: Array(_faker.default.random.number({
        min: options.minPorts != null ? options.minPorts : 0,
        max: options.maxPorts != null ? options.maxPorts : 2
      })).fill(null).map(() => ({
        Label: _faker.default.hacker.noun(),
        Value: _faker.default.random.number({
          min: 5000,
          max: 60000
        }),
        To: _faker.default.random.number({
          min: 5000,
          max: 60000
        })
      })),
      DynamicPorts: Array(_faker.default.random.number({
        min: options.minPorts != null ? options.minPorts : 0,
        max: options.maxPorts != null ? options.maxPorts : 2
      })).fill(null).map(() => ({
        Label: _faker.default.hacker.noun(),
        Value: _faker.default.random.number({
          min: 5000,
          max: 60000
        }),
        To: _faker.default.random.number({
          min: 5000,
          max: 60000
        })
      }))
    }));
  }

  function generatePorts() {
    let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
    return Array(_faker.default.random.number({
      min: options.minPorts != null ? options.minPorts : 0,
      max: options.maxPorts != null ? options.maxPorts : 2
    })).fill(null).map(() => ({
      Label: _faker.default.hacker.noun(),
      Value: _faker.default.random.number({
        min: 5000,
        max: 60000
      }),
      To: _faker.default.random.number({
        min: 5000,
        max: 60000
      }),
      HostIP: _faker.default.random.boolean() ? _faker.default.internet.ip() : _faker.default.internet.ipv6()
    }));
  }
});
;define("nomad-ui/mirage/config", ["exports", "ember", "ember-cli-mirage/response", "nomad-ui/mirage/common", "nomad-ui/mirage/data/logs", "nomad-ui/mirage/factories/job-version", "nomad-ui/mirage/factories/evaluation", "ember-copy", "nomad-ui/utils/format-host", "nomad-ui/mirage/faker"], function (_exports, _ember, _response, _common, _logs, _jobVersion, _evaluation, _emberCopy, _formatHost, _faker) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.findLeader = findLeader;
  _exports.filesForPath = filesForPath;
  _exports.default = _default;
  0; //eaimeta@70e063a35619d71f0,"ember",0,"ember-cli-mirage/response",0,"nomad-ui/mirage/common",0,"nomad-ui/mirage/data/logs",0,"nomad-ui/mirage/factories/job-version",0,"nomad-ui/mirage/factories/evaluation",0,"ember-copy",0,"nomad-ui/utils/format-host",0,"nomad-ui/mirage/faker"eaimeta@70e063a35619d71f

  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }

  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function findLeader(schema) {
    const agent = schema.agents.first();
    return (0, _formatHost.default)(agent.member.Address, agent.member.Tags.port);
  }

  function filesForPath(allocFiles, filterPath) {
    return allocFiles.where(file => (!filterPath || file.path.startsWith(filterPath)) && file.path.length > filterPath.length && !file.path.substr(filterPath.length + 1).includes('/'));
  }

  function _default() {
    this.timing = 0; // delay for each request, automatically set to 0 during testing

    this.logging = window.location.search.includes('mirage-logging=true');
    this.namespace = 'v1';
    this.trackRequests = _ember.default.testing;
    const nomadIndices = {}; // used for tracking blocking queries

    const server = this;

    const withBlockingSupport = function (fn) {
      return function (schema, request) {
        // Get the original response
        let {
          url
        } = request;
        url = url.replace(/index=\d+[&;]?/, '');
        const response = fn.apply(this, arguments); // Get and increment the appropriate index

        nomadIndices[url] || (nomadIndices[url] = 2);
        const index = nomadIndices[url];
        nomadIndices[url]++; // Annotate the response with the index

        if (response instanceof _response.default) {
          response.headers['x-nomad-index'] = index;
          return response;
        }

        return new _response.default(200, {
          'x-nomad-index': index
        }, response);
      };
    };

    this.get('/jobs', withBlockingSupport(function (_ref, _ref2) {
      let {
        jobs
      } = _ref;
      let {
        queryParams
      } = _ref2;
      const json = this.serialize(jobs.all());
      const namespace = queryParams.namespace || 'default';
      return json.filter(job => {
        if (namespace === '*') return true;
        return namespace === 'default' ? !job.NamespaceID || job.NamespaceID === namespace : job.NamespaceID === namespace;
      }).map(job => filterKeys(job, 'TaskGroups', 'NamespaceID'));
    }));
    this.post('/jobs', function (schema, req) {
      const body = JSON.parse(req.requestBody);
      if (!body.Job) return new _response.default(400, {}, 'Job is a required field on the request payload');
      return okEmpty();
    });
    this.post('/jobs/parse', function (schema, req) {
      const body = JSON.parse(req.requestBody);
      if (!body.JobHCL) return new _response.default(400, {}, 'JobHCL is a required field on the request payload');
      if (!body.Canonicalize) return new _response.default(400, {}, 'Expected Canonicalize to be true'); // Parse the name out of the first real line of HCL to match IDs in the new job record
      // Regex expectation:
      //   in:  job "job-name" {
      //   out: job-name

      const nameFromHCLBlock = /.+?"(.+?)"/;
      const jobName = body.JobHCL.trim().split('\n')[0].match(nameFromHCLBlock)[1];
      const job = server.create('job', {
        id: jobName
      });
      return new _response.default(200, {}, this.serialize(job));
    });
    this.get('/job/:id/submission', function (schema, req) {
      return new _response.default(200, {}, JSON.stringify({
        Source: 'the job source v0',
        Format: 'hcl2',
        VariableFlags: {
          X: 'x',
          Y: '42',
          Z: 'true'
        },
        Variables: 'var file content'
      }));
    });
    this.post('/job/:id/plan', function (schema, req) {
      const body = JSON.parse(req.requestBody);
      if (!body.Job) return new _response.default(400, {}, 'Job is a required field on the request payload');
      if (!body.Diff) return new _response.default(400, {}, 'Expected Diff to be true');
      const FailedTGAllocs = body.Job.Unschedulable && generateFailedTGAllocs(body.Job);
      return new _response.default(200, {}, JSON.stringify({
        FailedTGAllocs,
        Diff: (0, _jobVersion.generateDiff)(req.params.id)
      }));
    });
    this.get('/job/:id', withBlockingSupport(function (_ref3, _ref4) {
      let {
        jobs
      } = _ref3;
      let {
        params,
        queryParams
      } = _ref4;
      const job = jobs.all().models.find(job => {
        const jobIsDefault = !job.namespaceId || job.namespaceId === 'default';
        const qpIsDefault = !queryParams.namespace || queryParams.namespace === 'default';
        return job.id === params.id && (job.namespaceId === queryParams.namespace || jobIsDefault && qpIsDefault);
      });
      return job ? this.serialize(job) : new _response.default(404, {}, null);
    }));
    this.post('/job/:id', function (schema, req) {
      const body = JSON.parse(req.requestBody);
      if (!body.Job) return new _response.default(400, {}, 'Job is a required field on the request payload');
      return okEmpty();
    });
    this.get('/job/:id/summary', withBlockingSupport(function (_ref5, _ref6) {
      let {
        jobSummaries
      } = _ref5;
      let {
        params
      } = _ref6;
      return this.serialize(jobSummaries.findBy({
        jobId: params.id
      }));
    }));
    this.get('/job/:id/allocations', function (_ref7, _ref8) {
      let {
        allocations
      } = _ref7;
      let {
        params
      } = _ref8;
      return this.serialize(allocations.where({
        jobId: params.id
      }));
    });
    this.get('/job/:id/versions', function (_ref9, _ref10) {
      let {
        jobVersions
      } = _ref9;
      let {
        params
      } = _ref10;
      return this.serialize(jobVersions.where({
        jobId: params.id
      }));
    });
    this.get('/job/:id/deployments', function (_ref11, _ref12) {
      let {
        deployments
      } = _ref11;
      let {
        params
      } = _ref12;
      return this.serialize(deployments.where({
        jobId: params.id
      }));
    });
    this.get('/job/:id/deployment', function (_ref13, _ref14) {
      let {
        deployments
      } = _ref13;
      let {
        params
      } = _ref14;
      const deployment = deployments.where({
        jobId: params.id
      }).models[0];
      return deployment ? this.serialize(deployment) : new _response.default(200, {}, 'null');
    });
    this.get('/job/:id/scale', withBlockingSupport(function (_ref15, _ref16) {
      let {
        jobScales
      } = _ref15;
      let {
        params
      } = _ref16;
      const obj = jobScales.findBy({
        jobId: params.id
      });
      return this.serialize(jobScales.findBy({
        jobId: params.id
      }));
    }));
    this.post('/job/:id/periodic/force', function (schema, _ref17) {
      let {
        params
      } = _ref17;
      // Create the child job
      const parent = schema.jobs.find(params.id); // Use the server instead of the schema to leverage the job factory

      server.create('job', 'periodicChild', {
        parentId: parent.id,
        namespaceId: parent.namespaceId,
        namespace: parent.namespace,
        createAllocations: parent.createAllocations
      });
      return okEmpty();
    });
    this.post('/job/:id/dispatch', function (schema, _ref18) {
      let {
        params
      } = _ref18;
      // Create the child job
      const parent = schema.jobs.find(params.id); // Use the server instead of the schema to leverage the job factory

      let dispatched = server.create('job', 'parameterizedChild', {
        parentId: parent.id,
        namespaceId: parent.namespaceId,
        namespace: parent.namespace,
        createAllocations: parent.createAllocations
      });
      return new _response.default(200, {}, JSON.stringify({
        DispatchedJobID: dispatched.id
      }));
    });
    this.post('/job/:id/revert', function (_ref19, _ref20) {
      let {
        jobs
      } = _ref19;
      let {
        requestBody
      } = _ref20;
      const {
        JobID,
        JobVersion
      } = JSON.parse(requestBody);
      const job = jobs.find(JobID);
      job.version = JobVersion;
      job.save();
      return okEmpty();
    });
    this.post('/job/:id/scale', function (_ref21, _ref22) {
      let {
        jobs
      } = _ref21;
      let {
        params
      } = _ref22;
      return this.serialize(jobs.find(params.id));
    });
    this.delete('/job/:id', function (schema, _ref23) {
      let {
        params
      } = _ref23;
      const job = schema.jobs.find(params.id);
      job.update({
        status: 'dead'
      });
      return new _response.default(204, {}, '');
    });
    this.get('/deployment/:id');
    this.post('/deployment/fail/:id', function () {
      return new _response.default(204, {}, '');
    });
    this.post('/deployment/promote/:id', function () {
      return new _response.default(204, {}, '');
    });
    this.get('/job/:id/evaluations', function (_ref24, _ref25) {
      let {
        evaluations
      } = _ref24;
      let {
        params
      } = _ref25;
      return this.serialize(evaluations.where({
        jobId: params.id
      }));
    });
    this.get('/evaluations');
    this.get('/evaluation/:id', function (_ref26, _ref27) {
      let {
        evaluations
      } = _ref26;
      let {
        params
      } = _ref27;
      return evaluations.find(params.id);
    });
    this.get('/deployment/allocations/:id', function (schema, _ref28) {
      let {
        params
      } = _ref28;
      const job = schema.jobs.find(schema.deployments.find(params.id).jobId);
      const allocations = schema.allocations.where({
        jobId: job.id
      });
      return this.serialize(allocations.slice(0, 3));
    });
    this.get('/nodes', function (_ref29, req) {
      let {
        nodes
      } = _ref29;
      // authorize user permissions
      const token = server.db.tokens.findBy({
        secretId: req.requestHeaders['X-Nomad-Token']
      });

      if (token) {
        const {
          policyIds
        } = token;
        const policies = server.db.policies.find(policyIds);
        const hasReadPolicy = policies.find(p => {
          var _p$rulesJSON$Node, _p$rulesJSON$Node2;

          return ((_p$rulesJSON$Node = p.rulesJSON.Node) === null || _p$rulesJSON$Node === void 0 ? void 0 : _p$rulesJSON$Node.Policy) === 'read' || ((_p$rulesJSON$Node2 = p.rulesJSON.Node) === null || _p$rulesJSON$Node2 === void 0 ? void 0 : _p$rulesJSON$Node2.Policy) === 'write';
        });

        if (hasReadPolicy) {
          const json = this.serialize(nodes.all());
          return json;
        }

        return new _response.default(403, {}, 'Permissions have not be set-up.');
      } // TODO:  Think about policy handling in Mirage set-up


      return this.serialize(nodes.all());
    });
    this.get('/node/:id');
    this.get('/node/:id/allocations', function (_ref30, _ref31) {
      let {
        allocations
      } = _ref30;
      let {
        params
      } = _ref31;
      return this.serialize(allocations.where({
        nodeId: params.id
      }));
    });
    this.post('/node/:id/eligibility', function (_ref32, _ref33) {
      let {
        nodes
      } = _ref32;
      let {
        params,
        requestBody
      } = _ref33;
      const body = JSON.parse(requestBody);
      const node = nodes.find(params.id);
      node.update({
        schedulingEligibility: body.Elibility === 'eligible'
      });
      return this.serialize(node);
    });
    this.post('/node/:id/drain', function (_ref34, _ref35) {
      let {
        nodes
      } = _ref34;
      let {
        params
      } = _ref35;
      return this.serialize(nodes.find(params.id));
    });
    this.get('/node/pools', function (_ref36) {
      let {
        nodePools
      } = _ref36;
      return this.serialize(nodePools.all());
    });
    this.get('/allocations');
    this.get('/allocation/:id');
    this.post('/allocation/:id/stop', function () {
      return new _response.default(204, {}, '');
    });
    this.get('/volumes', withBlockingSupport(function (_ref37, _ref38) {
      let {
        csiVolumes
      } = _ref37;
      let {
        queryParams
      } = _ref38;

      if (queryParams.type !== 'csi') {
        return new _response.default(200, {}, '[]');
      }

      const json = this.serialize(csiVolumes.all());
      const namespace = queryParams.namespace || 'default';
      return json.filter(volume => {
        if (namespace === '*') return true;
        return namespace === 'default' ? !volume.NamespaceID || volume.NamespaceID === namespace : volume.NamespaceID === namespace;
      });
    }));
    this.get('/volume/:id', withBlockingSupport(function (_ref39, _ref40) {
      let {
        csiVolumes
      } = _ref39;
      let {
        params,
        queryParams
      } = _ref40;

      if (!params.id.startsWith('csi/')) {
        return new _response.default(404, {}, null);
      }

      const id = params.id.replace(/^csi\//, '');
      const volume = csiVolumes.all().models.find(volume => {
        const volumeIsDefault = !volume.namespaceId || volume.namespaceId === 'default';
        const qpIsDefault = !queryParams.namespace || queryParams.namespace === 'default';
        return volume.id === id && (volume.namespaceId === queryParams.namespace || volumeIsDefault && qpIsDefault);
      });
      return volume ? this.serialize(volume) : new _response.default(404, {}, null);
    }));
    this.get('/plugins', function (_ref41, _ref42) {
      let {
        csiPlugins
      } = _ref41;
      let {
        queryParams
      } = _ref42;

      if (queryParams.type !== 'csi') {
        return new _response.default(200, {}, '[]');
      }

      return this.serialize(csiPlugins.all());
    });
    this.get('/plugin/:id', function (_ref43, _ref44) {
      let {
        csiPlugins
      } = _ref43;
      let {
        params
      } = _ref44;

      if (!params.id.startsWith('csi/')) {
        return new _response.default(404, {}, null);
      }

      const id = params.id.replace(/^csi\//, '');
      const volume = csiPlugins.find(id);

      if (!volume) {
        return new _response.default(404, {}, null);
      }

      return this.serialize(volume);
    });
    this.get('/namespaces', function (_ref45) {
      let {
        namespaces
      } = _ref45;
      const records = namespaces.all();

      if (records.length) {
        return this.serialize(records);
      }

      return this.serialize([{
        Name: 'default'
      }]);
    });
    this.get('/namespace/:id', function (_ref46, _ref47) {
      let {
        namespaces
      } = _ref46;
      let {
        params
      } = _ref47;
      return this.serialize(namespaces.find(params.id));
    });
    this.get('/agent/members', function (_ref48) {
      let {
        agents,
        regions
      } = _ref48;
      const firstRegion = regions.first();
      return {
        ServerRegion: firstRegion ? firstRegion.id : null,
        Members: this.serialize(agents.all()).map(_ref49 => {
          let {
            member
          } = _ref49;
          return _objectSpread({}, member);
        })
      };
    });
    this.get('/agent/self', function (_ref50) {
      let {
        agents
      } = _ref50;
      return agents.first();
    });
    this.get('/agent/monitor', function (_ref51, _ref52) {
      let {
        agents,
        nodes
      } = _ref51;
      let {
        queryParams
      } = _ref52;
      const serverId = queryParams.server_id;
      const clientId = queryParams.client_id;
      if (serverId && clientId) return new _response.default(400, {}, 'specify a client or a server, not both');
      if (serverId && !agents.findBy({
        name: serverId
      })) return new _response.default(400, {}, 'specified server does not exist');
      if (clientId && !nodes.find(clientId)) return new _response.default(400, {}, 'specified client does not exist');

      if (queryParams.plain) {
        return _logs.logFrames.join('');
      }

      return (0, _logs.logEncode)(_logs.logFrames, _logs.logFrames.length - 1);
    });
    this.get('/status/leader', function (schema) {
      return JSON.stringify(findLeader(schema));
    });
    this.get('/acl/tokens', function (_ref53, req) {
      let {
        tokens
      } = _ref53;
      return this.serialize(tokens.all());
    });
    this.delete('/acl/token/:id', function (schema, request) {
      const {
        id
      } = request.params;
      server.db.tokens.remove(id);
      return '';
    });
    this.post('/acl/token', function (schema, request) {
      const {
        Name,
        Policies,
        Type
      } = JSON.parse(request.requestBody);
      return server.create('token', {
        name: Name,
        policyIds: Policies,
        type: Type,
        id: _faker.default.random.uuid(),
        createTime: new Date().toISOString()
      });
    });
    this.get('/acl/token/self', function (_ref54, req) {
      let {
        tokens
      } = _ref54;
      const secret = req.requestHeaders['X-Nomad-Token'];
      const tokenForSecret = tokens.findBy({
        secretId: secret
      }); // Return the token if it exists

      if (tokenForSecret) {
        return this.serialize(tokenForSecret);
      } // Client error if it doesn't


      return new _response.default(400, {}, null);
    });
    this.post('/acl/login', function (schema, _ref55) {
      let {
        requestBody
      } = _ref55;
      const {
        LoginToken
      } = JSON.parse(requestBody);
      const tokenType = LoginToken.endsWith('management') ? 'management' : 'client';
      const isBad = LoginToken.endsWith('bad');

      if (isBad) {
        return new _response.default(403, {}, null);
      } else {
        const token = schema.tokens.all().models.find(token => token.type === tokenType);
        return this.serialize(token);
      }
    });
    this.get('/acl/token/:id', function (_ref56, req) {
      let {
        tokens
      } = _ref56;
      const token = tokens.find(req.params.id);
      const secret = req.requestHeaders['X-Nomad-Token'];
      const tokenForSecret = tokens.findBy({
        secretId: secret
      }); // Return the token only if the request header matches the token
      // or the token is of type management

      if (token.secretId === secret || tokenForSecret && tokenForSecret.type === 'management') {
        return this.serialize(token);
      } // Return not authorized otherwise


      return new _response.default(403, {}, null);
    });
    this.post('/acl/token/onetime/exchange', function (_ref57, _ref58) {
      let {
        tokens
      } = _ref57;
      let {
        requestBody
      } = _ref58;
      const {
        OneTimeSecretID
      } = JSON.parse(requestBody);
      const tokenForSecret = tokens.findBy({
        oneTimeSecret: OneTimeSecretID
      }); // Return the token if it exists

      if (tokenForSecret) {
        return {
          Token: this.serialize(tokenForSecret)
        };
      } // Forbidden error if it doesn't


      return new _response.default(403, {}, null);
    });
    this.get('/acl/policy/:id', function (_ref59, req) {
      let {
        policies,
        tokens
      } = _ref59;
      const policy = policies.findBy({
        name: req.params.id
      });
      const secret = req.requestHeaders['X-Nomad-Token'];
      const tokenForSecret = tokens.findBy({
        secretId: secret
      });

      if (req.params.id === 'anonymous') {
        if (policy) {
          return this.serialize(policy);
        } else {
          return new _response.default(404, {}, null);
        }
      } // Return the policy only if the token that matches the request header
      // includes the policy or if the token that matches the request header
      // is of type management


      if (tokenForSecret && (tokenForSecret.policies.includes(policy) || tokenForSecret.type === 'management')) {
        return this.serialize(policy);
      } // Return not authorized otherwise


      return new _response.default(403, {}, null);
    });
    this.get('/acl/policies', function (_ref60, req) {
      let {
        policies
      } = _ref60;
      return this.serialize(policies.all());
    });
    this.delete('/acl/policy/:id', function (schema, request) {
      const {
        id
      } = request.params;
      schema.tokens.all().models.filter(token => token.policyIds.includes(id)).forEach(token => {
        token.update({
          policyIds: token.policyIds.filter(pid => pid !== id)
        });
      });
      server.db.policies.remove(id);
      return '';
    });
    this.put('/acl/policy/:id', function (schema, request) {
      return new _response.default(200, {}, {});
    });
    this.post('/acl/policy/:id', function (schema, request) {
      const {
        Name,
        Description,
        Rules
      } = JSON.parse(request.requestBody);
      return server.create('policy', {
        name: Name,
        description: Description,
        rules: Rules
      });
    });
    this.get('/regions', function (_ref61) {
      let {
        regions
      } = _ref61;
      return this.serialize(regions.all());
    });
    this.get('/operator/license', function (_ref62) {
      let {
        features
      } = _ref62;
      const records = features.all();

      if (records.length) {
        return {
          License: {
            Features: records.models.mapBy('name')
          }
        };
      }

      return new _response.default(501, {}, null);
    });

    const clientAllocationStatsHandler = function (_ref63, _ref64) {
      let {
        clientAllocationStats
      } = _ref63;
      let {
        params
      } = _ref64;
      return this.serialize(clientAllocationStats.find(params.id));
    };

    const clientAllocationLog = function (server, _ref65) {
      let {
        params,
        queryParams
      } = _ref65;
      const allocation = server.allocations.find(params.allocation_id);
      const tasks = allocation.taskStateIds.map(id => server.taskStates.find(id));

      if (!tasks.mapBy('name').includes(queryParams.task)) {
        return new _response.default(400, {}, 'must include task name');
      }

      if (queryParams.plain) {
        return _logs.logFrames.join('');
      }

      return (0, _logs.logEncode)(_logs.logFrames, _logs.logFrames.length - 1);
    };

    const clientAllocationFSLsHandler = function (_ref66, _ref67) {
      let {
        allocFiles
      } = _ref66;
      let {
        queryParams: {
          path
        }
      } = _ref67;
      const filterPath = path.endsWith('/') ? path.substr(0, path.length - 1) : path;
      const files = filesForPath(allocFiles, filterPath);
      return this.serialize(files);
    };

    const clientAllocationFSStatHandler = function (_ref68, _ref69) {
      let {
        allocFiles
      } = _ref68;
      let {
        queryParams: {
          path
        }
      } = _ref69;
      const filterPath = path.endsWith('/') ? path.substr(0, path.length - 1) : path; // Root path

      if (!filterPath) {
        return this.serialize({
          IsDir: true,
          ModTime: new Date()
        });
      } // Either a file or a nested directory


      const file = allocFiles.where({
        path: filterPath
      }).models[0];
      return this.serialize(file);
    };

    const clientAllocationCatHandler = function (_ref70, _ref71) {
      let {
        allocFiles
      } = _ref70;
      let {
        queryParams
      } = _ref71;
      const [file, err] = fileOrError(allocFiles, queryParams.path);
      if (err) return err;
      return file.body;
    };

    const clientAllocationStreamHandler = function (_ref72, _ref73) {
      let {
        allocFiles
      } = _ref72;
      let {
        queryParams
      } = _ref73;
      const [file, err] = fileOrError(allocFiles, queryParams.path);
      if (err) return err; // Pretender, and therefore Mirage, doesn't support streaming responses.

      return file.body;
    };

    const clientAllocationReadAtHandler = function (_ref74, _ref75) {
      let {
        allocFiles
      } = _ref74;
      let {
        queryParams
      } = _ref75;
      const [file, err] = fileOrError(allocFiles, queryParams.path);
      if (err) return err;
      return file.body.substr(queryParams.offset || 0, queryParams.limit);
    };

    const fileOrError = function (allocFiles, path) {
      let message = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'Operation not allowed on a directory';

      // Root path
      if (path === '/') {
        return [null, new _response.default(400, {}, message)];
      }

      const file = allocFiles.where({
        path
      }).models[0];

      if (file.isDir) {
        return [null, new _response.default(400, {}, message)];
      }

      return [file, null];
    }; // Client requests are available on the server and the client


    this.put('/client/allocation/:id/restart', function () {
      return new _response.default(204, {}, '');
    });
    this.get('/client/allocation/:id/stats', clientAllocationStatsHandler);
    this.get('/client/fs/logs/:allocation_id', clientAllocationLog);
    this.get('/client/fs/ls/:allocation_id', clientAllocationFSLsHandler);
    this.get('/client/fs/stat/:allocation_id', clientAllocationFSStatHandler);
    this.get('/client/fs/cat/:allocation_id', clientAllocationCatHandler);
    this.get('/client/fs/stream/:allocation_id', clientAllocationStreamHandler);
    this.get('/client/fs/readat/:allocation_id', clientAllocationReadAtHandler);
    this.get('/client/stats', function (_ref76, _ref77) {
      let {
        clientStats
      } = _ref76;
      let {
        queryParams
      } = _ref77;

      const seed = _faker.default.random.number(10);

      if (seed >= 8) {
        const stats = clientStats.find(queryParams.node_id);
        stats.update({
          timestamp: Date.now() * 1000000,
          CPUTicksConsumed: stats.CPUTicksConsumed + _faker.default.random.number({
            min: -10,
            max: 10
          })
        });
        return this.serialize(stats);
      } else {
        return new _response.default(500, {}, null);
      }
    }); // Metadata

    this.post('/client/metadata', function (schema, _ref78) {
      let {
        queryParams: {
          node_id
        },
        requestBody
      } = _ref78;
      const attrs = JSON.parse(requestBody);
      const node = schema.nodes.find(node_id);
      Object.entries(attrs.Meta).forEach(_ref79 => {
        let [key, value] = _ref79;

        if (value === null) {
          delete node.meta[key];
          delete attrs.Meta[key];
        }
      });
      return {
        Meta: _objectSpread(_objectSpread({}, node.meta), attrs.Meta)
      };
    }); // TODO: in the future, this hack may be replaceable with dynamic host name
    // support in pretender: https://github.com/pretenderjs/pretender/issues/210

    _common.HOSTS.forEach(host => {
      this.get(`http://${host}/v1/client/allocation/:id/stats`, clientAllocationStatsHandler);
      this.get(`http://${host}/v1/client/fs/logs/:allocation_id`, clientAllocationLog);
      this.get(`http://${host}/v1/client/fs/ls/:allocation_id`, clientAllocationFSLsHandler);
      this.get(`http://${host}/v1/client/stat/ls/:allocation_id`, clientAllocationFSStatHandler);
      this.get(`http://${host}/v1/client/fs/cat/:allocation_id`, clientAllocationCatHandler);
      this.get(`http://${host}/v1/client/fs/stream/:allocation_id`, clientAllocationStreamHandler);
      this.get(`http://${host}/v1/client/fs/readat/:allocation_id`, clientAllocationReadAtHandler);
      this.get(`http://${host}/v1/client/stats`, function (_ref80) {
        let {
          clientStats
        } = _ref80;
        return this.serialize(clientStats.find(host));
      });
    });

    this.post('/search/fuzzy', function (_ref81, _ref82) {
      let {
        allocations,
        jobs,
        nodes,
        taskGroups,
        csiPlugins
      } = _ref81;
      let {
        requestBody
      } = _ref82;
      const {
        Text
      } = JSON.parse(requestBody);
      const matchedAllocs = allocations.where(allocation => allocation.name.includes(Text));
      const matchedGroups = taskGroups.where(taskGroup => taskGroup.name.includes(Text));
      const matchedJobs = jobs.where(job => job.name.includes(Text));
      const matchedNodes = nodes.where(node => node.name.includes(Text));
      const matchedPlugins = csiPlugins.where(plugin => plugin.id.includes(Text));
      const transformedAllocs = matchedAllocs.models.map(alloc => ({
        ID: alloc.name,
        Scope: [alloc.namespace || 'default', alloc.id]
      }));
      const transformedGroups = matchedGroups.models.map(group => ({
        ID: group.name,
        Scope: [group.job.namespace, group.job.id]
      }));
      const transformedJobs = matchedJobs.models.map(job => ({
        ID: job.name,
        Scope: [job.namespace || 'default', job.id]
      }));
      const transformedNodes = matchedNodes.models.map(node => ({
        ID: node.name,
        Scope: [node.id]
      }));
      const transformedPlugins = matchedPlugins.models.map(plugin => ({
        ID: plugin.id
      }));
      const truncatedAllocs = transformedAllocs.slice(0, 20);
      const truncatedGroups = transformedGroups.slice(0, 20);
      const truncatedJobs = transformedJobs.slice(0, 20);
      const truncatedNodes = transformedNodes.slice(0, 20);
      const truncatedPlugins = transformedPlugins.slice(0, 20);
      return {
        Matches: {
          allocs: truncatedAllocs,
          groups: truncatedGroups,
          jobs: truncatedJobs,
          nodes: truncatedNodes,
          plugins: truncatedPlugins
        },
        Truncations: {
          allocs: truncatedAllocs.length < truncatedAllocs.length,
          groups: truncatedGroups.length < transformedGroups.length,
          jobs: truncatedJobs.length < transformedJobs.length,
          nodes: truncatedNodes.length < transformedNodes.length,
          plugins: truncatedPlugins.length < transformedPlugins.length
        }
      };
    });
    this.get('/recommendations', function (_ref83, _ref84) {
      let {
        jobs,
        namespaces,
        recommendations
      } = _ref83;
      let {
        queryParams: {
          job: id,
          namespace
        }
      } = _ref84;

      if (id) {
        if (!namespaces.all().length) {
          namespace = null;
        }

        const job = jobs.findBy({
          id,
          namespace
        });

        if (!job) {
          return [];
        }

        const taskGroups = job.taskGroups.models;
        const tasks = taskGroups.reduce((tasks, taskGroup) => {
          return tasks.concat(taskGroup.tasks.models);
        }, []);
        const recommendationIds = tasks.reduce((recommendationIds, task) => {
          return recommendationIds.concat(task.recommendations.models.mapBy('id'));
        }, []);
        return recommendations.find(recommendationIds);
      } else {
        return recommendations.all();
      }
    });
    this.post('/recommendations/apply', function (_ref85, _ref86) {
      let {
        recommendations
      } = _ref85;
      let {
        requestBody
      } = _ref86;
      const {
        Apply,
        Dismiss
      } = JSON.parse(requestBody);
      Apply.concat(Dismiss).forEach(id => {
        const recommendation = recommendations.find(id);
        const task = recommendation.task;

        if (Apply.includes(id)) {
          task.resources[recommendation.resource] = recommendation.value;
        }

        recommendation.destroy();
        task.save();
      });
      return {};
    }); //#region Variables

    this.get('/vars', function (schema, _ref87) {
      let {
        queryParams: {
          namespace,
          prefix
        }
      } = _ref87;

      if (prefix === 'nomad/job-templates') {
        return schema.variables.all().filter(v => v.path.includes('nomad/job-templates'));
      }

      if (namespace && namespace !== '*') {
        return schema.variables.all().filter(v => v.namespace === namespace);
      } else {
        return schema.variables.all();
      }
    });
    this.get('/var/:id', function (_ref88, _ref89) {
      let {
        variables
      } = _ref88;
      let {
        params
      } = _ref89;
      return variables.find(params.id);
    });
    this.put('/var/:id', function (schema, request) {
      const {
        Path,
        Namespace,
        Items
      } = JSON.parse(request.requestBody);

      if (request.url.includes('cas=') && Path === 'Auto-conflicting Variable') {
        return new _response.default(409, {}, {
          CreateIndex: 65,
          CreateTime: _faker.default.date.recent(14) * 1000000,
          // in the past couple weeks
          Items: {
            edited_by: 'your_remote_pal'
          },
          ModifyIndex: 2118,
          ModifyTime: _faker.default.date.recent(0.01) * 1000000,
          // a few minutes ago
          Namespace: Namespace,
          Path: Path
        });
      } else {
        return server.create('variable', {
          path: Path,
          namespace: Namespace,
          items: Items,
          id: Path
        });
      }
    });
    this.delete('/var/:id', function (schema, request) {
      const {
        id
      } = request.params;
      server.db.variables.remove(id);
      return '';
    }); //#endregion Variables
    //#region Services

    const allocationServiceChecksHandler = function (schema) {
      let disasters = ["Moon's haunted", 'reticulating splines', 'The operation completed unexpectedly', 'Ran out of sriracha :(', '¯\\_(ツ)_/¯', '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"\n        "http://www.w3.org/TR/html4/strict.dtd">\n<html>\n    <head>\n        <meta http-equiv="Content-Type" content="text/html;charset=utf-8">\n        <title>Error response</title>\n    </head>\n    <body>\n        <h1>Error response</h1>\n        <p>Error code: 404</p>\n        <p>Message: File not found.</p>\n        <p>Error code explanation: HTTPStatus.NOT_FOUND - Nothing matches the given URI.</p>\n    </body>\n</html>\n'];
      let fakeChecks = [];
      schema.serviceFragments.all().models.forEach((frag, iter) => {
        [...Array(iter)].forEach((check, checkIter) => {
          var _frag$taskGroup, _frag$task;

          const checkOK = _faker.default.random.boolean();

          fakeChecks.push({
            Check: `check-${checkIter}`,
            Group: `job-name.${(_frag$taskGroup = frag.taskGroup) === null || _frag$taskGroup === void 0 ? void 0 : _frag$taskGroup.name}[1]`,
            Output: checkOK ? 'nomad: http ok' : disasters[Math.floor(Math.random() * disasters.length)],
            Service: frag.name,
            Status: checkOK ? 'success' : 'failure',
            StatusCode: checkOK ? 200 : 400,
            Task: (_frag$task = frag.task) === null || _frag$task === void 0 ? void 0 : _frag$task.name,
            Timestamp: new Date().getTime()
          });
        });
      });
      return fakeChecks;
    };

    this.get('/job/:id/services', function (schema, _ref90) {
      let {
        params
      } = _ref90;
      const {
        services
      } = schema;
      return this.serialize(services.where({
        jobId: params.id
      }));
    });
    this.get('/client/allocation/:id/checks', allocationServiceChecksHandler); //#endregion Services
    //#region SSO

    this.get('/acl/auth-methods', function (schema, request) {
      return schema.authMethods.all();
    });
    this.post('/acl/oidc/auth-url', (schema, req) => {
      const {
        AuthMethodName,
        ClientNonce,
        RedirectUri,
        Meta
      } = JSON.parse(req.requestBody);
      return new _response.default(200, {}, {
        AuthURL: `/ui/oidc-mock?auth_method=${AuthMethodName}&client_nonce=${ClientNonce}&redirect_uri=${RedirectUri}&meta=${Meta}`
      });
    }); // Simulate an OIDC callback by assuming the code passed is the secret of an existing token, and return that token.

    this.post('/acl/oidc/complete-auth', function (schema, req) {
      const code = JSON.parse(req.requestBody).Code;
      const token = schema.tokens.findBy({
        id: code
      });
      return new _response.default(200, {}, {
        SecretID: token.secretId
      });
    }, {
      timing: 1000
    }); //#endregion SSO
  }

  function filterKeys(object) {
    const clone = (0, _emberCopy.copy)(object, true);

    for (var _len = arguments.length, keys = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
      keys[_key - 1] = arguments[_key];
    }

    keys.forEach(key => {
      delete clone[key];
    });
    return clone;
  } // An empty response but not a 204 No Content. This is still a valid JSON
  // response that represents a payload with no worthwhile data.


  function okEmpty() {
    return new _response.default(200, {}, '{}');
  }

  function generateFailedTGAllocs(job, taskGroups) {
    const taskGroupsFromSpec = job.TaskGroups && job.TaskGroups.mapBy('Name');
    let tgNames = ['tg-one', 'tg-two'];
    if (taskGroupsFromSpec && taskGroupsFromSpec.length) tgNames = taskGroupsFromSpec;
    if (taskGroups && taskGroups.length) tgNames = taskGroups;
    return tgNames.reduce((hash, tgName) => {
      hash[tgName] = (0, _evaluation.generateTaskGroupFailures)();
      return hash;
    }, {});
  }
});
;define("nomad-ui/mirage/data/generate-resources", ["exports"], function (_exports) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = generateResources;
  0; //eaimeta@70e063a35619d71feaimeta@70e063a35619d71f

  /**
   * Copyright (c) HashiCorp, Inc.
   * SPDX-License-Identifier: MPL-2.0
   */
  function generateResources() {
    return {
      CpuStats: {
        Measured: ['Throttled Periods', 'Throttled Time', 'Percent'],
        Percent: 0.14159538847117795,
        SystemMode: 0,
        ThrottledPeriods: 0,
        ThrottledTime: 0,
        TotalTicks: 300.256693934837093,
        UserMode: 0
      },
      MemoryStats: {
        Cache: 1744896,
        KernelMaxUsage: 0,
        KernelUsage: 0,
        MaxUsage: 4710400,
        Measured: ['RSS', 'Cache', 'Swap', 'Max Usage'],
        RSS: 1486848009,
        Swap: 0
      }
    };
  }
});
;define("nomad-ui/mirage/data/logs", ["exports"], function (_exports) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.logEncode = _exports.logFrames = void 0;
  0; //eaimeta@70e063a35619d71feaimeta@70e063a35619d71f

  /**
   * Copyright (c) HashiCorp, Inc.
   * SPDX-License-Identifier: MPL-2.0
   */
  const logFrames = ['hello world\n', 'some more output\ngoes here\n\n--> potentially helpful', ' hopefully, at least.\n'];
  _exports.logFrames = logFrames;

  const logEncode = (frames, index) => {
    return frames.slice(0, index + 1).map(frame => window.btoa(frame)).map((frame, innerIndex) => {
      const offset = frames.slice(0, innerIndex).reduce((sum, frame) => sum + frame.length, 0);
      return JSON.stringify({
        Offset: offset,
        Data: frame
      });
    }).join('');
  };

  _exports.logEncode = logEncode;
});
;define("nomad-ui/mirage/factories/agent", ["exports", "ember-cli-mirage", "nomad-ui/mirage/faker", "nomad-ui/mirage/utils", "nomad-ui/mirage/common", "nomad-ui/mirage/scenarios/default"], function (_exports, _emberCliMirage, _faker, _utils, _common, _default2) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember-cli-mirage",0,"nomad-ui/mirage/faker",0,"nomad-ui/mirage/utils",0,"nomad-ui/mirage/common",0,"nomad-ui/mirage/scenarios/default"eaimeta@70e063a35619d71f

  const UUIDS = (0, _utils.provide)(100, _faker.default.random.uuid.bind(_faker.default.random));
  const AGENT_STATUSES = ['alive', 'leaving', 'left', 'failed'];
  const AGENT_BUILDS = ['1.1.0-beta', '1.0.2-alpha+ent', ...(0, _utils.provide)(5, _faker.default.system.semver)];

  var _default = _emberCliMirage.Factory.extend({
    id: i => i / 100 >= 1 ? `${UUIDS[i]}-${i}` : UUIDS[i],
    name: () => generateName(),
    config: {
      UI: {
        Enabled: true,
        Label: {
          TextColor: 'white',
          BackgroundColor: 'hotpink',
          Text: `Mirage - ${_default2.scenario}`
        }
      },
      ACL: {
        Enabled: true
      },
      Version: {
        Version: '1.1.0',
        VersionMetadata: 'ent',
        VersionPrerelease: 'dev'
      }
    },

    member() {
      const serfPort = _faker.default.random.number({
        min: 4000,
        max: 4999
      });

      return {
        Name: this.name,
        Port: serfPort,
        Status: _faker.default.helpers.randomize(AGENT_STATUSES),
        Address: generateAddress(this.name),
        Tags: generateTags(serfPort)
      };
    },

    version() {
      var _this$member$Tags;

      return ((_this$member$Tags = this.member.Tags) === null || _this$member$Tags === void 0 ? void 0 : _this$member$Tags.build) || '';
    },

    withConsulLink: (0, _emberCliMirage.trait)({
      afterCreate(agent) {
        agent.config.UI.Consul = {
          BaseUIURL: 'http://localhost:8500/ui'
        };
      }

    }),
    withVaultLink: (0, _emberCliMirage.trait)({
      afterCreate(agent) {
        agent.config.UI.Vault = {
          BaseUIURL: 'http://localhost:8200/ui'
        };
      }

    })
  });

  _exports.default = _default;

  function generateName() {
    return `nomad@${_faker.default.random.boolean() ? _faker.default.internet.ip() : _faker.default.internet.ipv6()}`;
  }

  function generateAddress(name) {
    return name.split('@')[1];
  }

  function generateTags(serfPort) {
    const rpcPortCandidate = _faker.default.random.number({
      min: 4000,
      max: 4999
    });

    return {
      port: rpcPortCandidate === serfPort ? rpcPortCandidate + 1 : rpcPortCandidate,
      dc: _faker.default.helpers.randomize(_common.DATACENTERS),
      build: _faker.default.helpers.randomize(AGENT_BUILDS)
    };
  }
});
;define("nomad-ui/mirage/factories/alloc-file", ["exports", "ember-cli-mirage", "@ember/string", "nomad-ui/mirage/faker", "nomad-ui/mirage/utils"], function (_exports, _emberCliMirage, _string, _faker, _utils) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember-cli-mirage",0,"@ember/string",0,"nomad-ui/mirage/faker",0,"nomad-ui/mirage/utils"eaimeta@70e063a35619d71f

  const REF_TIME = new Date();
  const TROUBLESOME_CHARACTERS = '🏆 💃 🤩 🙌🏿 🖨 ? ; %'.split(' ');

  const makeWord = () => (_faker.default.random.number(10000000) + 50000).toString(36);

  const makeSentence = function () {
    let count = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 10;
    return new Array(count).fill(null).map(makeWord).join(' ');
  };

  const fileTypeMapping = {
    svg: 'image/svg',
    txt: 'text/plain',
    json: 'application/json',
    app: 'application/octet-stream',
    exe: 'application/octet-stream'
  };
  const fileBodyMapping = {
    svg: () => `
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 207 60">
  <g fill="none">
    <path class="top" fill="#25BA81" d="M26.03.01L0 15.05l17.56 10.32 3.56-2.17 8.63 4.82v-10l8.27-4.97v10.02l14.48-8.02v-.04"/>
    <path class="left" fill="#25BA81" d="M22.75 32.03v9.99l-7.88 5v-20l2.99-1.83L.15 15.05H0v29.96l26.25 15V34.03"/>
    <path class="right" fill="#1F9967" d="M38.02 23.07v9.95l-6.93 4.01-4.84-3v25.98h.14l26.11-15V15.05l-.49-.01"/>
    <path class="text" fill="#000" d="M78.49 21.83v24.24h-5.9v-32h8.06l12.14 24.32V14.1h5.9v32h-8.06m22.46.45c-8 0-10.18-4.42-10.18-9.22v-5.9c0-4.8 2.16-9.22 10.18-9.22s10.18 4.42 10.18 9.22v5.91c0 4.79-2.16 9.21-10.18 9.21zm0-19.35c-3.12 0-4.32 1.39-4.32 4v6.29c0 2.64 1.2 4 4.32 4s4.32-1.39 4.32-4v-6.25c0-2.64-1.2-4.04-4.32-4.04zm27.99 18.87V29.75c0-1.25-.53-1.87-1.87-1.87-2.147.252-4.22.932-6.1 2v16.19h-5.86V22.69h4.46l.58 2c2.916-1.46 6.104-2.293 9.36-2.45 1.852-.175 3.616.823 4.42 2.5 2.922-1.495 6.13-2.348 9.41-2.5 3.89 0 5.28 2.74 5.28 6.91v16.92h-5.86V29.75c0-1.25-.53-1.87-1.87-1.87-2.15.234-4.23.915-6.1 2v16.19h-5.85zm41.81 0h-4.8l-.43-1.58c-2.084 1.352-4.516 2.068-7 2.06-4.27 0-6.1-2.93-6.1-7 0-4.75 2.06-6.58 6.82-6.58H177v-2.41c0-2.59-.72-3.5-4.46-3.5-2.18.024-4.35.265-6.48.72l-.72-4.46c2.606-.72 5.296-1.09 8-1.1 7.34 0 9.5 2.59 9.5 8.45l.05 15.4zM177 37.24h-4.32c-1.92 0-2.45.53-2.45 2.3 0 1.77.53 2.35 2.35 2.35 1.55-.02 3.07-.434 4.42-1.2v-3.45zm9.48-6.77c0-5.18 2.3-8.26 7.73-8.26 2.097.02 4.187.244 6.24.67v-9.74l5.86-.82v33.75h-4.66l-.58-2c-2.133 1.595-4.726 2.454-7.39 2.45-4.7 0-7.2-2.79-7.2-8.11v-7.94zm14-2.64c-1.702-.38-3.437-.588-5.18-.62-2.11 0-2.93 1-2.93 3.12v8.26c0 1.92.72 3 2.88 3 1.937-.07 3.787-.816 5.23-2.11V27.83z"/>
  </g>
</svg>
  `,
    txt: () => new Array(3000).fill(null).map((_, i) => {
      const date = new Date(2019, 6, 23);
      date.setSeconds(i * 5);
      return `${date.toISOString()} ${makeSentence(_faker.default.random.number({
        max: 5
      }) + 7)}`;
    }).join('\n'),
    json: () => JSON.stringify({
      key: 'value',
      array: [1, 'two', [3]],
      deep: {
        ly: {
          nest: 'ed'
        }
      }
    })
  };

  var _default = _emberCliMirage.Factory.extend({
    id: i => i,
    isDir: _faker.default.random.boolean,
    // Depth is used to recursively create nested directories.
    depth: 0,
    parent: null,

    fileType() {
      if (this.isDir) return 'dir';
      return (0, _utils.pickOne)(['svg', 'txt', 'json', 'app', 'exe']);
    },

    contentType() {
      return fileTypeMapping[this.fileType] || null;
    },

    path() {
      if (this.parent) {
        return `${this.parent.path}/${this.name}`;
      }

      return this.name;
    },

    name() {
      return `${(0, _string.dasherize)(_faker.default.hacker.noun())}-${(0, _utils.pickOne)(TROUBLESOME_CHARACTERS)}${this.isDir ? '' : `.${this.fileType}`}`;
    },

    body() {
      const strategy = fileBodyMapping[this.fileType];
      return strategy ? strategy() : '';
    },

    size() {
      return this.body.length;
    },

    modTime: () => _faker.default.date.past(2 / 365, REF_TIME),
    dir: (0, _emberCliMirage.trait)({
      isDir: true,

      afterCreate(allocFile, server) {
        // create files for the directory
        if (allocFile.depth > 0) {
          server.create('allocFile', 'dir', {
            parent: allocFile,
            depth: allocFile.depth - 1
          });
        }

        server.createList('allocFile', _faker.default.random.number({
          min: 1,
          max: 3
        }), 'file', {
          parent: allocFile
        });
      }

    }),
    file: (0, _emberCliMirage.trait)({
      isDir: false
    })
  });

  _exports.default = _default;
});
;define("nomad-ui/mirage/factories/allocation", ["exports", "ember", "moment", "ember-cli-mirage", "nomad-ui/mirage/faker", "nomad-ui/mirage/utils", "nomad-ui/mirage/common"], function (_exports, _ember, _moment, _emberCliMirage, _faker, _utils, _common) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember",0,"moment",0,"ember-cli-mirage",0,"nomad-ui/mirage/faker",0,"nomad-ui/mirage/utils",0,"nomad-ui/mirage/common"eaimeta@70e063a35619d71f

  const UUIDS = (0, _utils.provide)(100, _faker.default.random.uuid.bind(_faker.default.random));
  const CLIENT_STATUSES = ['pending', 'running', 'complete', 'failed', 'lost'];
  const DESIRED_STATUSES = ['run', 'stop', 'evict'];
  const REF_TIME = new Date();

  var _default = _emberCliMirage.Factory.extend({
    id: i => i >= 100 ? `${UUIDS[i % 100]}-${i}` : UUIDS[i],
    jobVersion: 1,
    modifyIndex: () => _faker.default.random.number({
      min: 10,
      max: 2000
    }),
    modifyTime: () => _faker.default.date.past(2 / 365, REF_TIME) * 1000000,
    createIndex: () => _faker.default.random.number({
      min: 10,
      max: 2000
    }),

    createTime() {
      return _faker.default.date.past(2 / 365, new Date(this.modifyTime / 1000000)) * 1000000;
    },

    namespace: null,

    clientStatus() {
      return this.forceRunningClientStatus ? 'running' : _faker.default.helpers.randomize(CLIENT_STATUSES);
    },

    desiredStatus: () => _faker.default.helpers.randomize(DESIRED_STATUSES),
    // When true, doesn't create any resources, state, or events
    shallow: false,
    // When true, sets the client status to running
    forceRunningClientStatus: false,
    withTaskWithPorts: (0, _emberCliMirage.trait)({
      afterCreate(allocation, server) {
        const taskGroup = server.db.taskGroups.findBy({
          name: allocation.taskGroup
        });
        const resources = taskGroup.taskIds.map(id => {
          const task = server.db.tasks.find(id);
          return server.create('task-resource', {
            allocation,
            name: task.name,
            resources: (0, _common.generateResources)({
              CPU: task.resources.CPU,
              MemoryMB: task.resources.MemoryMB,
              DiskMB: task.resources.DiskMB,
              networks: {
                minPorts: 1
              }
            })
          });
        });
        allocation.update({
          taskResourceIds: resources.mapBy('id')
        });
      }

    }),
    withoutTaskWithPorts: (0, _emberCliMirage.trait)({
      afterCreate(allocation, server) {
        const taskGroup = server.db.taskGroups.findBy({
          name: allocation.taskGroup
        });
        const resources = taskGroup.taskIds.map(id => {
          const task = server.db.tasks.find(id);
          return server.create('task-resource', {
            allocation,
            name: task.name,
            resources: (0, _common.generateResources)({
              CPU: task.resources.CPU,
              MemoryMB: task.resources.MemoryMB,
              DiskMB: task.resources.DiskMB,
              networks: {
                minPorts: 0,
                maxPorts: 0
              }
            })
          });
        });
        allocation.update({
          taskResourceIds: resources.mapBy('id')
        });
      }

    }),
    rescheduleAttempts: 0,
    rescheduleSuccess: false,
    rescheduled: (0, _emberCliMirage.trait)({
      // Create another allocation carrying the events of this as well as the reschduleSuccess state.
      // Pass along rescheduleAttempts after decrementing.
      // After rescheduleAttempts hits zero, a final allocation is made with no nextAllocation and
      // a clientStatus of failed or running, depending on rescheduleSuccess
      afterCreate(allocation, server) {
        const attempts = allocation.rescheduleAttempts - 1;
        const previousEvents = allocation.rescheduleTracker && allocation.rescheduleTracker.Events || [];
        let rescheduleTime;

        if (previousEvents.length) {
          const lastEvent = previousEvents[previousEvents.length - 1];
          rescheduleTime = (0, _moment.default)(lastEvent.RescheduleTime / 1000000).add(5, 'minutes');
        } else {
          rescheduleTime = _faker.default.date.past(2 / 365, REF_TIME);
        }

        rescheduleTime *= 1000000;
        const rescheduleTracker = {
          Events: previousEvents.concat([{
            PrevAllocID: allocation.id,
            PrevNodeID: null,
            //allocation.node.id,
            RescheduleTime: rescheduleTime
          }])
        };
        let nextAllocation;

        if (attempts > 0) {
          nextAllocation = server.create('allocation', 'rescheduled', {
            rescheduleAttempts: Math.max(attempts, 0),
            rescheduleSuccess: allocation.rescheduleSuccess,
            previousAllocation: allocation.id,
            shallow: allocation.shallow,
            clientStatus: 'failed',
            rescheduleTracker,
            followupEvalId: server.create('evaluation', {
              waitUntil: rescheduleTime
            }).id
          });
        } else {
          nextAllocation = server.create('allocation', {
            previousAllocation: allocation.id,
            clientStatus: allocation.rescheduleSuccess ? 'running' : 'failed',
            shallow: allocation.shallow,
            rescheduleTracker
          });
        }

        allocation.update({
          nextAllocation: nextAllocation.id,
          clientStatus: 'failed'
        });
      }

    }),
    preempted: (0, _emberCliMirage.trait)({
      afterCreate(allocation, server) {
        const preempter = server.create('allocation', {
          preemptedAllocations: [allocation.id]
        });
        allocation.update({
          preemptedByAllocation: preempter.id
        });
      }

    }),
    preempter: (0, _emberCliMirage.trait)({
      afterCreate(allocation, server) {
        const preempted = server.create('allocation', {
          preemptedByAllocation: allocation.id
        });
        allocation.update({
          preemptedAllocations: [preempted.id]
        });
      }

    }),

    afterCreate(allocation, server) {
      _ember.default.assert('[Mirage] No jobs! make sure jobs are created before allocations', server.db.jobs.length);

      _ember.default.assert('[Mirage] No nodes! make sure nodes are created before allocations', server.db.nodes.length);

      const job = allocation.jobId ? server.db.jobs.find(allocation.jobId) : (0, _utils.pickOne)(server.db.jobs);
      const namespace = allocation.namespace || job.namespace;
      const node = allocation.nodeId ? server.db.nodes.find(allocation.nodeId) : (0, _utils.pickOne)(server.db.nodes);
      const taskGroup = allocation.taskGroup ? server.db.taskGroups.findBy({
        name: allocation.taskGroup
      }) : (0, _utils.pickOne)(server.db.taskGroups.where({
        jobId: job.id
      }));
      allocation.update({
        namespace,
        jobId: job.id,
        nodeId: node.id,
        taskStateIds: [],
        taskResourceIds: [],
        taskGroup: taskGroup.name,
        name: allocation.name || `${taskGroup.name}.[${_faker.default.random.number(10)}]`
      });

      if (!allocation.shallow) {
        const states = taskGroup.taskIds.map(id => server.create('task-state', {
          allocation,
          name: server.db.tasks.find(id).name
        }));
        const resources = taskGroup.taskIds.map(id => {
          const task = server.db.tasks.find(id);
          return server.create('task-resource', {
            allocation,
            name: task.name,
            resources: task.originalResources
          });
        });
        allocation.update({
          taskStateIds: allocation.clientStatus === 'pending' ? [] : states.mapBy('id'),
          taskResourceIds: resources.mapBy('id')
        }); // Each allocation has a corresponding allocation stats running on some client.
        // Create that record, even though it's not a relationship.

        server.create('client-allocation-stat', {
          id: allocation.id,
          _taskNames: states.mapBy('name')
        });
      }
    }

  });

  _exports.default = _default;
});
;define("nomad-ui/mirage/factories/auth-method", ["exports", "ember-cli-mirage", "nomad-ui/mirage/faker", "nomad-ui/mirage/utils"], function (_exports, _emberCliMirage, _faker, _utils) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember-cli-mirage",0,"nomad-ui/mirage/faker",0,"nomad-ui/mirage/utils"eaimeta@70e063a35619d71f

  var _default = _emberCliMirage.Factory.extend({
    name: () => (0, _utils.pickOne)(['vault', 'auth0', 'github', 'cognito', 'okta']),
    type: () => (0, _utils.pickOne)(['kubernetes', 'jwt', 'oidc', 'ldap', 'radius']),
    tokenLocality: () => (0, _utils.pickOne)(['local', 'global']),
    maxTokenTTL: () => _faker.default.random.number({
      min: 1,
      max: 1000
    }) + 'h',
    default: () => _faker.default.random.boolean(),
    createTime: () => _faker.default.date.past(),
    createIndex: () => _faker.default.random.number(),
    modifyTime: () => _faker.default.date.past(),
    modifyIndex: () => _faker.default.random.number()
  });

  _exports.default = _default;
});
;define("nomad-ui/mirage/factories/client-allocation-stat", ["exports", "ember-cli-mirage", "nomad-ui/mirage/data/generate-resources"], function (_exports, _emberCliMirage, _generateResources) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember-cli-mirage",0,"nomad-ui/mirage/data/generate-resources"eaimeta@70e063a35619d71f

  var _default = _emberCliMirage.Factory.extend({
    resourceUsage: _generateResources.default,
    _taskNames: () => [],
    // Set by allocation
    timestamp: () => Date.now() * 1000000,

    tasks() {
      var hash = {};

      this._taskNames.forEach(task => {
        hash[task] = {
          Pids: null,
          ResourceUsage: (0, _generateResources.default)(),
          Timestamp: Date.now() * 1000000
        };
      });

      return hash;
    }

  });

  _exports.default = _default;
});
;define("nomad-ui/mirage/factories/client-stat", ["exports", "ember-cli-mirage", "nomad-ui/mirage/faker"], function (_exports, _emberCliMirage, _faker) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember-cli-mirage",0,"nomad-ui/mirage/faker"eaimeta@70e063a35619d71f

  var _default = _emberCliMirage.Factory.extend({
    allDirStats: () => ({
      Available: 0,
      Device: '',
      InodesUsedPercent: 0.1,
      Mountpoint: '',
      Size: 200000000000,
      Used: 100000000000,
      UsedPercent: 50.0
    }),
    CPU: () => [Array(_faker.default.helpers.randomize(1, 2, 4, 6, 8, 12, 16, 24, 32)).fill(0).map((cpu, index) => ({
      CPU: `cpu${index}`,
      Idle: 20,
      System: 40,
      Total: 80,
      User: 40
    }))],
    CPUTicksConsumed: () => _faker.default.random.number({
      min: 100,
      max: 1000
    }),
    diskStats: () => [Array(_faker.default.random.number({
      min: 1,
      max: 5
    })).fill(0).map((disk, index) => ({
      Available: 100000000000,
      Device: `/dev/disk${index}`,
      InodesUsedPercent: 0.10000000001,
      Mountpoint: '/',
      Size: 2000000000000,
      Used: 1000000000000,
      UsedPercent: 50.0
    }))],
    memory: () => ({
      Available: 60000000000,
      Free: 25000000000,
      Total: 95000000000,
      Used: 10000000000
    }),
    timestamp: Date.now() * 1000000,
    uptime: 193838
  });

  _exports.default = _default;
});
;define("nomad-ui/mirage/factories/csi-plugin", ["exports", "ember-cli-mirage", "nomad-ui/mirage/faker", "nomad-ui/mirage/common"], function (_exports, _emberCliMirage, _faker, _common) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember-cli-mirage",0,"nomad-ui/mirage/faker",0,"nomad-ui/mirage/common"eaimeta@70e063a35619d71f

  var _default = _emberCliMirage.Factory.extend({
    id: () => _faker.default.random.uuid(),
    // Topologies is currently unused by the UI. This should
    // eventually become dynamic.
    topologies: () => [{
      foo: 'bar'
    }],
    provider: _faker.default.helpers.randomize(_common.STORAGE_PROVIDERS),
    version: '1.0.1',
    controllerRequired: _faker.default.random.boolean,

    controllersHealthy() {
      if (!this.controllerRequired) return 0;
      return _faker.default.random.number(3);
    },

    controllersExpected() {
      // This property must be read before the conditional
      // or Mirage will incorrectly sort dependent properties.
      const healthy = this.controllersHealthy;
      if (!this.controllerRequired) return 0;
      return healthy + _faker.default.random.number({
        min: 1,
        max: 2
      });
    },

    nodesHealthy: () => _faker.default.random.number(3),

    nodesExpected() {
      return this.nodesHealthy + _faker.default.random.number({
        min: 1,
        max: 2
      });
    },

    // Internal property to determine whether or not this plugin
    // Should create one or two Jobs to represent Node and
    // Controller plugins.
    isMonolith() {
      if (!this.controllerRequired) return false;
      return _faker.default.random.boolean;
    },

    // When false, the plugin will not make its own volumes
    createVolumes: true,
    // When true, doesn't create any resources, state, or events for associated allocations
    shallow: false,

    afterCreate(plugin, server) {
      let storageNodes;
      let storageControllers;

      if (plugin.isMonolith) {
        const pluginJob = server.create('job', {
          type: 'service',
          createAllocations: false
        });
        const count = plugin.nodesExpected;
        storageNodes = server.createList('storage-node', count, {
          job: pluginJob,
          shallow: plugin.shallow
        });
        storageControllers = server.createList('storage-controller', count, {
          job: pluginJob,
          shallow: plugin.shallow
        });
      } else {
        const controllerJob = plugin.controllerRequired && server.create('job', {
          type: 'service',
          createAllocations: false,
          shallow: plugin.shallow
        });
        const nodeJob = server.create('job', {
          type: 'service',
          createAllocations: false,
          shallow: plugin.shallow
        });
        storageNodes = server.createList('storage-node', plugin.nodesExpected, {
          job: nodeJob,
          shallow: plugin.shallow
        });
        storageControllers = plugin.controllerRequired && server.createList('storage-controller', plugin.controllersExpected, {
          job: controllerJob,
          shallow: plugin.shallow
        });
      }

      plugin.update({
        controllers: storageControllers,
        nodes: storageNodes
      });

      if (plugin.createVolumes) {
        server.createList('csi-volume', _faker.default.random.number({
          min: 1,
          max: 5
        }), {
          plugin,
          provider: plugin.provider
        });
      }
    }

  });

  _exports.default = _default;
});
;define("nomad-ui/mirage/factories/csi-volume", ["exports", "ember-cli-mirage", "nomad-ui/mirage/faker", "nomad-ui/mirage/utils", "nomad-ui/mirage/common", "@ember/string"], function (_exports, _emberCliMirage, _faker, _utils, _common, _string) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember-cli-mirage",0,"nomad-ui/mirage/faker",0,"nomad-ui/mirage/utils",0,"nomad-ui/mirage/common",0,"@ember/string"eaimeta@70e063a35619d71f

  const ACCESS_MODES = ['multi-node-single-writer'];
  const ATTACHMENT_MODES = ['file-system'];

  var _default = _emberCliMirage.Factory.extend({
    id: i => `${(0, _string.dasherize)(_faker.default.hacker.noun())}-${i}`.toLowerCase(),

    name() {
      return this.id;
    },

    externalId: () => `vol-${_faker.default.random.uuid().split('-')[0]}`,
    // Topologies is currently unused by the UI. This should
    // eventually become dynamic.
    topologies: () => [{
      foo: 'bar'
    }],
    accessMode: _faker.default.helpers.randomize(ACCESS_MODES),
    attachmentMode: _faker.default.helpers.randomize(ATTACHMENT_MODES),
    schedulable: _faker.default.random.boolean,
    provider: _faker.default.helpers.randomize(_common.STORAGE_PROVIDERS),
    version: '1.0.1',
    controllerRequired: _faker.default.random.boolean,
    controllersHealthy: () => _faker.default.random.number(10),

    controllersExpected() {
      return this.controllersHealthy + _faker.default.random.number(10);
    },

    nodesHealthy: () => _faker.default.random.number(10),

    nodesExpected() {
      return this.nodesHealthy + _faker.default.random.number(10);
    },

    afterCreate(volume, server) {
      if (!volume.namespaceId) {
        const namespace = server.db.namespaces.length ? (0, _utils.pickOne)(server.db.namespaces).id : null;
        volume.update({
          namespace,
          namespaceId: namespace
        });
      } else {
        volume.update({
          namespace: volume.namespaceId
        });
      }

      if (!volume.plugin) {
        const plugin = server.db.csiPlugins.length ? (0, _utils.pickOne)(server.db.csiPlugins) : null;
        volume.update({
          PluginId: plugin && plugin.id
        });
      } else {
        volume.update({
          PluginId: volume.plugin.id
        });
      }
    }

  });

  _exports.default = _default;
});
;define("nomad-ui/mirage/factories/deployment-task-group-summary", ["exports", "ember-cli-mirage", "nomad-ui/mirage/faker"], function (_exports, _emberCliMirage, _faker) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember-cli-mirage",0,"nomad-ui/mirage/faker"eaimeta@70e063a35619d71f

  const REF_TIME = new Date();

  var _default = _emberCliMirage.Factory.extend({
    name: '',
    autoRevert: () => _faker.default.random.boolean(),
    promoted: () => _faker.default.random.boolean(),
    requiresPromotion: false,
    requireProgressBy: () => _faker.default.date.past(0.5 / 365, REF_TIME),
    desiredTotal: () => _faker.default.random.number({
      min: 1,
      max: 10
    }),

    desiredCanaries() {
      return _faker.default.random.number(Math.floor(this.desiredTotal / 2));
    },

    // PlacedCanaries is an array of allocation IDs. Since the IDs aren't currently
    // used for associating allocations, any random value will do for now.
    placedCanaries() {
      return Array(_faker.default.random.number(this.desiredCanaries)).fill(null).map(() => _faker.default.random.uuid());
    },

    placedAllocs() {
      return _faker.default.random.number(this.desiredTotal);
    },

    healthyAllocs() {
      return _faker.default.random.number(this.placedAllocs);
    },

    unhealthyAllocs() {
      return this.placedAllocs - this.healthyAllocs;
    }

  });

  _exports.default = _default;
});
;define("nomad-ui/mirage/factories/deployment", ["exports", "ember-cli-mirage", "nomad-ui/mirage/faker", "nomad-ui/mirage/utils"], function (_exports, _emberCliMirage, _faker, _utils) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember-cli-mirage",0,"nomad-ui/mirage/faker",0,"nomad-ui/mirage/utils"eaimeta@70e063a35619d71f

  const UUIDS = (0, _utils.provide)(100, _faker.default.random.uuid.bind(_faker.default.random));
  const DEPLOYMENT_STATUSES = ['running', 'successful', 'paused', 'failed', 'cancelled'];

  var _default = _emberCliMirage.Factory.extend({
    id: i => i / 100 >= 1 ? `${UUIDS[i]}-${i}` : UUIDS[i],
    jobId: null,
    versionNumber: null,
    groupDesiredTotal: null,
    status: () => _faker.default.helpers.randomize(DEPLOYMENT_STATUSES),
    statusDescription: () => _faker.default.lorem.sentence(),
    notActive: (0, _emberCliMirage.trait)({
      status: _faker.default.helpers.randomize(DEPLOYMENT_STATUSES.without('running'))
    }),
    active: (0, _emberCliMirage.trait)({
      status: 'running'
    }),

    afterCreate(deployment, server) {
      const job = server.db.jobs.find(deployment.jobId);
      const groups = job.taskGroupIds.map(id => {
        let summary = server.create('deployment-task-group-summary', {
          deployment,
          name: server.db.taskGroups.find(id).name,
          desiredCanaries: 1,
          promoted: false
        });

        if (deployment.groupDesiredTotal) {
          summary.update({
            desiredTotal: deployment.groupDesiredTotal
          });
        }

        return summary;
      });
      deployment.update({
        deploymentTaskGroupSummaryIds: groups.mapBy('id')
      });
    }

  });

  _exports.default = _default;
});
;define("nomad-ui/mirage/factories/evaluation", ["exports", "ember", "ember-cli-mirage", "nomad-ui/mirage/faker", "nomad-ui/mirage/utils", "nomad-ui/mirage/common"], function (_exports, _ember, _emberCliMirage, _faker, _utils, _common) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.generateTaskGroupFailures = generateTaskGroupFailures;
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember",0,"ember-cli-mirage",0,"nomad-ui/mirage/faker",0,"nomad-ui/mirage/utils",0,"nomad-ui/mirage/common"eaimeta@70e063a35619d71f

  const EVAL_TYPES = ['system', 'service', 'batch'];
  const EVAL_STATUSES = ['pending', 'complete', 'failed', 'canceled'];
  const EVAL_TRIGGERED_BY = ['job-register', 'job-deregister', 'periodic-job', 'node-update', 'scheduled', 'rolling-update', 'deployment-watcher', 'failed-follow-up', 'max-plan-attempts'];
  const REF_TIME = new Date();

  const generateCountMap = (keysCount, list) => () => {
    const sample = Array(keysCount).fill(null).map(() => (0, _utils.pickOne)(list)).uniq();
    return sample.reduce((hash, key) => {
      hash[key] = _faker.default.random.number({
        min: 1,
        max: 5
      });
      return hash;
    }, {});
  };

  const generateNodesAvailable = generateCountMap(5, _common.DATACENTERS);
  const generateClassFiltered = generateCountMap(3, (0, _utils.provide)(10, _faker.default.hacker.abbreviation));
  const generateClassExhausted = generateClassFiltered;
  const generateDimensionExhausted = generateCountMap(1, ['cpu', 'mem', 'disk', 'iops']);
  const generateQuotaExhausted = generateDimensionExhausted;
  const generateScores = generateCountMap(1, ['binpack', 'job-anti-affinity']);
  const generateConstraintFiltered = generateCountMap(2, ['prop = val', 'driver = docker', 'arch = x64']);

  var _default = _emberCliMirage.Factory.extend({
    id: () => _faker.default.random.uuid(),
    priority: () => _faker.default.random.number(100),
    type: () => _faker.default.helpers.randomize(EVAL_TYPES),
    triggeredBy: () => _faker.default.helpers.randomize(EVAL_TRIGGERED_BY),
    status: () => _faker.default.helpers.randomize(EVAL_STATUSES),
    statusDescription: () => _faker.default.lorem.sentence(),
    failedTGAllocs: null,
    modifyIndex: () => _faker.default.random.number({
      min: 10,
      max: 2000
    }),
    modifyTime: () => _faker.default.date.past(2 / 365, REF_TIME) * 1000000,
    createIndex: () => _faker.default.random.number({
      min: 10,
      max: 2000
    }),

    createTime() {
      return _faker.default.date.past(2 / 365, new Date(this.modifyTime / 1000000)) * 1000000;
    },

    waitUntil: null,
    withPlacementFailures: (0, _emberCliMirage.trait)({
      status: 'blocked',

      afterCreate(evaluation, server) {
        assignJob(evaluation, server);
        const taskGroups = server.db.taskGroups.where({
          jobId: evaluation.jobId
        });
        const taskGroupNames = taskGroups.mapBy('name');

        const failedTaskGroupsCount = _faker.default.random.number({
          min: 1,
          max: taskGroupNames.length
        });

        const failedTaskGroupNames = [];

        for (let i = 0; i < failedTaskGroupsCount; i++) {
          failedTaskGroupNames.push(...taskGroupNames.splice(_faker.default.random.number(taskGroupNames.length - 1), 1));
        }

        const placementFailures = failedTaskGroupNames.reduce((hash, name) => {
          hash[name] = generateTaskGroupFailures();
          return hash;
        }, {});
        evaluation.update({
          failedTGAllocs: placementFailures
        });
      }

    }),

    afterCreate(evaluation, server) {
      if (!evaluation.nodeId) {
        assignJob(evaluation, server);
      }
    }

  });

  _exports.default = _default;

  function assignJob(evaluation, server) {
    _ember.default.assert('[Mirage] No jobs! make sure jobs are created before evaluations', server.db.jobs.length);

    const job = evaluation.jobId ? server.db.jobs.find(evaluation.jobId) : (0, _utils.pickOne)(server.db.jobs);
    evaluation.update({
      jobId: job.id
    });
  }

  function generateTaskGroupFailures() {
    return {
      CoalescedFailures: _faker.default.random.number({
        min: 1,
        max: 20
      }),
      NodesEvaluated: _faker.default.random.number({
        min: 1,
        max: 100
      }),
      NodesExhausted: _faker.default.random.number({
        min: 1,
        max: 100
      }),
      NodesAvailable: _faker.default.random.number(10) >= 7 ? generateNodesAvailable() : null,
      ClassFiltered: _faker.default.random.number(10) >= 7 ? generateClassFiltered() : null,
      ConstraintFiltered: _faker.default.random.number(10) >= 7 ? generateConstraintFiltered() : null,
      ClassExhausted: _faker.default.random.number(10) >= 7 ? generateClassExhausted() : null,
      DimensionExhausted: _faker.default.random.number(10) >= 7 ? generateDimensionExhausted() : null,
      QuotaExhausted: _faker.default.random.number(10) >= 7 ? generateQuotaExhausted() : null,
      Scores: _faker.default.random.number(10) >= 7 ? generateScores() : null
    };
  }
});
;define("nomad-ui/mirage/factories/job-scale", ["exports", "ember-cli-mirage", "nomad-ui/mirage/faker"], function (_exports, _emberCliMirage, _faker) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember-cli-mirage",0,"nomad-ui/mirage/faker"eaimeta@70e063a35619d71f

  var _default = _emberCliMirage.Factory.extend({
    groupNames: [],
    jobId: '',

    JobID() {
      return this.jobId;
    },

    namespace: null,
    shallow: false,

    afterCreate(jobScale, server) {
      const groups = jobScale.groupNames.map(group => server.create('task-group-scale', {
        id: group,
        shallow: jobScale.shallow
      }));
      jobScale.update({
        taskGroupScaleIds: groups.mapBy('id')
      });
    }

  });

  _exports.default = _default;
});
;define("nomad-ui/mirage/factories/job-summary", ["exports", "ember-cli-mirage", "nomad-ui/mirage/faker"], function (_exports, _emberCliMirage, _faker) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember-cli-mirage",0,"nomad-ui/mirage/faker"eaimeta@70e063a35619d71f

  var _default = _emberCliMirage.Factory.extend({
    // Hidden property used to compute the Summary hash
    groupNames: [],
    namespace: null,
    withSummary: (0, _emberCliMirage.trait)({
      Summary: function () {
        return this.groupNames.reduce((summary, group) => {
          summary[group] = {
            Queued: _faker.default.random.number(10),
            Complete: _faker.default.random.number(10),
            Failed: _faker.default.random.number(10),
            Running: _faker.default.random.number(10),
            Starting: _faker.default.random.number(10),
            Lost: _faker.default.random.number(10),
            Unknown: _faker.default.random.number(10)
          };
          return summary;
        }, {});
      },

      afterCreate(jobSummary, server) {
        // Update the summary alloc types to match server allocations with same job ID
        const jobAllocs = server.db.allocations.where({
          jobId: jobSummary.jobId
        });
        let summary = jobSummary.groupNames.reduce((summary, group) => {
          summary[group] = {
            Queued: jobAllocs.filterBy('taskGroup', group).filterBy('clientStatus', 'pending').length,
            Complete: jobAllocs.filterBy('taskGroup', group).filterBy('clientStatus', 'complete').length,
            Failed: jobAllocs.filterBy('taskGroup', group).filterBy('clientStatus', 'failed').length,
            Running: jobAllocs.filterBy('taskGroup', group).filterBy('clientStatus', 'running').length,
            Starting: jobAllocs.filterBy('taskGroup', group).filterBy('clientStatus', 'starting').length,
            Lost: jobAllocs.filterBy('taskGroup', group).filterBy('clientStatus', 'lost').length,
            Unknown: jobAllocs.filterBy('taskGroup', group).filterBy('clientStatus', 'unknown').length
          };
          return summary;
        }, {});
        jobSummary.update({
          summary
        });
      }

    }),
    withChildren: (0, _emberCliMirage.trait)({
      Children: () => ({
        Pending: _faker.default.random.number(10),
        Running: _faker.default.random.number(10),
        Dead: _faker.default.random.number(10)
      })
    })
  });

  _exports.default = _default;
});
;define("nomad-ui/mirage/factories/job-version", ["exports", "ember-cli-mirage", "nomad-ui/mirage/faker"], function (_exports, _emberCliMirage, _faker) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.generateDiff = generateDiff;
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember-cli-mirage",0,"nomad-ui/mirage/faker"eaimeta@70e063a35619d71f

  const REF_TIME = new Date();

  var _default = _emberCliMirage.Factory.extend({
    stable: _faker.default.random.boolean,
    submitTime: () => _faker.default.date.past(2 / 365, REF_TIME) * 1000000,

    diff() {
      return generateDiff(this.jobId);
    },

    jobId: null,
    version: 0,

    // ID is used for record tracking within Mirage,
    // but Nomad uses the JobID as the version ID.
    tempVersionId() {
      return this.job.id;
    },

    // Directive to restrict any related deployments from having a 'running' status
    noActiveDeployment: false,
    // Directive to restrict any related deployments from having a status other than 'running'
    activeDeployment: false,

    afterCreate(version, server) {
      const args = ['deployment', version.noActiveDeployment && 'notActive', version.activeDeployment && 'active', {
        jobId: version.jobId,
        namespace: version.job.namespace,
        versionNumber: version.version
      }].compact();
      server.create(...args);
    }

  });

  _exports.default = _default;

  function generateDiff(id) {
    return {
      Fields: null,
      ID: id,
      Objects: null,
      TaskGroups: [{
        Fields: [{
          Annotations: null,
          Name: 'Count',
          New: '2',
          Old: '4',
          Type: 'Edited'
        }],
        Name: 'cache',
        Objects: [{
          Fields: [{
            Annotations: null,
            Name: 'Attempts',
            New: '15',
            Old: '10',
            Type: 'Edited'
          }, {
            Annotations: null,
            Name: 'Delay',
            New: '25000000000',
            Old: '25000000000',
            Type: 'None'
          }, {
            Annotations: null,
            Name: 'Interval',
            New: '900000000000',
            Old: '900000000000',
            Type: 'None'
          }, {
            Annotations: null,
            Name: 'Mode',
            New: 'delay',
            Old: 'delay',
            Type: 'None'
          }],
          Name: 'RestartPolicy',
          Objects: null,
          Type: 'Edited'
        }],
        Tasks: [{
          Annotations: null,
          Fields: null,
          Name: 'redis',
          Objects: [{
            Fields: [{
              Annotations: null,
              Name: 'CPU',
              New: '500',
              Old: '500',
              Type: 'None'
            }, {
              Annotations: null,
              Name: 'DiskMB',
              New: '0',
              Old: '0',
              Type: 'None'
            }, {
              Annotations: null,
              Name: 'IOPS',
              New: '0',
              Old: '0',
              Type: 'None'
            }, {
              Annotations: null,
              Name: 'MemoryMB',
              New: '512',
              Old: '256',
              Type: 'Edited'
            }],
            Name: 'Resources',
            Objects: null,
            Type: 'Edited'
          }, {
            Fields: [{
              Annotations: null,
              Name: 'MaxFileSizeMB',
              New: '15',
              Old: '10',
              Type: 'Edited'
            }, {
              Annotations: null,
              Name: 'MaxFiles',
              New: '10',
              Old: '10',
              Type: 'None'
            }],
            Name: 'LogConfig',
            Objects: null,
            Type: 'Edited'
          }, {
            Fields: [{
              Annotations: null,
              Name: 'AddressMode',
              New: 'auto',
              Old: 'auto',
              Type: 'None'
            }, {
              Annotations: null,
              Name: 'Name',
              New: 'redis-cache',
              Old: 'redis-cache',
              Type: 'None'
            }, {
              Annotations: null,
              Name: 'PortLabel',
              New: 'db',
              Old: 'db',
              Type: 'None'
            }],
            Name: 'Service',
            Objects: [{
              Fields: [{
                Annotations: null,
                Name: 'Command',
                New: '',
                Old: '',
                Type: 'None'
              }, {
                Annotations: null,
                Name: 'InitialStatus',
                New: '',
                Old: '',
                Type: 'None'
              }, {
                Annotations: null,
                Name: 'Interval',
                New: '10000000000',
                Old: '10000000000',
                Type: 'None'
              }, {
                Annotations: null,
                Name: 'Method',
                New: '',
                Old: '',
                Type: 'None'
              }, {
                Annotations: null,
                Name: 'Name',
                New: 'alive',
                Old: 'alive',
                Type: 'None'
              }, {
                Annotations: null,
                Name: 'Path',
                New: '',
                Old: '',
                Type: 'None'
              }, {
                Annotations: null,
                Name: 'PortLabel',
                New: '',
                Old: '',
                Type: 'None'
              }, {
                Annotations: null,
                Name: 'Protocol',
                New: '',
                Old: '',
                Type: 'None'
              }, {
                Annotations: null,
                Name: 'TLSSkipVerify',
                New: 'false',
                Old: 'false',
                Type: 'None'
              }, {
                Annotations: null,
                Name: 'Timeout',
                New: '3000000000',
                Old: '2000000000',
                Type: 'Edited'
              }, {
                Annotations: null,
                Name: 'Type',
                New: 'tcp',
                Old: 'tcp',
                Type: 'None'
              }],
              Name: 'Check',
              Objects: null,
              Type: 'Edited'
            }],
            Type: 'Edited'
          }],
          Type: 'Edited'
        }],
        Type: 'Edited',
        Updates: null
      }],
      Type: 'Edited'
    };
  }
});
;define("nomad-ui/mirage/factories/job", ["exports", "@ember/polyfills", "ember-cli-mirage", "nomad-ui/mirage/faker", "nomad-ui/mirage/utils", "nomad-ui/mirage/common", "@ember/string"], function (_exports, _polyfills, _emberCliMirage, _faker, _utils, _common, _string) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/polyfills",0,"ember-cli-mirage",0,"nomad-ui/mirage/faker",0,"nomad-ui/mirage/utils",0,"nomad-ui/mirage/common",0,"@ember/string"eaimeta@70e063a35619d71f

  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }

  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  const REF_TIME = new Date();
  const JOB_PREFIXES = (0, _utils.provide)(5, _faker.default.hacker.abbreviation);
  const JOB_TYPES = ['service', 'batch', 'system', 'sysbatch'];
  const JOB_STATUSES = ['pending', 'running', 'dead'];

  var _default = _emberCliMirage.Factory.extend({
    id(i) {
      if (this.parameterized && this.parentId) {
        const shortUUID = _faker.default.random.uuid().split('-')[0];

        const dispatchId = `dispatch-${this.submitTime / 1000}-${shortUUID}`;
        return `${this.parentId}/${dispatchId}`;
      }

      return `${_faker.default.helpers.randomize(JOB_PREFIXES)}-${(0, _string.dasherize)(_faker.default.hacker.noun())}-${i}`.toLowerCase();
    },

    name() {
      return this.id;
    },

    version: 1,
    submitTime: () => _faker.default.date.past(2 / 365, REF_TIME) * 1000000,
    // When provided, the resourceSpec will inform how many task groups to create
    // and how much of each resource that task group reserves.
    //
    // One task group, 256 MiB memory and 500 MHz cpu
    // resourceSpec: ['M: 256, C: 500']
    //
    // Two task groups
    // resourceSpec: ['M: 256, C: 500', 'M: 1024, C: 1200']
    resourceSpec: null,

    groupsCount() {
      return this.resourceSpec ? this.resourceSpec.length : _faker.default.random.number({
        min: 1,
        max: 2
      });
    },

    region: () => 'global',
    type: () => _faker.default.helpers.randomize(JOB_TYPES),
    priority: () => _faker.default.random.number(100),
    allAtOnce: _faker.default.random.boolean,
    status: () => _faker.default.helpers.randomize(JOB_STATUSES),
    datacenters: () => _faker.default.helpers.shuffle(_common.DATACENTERS).slice(0, _faker.default.random.number({
      min: 1,
      max: 4
    })),
    childrenCount: () => _faker.default.random.number({
      min: 1,
      max: 2
    }),
    meta: null,
    periodic: (0, _emberCliMirage.trait)({
      type: 'batch',
      periodic: true,
      // periodic details object
      // serializer update for bool vs details object
      periodicDetails: () => ({
        Enabled: true,
        ProhibitOverlap: true,
        Spec: '*/5 * * * * *',
        SpecType: 'cron',
        TimeZone: 'UTC'
      })
    }),
    periodicSysbatch: (0, _emberCliMirage.trait)({
      type: 'sysbatch',
      periodic: true,
      // periodic details object
      // serializer update for bool vs details object
      periodicDetails: () => ({
        Enabled: true,
        ProhibitOverlap: true,
        Spec: '*/5 * * * * *',
        SpecType: 'cron',
        TimeZone: 'UTC'
      })
    }),
    parameterized: (0, _emberCliMirage.trait)({
      type: 'batch',
      parameterized: true,
      // parameterized job object
      // serializer update for bool vs details object
      parameterizedJob: () => ({
        MetaOptional: generateMetaFields(_faker.default.random.number(10), 'optional'),
        MetaRequired: generateMetaFields(_faker.default.random.number(10), 'required'),
        Payload: _faker.default.random.boolean() ? 'required' : null
      })
    }),
    parameterizedSysbatch: (0, _emberCliMirage.trait)({
      type: 'sysbatch',
      parameterized: true,
      // parameterized job object
      // serializer update for bool vs details object
      parameterizedJob: () => ({
        MetaOptional: generateMetaFields(_faker.default.random.number(10), 'optional'),
        MetaRequired: generateMetaFields(_faker.default.random.number(10), 'required'),
        Payload: _faker.default.random.boolean() ? 'required' : null
      })
    }),
    periodicChild: (0, _emberCliMirage.trait)({
      // Periodic children need a parent job,
      // It is the Periodic job's responsibility to create
      // periodicChild jobs and provide a parent job.
      type: 'batch'
    }),
    periodicSysbatchChild: (0, _emberCliMirage.trait)({
      // Periodic children need a parent job,
      // It is the Periodic job's responsibility to create
      // periodicChild jobs and provide a parent job.
      type: 'sysbatch'
    }),
    parameterizedChild: (0, _emberCliMirage.trait)({
      // Parameterized children need a parent job,
      // It is the Parameterized job's responsibility to create
      // parameterizedChild jobs and provide a parent job.
      type: 'batch',
      parameterized: true,
      dispatched: true,
      payload: window.btoa(_faker.default.lorem.sentence())
    }),
    parameterizedSysbatchChild: (0, _emberCliMirage.trait)({
      // Parameterized children need a parent job,
      // It is the Parameterized job's responsibility to create
      // parameterizedChild jobs and provide a parent job.
      type: 'sysbatch',
      parameterized: true,
      dispatched: true,
      payload: window.btoa(_faker.default.lorem.sentence())
    }),
    pack: (0, _emberCliMirage.trait)({
      meta: () => ({
        'pack.name': _faker.default.hacker.noun(),
        'pack.version': _faker.default.system.semver()
      })
    }),
    createIndex: i => i,
    modifyIndex: () => _faker.default.random.number({
      min: 10,
      max: 2000
    }),
    // Directive used to control sub-resources
    // When false, no allocations are made
    createAllocations: true,
    // When true, deployments for the job will never have a 'running' status
    noActiveDeployment: false,
    // When true, deployments for the job will always have a 'running' status
    activeDeployment: false,
    // When true, the job will have no versions or deployments (and in turn no latest deployment)
    noDeployments: false,
    // When true, an evaluation with a high modify index and placement failures is created
    failedPlacements: false,
    // When true, no evaluations have failed placements
    noFailedPlacements: false,
    // When true, all task groups get the noHostVolumes trait
    noHostVolumes: false,
    // When true, allocations for this job will fail and reschedule, randomly succeeding or not
    withRescheduling: false,
    // When true, task groups will have services
    withGroupServices: false,
    // When true, tasks will have services
    withTaskServices: false,
    // When true, dynamic application sizing recommendations will be made
    createRecommendations: false,
    // When true, only task groups and allocations are made
    shallow: false,

    afterCreate(job, server) {
      Ember.assert('[Mirage] No node pools! make sure node pools are created before jobs', server.db.nodePools.length);

      if (!job.namespaceId) {
        const namespace = server.db.namespaces.length ? (0, _utils.pickOne)(server.db.namespaces).id : null;
        job.update({
          namespace,
          namespaceId: namespace
        });
      } else {
        job.update({
          namespace: job.namespaceId
        });
      }

      if (!job.nodePool) {
        job.update({
          nodePool: (0, _utils.pickOne)(server.db.nodePools).name
        });
      }

      const groupProps = {
        job,
        createAllocations: job.createAllocations,
        withRescheduling: job.withRescheduling,
        withServices: job.withGroupServices,
        withTaskServices: job.withTaskServices,
        createRecommendations: job.createRecommendations,
        shallow: job.shallow,
        allocStatusDistribution: job.allocStatusDistribution
      };

      if (job.groupTaskCount) {
        groupProps.count = job.groupTaskCount;
      }

      let groups;

      if (job.noHostVolumes) {
        groups = (0, _utils.provide)(job.groupsCount, (_, idx) => server.create('task-group', 'noHostVolumes', _objectSpread(_objectSpread({}, groupProps), {}, {
          resourceSpec: job.resourceSpec && job.resourceSpec.length && job.resourceSpec[idx]
        })));
      } else {
        groups = (0, _utils.provide)(job.groupsCount, (_, idx) => server.create('task-group', _objectSpread(_objectSpread({}, groupProps), {}, {
          resourceSpec: job.resourceSpec && job.resourceSpec.length && job.resourceSpec[idx]
        })));
      }

      job.update({
        taskGroupIds: groups.mapBy('id')
      });
      const hasChildren = job.periodic || job.parameterized && !job.parentId;
      const jobSummary = server.create('job-summary', hasChildren ? 'withChildren' : 'withSummary', {
        jobId: job.id,
        groupNames: groups.mapBy('name'),
        namespace: job.namespace
      });
      job.update({
        jobSummaryId: jobSummary.id
      });
      const jobScale = server.create('job-scale', {
        groupNames: groups.mapBy('name'),
        jobId: job.id,
        namespace: job.namespace,
        shallow: job.shallow
      });
      job.update({
        jobScaleId: jobScale.id
      });

      if (!job.noDeployments) {
        Array(_faker.default.random.number({
          min: 1,
          max: 3
        })).fill(null).map((_, index) => {
          return server.create('job-version', {
            job,
            namespace: job.namespace,
            version: index,
            noActiveDeployment: job.noActiveDeployment,
            activeDeployment: job.activeDeployment
          });
        });
      }

      if (!job.shallow) {
        const knownEvaluationProperties = {
          jobId: job.id,
          namespace: job.namespace
        };
        server.createList('evaluation', _faker.default.random.number({
          min: 1,
          max: 5
        }), knownEvaluationProperties);

        if (!job.noFailedPlacements) {
          server.createList('evaluation', _faker.default.random.number(3), 'withPlacementFailures', knownEvaluationProperties);
        }

        if (job.failedPlacements) {
          server.create('evaluation', 'withPlacementFailures', (0, _polyfills.assign)(knownEvaluationProperties, {
            modifyIndex: 4000
          }));
        }
      }

      if (job.periodic) {
        let childType;

        switch (job.type) {
          case 'batch':
            childType = 'periodicChild';
            break;

          case 'sysbatch':
            childType = 'periodicSysbatchChild';
            break;
        } // Create child jobs


        server.createList('job', job.childrenCount, childType, {
          parentId: job.id,
          namespaceId: job.namespaceId,
          namespace: job.namespace,
          datacenters: job.datacenters,
          createAllocations: job.createAllocations,
          shallow: job.shallow,
          noActiveDeployment: job.noActiveDeployment
        });
      }

      if (job.parameterized && !job.parentId) {
        let childType;

        switch (job.type) {
          case 'batch':
            childType = 'parameterizedChild';
            break;

          case 'sysbatch':
            childType = 'parameterizedSysbatchChild';
            break;
        } // Create child jobs


        server.createList('job', job.childrenCount, childType, {
          parentId: job.id,
          namespaceId: job.namespaceId,
          namespace: job.namespace,
          datacenters: job.datacenters,
          createAllocations: job.createAllocations,
          shallow: job.shallow,
          noActiveDeployment: job.noActiveDeployment
        });
      }
    }

  });

  _exports.default = _default;

  function generateMetaFields(num) {
    let prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
    // Use an object to avoid duplicate meta fields.
    // The prefix param helps to avoid duplicate entries across function calls.
    let meta = {};

    for (let i = 0; i < num; i++) {
      const field = `${prefix}-${_faker.default.hacker.noun()}`;
      meta[field] = true;
    }

    return Object.keys(meta);
  }
});
;define("nomad-ui/mirage/factories/namespace", ["exports", "ember-cli-mirage", "nomad-ui/mirage/faker"], function (_exports, _emberCliMirage, _faker) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember-cli-mirage",0,"nomad-ui/mirage/faker"eaimeta@70e063a35619d71f

  var _default = _emberCliMirage.Factory.extend({
    id: i => i === 0 ? 'default' : `namespace-${i}`,

    name() {
      return this.id;
    },

    hash: () => _faker.default.random.uuid(),
    description: ''
  });

  _exports.default = _default;
});
;define("nomad-ui/mirage/factories/node-event", ["exports", "ember-cli-mirage", "nomad-ui/mirage/faker", "nomad-ui/mirage/utils"], function (_exports, _emberCliMirage, _faker, _utils) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember-cli-mirage",0,"nomad-ui/mirage/faker",0,"nomad-ui/mirage/utils"eaimeta@70e063a35619d71f

  const REF_TIME = new Date();
  const STATES = (0, _utils.provide)(10, _faker.default.system.fileExt.bind(_faker.default.system));

  var _default = _emberCliMirage.Factory.extend({
    subsystem: () => _faker.default.helpers.randomize(STATES),
    message: () => _faker.default.lorem.sentence(),
    time: () => _faker.default.date.past(2 / 365, REF_TIME),
    details: null
  });

  _exports.default = _default;
});
;define("nomad-ui/mirage/factories/node-pool", ["exports", "ember-cli-mirage"], function (_exports, _emberCliMirage) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember-cli-mirage"eaimeta@70e063a35619d71f

  var _default = _emberCliMirage.Factory.extend({
    name: i => `node-pool-${i}`,
    description: i => `describe node-pool-${i}`,
    meta: {},
    schedulerConfiguration: {}
  });

  _exports.default = _default;
});
;define("nomad-ui/mirage/factories/node", ["exports", "ember-cli-mirage", "nomad-ui/mirage/faker", "nomad-ui/mirage/utils", "nomad-ui/mirage/common", "moment"], function (_exports, _emberCliMirage, _faker, _utils, _common, _moment) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember-cli-mirage",0,"nomad-ui/mirage/faker",0,"nomad-ui/mirage/utils",0,"nomad-ui/mirage/common",0,"moment"eaimeta@70e063a35619d71f

  const UUIDS = (0, _utils.provide)(100, _faker.default.random.uuid.bind(_faker.default.random));
  const NODE_STATUSES = ['initializing', 'ready', 'down'];
  const NODE_CLASSES = (0, _utils.provide)(7, _faker.default.company.bsBuzz.bind(_faker.default.company));
  const NODE_VERSIONS = ['1.1.0-beta', '1.0.2-alpha+ent', ...(0, _utils.provide)(5, _faker.default.system.semver)];
  const REF_DATE = new Date();

  var _default = _emberCliMirage.Factory.extend({
    id: i => i / 100 >= 1 ? `${UUIDS[i]}-${i}` : UUIDS[i],
    name: i => `nomad@${_common.HOSTS[i % _common.HOSTS.length]}`,
    datacenter: () => _faker.default.helpers.randomize(_common.DATACENTERS),
    nodeClass: () => _faker.default.helpers.randomize(NODE_CLASSES),
    drain: _faker.default.random.boolean,
    status: () => _faker.default.helpers.randomize(NODE_STATUSES),
    tlsEnabled: _faker.default.random.boolean,
    schedulingEligibility: () => _faker.default.random.boolean() ? 'eligible' : 'ineligible',
    createIndex: i => i,
    modifyIndex: () => _faker.default.random.number({
      min: 10,
      max: 2000
    }),
    version: () => _faker.default.helpers.randomize(NODE_VERSIONS),

    httpAddr() {
      return this.name.split('@')[1];
    },

    forceIPv4: (0, _emberCliMirage.trait)({
      name: i => {
        const ipv4Hosts = _common.HOSTS.filter(h => !h.startsWith('['));

        return `nomad@${ipv4Hosts[i % ipv4Hosts.length]}`;
      }
    }),
    draining: (0, _emberCliMirage.trait)({
      drain: true,
      schedulingEligibility: 'ineligible',
      drainStrategy: {
        Deadline: _faker.default.random.number({
          min: 30 * 1000,
          max: 5 * 60 * 60 * 1000
        }) * 1000000,
        ForceDeadline: (0, _moment.default)(REF_DATE).add(_faker.default.random.number({
          min: 1,
          max: 5
        }), 'd'),
        IgnoreSystemJobs: _faker.default.random.boolean()
      }
    }),
    forcedDraining: (0, _emberCliMirage.trait)({
      drain: true,
      schedulingEligibility: 'ineligible',
      drainStrategy: {
        Deadline: -1,
        ForceDeadline: '0001-01-01T00:00:00Z',
        IgnoreSystemJobs: _faker.default.random.boolean()
      }
    }),
    noDeadlineDraining: (0, _emberCliMirage.trait)({
      drain: true,
      schedulingEligibility: 'ineligible',
      drainStrategy: {
        Deadline: 0,
        ForceDeadline: '0001-01-01T00:00:00Z',
        IgnoreSystemJobs: _faker.default.random.boolean()
      }
    }),
    noHostVolumes: (0, _emberCliMirage.trait)({
      hostVolumes: () => ({})
    }),
    reserved: (0, _emberCliMirage.trait)({
      reservedResources: (0, _common.generateResources)({
        CPU: 1000,
        MemoryMB: 2000
      })
    }),
    drainStrategy: null,
    drivers: makeDrivers,
    hostVolumes: makeHostVolumes,
    nodeResources: _common.generateResources,

    attributes() {
      // TODO add variability to these
      return {
        'os.version': '10.12.5',
        'cpu.modelname': 'Intel(R) Core(TM) i7-3615QM CPU @ 2.30GHz',
        'nomad.revision': 'f551dcb83e3ac144c9dbb90583b6e82d234662e9',
        'driver.docker.volumes.enabled': '1',
        'driver.docker': '1',
        'cpu.frequency': '2300',
        'memory.totalbytes': '17179869184',
        'driver.mock_driver': '1',
        'kernel.version': '16.6.0',
        'unique.network.ip-address': '127.0.0.1',
        'nomad.version': '0.5.5dev',
        'unique.hostname': 'bacon-mac',
        'cpu.arch': 'amd64',
        'os.name': 'darwin',
        'kernel.name': 'darwin',
        'unique.storage.volume': '/dev/disk1',
        'driver.docker.version': '17.03.1-ce',
        'cpu.totalcompute': '18400',
        'unique.storage.bytestotal': '249783500800',
        'cpu.numcores': '8',
        'os.signals': 'SIGCONT,SIGSTOP,SIGSYS,SIGINT,SIGIOT,SIGXCPU,SIGSEGV,SIGUSR1,SIGTTIN,SIGURG,SIGUSR2,SIGABRT,SIGALRM,SIGCHLD,SIGFPE,SIGTSTP,SIGIO,SIGKILL,SIGQUIT,SIGXFSZ,SIGBUS,SIGHUP,SIGPIPE,SIGPROF,SIGTRAP,SIGTTOU,SIGILL,SIGTERM',
        'driver.raw_exec': '1',
        'unique.storage.bytesfree': '142954643456'
      };
    },

    withMeta: (0, _emberCliMirage.trait)({
      meta: {
        just: 'some',
        prop: 'erties',
        'over.here': 100
      }
    }),

    afterCreate(node, server) {
      Ember.assert('[Mirage] No node pools! make sure node pools are created before nodes', server.db.nodePools.length); // Each node has a corresponding client stat resource that's queried via node IP.
      // Create that record, even though it's not a relationship.

      server.create('client-stat', {
        id: node.httpAddr
      });
      const events = server.createList('node-event', _faker.default.random.number({
        min: 1,
        max: 10
      }), {
        nodeId: node.id
      });
      const nodePool = node.nodePool ? server.db.nodePools.findBy({
        name: node.nodePool
      }) : (0, _utils.pickOne)(server.db.nodePools, pool => pool.name !== 'all');
      node.update({
        nodePool: nodePool.name,
        eventIds: events.mapBy('id')
      });
      server.create('client-stat', {
        id: node.id
      });
    }

  });

  _exports.default = _default;

  function makeDrivers() {
    const generate = name => {
      const detected = _faker.default.random.number(10) >= 3;
      const healthy = detected && _faker.default.random.number(10) >= 3;
      const attributes = {
        [`driver.${name}.version`]: '1.0.0',
        [`driver.${name}.status`]: 'awesome',
        [`driver.${name}.more.details`]: 'yeah',
        [`driver.${name}.more.again`]: 'we got that'
      };
      return {
        Detected: detected,
        Healthy: healthy,
        HealthDescription: healthy ? 'Driver is healthy' : 'Uh oh',
        UpdateTime: _faker.default.date.past(5 / 365, REF_DATE),
        Attributes: _faker.default.random.number(10) >= 3 && detected ? attributes : null
      };
    };

    return {
      docker: generate('docker'),
      rkt: generate('rkt'),
      qemu: generate('qemu'),
      exec: generate('exec'),
      raw_exec: generate('raw_exec'),
      java: generate('java')
    };
  }

  function makeHostVolumes() {
    const generate = () => ({
      Name: _faker.default.internet.domainWord(),
      Path: `/${_faker.default.internet.userName()}/${_faker.default.internet.domainWord()}/${_faker.default.internet.color()}`,
      ReadOnly: _faker.default.random.boolean()
    });

    const volumes = (0, _utils.provide)(_faker.default.random.number({
      min: 1,
      max: 5
    }), generate);
    return volumes.reduce((hash, volume) => {
      hash[volume.Name] = volume;
      return hash;
    }, {});
  }
});
;define("nomad-ui/mirage/factories/policy", ["exports", "ember-cli-mirage", "nomad-ui/mirage/faker"], function (_exports, _emberCliMirage, _faker) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember-cli-mirage",0,"nomad-ui/mirage/faker"eaimeta@70e063a35619d71f

  var _default = _emberCliMirage.Factory.extend({
    id: () => _faker.default.hacker.verb(),

    name() {
      return this.id;
    },

    description: () => _faker.default.random.number(10) >= 2 ? _faker.default.lorem.sentence() : null,
    rules: `# Allow read only access to the default namespace
namespace "default" {
    policy = "read"
}

node {
    policy = "read"
}`,
    rulesJSON: () => ({
      Node: {
        Policy: 'read'
      }
    })
  });

  _exports.default = _default;
});
;define("nomad-ui/mirage/factories/recommendation", ["exports", "ember-cli-mirage", "nomad-ui/mirage/faker"], function (_exports, _emberCliMirage, _faker) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember-cli-mirage",0,"nomad-ui/mirage/faker"eaimeta@70e063a35619d71f

  const REF_TIME = new Date();

  var _default = _emberCliMirage.Factory.extend({
    submitTime: () => _faker.default.date.past(2 / 365, REF_TIME) * 1000000,

    afterCreate(recommendation) {
      const base = recommendation.resource === 'CPU' ? recommendation.task.resources.CPU : recommendation.task.resources.MemoryMB;

      const recommendDecrease = _faker.default.random.boolean();

      const directionMultiplier = recommendDecrease ? -1 : 1;
      const value = base + Math.floor(base * 0.5) * directionMultiplier;

      const min = _faker.default.random.number({
        min: 5,
        max: value * 0.4
      });

      const max = _faker.default.random.number({
        min: value * 0.6,
        max: value
      });

      const p99 = _faker.default.random.number({
        min: min + (max - min) * 0.8,
        max
      });

      const mean = _faker.default.random.number({
        min,
        max: p99
      });

      const median = _faker.default.random.number({
        min,
        max: p99
      });

      recommendation.update({
        stats: {
          min,
          max,
          p99,
          mean,
          median
        },
        value
      });
    }

  });

  _exports.default = _default;
});
;define("nomad-ui/mirage/factories/region", ["exports", "ember-cli-mirage"], function (_exports, _emberCliMirage) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember-cli-mirage"eaimeta@70e063a35619d71f

  var _default = _emberCliMirage.Factory.extend({
    id: () => {
      throw new Error('The region factory will not generate IDs!');
    }
  });

  _exports.default = _default;
});
;define("nomad-ui/mirage/factories/scale-event", ["exports", "ember-cli-mirage", "nomad-ui/mirage/faker"], function (_exports, _emberCliMirage, _faker) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember-cli-mirage",0,"nomad-ui/mirage/faker"eaimeta@70e063a35619d71f

  const REF_TIME = new Date();

  var _default = _emberCliMirage.Factory.extend({
    time: () => _faker.default.date.past(2 / 365, REF_TIME) * 1000000,
    count: () => _faker.default.random.number(10),
    previousCount: () => _faker.default.random.number(10),
    error: () => _faker.default.random.number(10) > 8,
    message: 'Sample message for a job scale event',
    meta: () => _faker.default.random.number(10) < 8 ? {
      'nomad_autoscaler.count.capped': true,
      'nomad_autoscaler.count.original': 0,
      'nomad_autoscaler.reason_history': ['scaling down because factor is 0.000000']
    } : {},

    afterCreate(scaleEvent) {
      if (scaleEvent.error) {
        scaleEvent.update({
          count: null
        });
      }
    }

  });

  _exports.default = _default;
});
;define("nomad-ui/mirage/factories/service-fragment", ["exports", "ember-cli-mirage", "nomad-ui/mirage/faker", "nomad-ui/mirage/utils", "@ember/string"], function (_exports, _emberCliMirage, _faker, _utils, _string) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember-cli-mirage",0,"nomad-ui/mirage/faker",0,"nomad-ui/mirage/utils",0,"@ember/string",0,"nomad-ui/mirage/utils"eaimeta@70e063a35619d71f

  const ON_UPDATE = ['default', 'ignore', 'ignore_warnings'];

  var _default = _emberCliMirage.Factory.extend({
    name: id => `${(0, _string.dasherize)(_faker.default.hacker.noun())}-${id}-service`,
    portLabel: () => (0, _string.dasherize)(_faker.default.hacker.noun()),
    onUpdate: _faker.default.helpers.randomize(ON_UPDATE),
    provider: () => (0, _utils.pickOne)(['nomad', 'consul']),
    tags: () => {
      if (!_faker.default.random.boolean()) {
        return (0, _utils.provide)(_faker.default.random.number({
          min: 0,
          max: 2
        }), _faker.default.hacker.noun.bind(_faker.default.hacker.noun));
      } else {
        return null;
      }
    },
    Connect: {
      SidecarService: {
        Proxy: {
          Upstreams: [{
            DestinationName: (0, _string.dasherize)(_faker.default.hacker.noun()),
            LocalBindPort: _faker.default.random.number({
              min: 5000,
              max: 60000
            })
          }]
        }
      }
    }
  });

  _exports.default = _default;
});
;define("nomad-ui/mirage/factories/service", ["exports", "ember-cli-mirage", "nomad-ui/mirage/faker", "nomad-ui/mirage/utils", "@ember/string", "nomad-ui/mirage/common"], function (_exports, _emberCliMirage, _faker, _utils, _string, _common) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember-cli-mirage",0,"nomad-ui/mirage/faker",0,"nomad-ui/mirage/utils",0,"@ember/string",0,"nomad-ui/mirage/common",0,"nomad-ui/mirage/utils"eaimeta@70e063a35619d71f

  var _default = _emberCliMirage.Factory.extend({
    id: () => _faker.default.random.uuid(),
    address: () => _faker.default.internet.ip(),
    createIndex: () => _faker.default.random.number(),
    modifyIndex: () => _faker.default.random.number(),
    name: () => _faker.default.random.uuid(),
    serviceName: id => `${(0, _string.dasherize)(_faker.default.hacker.noun())}-${id}-service`,
    datacenter: _faker.default.helpers.randomize(_common.DATACENTERS),
    port: _faker.default.random.number({
      min: 5000,
      max: 60000
    }),
    tags: () => {
      if (!_faker.default.random.boolean()) {
        return (0, _utils.provide)(_faker.default.random.number({
          min: 0,
          max: 2
        }), _faker.default.hacker.noun.bind(_faker.default.hacker.noun));
      } else {
        return null;
      }
    },

    afterCreate(service, server) {
      if (!service.namespace) {
        var _pickOne;

        const namespace = ((_pickOne = (0, _utils.pickOne)(server.db.jobs)) === null || _pickOne === void 0 ? void 0 : _pickOne.namespace) || 'default';
        service.update({
          namespace
        });
      }

      if (!service.node) {
        const node = (0, _utils.pickOne)(server.db.nodes);
        service.update({
          nodeId: node.id
        });
      }

      if (server.db.jobs.findBy({
        id: 'service-haver'
      })) {
        if (!service.jobId) {
          service.update({
            jobId: 'service-haver'
          });
        }

        if (!service.allocId) {
          const servicedAlloc = (server.db.allocations.filter(a => a.jobId === 'service-haver') || [])[0];

          if (servicedAlloc) {
            service.update({
              allocId: servicedAlloc.id
            });
          }
        }
      }
    }

  });

  _exports.default = _default;
});
;define("nomad-ui/mirage/factories/storage-controller", ["exports", "ember-cli-mirage", "nomad-ui/mirage/faker", "nomad-ui/mirage/common"], function (_exports, _emberCliMirage, _faker, _common) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember-cli-mirage",0,"nomad-ui/mirage/faker",0,"nomad-ui/mirage/common"eaimeta@70e063a35619d71f

  const REF_TIME = new Date();

  var _default = _emberCliMirage.Factory.extend({
    provider: _faker.default.helpers.randomize(_common.STORAGE_PROVIDERS),
    providerVersion: '1.0.1',
    healthy: i => [true, false][i % 2],

    healthDescription() {
      this.healthy ? 'healthy' : 'unhealthy';
    },

    updateTime: () => _faker.default.date.past(2 / 365, REF_TIME),
    requiresControllerPlugin: true,
    requiresTopologies: true,
    shallow: false,
    controllerInfo: () => ({
      SupportsReadOnlyAttach: true,
      SupportsAttachDetach: true,
      SupportsListVolumes: true,
      SupportsListVolumesAttachedNodes: false
    }),

    afterCreate(storageController, server) {
      const alloc = server.create('allocation', {
        jobId: storageController.job.id,
        forceRunningClientStatus: true,
        modifyTime: storageController.updateTime * 1000000,
        shallow: storageController.shallow
      });
      storageController.update({
        allocID: alloc.id,
        nodeId: alloc.nodeId
      });
    }

  });

  _exports.default = _default;
});
;define("nomad-ui/mirage/factories/storage-node", ["exports", "ember-cli-mirage", "nomad-ui/mirage/faker", "nomad-ui/mirage/common"], function (_exports, _emberCliMirage, _faker, _common) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember-cli-mirage",0,"nomad-ui/mirage/faker",0,"nomad-ui/mirage/common"eaimeta@70e063a35619d71f

  const REF_TIME = new Date();

  var _default = _emberCliMirage.Factory.extend({
    provider: _faker.default.helpers.randomize(_common.STORAGE_PROVIDERS),
    providerVersion: '1.0.1',
    healthy: i => [true, false][i % 2],

    healthDescription() {
      this.healthy ? 'healthy' : 'unhealthy';
    },

    updateTime: () => _faker.default.date.past(2 / 365, REF_TIME),
    requiresControllerPlugin: true,
    requiresTopologies: true,
    shallow: false,
    nodeInfo: () => ({
      MaxVolumes: 51,
      AccessibleTopology: {
        key: 'value'
      },
      RequiresNodeStageVolume: true
    }),

    afterCreate(storageNode, server) {
      const alloc = server.create('allocation', {
        jobId: storageNode.job.id,
        modifyTime: storageNode.updateTime * 1000000,
        shallow: storageNode.shallow
      });
      storageNode.update({
        allocID: alloc.id,
        nodeId: alloc.nodeId
      });
    }

  });

  _exports.default = _default;
});
;define("nomad-ui/mirage/factories/task-event", ["exports", "ember-cli-mirage", "nomad-ui/mirage/faker", "nomad-ui/mirage/utils"], function (_exports, _emberCliMirage, _faker, _utils) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember-cli-mirage",0,"nomad-ui/mirage/faker",0,"nomad-ui/mirage/utils"eaimeta@70e063a35619d71f

  const REF_TIME = new Date();
  const STATES = (0, _utils.provide)(10, _faker.default.system.fileExt.bind(_faker.default.system));

  var _default = _emberCliMirage.Factory.extend({
    type: () => _faker.default.helpers.randomize(STATES),
    signal: () => '',
    exitCode: () => null,
    time: () => _faker.default.date.past(2 / 365, REF_TIME) * 1000000,
    message: () => _faker.default.lorem.sentence()
  });

  _exports.default = _default;
});
;define("nomad-ui/mirage/factories/task-group-scale", ["exports", "ember-cli-mirage", "nomad-ui/mirage/faker"], function (_exports, _emberCliMirage, _faker) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember-cli-mirage",0,"nomad-ui/mirage/faker"eaimeta@70e063a35619d71f

  var _default = _emberCliMirage.Factory.extend({
    name() {
      return this.id;
    },

    desired: 1,
    placed: 1,
    running: 1,
    healthy: 1,
    unhealthy: 1,
    shallow: false,

    afterCreate(taskGroupScale, server) {
      if (!taskGroupScale.shallow) {
        const events = server.createList('scale-event', _faker.default.random.number({
          min: 1,
          max: 10
        }));
        taskGroupScale.update({
          eventIds: events.mapBy('id')
        });
      }
    }

  });

  _exports.default = _default;
});
;define("nomad-ui/mirage/factories/task-group", ["exports", "ember-cli-mirage", "nomad-ui/mirage/faker", "nomad-ui/mirage/utils", "nomad-ui/mirage/common", "@ember/string"], function (_exports, _emberCliMirage, _faker, _utils, _common, _string) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember-cli-mirage",0,"nomad-ui/mirage/faker",0,"nomad-ui/mirage/utils",0,"nomad-ui/mirage/common",0,"@ember/string"eaimeta@70e063a35619d71f

  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }

  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  const DISK_RESERVATIONS = [200, 500, 1000, 2000, 5000, 10000, 100000];

  var _default = _emberCliMirage.Factory.extend({
    name: id => `${(0, _string.dasherize)(_faker.default.hacker.noun())}-g-${id}`,
    count: () => _faker.default.random.number({
      min: 1,
      max: 2
    }),
    ephemeralDisk: () => ({
      Sticky: _faker.default.random.boolean(),
      SizeMB: _faker.default.helpers.randomize(DISK_RESERVATIONS),
      Migrate: _faker.default.random.boolean()
    }),
    noHostVolumes: (0, _emberCliMirage.trait)({
      volumes: () => ({})
    }),
    withScaling: _faker.default.random.boolean,
    volumes: makeHostVolumes(),
    // Directive used to control whether or not allocations are automatically
    // created.
    createAllocations: true,
    // Directived used to control whether or not the allocation should fail
    // and reschedule, creating reschedule events.
    withRescheduling: false,
    // Directive used to control whether the task group should have services.
    withServices: false,
    // Whether the tasks themselves should have services.
    withTaskServices: false,
    // Directive used to control whether dynamic application sizing recommendations
    // should be created.
    createRecommendations: false,
    // When true, only creates allocations
    shallow: false,
    // When set, passed into tasks to set resource values
    resourceSpec: null,

    afterCreate(group, server) {
      let taskIds = [];
      let volumes = Object.keys(group.volumes);

      if (group.withScaling) {
        group.update({
          scaling: {
            Min: 1,
            Max: 5,
            Policy: _faker.default.random.boolean() && {
              EvaluationInterval: '10s',
              Cooldown: '2m',
              Check: {
                avg_conn: {
                  Source: 'prometheus',
                  Query: 'scalar(avg((haproxy_server_current_sessions{backend="http_back"}) and (haproxy_server_up{backend="http_back"} == 1)))',
                  Strategy: {
                    'target-value': {
                      target: 20
                    }
                  }
                }
              }
            }
          }
        });
      }

      if (!group.shallow) {
        const resources = group.resourceSpec && divide(group.count, parseResourceSpec(group.resourceSpec));
        const tasks = (0, _utils.provide)(group.count, (_, idx) => {
          const mounts = _faker.default.helpers.shuffle(volumes).slice(0, _faker.default.random.number({
            min: 1,
            max: 3
          }));

          const maybeResources = {};

          if (resources) {
            maybeResources.originalResources = (0, _common.generateResources)(resources[idx]);
          }

          return server.create('task', _objectSpread(_objectSpread({
            taskGroupID: group.id
          }, maybeResources), {}, {
            withServices: group.withTaskServices,
            volumeMounts: mounts.map(mount => ({
              Volume: mount,
              Destination: `/${_faker.default.internet.userName()}/${_faker.default.internet.domainWord()}/${_faker.default.internet.color()}`,
              PropagationMode: '',
              ReadOnly: _faker.default.random.boolean()
            })),
            createRecommendations: group.createRecommendations
          }));
        });
        taskIds = tasks.mapBy('id');
      }

      group.update({
        taskIds: taskIds
      });

      if (group.createAllocations) {
        if (group.allocStatusDistribution) {
          const statusProbabilities = group.allocStatusDistribution || {
            running: 0.6,
            failed: 0.05,
            unknown: 0.25,
            lost: 0.1
          };
          const totalAllocations = group.count;
          const allocationsByStatus = {};
          Object.entries(statusProbabilities).forEach(_ref => {
            let [status, prob] = _ref;
            allocationsByStatus[status] = Math.round(totalAllocations * prob);
          });
          let currentStatusIndex = 0;
          const statusKeys = Object.keys(allocationsByStatus);
          Array(totalAllocations).fill(null).forEach((_, i) => {
            let clientStatus;

            while (allocationsByStatus[statusKeys[currentStatusIndex]] === 0) {
              currentStatusIndex++;
            }

            clientStatus = statusKeys[currentStatusIndex];
            allocationsByStatus[clientStatus]--;
            const props = {
              jobId: group.job.id,
              namespace: group.job.namespace,
              taskGroup: group.name,
              name: `${group.name}.[${i}]`,
              rescheduleSuccess: group.withRescheduling ? _faker.default.random.boolean() : null,
              rescheduleAttempts: group.withRescheduling ? _faker.default.random.number({
                min: 1,
                max: 5
              }) : 0,
              clientStatus,
              deploymentStatus: {
                Canary: false,
                Healthy: false
              }
            };

            if (group.withRescheduling) {
              server.create('allocation', 'rescheduled', props);
            } else {
              server.create('allocation', props);
            }
          });
        } else {
          Array(group.count).fill(null).forEach((_, i) => {
            const props = {
              jobId: group.job.id,
              namespace: group.job.namespace,
              taskGroup: group.name,
              name: `${group.name}.[${i}]`,
              rescheduleSuccess: group.withRescheduling ? _faker.default.random.boolean() : null,
              rescheduleAttempts: group.withRescheduling ? _faker.default.random.number({
                min: 1,
                max: 5
              }) : 0
            };

            if (group.withRescheduling) {
              server.create('allocation', 'rescheduled', props);
            } else {
              server.create('allocation', props);
            }
          });
        }
      }

      if (group.withServices) {
        const services = server.createList('service-fragment', 5, {
          taskGroupId: group.id,
          taskGroup: group,
          provider: 'nomad'
        });
        services.push(server.create('service-fragment', {
          taskGroupId: group.id,
          taskGroup: group,
          provider: 'consul'
        }));
        services.forEach(fragment => {
          server.create('service', {
            serviceName: fragment.name,
            id: `${_faker.default.internet.domainWord()}-group-${fragment.name}`
          });
          server.create('service', {
            serviceName: fragment.name,
            id: `${_faker.default.internet.domainWord()}-group-${fragment.name}`
          });
          server.create('service', {
            serviceName: fragment.name,
            id: `${_faker.default.internet.domainWord()}-group-${fragment.name}`
          });
        });
        group.update({
          services
        });
      }
    }

  });

  _exports.default = _default;

  function makeHostVolumes() {
    const generate = () => ({
      Name: _faker.default.internet.domainWord(),
      Type: 'host',
      Source: _faker.default.internet.domainWord(),
      ReadOnly: _faker.default.random.boolean()
    });

    const volumes = (0, _utils.provide)(_faker.default.random.number({
      min: 1,
      max: 5
    }), generate);
    return volumes.reduce((hash, volume) => {
      hash[volume.Name] = volume;
      return hash;
    }, {});
  }

  function parseResourceSpec(spec) {
    const mapping = {
      M: 'MemoryMB',
      C: 'CPU',
      D: 'DiskMB',
      I: 'IOPS'
    };
    const terms = spec.split(',').map(t => {
      const [k, v] = t.trim().split(':').map(kv => kv.trim());
      return [k, +v];
    });
    return terms.reduce((hash, term) => {
      hash[mapping[term[0]]] = term[1];
      return hash;
    }, {});
  } // Split a single resources object into N resource objects where
  // the sum of each property of the new resources objects equals
  // the original resources properties
  // ex: divide(2, { Mem: 400, Cpu: 250 }) -> [{ Mem: 80, Cpu: 50 }, { Mem: 320, Cpu: 200 }]


  function divide(count, resources) {
    const wheel = roulette(1, count);
    const ret = (0, _utils.provide)(count, (_, idx) => {
      return Object.keys(resources).reduce((hash, key) => {
        hash[key] = Math.round(resources[key] * wheel[idx]);
        return hash;
      }, {});
    });
    return ret;
  } // Roulette splits a number into N divisions
  // Variance is a value between 0 and 1 that determines how much each division in
  // size. At 0 each division is even, at 1, it's entirely random but the sum of all
  // divisions is guaranteed to equal the total value.


  function roulette(total, divisions) {
    let variance = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0.8;
    let roulette = new Array(divisions).fill(total / divisions);
    roulette.forEach((v, i) => {
      if (i === roulette.length - 1) return;
      roulette.splice(i, 2, ...rngDistribute(roulette[i], roulette[i + 1], variance));
    });
    return roulette;
  }

  function rngDistribute(a, b) {
    let variance = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0.8;

    const move = a * _faker.default.random.number({
      min: 0,
      max: variance,
      precision: 0.01
    });

    return [a - move, b + move];
  }
});
;define("nomad-ui/mirage/factories/task-resource", ["exports", "ember-cli-mirage", "nomad-ui/mirage/common"], function (_exports, _emberCliMirage, _common) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember-cli-mirage",0,"nomad-ui/mirage/common"eaimeta@70e063a35619d71f

  var _default = _emberCliMirage.Factory.extend({
    name: () => '!!!this should be set by the allocation that owns this task state!!!',
    resources: _common.generateResources
  });

  _exports.default = _default;
});
;define("nomad-ui/mirage/factories/task-state", ["exports", "ember-cli-mirage", "nomad-ui/mirage/faker"], function (_exports, _emberCliMirage, _faker) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember-cli-mirage",0,"nomad-ui/mirage/faker"eaimeta@70e063a35619d71f

  const TASK_STATUSES = ['pending', 'running', 'finished', 'failed'];
  const REF_TIME = new Date();

  var _default = _emberCliMirage.Factory.extend({
    name: () => '!!!this should be set by the allocation that owns this task state!!!',
    state: () => _faker.default.helpers.randomize(TASK_STATUSES),
    kind: null,
    startedAt: () => _faker.default.date.past(2 / 365, REF_TIME),

    finishedAt() {
      if (['pending', 'running'].includes(this.state)) {
        return '0001-01-01T00:00:00Z';
      }

      return new Date(this.startedAt + Math.random(1000 * 60 * 3) + 50);
    },

    afterCreate(state, server) {
      const props = ['task-event', _faker.default.random.number({
        min: 1,
        max: 3
      }), {
        taskStateId: state.id
      }].compact();
      const events = server.createList(...props);
      state.update({
        eventIds: events.mapBy('id')
      });
    }

  });

  _exports.default = _default;
});
;define("nomad-ui/mirage/factories/task", ["exports", "ember-cli-mirage", "nomad-ui/mirage/faker", "nomad-ui/mirage/common", "@ember/string", "nomad-ui/mirage/utils"], function (_exports, _emberCliMirage, _faker, _common, _string, _utils) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember-cli-mirage",0,"nomad-ui/mirage/faker",0,"nomad-ui/mirage/common",0,"@ember/string",0,"nomad-ui/mirage/utils"eaimeta@70e063a35619d71f

  const DRIVERS = ['docker', 'java', 'rkt', 'qemu', 'exec', 'raw_exec'];

  var _default = _emberCliMirage.Factory.extend({
    createRecommendations: false,
    withServices: false,
    // Hidden property used to compute the Summary hash
    groupNames: [],
    // Set in the TaskGroup factory
    volumeMounts: [],
    JobID: '',
    name: id => `task-${(0, _string.dasherize)(_faker.default.hacker.noun())}-${id}`,
    driver: () => _faker.default.helpers.randomize(DRIVERS),
    originalResources: _common.generateResources,
    resources: function () {
      // Generate resources the usual way, but transform to the old
      // shape because that's what the job spec uses.
      const resources = this.originalResources;
      return {
        CPU: resources.Cpu.CpuShares,
        MemoryMB: resources.Memory.MemoryMB,
        MemoryMaxMB: resources.Memory.MemoryMaxMB,
        DiskMB: resources.Disk.DiskMB
      };
    },
    Lifecycle: i => {
      const cycle = i % 6;

      if (cycle === 0) {
        return null;
      } else if (cycle === 1) {
        return {
          Hook: 'prestart',
          Sidecar: false
        };
      } else if (cycle === 2) {
        return {
          Hook: 'prestart',
          Sidecar: true
        };
      } else if (cycle === 3) {
        return {
          Hook: 'poststart',
          Sidecar: false
        };
      } else if (cycle === 4) {
        return {
          Hook: 'poststart',
          Sidecar: true
        };
      } else if (cycle === 5) {
        return {
          Hook: 'poststop'
        };
      }
    },

    afterCreate(task, server) {
      if (task.createRecommendations) {
        const recommendations = [];

        if (_faker.default.random.number(10) >= 1) {
          recommendations.push(server.create('recommendation', {
            task,
            resource: 'CPU'
          }));
        }

        if (_faker.default.random.number(10) >= 1) {
          recommendations.push(server.create('recommendation', {
            task,
            resource: 'MemoryMB'
          }));
        }

        task.save({
          recommendationIds: recommendations.mapBy('id')
        });
      }

      if (task.withServices) {
        const services = server.createList('service-fragment', 1, {
          provider: 'nomad',
          taskName: task.name
        });
        services.push(server.create('service-fragment', {
          provider: 'consul',
          taskName: task.name
        }));
        services.forEach(fragment => {
          server.createList('service', 5, {
            serviceName: fragment.name
          });
        });
        task.update({
          services
        });
      }
    }

  });

  _exports.default = _default;
});
;define("nomad-ui/mirage/factories/token", ["exports", "ember-cli-mirage", "nomad-ui/mirage/faker"], function (_exports, _emberCliMirage, _faker) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember-cli-mirage",0,"nomad-ui/mirage/faker"eaimeta@70e063a35619d71f

  var _default = _emberCliMirage.Factory.extend({
    id: () => _faker.default.random.uuid(),

    accessorId() {
      return this.id;
    },

    secretId: () => _faker.default.random.uuid(),
    name: i => `${i === 0 ? 'Manager ' : ''}${_faker.default.name.findName()}`,
    global: () => _faker.default.random.boolean(),
    type: i => i === 0 ? 'management' : 'client',
    oneTimeSecret: () => _faker.default.random.uuid(),

    afterCreate(token, server) {
      if (token.policyIds && token.policyIds.length) return;
      const policyIds = Array(_faker.default.random.number({
        min: 1,
        max: 5
      })).fill(0).map(() => _faker.default.hacker.verb()).uniq();
      policyIds.forEach(policy => {
        const dbPolicy = server.db.policies.find(policy);

        if (!dbPolicy) {
          server.create('policy', {
            id: policy
          });
        }
      });
      token.update({
        policyIds
      }); // Create a special policy with variables rules in place

      if (token.id === '53cur3-v4r14bl35') {
        const variableMakerPolicy = {
          id: 'Variable Maker',
          rules: `
# Allow read only access to the default namespace
namespace "*" {
  policy = "read"
  capabilities = ["list-jobs", "alloc-exec", "read-logs"]
  variables {
    # Base access is to all abilities for all variables
    path "*" {
      capabilities = ["list", "read", "destroy", "create"]
    }
  }
}

node {
  policy = "read"
}
      `,
          rulesJSON: {
            Namespaces: [{
              Name: '*',
              Capabilities: ['list-jobs', 'alloc-exec', 'read-logs'],
              Variables: {
                Paths: [{
                  Capabilities: ['write', 'read', 'destroy', 'list'],
                  PathSpec: '*'
                }]
              }
            }]
          }
        };
        server.create('policy', variableMakerPolicy);
        token.policyIds.push(variableMakerPolicy.id);
      }

      if (token.id === 'f3w3r-53cur3-v4r14bl35') {
        const variableViewerPolicy = {
          id: 'Variable Viewer',
          rules: `
# Allow read only access to the default namespace
namespace "*" {
  policy = "read"
  capabilities = ["list-jobs", "alloc-exec", "read-logs"]
  variables {
    # Base access is to all abilities for all variables
    path "*" {
      capabilities = ["list"]
    }
  }
}

namespace "namespace-1" {
  policy = "read"
  capabilities = ["list-jobs", "alloc-exec", "read-logs"]
  variables {
    # Base access is to all abilities for all variables
    path "*" {
      capabilities = ["list", "read", "destroy", "create"]
    }
  }
}

namespace "namespace-2" {
  policy = "read"
  capabilities = ["list-jobs", "alloc-exec", "read-logs"]
  variables {
    # Base access is to all abilities for all variables
    path "blue/*" {
      capabilities = ["list", "read", "destroy", "create"]
    }
    path "nomad/jobs/*" {
      capabilities = ["list", "read", "create"]
    }
  }
}

node {
  policy = "read"
}
      `,
          rulesJSON: {
            Namespaces: [{
              Name: '*',
              Capabilities: ['list-jobs', 'alloc-exec', 'read-logs'],
              Variables: {
                Paths: [{
                  Capabilities: ['list'],
                  PathSpec: '*'
                }]
              }
            }, {
              Name: 'namespace-1',
              Capabilities: ['list-jobs', 'alloc-exec', 'read-logs'],
              Variables: {
                Paths: [{
                  Capabilities: ['list', 'read', 'destroy', 'create'],
                  PathSpec: '*'
                }]
              }
            }, {
              Name: 'namespace-2',
              Capabilities: ['list-jobs', 'alloc-exec', 'read-logs'],
              Variables: {
                Paths: [{
                  Capabilities: ['list', 'read', 'destroy', 'create'],
                  PathSpec: 'blue/*'
                }, {
                  Capabilities: ['list', 'read', 'create'],
                  PathSpec: 'nomad/jobs/*'
                }]
              }
            }]
          }
        };
        server.create('policy', variableViewerPolicy);
        token.policyIds.push(variableViewerPolicy.id);
      }

      if (token.id === '3XP1R35-1N-3L3V3N-M1NU735') {
        token.update({
          expirationTime: new Date(new Date().getTime() + 11 * 60 * 1000)
        });
      }
    }

  });

  _exports.default = _default;
});
;define("nomad-ui/mirage/factories/variable", ["exports", "ember-cli-mirage", "nomad-ui/mirage/faker", "nomad-ui/mirage/utils"], function (_exports, _emberCliMirage, _faker, _utils) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember-cli-mirage",0,"nomad-ui/mirage/faker",0,"nomad-ui/mirage/utils"eaimeta@70e063a35619d71f

  var _default = _emberCliMirage.Factory.extend({
    id: () => _faker.default.random.words(3).split(' ').join('/').toLowerCase(),

    path() {
      return this.id;
    },

    namespace: null,
    createdIndex: 100,
    modifiedIndex: 100,
    createTime: () => _faker.default.date.past(15) * 1000000,
    modifyTime: () => _faker.default.date.recent(1) * 1000000,

    items() {
      return this.Items || {
        [_faker.default.database.column()]: _faker.default.database.collation(),
        [_faker.default.database.column()]: _faker.default.database.collation(),
        [_faker.default.database.column()]: _faker.default.database.collation(),
        [_faker.default.database.column()]: _faker.default.database.collation(),
        [_faker.default.database.column()]: _faker.default.database.collation()
      };
    },

    afterCreate(variable, server) {
      if (!variable.namespace) {
        var _pickOne;

        const namespace = ((_pickOne = (0, _utils.pickOne)(server.db.jobs)) === null || _pickOne === void 0 ? void 0 : _pickOne.namespace) || 'default';
        variable.update({
          namespace
        });
      }
    }

  });

  _exports.default = _default;
});
;define("nomad-ui/mirage/faker", ["exports", "faker", "nomad-ui/config/environment"], function (_exports, _faker, _environment) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"faker",0,"nomad-ui/config/environment"eaimeta@70e063a35619d71f

  const searchIncludesSeed = window.location.search.includes('faker-seed');

  if (_environment.default.environment !== 'test' || _environment.default.percy.enabled || searchIncludesSeed) {
    if (searchIncludesSeed) {
      const params = new URLSearchParams(window.location.search);
      const seed = parseInt(params.get('faker-seed'));

      _faker.default.seed(seed);
    } else {
      _faker.default.seed(1);
    }
  } else if (_environment.default.environment === 'test') {
    const randomSeed = _faker.default.random.number();

    console.log(`No seed specified with faker-seed query parameter, seeding Faker with ${randomSeed}`);

    _faker.default.seed(randomSeed);
  }

  var _default = _faker.default;
  _exports.default = _default;
});
;define("nomad-ui/mirage/models/alloc-file", ["exports", "ember-cli-mirage"], function (_exports, _emberCliMirage) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember-cli-mirage"eaimeta@70e063a35619d71f

  var _default = _emberCliMirage.Model.extend({
    parent: (0, _emberCliMirage.belongsTo)('alloc-file')
  });

  _exports.default = _default;
});
;define("nomad-ui/mirage/models/allocation", ["exports", "ember-cli-mirage"], function (_exports, _emberCliMirage) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember-cli-mirage"eaimeta@70e063a35619d71f

  var _default = _emberCliMirage.Model.extend({
    taskStates: (0, _emberCliMirage.hasMany)('task-state'),
    taskResources: (0, _emberCliMirage.hasMany)('task-resource')
  });

  _exports.default = _default;
});
;define("nomad-ui/mirage/models/client-allocation-stat", ["exports", "ember-cli-mirage"], function (_exports, _emberCliMirage) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember-cli-mirage"eaimeta@70e063a35619d71f

  var _default = _emberCliMirage.Model.extend();

  _exports.default = _default;
});
;define("nomad-ui/mirage/models/client-stat", ["exports", "ember-cli-mirage"], function (_exports, _emberCliMirage) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember-cli-mirage"eaimeta@70e063a35619d71f

  var _default = _emberCliMirage.Model.extend();

  _exports.default = _default;
});
;define("nomad-ui/mirage/models/csi-plugin", ["exports", "ember-cli-mirage"], function (_exports, _emberCliMirage) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember-cli-mirage"eaimeta@70e063a35619d71f

  var _default = _emberCliMirage.Model.extend({
    nodes: (0, _emberCliMirage.hasMany)('storage-node'),
    controllers: (0, _emberCliMirage.hasMany)('storage-controller')
  });

  _exports.default = _default;
});
;define("nomad-ui/mirage/models/csi-volume", ["exports", "ember-cli-mirage"], function (_exports, _emberCliMirage) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember-cli-mirage"eaimeta@70e063a35619d71f

  var _default = _emberCliMirage.Model.extend({
    plugin: (0, _emberCliMirage.belongsTo)('csi-plugin'),
    writeAllocs: (0, _emberCliMirage.hasMany)('allocation'),
    readAllocs: (0, _emberCliMirage.hasMany)('allocation'),
    allocations: (0, _emberCliMirage.hasMany)('allocation')
  });

  _exports.default = _default;
});
;define("nomad-ui/mirage/models/deployment-task-group-summary", ["exports", "ember-cli-mirage"], function (_exports, _emberCliMirage) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember-cli-mirage"eaimeta@70e063a35619d71f

  var _default = _emberCliMirage.Model.extend({
    deployment: (0, _emberCliMirage.belongsTo)()
  });

  _exports.default = _default;
});
;define("nomad-ui/mirage/models/deployment", ["exports", "ember-cli-mirage"], function (_exports, _emberCliMirage) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember-cli-mirage"eaimeta@70e063a35619d71f

  var _default = _emberCliMirage.Model.extend({
    deploymentTaskGroupSummaries: (0, _emberCliMirage.hasMany)('deployment-task-group-summary')
  });

  _exports.default = _default;
});
;define("nomad-ui/mirage/models/evaluation-stub", ["exports", "ember-cli-mirage"], function (_exports, _emberCliMirage) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember-cli-mirage"eaimeta@70e063a35619d71f

  var _default = _emberCliMirage.Model.extend({});

  _exports.default = _default;
});
;define("nomad-ui/mirage/models/evaluation", ["exports", "ember-cli-mirage"], function (_exports, _emberCliMirage) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember-cli-mirage"eaimeta@70e063a35619d71f

  var _default = _emberCliMirage.Model.extend({
    relatedEvals: (0, _emberCliMirage.hasMany)('evaluation-stub')
  });

  _exports.default = _default;
});
;define("nomad-ui/mirage/models/feature", ["exports", "ember-cli-mirage"], function (_exports, _emberCliMirage) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember-cli-mirage"eaimeta@70e063a35619d71f

  var _default = _emberCliMirage.Model.extend();

  _exports.default = _default;
});
;define("nomad-ui/mirage/models/job-scale", ["exports", "ember-cli-mirage"], function (_exports, _emberCliMirage) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember-cli-mirage"eaimeta@70e063a35619d71f

  var _default = _emberCliMirage.Model.extend({
    job: (0, _emberCliMirage.belongsTo)(),
    taskGroupScales: (0, _emberCliMirage.hasMany)()
  });

  _exports.default = _default;
});
;define("nomad-ui/mirage/models/job", ["exports", "ember-cli-mirage"], function (_exports, _emberCliMirage) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember-cli-mirage"eaimeta@70e063a35619d71f

  var _default = _emberCliMirage.Model.extend({
    taskGroups: (0, _emberCliMirage.hasMany)('task-group'),
    jobSummary: (0, _emberCliMirage.belongsTo)('job-summary'),
    jobScale: (0, _emberCliMirage.belongsTo)('job-scale')
  });

  _exports.default = _default;
});
;define("nomad-ui/mirage/models/node-pool", ["exports", "ember-cli-mirage"], function (_exports, _emberCliMirage) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember-cli-mirage"eaimeta@70e063a35619d71f

  var _default = _emberCliMirage.Model.extend({});

  _exports.default = _default;
});
;define("nomad-ui/mirage/models/node", ["exports", "ember-cli-mirage"], function (_exports, _emberCliMirage) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember-cli-mirage"eaimeta@70e063a35619d71f

  var _default = _emberCliMirage.Model.extend({
    events: (0, _emberCliMirage.hasMany)('node-event')
  });

  _exports.default = _default;
});
;define("nomad-ui/mirage/models/recommendation", ["exports", "ember-cli-mirage"], function (_exports, _emberCliMirage) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember-cli-mirage"eaimeta@70e063a35619d71f

  var _default = _emberCliMirage.Model.extend({
    task: (0, _emberCliMirage.belongsTo)('task')
  });

  _exports.default = _default;
});
;define("nomad-ui/mirage/models/region", ["exports", "ember-cli-mirage"], function (_exports, _emberCliMirage) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember-cli-mirage"eaimeta@70e063a35619d71f

  var _default = _emberCliMirage.Model.extend();

  _exports.default = _default;
});
;define("nomad-ui/mirage/models/scale-event", ["exports", "ember-cli-mirage"], function (_exports, _emberCliMirage) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember-cli-mirage"eaimeta@70e063a35619d71f

  var _default = _emberCliMirage.Model.extend({
    taskGroupScale: (0, _emberCliMirage.belongsTo)()
  });

  _exports.default = _default;
});
;define("nomad-ui/mirage/models/service-fragment", ["exports", "ember-cli-mirage"], function (_exports, _emberCliMirage) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember-cli-mirage"eaimeta@70e063a35619d71f

  var _default = _emberCliMirage.Model.extend({
    taskGroup: (0, _emberCliMirage.belongsTo)('task-group'),
    task: (0, _emberCliMirage.belongsTo)('task')
  });

  _exports.default = _default;
});
;define("nomad-ui/mirage/models/service", ["exports", "ember-cli-mirage"], function (_exports, _emberCliMirage) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember-cli-mirage"eaimeta@70e063a35619d71f

  var _default = _emberCliMirage.Model.extend({
    job: (0, _emberCliMirage.belongsTo)('job')
  });

  _exports.default = _default;
});
;define("nomad-ui/mirage/models/storage-controller", ["exports", "ember-cli-mirage"], function (_exports, _emberCliMirage) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember-cli-mirage"eaimeta@70e063a35619d71f

  var _default = _emberCliMirage.Model.extend({
    job: (0, _emberCliMirage.belongsTo)(),
    node: (0, _emberCliMirage.belongsTo)()
  });

  _exports.default = _default;
});
;define("nomad-ui/mirage/models/storage-node", ["exports", "ember-cli-mirage"], function (_exports, _emberCliMirage) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember-cli-mirage"eaimeta@70e063a35619d71f

  var _default = _emberCliMirage.Model.extend({
    job: (0, _emberCliMirage.belongsTo)(),
    node: (0, _emberCliMirage.belongsTo)()
  });

  _exports.default = _default;
});
;define("nomad-ui/mirage/models/task-event", ["exports", "ember-cli-mirage"], function (_exports, _emberCliMirage) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember-cli-mirage"eaimeta@70e063a35619d71f

  var _default = _emberCliMirage.Model.extend({
    taskState: (0, _emberCliMirage.belongsTo)()
  });

  _exports.default = _default;
});
;define("nomad-ui/mirage/models/task-group-scale", ["exports", "ember-cli-mirage"], function (_exports, _emberCliMirage) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember-cli-mirage"eaimeta@70e063a35619d71f

  var _default = _emberCliMirage.Model.extend({
    jobScale: (0, _emberCliMirage.belongsTo)(),
    events: (0, _emberCliMirage.hasMany)('scale-event')
  });

  _exports.default = _default;
});
;define("nomad-ui/mirage/models/task-group", ["exports", "ember-cli-mirage"], function (_exports, _emberCliMirage) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember-cli-mirage"eaimeta@70e063a35619d71f

  var _default = _emberCliMirage.Model.extend({
    job: (0, _emberCliMirage.belongsTo)(),
    services: (0, _emberCliMirage.hasMany)('service-fragment'),
    tasks: (0, _emberCliMirage.hasMany)()
  });

  _exports.default = _default;
});
;define("nomad-ui/mirage/models/task-resources", ["exports", "ember-cli-mirage"], function (_exports, _emberCliMirage) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember-cli-mirage"eaimeta@70e063a35619d71f

  var _default = _emberCliMirage.Model.extend({
    allocation: (0, _emberCliMirage.belongsTo)()
  });

  _exports.default = _default;
});
;define("nomad-ui/mirage/models/task-state", ["exports", "ember-cli-mirage"], function (_exports, _emberCliMirage) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember-cli-mirage"eaimeta@70e063a35619d71f

  var _default = _emberCliMirage.Model.extend({
    allocation: (0, _emberCliMirage.belongsTo)(),
    events: (0, _emberCliMirage.hasMany)('task-event')
  });

  _exports.default = _default;
});
;define("nomad-ui/mirage/models/task", ["exports", "ember-cli-mirage"], function (_exports, _emberCliMirage) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember-cli-mirage"eaimeta@70e063a35619d71f

  var _default = _emberCliMirage.Model.extend({
    taskGroup: (0, _emberCliMirage.belongsTo)(),
    recommendations: (0, _emberCliMirage.hasMany)(),
    services: (0, _emberCliMirage.hasMany)('service-fragment')
  });

  _exports.default = _default;
});
;define("nomad-ui/mirage/scenarios/default", ["exports", "@ember/polyfills", "nomad-ui/config/environment", "nomad-ui/mirage/scenarios/topo", "nomad-ui/mirage/scenarios/sysbatch", "nomad-ui/mirage/utils", "nomad-ui/mirage/faker"], function (_exports, _polyfills, _environment, topoScenarios, sysbatchScenarios, _utils, _faker) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = _default;
  _exports.scenario = _exports.allScenarios = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/polyfills",0,"nomad-ui/config/environment",0,"nomad-ui/mirage/scenarios/topo",0,"nomad-ui/mirage/scenarios/sysbatch",0,"nomad-ui/mirage/utils",0,"nomad-ui/mirage/faker"eaimeta@70e063a35619d71f

  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }

  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  const withNamespaces = getConfigValue('mirageWithNamespaces', false);
  const withTokens = getConfigValue('mirageWithTokens', true);
  const withRegions = getConfigValue('mirageWithRegions', false);

  const allScenarios = _objectSpread(_objectSpread({
    smallCluster,
    mediumCluster,
    largeCluster,
    massiveCluster,
    allJobTypes,
    allNodeTypes,
    everyFeature,
    emptyCluster,
    variableTestCluster,
    servicesTestCluster,
    policiesTestCluster
  }, topoScenarios), sysbatchScenarios);

  _exports.allScenarios = allScenarios;
  const scenario = getScenarioQueryParameter() || getConfigValue('mirageScenario', 'emptyCluster');
  _exports.scenario = scenario;

  function _default(server) {
    const activeScenario = allScenarios[scenario];

    if (!activeScenario) {
      throw new Error(`Selected Mirage scenario does not exist.\n\n${scenario} not in list: \n\n\t${Object.keys(allScenarios).join('\n\t')}`);
    } // Make sure built-in node pools exist.


    createBuiltInNodePools(server);
    if (withNamespaces) createNamespaces(server);
    if (withTokens) createTokens(server);
    if (withRegions) createRegions(server);
    activeScenario(server);
  } // Scenarios


  function smallCluster(server) {
    _faker.default.seed(1);

    server.create('feature', {
      name: 'Dynamic Application Sizing'
    });
    server.createList('agent', 3, 'withConsulLink', 'withVaultLink');
    server.createList('node-pool', 2);
    server.createList('node', 5);
    server.create('node', {
      name: 'node-with-meta',
      meta: {
        foo: 'bar',
        baz: 'qux'
      }
    }, 'withMeta');
    server.createList('job', 1, {
      createRecommendations: true
    });
    server.create('job', {
      withGroupServices: true,
      withTaskServices: true,
      name: 'Service-haver',
      id: 'service-haver',
      namespaceId: 'default'
    });
    server.create('job', {
      createAllocations: true,
      groupTaskCount: 150,
      shallow: true,
      allocStatusDistribution: {
        running: 0.5,
        failed: 0.05,
        unknown: 0.2,
        lost: 0.1,
        complete: 0.1,
        pending: 0.05
      },
      name: 'mixed-alloc-job',
      id: 'mixed-alloc-job',
      namespaceId: 'default',
      type: 'service',
      activeDeployment: true
    }); //#region Active Deployment

    const activelyDeployingJobGroups = 2;
    const activelyDeployingTasksPerGroup = 100;
    const activelyDeployingJob = server.create('job', {
      createAllocations: true,
      groupTaskCount: activelyDeployingTasksPerGroup,
      shallow: true,
      resourceSpec: Array(activelyDeployingJobGroups).fill(['M: 257, C: 500']),
      noDeployments: true,
      // manually created below
      activeDeployment: true,
      allocStatusDistribution: {
        running: 0.6,
        failed: 0.05,
        unknown: 0.05,
        lost: 0,
        complete: 0,
        pending: 0.3
      },
      name: 'actively-deploying-job',
      id: 'actively-deploying-job',
      namespaceId: 'default',
      type: 'service'
    });
    server.create('deployment', false, 'active', {
      jobId: activelyDeployingJob.id,
      groupDesiredTotal: activelyDeployingTasksPerGroup,
      versionNumber: 1,
      status: 'running'
    });
    server.createList('allocation', 25, {
      jobId: activelyDeployingJob.id,
      jobVersion: 0,
      clientStatus: 'running'
    }); // Manipulate the above job to show a nice distribution of running, canary, etc. allocs

    let activelyDeployingJobAllocs = server.schema.allocations.all().filter(a => a.jobId === activelyDeployingJob.id);
    activelyDeployingJobAllocs.models.filter(a => a.clientStatus === 'running').slice(0, 10).forEach(a => a.update({
      deploymentStatus: {
        Healthy: false,
        Canary: true
      }
    }));
    activelyDeployingJobAllocs.models.filter(a => a.clientStatus === 'running').slice(10, 20).forEach(a => a.update({
      deploymentStatus: {
        Healthy: true,
        Canary: true
      }
    }));
    activelyDeployingJobAllocs.models.filter(a => a.clientStatus === 'running').slice(20, 65).forEach(a => a.update({
      deploymentStatus: {
        Healthy: true,
        Canary: false
      }
    }));
    activelyDeployingJobAllocs.models.filter(a => a.clientStatus === 'pending').slice(0, 10).forEach(a => a.update({
      deploymentStatus: {
        Healthy: true,
        Canary: true
      }
    }));
    activelyDeployingJobAllocs.models.filter(a => a.clientStatus === 'failed').slice(0, 5).forEach(a => a.update({
      deploymentStatus: {
        Healthy: true,
        Canary: false
      }
    })); //#endregion Active Deployment

    server.create('job', {
      name: 'hcl-definition-job',
      id: 'display-hcl',
      namespaceId: 'default'
    });
    server.createList('allocFile', 5);
    server.create('allocFile', 'dir', {
      depth: 2
    });
    server.createList('csi-plugin', 2);
    server.createList('variable', 3);
    const variableLinkedJob = server.db.jobs[0];
    const variableLinkedGroup = server.db.taskGroups.findBy({
      jobId: variableLinkedJob.id
    });
    const variableLinkedTask = server.db.tasks.findBy({
      taskGroupId: variableLinkedGroup.id
    });
    ['a/b/c/foo0', 'a/b/c/bar1', 'a/b/c/d/e/foo2', 'a/b/c/d/e/bar3', 'a/b/c/d/e/f/foo4', 'a/b/c/d/e/f/g/foo5', 'a/b/c/x/y/z/foo6', 'a/b/c/x/y/z/bar7', 'a/b/c/x/y/z/baz8', 'w/x/y/foo9', 'w/x/y/z/foo10', 'w/x/y/z/bar11', 'just some arbitrary file', 'another arbitrary file', 'another arbitrary file again'].forEach(path => server.create('variable', {
      id: path
    }));
    server.create('variable', {
      id: `nomad/jobs/${variableLinkedJob.id}/${variableLinkedGroup.name}/${variableLinkedTask.name}`,
      namespace: variableLinkedJob.namespace
    });
    server.create('variable', {
      id: `nomad/jobs/${variableLinkedJob.id}/${variableLinkedGroup.name}`,
      namespace: variableLinkedJob.namespace
    });
    server.create('variable', {
      id: `nomad/jobs/${variableLinkedJob.id}`,
      namespace: variableLinkedJob.namespace
    });
    const newJobName = 'new-job';
    const newJobTaskGroupName = 'redis';

    const jsonJob = overrides => {
      return JSON.stringify((0, _polyfills.assign)({}, {
        Name: newJobName,
        Namespace: 'default',
        Datacenters: ['dc1'],
        Priority: 50,
        TaskGroups: [{
          Name: newJobTaskGroupName,
          Tasks: [{
            Name: 'redis',
            Driver: 'docker'
          }]
        }]
      }, overrides), null, 2);
    };

    server.create('variable', {
      id: `nomad/job-templates/foo-bar`,
      namespace: 'namespace-2',
      Items: {
        description: 'a description',
        template: jsonJob()
      }
    });
    server.create('variable', {
      id: `nomad/job-templates/baz-qud`,
      namespace: 'default',
      Items: {
        description: 'another different description',
        template: jsonJob()
      }
    });
    server.create('variable', {
      id: 'Auto-conflicting Variable',
      namespace: 'default'
    }); // #region evaluations
    // Branching: a single eval that relates to N-1 mutually-unrelated evals

    const NUM_BRANCHING_EVALUATIONS = 3;
    Array(NUM_BRANCHING_EVALUATIONS).fill().map((_, i) => {
      return {
        evaluation: server.create('evaluation', {
          id: `branching_${i}`,
          previousEval: i > 0 ? `branching_0` : '',
          jobID: (0, _utils.pickOne)(server.db.jobs).id
        }),
        evaluationStub: server.create('evaluation-stub', {
          id: `branching_${i}`,
          previousEval: i > 0 ? `branching_0` : '',
          status: 'failed'
        })
      };
    }).map((x, i, all) => {
      x.evaluation.update({
        relatedEvals: i === 0 ? all.filter((_, j) => j !== 0).map(e => e.evaluation) : all.filter((_, j) => j !== i).map(e => e.evaluation)
      });
      return x;
    }); // Linear: a long line of N related evaluations

    const NUM_LINEAR_EVALUATIONS = 20;
    Array(NUM_LINEAR_EVALUATIONS).fill().map((_, i) => {
      return {
        evaluation: server.create('evaluation', {
          id: `linear_${i}`,
          previousEval: i > 0 ? `linear_${i - 1}` : '',
          jobID: (0, _utils.pickOne)(server.db.jobs).id
        }),
        evaluationStub: server.create('evaluation-stub', {
          id: `linear_${i}`,
          previousEval: i > 0 ? `linear_${i - 1}` : '',
          nextEval: `linear_${i + 1}`,
          status: 'failed'
        })
      };
    }).map((x, i, all) => {
      x.evaluation.update({
        relatedEvals: all.filter((_, j) => i !== j).map(e => e.evaluation)
      });
      return x;
    }); // #endregion evaluations

    const csiAllocations = server.createList('allocation', 5);
    const volumes = server.schema.csiVolumes.all().models;
    csiAllocations.forEach(alloc => {
      const volume = (0, _utils.pickOne)(volumes);
      volume.writeAllocs.add(alloc);
      volume.readAllocs.add(alloc);
      volume.save();
    });
    server.create('auth-method', {
      name: 'vault'
    });
    server.create('auth-method', {
      name: 'auth0'
    });
    server.create('auth-method', {
      name: 'cognito'
    });
    server.create('auth-method', {
      name: 'JWT-Local',
      type: 'JWT'
    });
  }

  function mediumCluster(server) {
    server.createList('agent', 3, 'withConsulLink', 'withVaultLink');
    server.createList('node-pool', 5);
    server.createList('node', 50);
    server.createList('job', 25);
  }

  function variableTestCluster(server) {
    _faker.default.seed(1);

    createTokens(server);
    createNamespaces(server);
    server.createList('agent', 3, 'withConsulLink', 'withVaultLink');
    server.createList('node-pool', 3);
    server.createList('node', 5);
    server.createList('job', 3);
    server.createList('variable', 3); // server.createList('allocFile', 5);
    // server.create('allocFile', 'dir', { depth: 2 });
    // server.createList('csi-plugin', 2);

    const variableLinkedJob = server.db.jobs[0];
    const variableLinkedGroup = server.db.taskGroups.findBy({
      jobId: variableLinkedJob.id
    });
    const variableLinkedTask = server.db.tasks.findBy({
      taskGroupId: variableLinkedGroup.id
    });
    ['a/b/c/foo0', 'a/b/c/bar1', 'a/b/c/d/e/foo2', 'a/b/c/d/e/bar3', 'a/b/c/d/e/f/foo4', 'a/b/c/d/e/f/g/foo5', 'a/b/c/x/y/z/foo6', 'a/b/c/x/y/z/bar7', 'a/b/c/x/y/z/baz8', 'w/x/y/foo9', 'w/x/y/z/foo10', 'w/x/y/z/bar11'].forEach(path => server.create('variable', {
      id: path
    }));
    server.create('variable', {
      id: `nomad/jobs/${variableLinkedJob.id}/${variableLinkedGroup.name}/${variableLinkedTask.name}`,
      namespace: variableLinkedJob.namespace
    });
    server.create('variable', {
      id: `nomad/jobs/${variableLinkedJob.id}/${variableLinkedGroup.name}`,
      namespace: variableLinkedJob.namespace
    });
    server.create('variable', {
      id: `nomad/jobs/${variableLinkedJob.id}`,
      namespace: variableLinkedJob.namespace
    });
    server.create('variable', {
      id: 'just some arbitrary file',
      namespace: 'namespace-2'
    });
    server.create('variable', {
      id: 'another arbitrary file',
      namespace: 'namespace-2'
    });
    server.create('variable', {
      id: 'another arbitrary file again',
      namespace: 'namespace-2'
    });
    server.create('variable', {
      id: 'Auto-conflicting Variable',
      namespace: 'default'
    });
  }

  function policiesTestCluster(server) {
    _faker.default.seed(1);

    createTokens(server);
    server.createList('agent', 3, 'withConsulLink', 'withVaultLink');
  }

  function servicesTestCluster(server) {
    _faker.default.seed(1);

    server.create('feature', {
      name: 'Dynamic Application Sizing'
    });
    server.createList('agent', 3, 'withConsulLink', 'withVaultLink');
    server.createList('node-pool', 3);
    server.createList('node', 5);
    server.createList('job', 1, {
      createRecommendations: true
    });
    server.create('job', {
      withGroupServices: true,
      withTaskServices: true,
      name: 'Service-haver',
      id: 'service-haver',
      namespaceId: 'default'
    });
    server.createList('allocFile', 5);
    server.create('allocFile', 'dir', {
      depth: 2
    });
    server.createList('csi-plugin', 2);
    server.createList('variable', 3);
    const variableLinkedJob = server.db.jobs[0];
    const variableLinkedGroup = server.db.taskGroups.findBy({
      jobId: variableLinkedJob.id
    });
    const variableLinkedTask = server.db.tasks.findBy({
      taskGroupId: variableLinkedGroup.id
    });
    ['a/b/c/foo0', 'a/b/c/bar1', 'a/b/c/d/e/foo2', 'a/b/c/d/e/bar3', 'a/b/c/d/e/f/foo4', 'a/b/c/d/e/f/g/foo5', 'a/b/c/x/y/z/foo6', 'a/b/c/x/y/z/bar7', 'a/b/c/x/y/z/baz8', 'w/x/y/foo9', 'w/x/y/z/foo10', 'w/x/y/z/bar11', 'just some arbitrary file', 'another arbitrary file', 'another arbitrary file again'].forEach(path => server.create('variable', {
      id: path
    }));
    server.create('variable', {
      id: `nomad/jobs/${variableLinkedJob.id}/${variableLinkedGroup.name}/${variableLinkedTask.name}`,
      namespace: variableLinkedJob.namespace
    });
    server.create('variable', {
      id: `nomad/jobs/${variableLinkedJob.id}/${variableLinkedGroup.name}`,
      namespace: variableLinkedJob.namespace
    });
    server.create('variable', {
      id: `nomad/jobs/${variableLinkedJob.id}`,
      namespace: variableLinkedJob.namespace
    });
    server.create('variable', {
      id: 'Auto-conflicting Variable',
      namespace: 'default'
    }); // #region evaluations
    // Branching: a single eval that relates to N-1 mutually-unrelated evals

    const NUM_BRANCHING_EVALUATIONS = 3;
    Array(NUM_BRANCHING_EVALUATIONS).fill().map((_, i) => {
      return {
        evaluation: server.create('evaluation', {
          id: `branching_${i}`,
          previousEval: i > 0 ? `branching_0` : '',
          jobID: (0, _utils.pickOne)(server.db.jobs).id
        }),
        evaluationStub: server.create('evaluation-stub', {
          id: `branching_${i}`,
          previousEval: i > 0 ? `branching_0` : '',
          status: 'failed'
        })
      };
    }).map((x, i, all) => {
      x.evaluation.update({
        relatedEvals: i === 0 ? all.filter((_, j) => j !== 0).map(e => e.evaluation) : all.filter((_, j) => j !== i).map(e => e.evaluation)
      });
      return x;
    }); // Linear: a long line of N related evaluations

    const NUM_LINEAR_EVALUATIONS = 20;
    Array(NUM_LINEAR_EVALUATIONS).fill().map((_, i) => {
      return {
        evaluation: server.create('evaluation', {
          id: `linear_${i}`,
          previousEval: i > 0 ? `linear_${i - 1}` : '',
          jobID: (0, _utils.pickOne)(server.db.jobs).id
        }),
        evaluationStub: server.create('evaluation-stub', {
          id: `linear_${i}`,
          previousEval: i > 0 ? `linear_${i - 1}` : '',
          nextEval: `linear_${i + 1}`,
          status: 'failed'
        })
      };
    }).map((x, i, all) => {
      x.evaluation.update({
        relatedEvals: all.filter((_, j) => i !== j).map(e => e.evaluation)
      });
      return x;
    }); // #endregion evaluations

    const csiAllocations = server.createList('allocation', 5);
    const volumes = server.schema.csiVolumes.all().models;
    csiAllocations.forEach(alloc => {
      const volume = (0, _utils.pickOne)(volumes);
      volume.writeAllocs.add(alloc);
      volume.readAllocs.add(alloc);
      volume.save();
    });
  } // Due to Mirage performance, large cluster scenarios will be slow


  function largeCluster(server) {
    server.createList('agent', 5);
    server.createList('node-pool', 10);
    server.createList('node', 1000);
    server.createList('job', 100);
  }

  function massiveCluster(server) {
    server.createList('agent', 7);
    server.createList('node-pool', 100);
    server.createList('node', 5000);
    server.createList('job', 2000);
  }

  function allJobTypes(server) {
    server.createList('agent', 3, 'withConsulLink', 'withVaultLink');
    server.createList('node', 5);
    server.create('job', {
      type: 'service'
    });
    server.create('job', {
      type: 'batch'
    });
    server.create('job', {
      type: 'system'
    });
    server.create('job', 'periodic');
    server.create('job', 'parameterized');
    server.create('job', 'periodicSysbatch');
    server.create('job', 'parameterizedSysbatch');
    server.create('job', {
      failedPlacements: true
    });
  }

  function allNodeTypes(server) {
    server.createList('agent', 3, 'withConsulLink', 'withVaultLink');
    server.create('node');
    server.create('node', 'forceIPv4');
    server.create('node', 'draining');
    server.create('node', 'forcedDraining');
    server.create('node', 'noDeadlineDraining');
    server.create('node', 'withMeta');
    server.createList('job', 3);
  }

  function everyFeature(server) {
    server.createList('agent', 3, 'withConsulLink', 'withVaultLink');
    server.createList('node-pool', 3);
    server.create('node', 'forceIPv4');
    server.create('node', 'draining');
    server.create('node', 'forcedDraining');
    server.create('node', 'noDeadlineDraining');
    server.create('node', 'withMeta');
    const job1 = server.create('job', {
      type: 'service',
      activeDeployment: true,
      namespaceId: 'default',
      createAllocations: false
    });
    server.create('job', {
      type: 'batch',
      failedPlacements: true,
      namespaceId: 'default'
    });
    server.create('job', {
      type: 'system',
      namespaceId: 'default'
    });
    server.create('job', 'periodic', {
      namespaceId: 'default'
    });
    server.create('job', 'parameterized', {
      namespaceId: 'default'
    });
    server.create('allocation', 'rescheduled', {
      jobId: job1.id
    });
    server.create('allocation', 'preempter', {
      jobId: job1.id
    });
    server.create('allocation', 'preempted', {
      jobId: job1.id
    });
  }

  function emptyCluster(server) {
    server.create('agent');
    server.create('node');
  } // Behaviors


  function createBuiltInNodePools(server) {
    server.create('node-pool', {
      name: 'default'
    });
    server.create('node-pool', {
      name: 'all'
    });
  }

  function createTokens(server) {
    server.createList('token', 3);
    server.create('token', {
      name: 'Secure McVariables',
      id: '53cur3-v4r14bl35'
    });
    server.create('token', {
      name: "Safe O'Constants",
      id: 'f3w3r-53cur3-v4r14bl35'
    });
    server.create('token', {
      name: 'Lazarus MacMarbh',
      id: '3XP1R35-1N-3L3V3N-M1NU735'
    });
    logTokens(server);
  }

  function createNamespaces(server) {
    server.createList('namespace', 3);
  }

  function createRegions(server) {
    ['americas', 'europe', 'asia', 'some-long-name-just-to-test'].forEach(id => {
      server.create('region', {
        id
      });
    });
  }
  /* eslint-disable */


  function logTokens(server) {
    console.log('TOKENS:');
    server.db.tokens.forEach(token => {
      console.log(`
Name: ${token.name}
Secret: ${token.secretId}
Accessor: ${token.accessorId}

`);
    });
    console.log('Alternatively, log in with a JWT. If it ends with `management`, you have full access. If it ends with `bad`, you`ll get an error. Otherwise, you`ll get a token with limited access.');
    console.log('=====================================');
  }

  function getConfigValue(variableName, defaultValue) {
    const value = _environment.default.APP[variableName];
    if (value !== undefined) return value;
    console.warn(`No ENV.APP value set for "${variableName}". Defaulting to "${defaultValue}". To set a custom value, modify config/environment.js`);
    return defaultValue;
  }

  function getScenarioQueryParameter() {
    const params = new URLSearchParams(window.location.search);
    return params.get('mirage-scenario');
  }
  /* eslint-enable */

});
;define("nomad-ui/mirage/scenarios/sysbatch", ["exports"], function (_exports) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.sysbatchSmall = sysbatchSmall;
  _exports.sysbatchLarge = sysbatchLarge;
  0; //eaimeta@70e063a35619d71feaimeta@70e063a35619d71f

  /**
   * Copyright (c) HashiCorp, Inc.
   * SPDX-License-Identifier: MPL-2.0
   */
  function sysbatchSmall(server) {
    return sysbatchScenario(server, 15);
  }

  function sysbatchLarge(server) {
    return sysbatchScenario(server, 55);
  }

  function sysbatchScenario(server, clientCount) {
    server.createList('agent', 3, 'withConsulLink', 'withVaultLink');
    const clients = server.createList('node', clientCount, {
      datacenter: 'dc1',
      status: 'ready'
    }); // Create some clients not targeted by the sysbatch job.

    server.createList('node', 3, {
      datacenter: 'dc3',
      status: 'ready'
    }); // Generate non-system/sysbatch job as counter-example.

    server.create('job', {
      status: 'running',
      type: 'service',
      resourceSpec: ['M: 256, C: 500'],
      createAllocations: true
    });
    server.create('job', 'pack');
    ['system', 'sysbatch'].forEach(type => {
      // Job with 1 task group.
      const job1 = server.create('job', {
        status: 'running',
        datacenters: ['dc1', 'dc2'],
        type,
        resourceSpec: ['M: 256, C: 500'],
        createAllocations: false
      });
      clients.forEach(c => {
        server.create('allocation', {
          jobId: job1.id,
          nodeId: c.id
        });
      }); // Job with 2 task groups.

      const job2 = server.create('job', {
        status: 'running',
        datacenters: ['dc1'],
        type,
        resourceSpec: ['M: 256, C: 500', 'M: 256, C: 500'],
        createAllocations: false
      });
      clients.forEach(c => {
        server.create('allocation', {
          jobId: job2.id,
          nodeId: c.id
        });
        server.create('allocation', {
          jobId: job2.id,
          nodeId: c.id
        });
      }); // Job with 3 task groups.

      const job3 = server.create('job', {
        status: 'running',
        datacenters: ['dc1'],
        type,
        resourceSpec: ['M: 256, C: 500', 'M: 256, C: 500', 'M: 256, C: 500'],
        createAllocations: false
      });
      clients.forEach(c => {
        server.create('allocation', {
          jobId: job3.id,
          nodeId: c.id
        });
        server.create('allocation', {
          jobId: job3.id,
          nodeId: c.id
        });
        server.create('allocation', {
          jobId: job3.id,
          nodeId: c.id
        });
      }); // Job with client not scheduled.

      const jobNotScheduled = server.create('job', {
        status: 'running',
        datacenters: ['dc1'],
        type,
        resourceSpec: ['M: 256, C: 500'],
        createAllocations: false
      });
      clients.forEach((c, i) => {
        if (i > clients.length - 3) return;
        server.create('allocation', {
          jobId: jobNotScheduled.id,
          nodeId: c.id
        });
      });
    });
  }
});
;define("nomad-ui/mirage/scenarios/topo", ["exports", "nomad-ui/mirage/faker", "nomad-ui/mirage/common"], function (_exports, _faker, _common) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.topoSmall = topoSmall;
  _exports.topoMedium = topoMedium;
  0; //eaimeta@70e063a35619d71f0,"nomad-ui/mirage/faker",0,"nomad-ui/mirage/common"eaimeta@70e063a35619d71f

  const genResources = (CPU, Memory) => ({
    Cpu: {
      CpuShares: CPU
    },
    Memory: {
      MemoryMB: Memory
    },
    Disk: {
      DiskMB: 10000
    },
    Networks: (0, _common.generateNetworks)(),
    Ports: (0, _common.generatePorts)()
  });

  function topoSmall(server) {
    server.createList('agent', 3, 'withConsulLink', 'withVaultLink');
    server.createList('node-pool', 4);
    server.createList('node', 12, {
      datacenter: 'dc1',
      status: 'ready',
      nodeResources: genResources(3000, 5192)
    });
    const jobResources = [['M: 2560, C: 150'], ['M: 128, C: 400'], ['M: 512, C: 100'], ['M: 256, C: 150'], ['M: 200, C: 50'], ['M: 64, C: 100'], ['M: 128, C: 150'], ['M: 1024, C: 500'], ['M: 100, C: 300', 'M: 200, C: 150'], ['M: 512, C: 250', 'M: 600, C: 200']];
    jobResources.forEach(spec => {
      server.create('job', {
        status: 'running',
        datacenters: ['dc1'],
        type: 'service',
        createAllocations: false,
        resourceSpec: spec
      });
    });
    server.createList('allocation', 25, {
      forceRunningClientStatus: true
    });
  }

  function topoMedium(server) {
    server.createList('agent', 3, 'withConsulLink', 'withVaultLink');
    server.createList('node', 10, {
      datacenter: 'us-west-1',
      status: 'ready',
      nodeResources: genResources(3000, 5192)
    });
    server.createList('node', 12, {
      datacenter: 'us-east-1',
      status: 'ready',
      nodeResources: genResources(3000, 5192)
    });
    server.createList('node', 11, {
      datacenter: 'eu-west-1',
      status: 'ready',
      nodeResources: genResources(3000, 5192)
    });
    server.createList('node', 8, {
      datacenter: 'us-west-1',
      status: 'ready',
      nodeResources: genResources(8000, 12192)
    });
    server.createList('node', 9, {
      datacenter: 'us-east-1',
      status: 'ready',
      nodeResources: genResources(8000, 12192)
    });
    const jobResources = [['M: 2560, C: 150'], ['M: 128, C: 400'], ['M: 512, C: 100'], ['M: 256, C: 150'], ['M: 200, C: 50'], ['M: 64, C: 100'], ['M: 128, C: 150'], ['M: 1024, C: 500'], ['M: 1200, C: 50'], ['M: 1400, C: 200'], ['M: 50, C: 150'], ['M: 5000, C: 1800'], ['M: 100, C: 300', 'M: 200, C: 150'], ['M: 512, C: 250', 'M: 600, C: 200']];
    jobResources.forEach(spec => {
      server.create('job', {
        status: 'running',
        datacenters: ['dc1'],
        type: 'service',
        createAllocations: false,
        createRecommendations: true,
        resourceSpec: spec
      });
    });
    server.createList('allocation', 100, {
      forceRunningClientStatus: true
    });
  }
});
;define("nomad-ui/mirage/serializers/agent", ["exports", "nomad-ui/mirage/serializers/application"], function (_exports, _application) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"nomad-ui/mirage/serializers/application"eaimeta@70e063a35619d71f

  var _default = _application.default.extend({
    keyForAttribute(str) {
      if (str === 'config' || str === 'member') {
        return str;
      }

      return _application.default.prototype.keyForAttribute.apply(this, arguments);
    }

  });

  _exports.default = _default;
});
;define("nomad-ui/mirage/serializers/allocation", ["exports", "nomad-ui/mirage/serializers/application", "nomad-ui/mirage/utils"], function (_exports, _application, _utils) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"nomad-ui/mirage/serializers/application",0,"nomad-ui/mirage/utils"eaimeta@70e063a35619d71f

  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }

  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  var _default = _application.default.extend({
    embed: true,
    include: ['taskStates', 'taskResources'],

    serialize() {
      var json = _application.default.prototype.serialize.apply(this, arguments);

      if (json instanceof Array) {
        json.forEach(serializeAllocation);
      } else {
        serializeAllocation(json);
      }

      return json;
    }

  });

  _exports.default = _default;

  function serializeAllocation(allocation) {
    allocation.TaskStates = allocation.TaskStates.reduce((0, _utils.arrToObj)('Name'), {});
    const {
      Ports,
      Networks
    } = allocation.TaskResources[0] ? allocation.TaskResources[0].Resources : {};
    allocation.AllocatedResources = {
      Shared: {
        Ports,
        Networks
      },
      Tasks: allocation.TaskResources.map(_ref => {
        let {
          Name,
          Resources
        } = _ref;
        return _objectSpread({
          Name
        }, Resources);
      }).reduce((0, _utils.arrToObj)('Name'), {})
    };
  }
});
;define("nomad-ui/mirage/serializers/application", ["exports", "@ember/string", "ember-cli-mirage"], function (_exports, _string, _emberCliMirage) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/string",0,"ember-cli-mirage"eaimeta@70e063a35619d71f

  const keyCase = str => str === 'id' ? 'ID' : (0, _string.capitalize)((0, _string.camelize)(str)).replace(/Id/g, 'ID');

  var _default = _emberCliMirage.RestSerializer.extend({
    serialize() {
      const json = _emberCliMirage.RestSerializer.prototype.serialize.apply(this, arguments);

      const keys = Object.keys(json);

      if (keys.length === 1) {
        return json[keys[0]];
      } else {
        return json;
      }
    },

    keyForModel: keyCase,
    keyForForeignKey: str => `${keyCase(str)}ID`,
    keyForCollection: keyCase,
    keyForAttribute: keyCase,
    keyForRelationship: keyCase,
    keyForRelationshipIds: keyCase,
    keyForEmbeddedRelationship: keyCase
  });

  _exports.default = _default;
});
;define("nomad-ui/mirage/serializers/csi-plugin", ["exports", "nomad-ui/mirage/serializers/application"], function (_exports, _application) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"nomad-ui/mirage/serializers/application"eaimeta@70e063a35619d71f

  var _default = _application.default.extend({
    embed: true,
    include: ['nodes', 'controllers']
  });

  _exports.default = _default;
});
;define("nomad-ui/mirage/serializers/csi-volume", ["exports", "nomad-ui/mirage/serializers/application"], function (_exports, _application) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"nomad-ui/mirage/serializers/application"eaimeta@70e063a35619d71f

  const groupBy = (list, attr) => {
    return list.reduce((group, item) => {
      group[item[attr]] = item;
      return group;
    }, {});
  };

  var _default = _application.default.extend({
    embed: true,
    include: ['writeAllocs', 'readAllocs', 'allocations'],

    serialize() {
      var json = _application.default.prototype.serialize.apply(this, arguments);

      if (json instanceof Array) {
        json.forEach(serializeVolumeFromArray);
      } else {
        serializeVolume(json);
      }

      return json;
    }

  });

  _exports.default = _default;

  function serializeVolumeFromArray(volume) {
    volume.CurrentWriters = volume.WriteAllocs.length;
    delete volume.WriteAllocs;
    volume.CurrentReaders = volume.ReadAllocs.length;
    delete volume.ReadAllocs;
  }

  function serializeVolume(volume) {
    volume.WriteAllocs = groupBy(volume.WriteAllocs, 'ID');
    volume.ReadAllocs = groupBy(volume.ReadAllocs, 'ID');
  }
});
;define("nomad-ui/mirage/serializers/deployment", ["exports", "nomad-ui/mirage/serializers/application", "nomad-ui/mirage/utils"], function (_exports, _application, _utils) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"nomad-ui/mirage/serializers/application",0,"nomad-ui/mirage/utils"eaimeta@70e063a35619d71f

  var _default = _application.default.extend({
    embed: true,
    include: ['deploymentTaskGroupSummaries'],

    serialize() {
      var json = _application.default.prototype.serialize.apply(this, arguments);

      if (json instanceof Array) {
        json.forEach(serializeDeployment);
      } else {
        serializeDeployment(json);
      }

      return json;
    }

  });

  _exports.default = _default;

  function serializeDeployment(deployment) {
    deployment.TaskGroups = deployment.DeploymentTaskGroupSummaries.reduce((0, _utils.arrToObj)('Name'), {});
  }
});
;define("nomad-ui/mirage/serializers/evaluation", ["exports", "nomad-ui/mirage/serializers/application"], function (_exports, _application) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"nomad-ui/mirage/serializers/application"eaimeta@70e063a35619d71f

  var _default = _application.default.extend({
    embed: true,
    include: ['relatedEvals']
  });

  _exports.default = _default;
});
;define("nomad-ui/mirage/serializers/job-scale", ["exports", "nomad-ui/mirage/serializers/application", "nomad-ui/mirage/utils"], function (_exports, _application, _utils) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"nomad-ui/mirage/serializers/application",0,"nomad-ui/mirage/utils"eaimeta@70e063a35619d71f

  var _default = _application.default.extend({
    embed: true,
    include: ['taskGroupScales'],

    serialize() {
      var json = _application.default.prototype.serialize.apply(this, arguments);

      if (json instanceof Array) {
        json.forEach(serializeJobScale);
      } else {
        serializeJobScale(json);
      }

      return json;
    }

  });

  _exports.default = _default;

  function serializeJobScale(jobScale) {
    jobScale.TaskGroups = jobScale.TaskGroupScales.reduce((0, _utils.arrToObj)('Name'), {});
  }
});
;define("nomad-ui/mirage/serializers/job-version", ["exports", "nomad-ui/mirage/serializers/application"], function (_exports, _application) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"nomad-ui/mirage/serializers/application"eaimeta@70e063a35619d71f

  var _default = _application.default.extend({
    serialize() {
      var json = _application.default.prototype.serialize.apply(this, arguments);

      if (!(json instanceof Array)) {
        json = [json];
      }

      return json.sortBy('SubmitTime').reverse().reduce((hash, version) => {
        hash.Diffs.push(version.Diff);
        delete version.Diff; // ID is used for record tracking within Mirage,
        // but Nomad uses the JobID as the version ID.

        version.ID = version.TempVersionID;
        hash.Versions.push(version);
        return hash;
      }, {
        Versions: [],
        Diffs: []
      });
    }

  });

  _exports.default = _default;
});
;define("nomad-ui/mirage/serializers/job", ["exports", "nomad-ui/mirage/serializers/application"], function (_exports, _application) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"nomad-ui/mirage/serializers/application"eaimeta@70e063a35619d71f

  var _default = _application.default.extend({
    embed: true,
    include: ['taskGroups', 'jobSummary'],

    serialize() {
      var json = _application.default.prototype.serialize.apply(this, arguments);

      if (json instanceof Array) {
        json.forEach(serializeJob);
      } else {
        serializeJob(json);
      }

      return json;
    }

  });

  _exports.default = _default;

  function serializeJob(job) {
    job.TaskGroups.forEach(group => {
      if (group.Services.length === 0) {
        group.Services = null;
      }
    });
  }
});
;define("nomad-ui/mirage/serializers/node", ["exports", "nomad-ui/mirage/serializers/application"], function (_exports, _application) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"nomad-ui/mirage/serializers/application"eaimeta@70e063a35619d71f

  var _default = _application.default.extend({
    embed: true,
    include: ['events']
  });

  _exports.default = _default;
});
;define("nomad-ui/mirage/serializers/recommendation", ["exports", "nomad-ui/mirage/serializers/application"], function (_exports, _application) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"nomad-ui/mirage/serializers/application"eaimeta@70e063a35619d71f

  var _default = _application.default.extend({
    embed: true,
    include: ['task', 'task.task-group'],

    serialize() {
      var json = _application.default.prototype.serialize.apply(this, arguments);

      if (json instanceof Array) {
        json.forEach(recommendationJson => serializeRecommendation(recommendationJson, this.schema));
      } else {
        serializeRecommendation(json, this.schema);
      }

      return json;
    }

  });

  _exports.default = _default;

  function serializeRecommendation(recommendation, schema) {
    const taskJson = recommendation.Task;
    recommendation.Task = taskJson.Name;
    const taskGroup = schema.taskGroups.find(taskJson.TaskGroupID);
    recommendation.Group = taskGroup.name;
    recommendation.JobID = taskGroup.job.id;
    recommendation.Namespace = taskGroup.job.namespace || 'default';
    return recommendation;
  }
});
;define("nomad-ui/mirage/serializers/region", ["exports", "nomad-ui/mirage/serializers/application"], function (_exports, _application) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"nomad-ui/mirage/serializers/application"eaimeta@70e063a35619d71f

  var _default = _application.default.extend({
    serialize() {
      var json = _application.default.prototype.serialize.apply(this, arguments);

      return [].concat(json).mapBy('ID');
    }

  });

  _exports.default = _default;
});
;define("nomad-ui/mirage/serializers/task-group-scale", ["exports", "nomad-ui/mirage/serializers/application"], function (_exports, _application) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"nomad-ui/mirage/serializers/application"eaimeta@70e063a35619d71f

  var _default = _application.default.extend({
    embed: true,
    include: ['events']
  });

  _exports.default = _default;
});
;define("nomad-ui/mirage/serializers/task-group", ["exports", "nomad-ui/mirage/serializers/application"], function (_exports, _application) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"nomad-ui/mirage/serializers/application"eaimeta@70e063a35619d71f

  var _default = _application.default.extend({
    embed: true,
    include: ['services', 'tasks']
  });

  _exports.default = _default;
});
;define("nomad-ui/mirage/serializers/task-state", ["exports", "nomad-ui/mirage/serializers/application"], function (_exports, _application) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"nomad-ui/mirage/serializers/application"eaimeta@70e063a35619d71f

  var _default = _application.default.extend({
    embed: true,
    include: ['events']
  });

  _exports.default = _default;
});
;define("nomad-ui/mirage/serializers/task", ["exports", "nomad-ui/mirage/serializers/application"], function (_exports, _application) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"nomad-ui/mirage/serializers/application"eaimeta@70e063a35619d71f

  var _default = _application.default.extend({
    embed: true,
    include: ['services']
  });

  _exports.default = _default;
});
;define("nomad-ui/mirage/serializers/token", ["exports", "nomad-ui/mirage/serializers/application"], function (_exports, _application) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"nomad-ui/mirage/serializers/application"eaimeta@70e063a35619d71f

  var _default = _application.default.extend({
    serializeIds: 'always',

    keyForRelationshipIds(relationship) {
      if (relationship === 'policies') {
        return 'Policies';
      }

      return _application.default.prototype.keyForRelationshipIds.apply(this, arguments);
    }

  });

  _exports.default = _default;
});
;define("nomad-ui/mirage/utils", ["exports", "nomad-ui/mirage/faker"], function (_exports, _faker) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.provide = provide;
  _exports.provider = provider;
  _exports.pickOne = pickOne;
  _exports.arrToObj = arrToObj;
  _exports.generateAcceptanceTestEvalMock = void 0;
  0; //eaimeta@70e063a35619d71f0,"nomad-ui/mirage/faker"eaimeta@70e063a35619d71f

  function provide(count, provider) {
    if (typeof count === 'function') {
      count = count();
    }

    return Array(count).fill(null).map(provider);
  }

  function provider() {
    return () => provide(...arguments);
  }

  function pickOne(list, filterFn) {
    let candidates = list;

    if (filterFn) {
      candidates = list.filter(filterFn);
    }

    return candidates[_faker.default.random.number(candidates.length - 1)];
  }

  function arrToObj(prop) {
    let alias = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
    return (obj, element) => {
      const name = element[prop];
      delete element[prop];
      obj[name] = alias ? element[alias] : element;
      return obj;
    };
  }

  const generateAcceptanceTestEvalMock = id => {
    return {
      CreateIndex: 20,
      CreateTime: 1647899150314738000,
      ID: id,
      JobID: 'example',
      JobModifyIndex: 10,
      ModifyIndex: 31,
      ModifyTime: 1647899318007569000,
      Namespace: 'default',
      NextEval: 'fd1cd898-d655-c7e4-17f6-a1a2e98b18ef',
      PreviousEval: 'd8a5c14f-120a-3d83-6305-90927356dd6c',
      Priority: 50,
      RelatedEvals: [{
        BlockedEval: '',
        CreateIndex: 31,
        CreateTime: 1647899318007563000,
        DeploymentID: '',
        ID: 'fd1cd898-d655-c7e4-17f6-a1a2e98b18ef',
        JobID: 'example',
        ModifyIndex: 44,
        ModifyTime: 1647899591412413000,
        Namespace: 'default',
        NextEval: 'cac7dfa0-b79b-ee55-c86a-0ca89dffb9e1',
        NodeID: '',
        PreviousEval: id,
        Priority: 50,
        Status: 'failed',
        StatusDescription: 'evaluation reached delivery limit (3)',
        TriggeredBy: 'failed-follow-up',
        Type: 'service',
        WaitUntil: null
      }, {
        BlockedEval: '',
        CreateIndex: 31,
        CreateTime: 1647899318007563000,
        DeploymentID: '',
        ID: 'fd1cd898-d655-c7e4-17f6-a1a2e98b18ef-deux',
        JobID: 'example',
        ModifyIndex: 44,
        ModifyTime: 1647899591412413000,
        Namespace: 'default',
        NextEval: 'cac7dfa0-b79b-ee55-c86a-0ca89dffb9e1',
        NodeID: '',
        PreviousEval: id,
        Priority: 50,
        Status: 'failed',
        StatusDescription: 'evaluation reached delivery limit (3)',
        TriggeredBy: 'failed-follow-up',
        Type: 'service',
        WaitUntil: null
      }, {
        BlockedEval: '',
        CreateIndex: 10,
        CreateTime: 1647899129298997000,
        DeploymentID: '',
        ID: 'd8a5c14f-120a-3d83-6305-90927356dd6c',
        JobID: 'example',
        ModifyIndex: 20,
        ModifyTime: 1647899150314745000,
        Namespace: 'default',
        NextEval: id,
        NodeID: '',
        PreviousEval: '',
        Priority: 50,
        Status: 'failed',
        StatusDescription: 'evaluation reached delivery limit (3)',
        TriggeredBy: 'job-register',
        Type: 'service',
        WaitUntil: null
      }, {
        BlockedEval: '',
        CreateIndex: 44,
        CreateTime: 1647899591412410000,
        DeploymentID: '',
        ID: 'cac7dfa0-b79b-ee55-c86a-0ca89dffb9e1',
        JobID: 'example',
        ModifyIndex: 53,
        ModifyTime: 1647899729480596000,
        Namespace: 'default',
        NextEval: 'e49bf53c-da6a-c869-8317-f2089682f503',
        NodeID: '',
        PreviousEval: 'fd1cd898-d655-c7e4-17f6-a1a2e98b18ef',
        Priority: 50,
        Status: 'failed',
        StatusDescription: 'evaluation reached delivery limit (3)',
        TriggeredBy: 'failed-follow-up',
        Type: 'service',
        WaitUntil: null
      }, {
        BlockedEval: '',
        CreateIndex: 53,
        CreateTime: 1647899729480592000,
        DeploymentID: '',
        ID: 'e49bf53c-da6a-c869-8317-f2089682f503',
        JobID: 'example',
        ModifyIndex: 64,
        ModifyTime: 1647899881302731000,
        Namespace: 'default',
        NextEval: 'a8d29cfc-517c-2e4c-9722-b47e84152c64',
        NodeID: '',
        PreviousEval: 'cac7dfa0-b79b-ee55-c86a-0ca89dffb9e1',
        Priority: 50,
        Status: 'failed',
        StatusDescription: 'evaluation reached delivery limit (3)',
        TriggeredBy: 'failed-follow-up',
        Type: 'service',
        WaitUntil: null
      }, {
        BlockedEval: '',
        CreateIndex: 64,
        CreateTime: 1647899881302723000,
        DeploymentID: '',
        ID: 'a8d29cfc-517c-2e4c-9722-b47e84152c64',
        JobID: 'example',
        ModifyIndex: 81,
        ModifyTime: 1647900212725381000,
        Namespace: 'default',
        NextEval: 'b37d06e4-4eb4-b29d-3b4a-b0c7bf2528ad',
        NodeID: '',
        PreviousEval: 'e49bf53c-da6a-c869-8317-f2089682f503',
        Priority: 50,
        Status: 'failed',
        StatusDescription: 'evaluation reached delivery limit (3)',
        TriggeredBy: 'failed-follow-up',
        Type: 'service',
        WaitUntil: null
      }, {
        BlockedEval: '',
        CreateIndex: 81,
        CreateTime: 1647900212725376000,
        DeploymentID: '',
        ID: 'b37d06e4-4eb4-b29d-3b4a-b0c7bf2528ad',
        JobID: 'example',
        ModifyIndex: 97,
        ModifyTime: 1647900516944239000,
        Namespace: 'default',
        NextEval: 'd7c50aa5-5bf1-5119-d7e7-0d0ae5381856',
        NodeID: '',
        PreviousEval: 'a8d29cfc-517c-2e4c-9722-b47e84152c64',
        Priority: 50,
        Status: 'failed',
        StatusDescription: 'evaluation reached delivery limit (3)',
        TriggeredBy: 'failed-follow-up',
        Type: 'service',
        WaitUntil: null
      }, {
        BlockedEval: '',
        CreateIndex: 97,
        CreateTime: 1647900516944236000,
        DeploymentID: '',
        ID: 'd7c50aa5-5bf1-5119-d7e7-0d0ae5381856',
        JobID: 'example',
        ModifyIndex: 114,
        ModifyTime: 1647900825385587000,
        Namespace: 'default',
        NextEval: 'ea2239aa-26d6-8874-8c56-e1600585772b',
        NodeID: '',
        PreviousEval: 'b37d06e4-4eb4-b29d-3b4a-b0c7bf2528ad',
        Priority: 50,
        Status: 'failed',
        StatusDescription: 'evaluation reached delivery limit (3)',
        TriggeredBy: 'failed-follow-up',
        Type: 'service',
        WaitUntil: null
      }, {
        BlockedEval: '',
        CreateIndex: 114,
        CreateTime: 1647900825385584000,
        DeploymentID: '',
        ID: 'ea2239aa-26d6-8874-8c56-e1600585772b',
        JobID: 'example',
        ModifyIndex: 128,
        ModifyTime: 1647900979511304000,
        Namespace: 'default',
        NextEval: '25a2dd19-8d22-d1dd-280a-79860c9b8bdb',
        NodeID: '',
        PreviousEval: 'd7c50aa5-5bf1-5119-d7e7-0d0ae5381856',
        Priority: 50,
        Status: 'failed',
        StatusDescription: 'evaluation reached delivery limit (3)',
        TriggeredBy: 'failed-follow-up',
        Type: 'service',
        WaitUntil: null
      }, {
        BlockedEval: '',
        CreateIndex: 128,
        CreateTime: 1647900979511301000,
        DeploymentID: '',
        ID: '25a2dd19-8d22-d1dd-280a-79860c9b8bdb',
        JobID: 'example',
        ModifyIndex: 136,
        ModifyTime: 1647901211369652000,
        Namespace: 'default',
        NextEval: '1fded690-20ad-6afa-3b89-59e319dfce18',
        NodeID: '',
        PreviousEval: 'ea2239aa-26d6-8874-8c56-e1600585772b',
        Priority: 50,
        Status: 'failed',
        StatusDescription: 'evaluation reached delivery limit (3)',
        TriggeredBy: 'failed-follow-up',
        Type: 'service',
        WaitUntil: null
      }, {
        BlockedEval: '',
        CreateIndex: 136,
        CreateTime: 1647901211369648000,
        DeploymentID: '',
        ID: '1fded690-20ad-6afa-3b89-59e319dfce18',
        JobID: 'example',
        ModifyIndex: 136,
        ModifyTime: 1647901211369648000,
        Namespace: 'default',
        NextEval: '',
        NodeID: '',
        PreviousEval: '25a2dd19-8d22-d1dd-280a-79860c9b8bdb',
        Priority: 50,
        Status: 'pending',
        StatusDescription: '',
        TriggeredBy: 'failed-follow-up',
        Type: 'service',
        WaitUntil: null
      }],
      Status: 'failed',
      StatusDescription: 'evaluation reached delivery limit (3)',
      TriggeredBy: 'failed-follow-up',
      Type: 'service',
      Wait: 20000000000
    };
  };

  _exports.generateAcceptanceTestEvalMock = generateAcceptanceTestEvalMock;
});
;define("nomad-ui/mixins/click-outside", ["exports", "ember-click-outside/mixin"], function (_exports, _mixin) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _mixin.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-click-outside/mixin"eaimeta@70e063a35619d71f
});
;define("nomad-ui/mixins/searchable", ["exports", "@ember/object/mixin", "@ember/object", "@ember/object/computed", "fuse.js"], function (_exports, _mixin, _object, _computed, _fuse) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/object/mixin",0,"@ember/object",0,"@ember/object/computed",0,"fuse.js"eaimeta@70e063a35619d71f

  /**
    Searchable mixin
  
    Simple search filtering behavior for a list of objects.
  
    Properties to override:
      - searchTerm: the string to use as a query
      - searchProps: the props on each object to search
      -- exactMatchSearchProps: the props for exact search when props are different per search type
      -- regexSearchProps: the props for regex search when props are different per search type
      -- fuzzySearchProps: the props for fuzzy search when props are different per search type
      - exactMatchEnabled: (true) disable to not use the exact match search type
      - fuzzySearchEnabled: (false) enable to use the fuzzy search type
      - regexEnabled: (true) disable to disable the regex search type
      - listToSearch: the list of objects to search
  
    Properties provided:
      - listSearched: a subset of listToSearch of items that meet the search criteria
  */
  // eslint-disable-next-line ember/no-new-mixins
  var _default = _mixin.default.create({
    searchTerm: '',
    listToSearch: (0, _object.computed)(function () {
      return [];
    }),
    searchProps: null,
    exactMatchSearchProps: (0, _computed.reads)('searchProps'),
    regexSearchProps: (0, _computed.reads)('searchProps'),
    fuzzySearchProps: (0, _computed.reads)('searchProps'),
    // Three search modes
    exactMatchEnabled: true,
    fuzzySearchEnabled: false,
    includeFuzzySearchMatches: false,
    regexEnabled: true,

    // Search should reset pagination. Not every instance of
    // search will be paired with pagination, but it's still
    // preferable to generalize this rather than risking it being
    // forgotten on a single page.
    resetPagination() {
      if (this.currentPage != null) {
        this.set('currentPage', 1);
      }
    },

    fuse: (0, _object.computed)('fuzzySearchProps.[]', 'includeFuzzySearchMatches', 'listToSearch.[]', function () {
      return new _fuse.default(this.listToSearch, {
        shouldSort: true,
        threshold: 0.4,
        location: 0,
        distance: 100,
        tokenize: true,
        matchAllTokens: true,
        maxPatternLength: 32,
        minMatchCharLength: 1,
        includeMatches: this.includeFuzzySearchMatches,
        keys: this.fuzzySearchProps || [],

        getFn(item, key) {
          return (0, _object.get)(item, key);
        }

      });
    }),
    listSearched: (0, _object.computed)('exactMatchEnabled', 'exactMatchSearchProps.[]', 'fuse', 'fuzzySearchEnabled', 'fuzzySearchProps.[]', 'includeFuzzySearchMatches', 'listToSearch.[]', 'regexEnabled', 'regexSearchProps.[]', 'searchTerm', function () {
      const searchTerm = this.searchTerm.trim();

      if (!searchTerm || !searchTerm.length) {
        return this.listToSearch;
      }

      const results = [];

      if (this.exactMatchEnabled) {
        results.push(...exactMatchSearch(searchTerm, this.listToSearch, this.exactMatchSearchProps));
      }

      if (this.fuzzySearchEnabled) {
        let fuseSearchResults = this.fuse.search(searchTerm);

        if (this.includeFuzzySearchMatches) {
          fuseSearchResults = fuseSearchResults.map(result => {
            const item = result.item;
            item.set('fuzzySearchMatches', result.matches);
            return item;
          });
        }

        results.push(...fuseSearchResults);
      }

      if (this.regexEnabled) {
        results.push(...regexSearch(searchTerm, this.listToSearch, this.regexSearchProps));
      }

      return results.uniq();
    })
  });

  _exports.default = _default;

  function exactMatchSearch(term, list, keys) {
    if (term.length) {
      return list.filter(item => keys.some(key => (0, _object.get)(item, key) === term));
    }
  }

  function regexSearch(term, list, keys) {
    if (term.length) {
      try {
        const regex = new RegExp(term, 'i'); // Test the value of each key for each object against the regex
        // All that match are returned.

        return list.filter(item => keys.some(key => regex.test((0, _object.get)(item, key))));
      } catch (e) {// Swallow the error; most likely due to an eager search of an incomplete regex
      }

      return [];
    }
  }
});
;define("nomad-ui/mixins/sortable-factory", ["exports", "@ember/object/mixin", "ember", "@ember/object", "@ember/debug"], function (_exports, _mixin, _ember, _object, _debug) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = sortableFactory;
  0; //eaimeta@70e063a35619d71f0,"@ember/object/mixin",0,"ember",0,"@ember/object",0,"@ember/debug"eaimeta@70e063a35619d71f

  /**
    Sortable mixin factory
  
    Simple sorting behavior for a list of objects. Pass the list of properties
    you want the list to be live-sorted based on, or use the generic sortable.js
    if you don’t need that.
  
    Properties to override:
      - sortProperty: the property to sort by
      - sortDescending: when true, the list is reversed
      - listToSort: the list of objects to sort
  
    Properties provided:
      - listSorted: a copy of listToSort that has been sorted
  */
  function sortableFactory(properties, fromSortableMixin) {
    const eachProperties = properties.map(property => `listToSort.@each.${property}`); // eslint-disable-next-line ember/no-new-mixins

    return _mixin.default.create({
      // Override in mixin consumer
      sortProperty: null,
      sortDescending: true,
      listToSort: (0, _object.computed)(function () {
        return [];
      }),
      _sortableFactoryWarningPrinted: false,
      listSorted: (0, _object.computed)(...eachProperties, '_sortableFactoryWarningPrinted', 'listToSort.[]', 'sortDescending', 'sortProperty', function () {
        if (!this._sortableFactoryWarningPrinted && !_ember.default.testing) {
          let message = 'Using SortableFactory without property keys means the list will only sort when the members change, not when any of their properties change.';

          if (fromSortableMixin) {
            message += ' The Sortable mixin is deprecated in favor of SortableFactory.';
          }

          (true && (0, _debug.warn)(message, properties.length > 0, {
            id: 'nomad.no-sortable-properties'
          })); // eslint-disable-next-line ember/no-side-effects

          this.set('_sortableFactoryWarningPrinted', true);
        }

        const sorted = this.listToSort.compact().sortBy(this.sortProperty);

        if (this.sortDescending) {
          return sorted.reverse();
        }

        return sorted;
      })
    });
  }
});
;define("nomad-ui/mixins/sortable", ["exports", "nomad-ui/mixins/sortable-factory"], function (_exports, _sortableFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"nomad-ui/mixins/sortable-factory"eaimeta@70e063a35619d71f

  // A generic version of SortableFactory with no sort property dependent keys.
  var _default = (0, _sortableFactory.default)([], true);

  _exports.default = _default;
});
;define("nomad-ui/mixins/window-resizable", ["exports", "@ember/object/mixin", "@ember/runloop", "@ember/debug", "@ember/object/evented"], function (_exports, _mixin, _runloop, _debug, _evented) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/object/mixin",0,"@ember/runloop",0,"@ember/debug",0,"@ember/object/evented"eaimeta@70e063a35619d71f

  // eslint-disable-next-line ember/no-new-mixins
  var _default = _mixin.default.create({
    windowResizeHandler() {
      (true && !(false) && (0, _debug.assert)('windowResizeHandler needs to be overridden in the Component', false));
    },

    setupWindowResize: (0, _evented.on)('didInsertElement', function () {
      (0, _runloop.scheduleOnce)('afterRender', this, this.addResizeListener);
    }),

    addResizeListener() {
      this.set('_windowResizeHandler', this.windowResizeHandler.bind(this));
      window.addEventListener('resize', this._windowResizeHandler);
    },

    removeWindowResize: (0, _evented.on)('willDestroyElement', function () {
      window.removeEventListener('resize', this._windowResizeHandler);
    })
  });

  _exports.default = _default;
});
;define("nomad-ui/mixins/with-component-visibility-detection", ["exports", "ember", "@ember/object/mixin", "@ember/debug", "@ember/object/evented"], function (_exports, _ember, _mixin, _debug, _evented) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember",0,"@ember/object/mixin",0,"@ember/debug",0,"@ember/object/evented"eaimeta@70e063a35619d71f

  // eslint-disable-next-line ember/no-new-mixins
  var _default = _mixin.default.create({
    visibilityHandler() {
      (true && !(false) && (0, _debug.assert)('visibilityHandler needs to be overridden in the Component', false));
    },

    setupDocumentVisibility: (0, _evented.on)('init', function () {
      if (!_ember.default.testing) {
        this.set('_visibilityHandler', this.visibilityHandler.bind(this));
        document.addEventListener('visibilitychange', this._visibilityHandler);
      }
    }),
    removeDocumentVisibility: (0, _evented.on)('init', function () {
      if (!_ember.default.testing) {
        document.removeEventListener('visibilitychange', this._visibilityHandler);
      }
    })
  });

  _exports.default = _default;
});
;define("nomad-ui/mixins/with-forbidden-state", ["exports", "@ember/object/mixin"], function (_exports, _mixin) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/object/mixin"eaimeta@70e063a35619d71f

  // eslint-disable-next-line ember/no-new-mixins
  var _default = _mixin.default.create({
    setupController(controller) {
      if (this.isForbidden) {
        this.set('isForbidden', undefined);
        controller.set('isForbidden', true);
      }

      this._super(...arguments);
    },

    resetController(controller) {
      controller.set('isForbidden', false);

      this._super(...arguments);
    }

  });

  _exports.default = _default;
});
;define("nomad-ui/mixins/with-model-error-handling", ["exports", "@ember/object/mixin", "nomad-ui/utils/notify-error"], function (_exports, _mixin, _notifyError) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/object/mixin",0,"nomad-ui/utils/notify-error"eaimeta@70e063a35619d71f

  // eslint-disable-next-line ember/no-new-mixins
  var _default = _mixin.default.create({
    model() {
      return this._super(...arguments).catch((0, _notifyError.default)(this));
    }

  });

  _exports.default = _default;
});
;define("nomad-ui/mixins/with-namespace-resetting", ["exports", "@ember/controller", "@ember/service", "@ember/object/mixin"], function (_exports, _controller, _service, _mixin) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/controller",0,"@ember/service",0,"@ember/object/mixin"eaimeta@70e063a35619d71f

  // eslint-disable-next-line ember/no-new-mixins
  var _default = _mixin.default.create({
    system: (0, _service.inject)(),
    jobsController: (0, _controller.inject)('jobs'),
    actions: {
      gotoJobs(namespace) {
        // Since the setupController hook doesn't fire when transitioning up the
        // route hierarchy, the two sides of the namespace bindings need to be manipulated
        // in order for the jobs route model to reload.
        this.set('jobsController.jobNamespace', namespace.get('id'));
        this.transitionToRoute('jobs');
      }

    }
  });

  _exports.default = _default;
});
;define("nomad-ui/mixins/with-route-visibility-detection", ["exports", "ember", "@ember/object/mixin", "@ember/debug", "@ember/object/evented"], function (_exports, _ember, _mixin, _debug, _evented) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember",0,"@ember/object/mixin",0,"@ember/debug",0,"@ember/object/evented"eaimeta@70e063a35619d71f

  // eslint-disable-next-line ember/no-new-mixins
  var _default = _mixin.default.create({
    visibilityHandler() {
      (true && !(false) && (0, _debug.assert)('visibilityHandler needs to be overridden in the Route', false));
    },

    setupDocumentVisibility: (0, _evented.on)('activate', function () {
      if (!_ember.default.testing) {
        this.set('_visibilityHandler', this.visibilityHandler.bind(this));
        document.addEventListener('visibilitychange', this._visibilityHandler);
      }
    }),
    removeDocumentVisibility: (0, _evented.on)('deactivate', function () {
      if (!_ember.default.testing) {
        document.removeEventListener('visibilitychange', this._visibilityHandler);
      }
    })
  });

  _exports.default = _default;
});
;define("nomad-ui/mixins/with-watchers", ["exports", "@ember/object/mixin", "@ember/object", "@ember/debug", "nomad-ui/mixins/with-route-visibility-detection"], function (_exports, _mixin, _object, _debug, _withRouteVisibilityDetection) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/object/mixin",0,"@ember/object",0,"@ember/debug",0,"nomad-ui/mixins/with-route-visibility-detection"eaimeta@70e063a35619d71f

  // eslint-disable-next-line ember/no-new-mixins
  var _default = _mixin.default.create(_withRouteVisibilityDetection.default, {
    watchers: (0, _object.computed)(function () {
      return [];
    }),

    cancelAllWatchers() {
      this.watchers.forEach(watcher => {
        (true && !(!!watcher.cancelAll) && (0, _debug.assert)('Watchers must be Ember Concurrency Tasks.', !!watcher.cancelAll));
        watcher.cancelAll();
      });
    },

    startWatchers() {
      (true && !(false) && (0, _debug.assert)('startWatchers needs to be overridden in the Route', false));
    },

    setupController() {
      this.startWatchers(...arguments);
      return this._super(...arguments);
    },

    visibilityHandler() {
      if (document.hidden) {
        this.cancelAllWatchers();
      } else {
        this.startWatchers(this.controller, this.controller.get('model'));
      }
    },

    actions: {
      willTransition(transition) {
        // Don't cancel watchers if transitioning into a sub-route
        // Make sure, if it starts with the route name, that it's not the same route
        if (!transition.intent.name || !(transition.intent.name.startsWith(this.routeName) && this.routeName !== transition.intent.name)) {
          this.cancelAllWatchers();
        } // Bubble the action up to the application route


        return true;
      }

    }
  });

  _exports.default = _default;
});
;define("nomad-ui/models/agent", ["exports", "@ember/service", "@ember/object", "@ember-data/model", "nomad-ui/utils/format-host"], function (_exports, _service, _object, _model, _formatHost) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _dec9, _dec10, _dec11, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8, _descriptor9;

  0; //eaimeta@70e063a35619d71f0,"@ember/service",0,"@ember/object",0,"@ember-data/model",0,"@ember-data/model",0,"ember-classic-decorator",0,"nomad-ui/utils/format-host"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let Agent = (_dec = (0, _model.attr)('string'), _dec2 = (0, _model.attr)('string'), _dec3 = (0, _model.attr)('string'), _dec4 = (0, _model.attr)('string'), _dec5 = (0, _model.attr)({
    defaultValue: () => ({})
  }), _dec6 = (0, _model.attr)('string'), _dec7 = (0, _model.attr)('string'), _dec8 = (0, _model.attr)('string'), _dec9 = (0, _object.computed)('address', 'port'), _dec10 = (0, _object.computed)('rpcAddr', 'system.leader.rpcAddr'), _dec11 = (0, _object.computed)('tags.build'), classic(_class = (_class2 = class Agent extends _model.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "system", _descriptor, this);

      _initializerDefineProperty(this, "name", _descriptor2, this);

      _initializerDefineProperty(this, "address", _descriptor3, this);

      _initializerDefineProperty(this, "serfPort", _descriptor4, this);

      _initializerDefineProperty(this, "rpcPort", _descriptor5, this);

      _initializerDefineProperty(this, "tags", _descriptor6, this);

      _initializerDefineProperty(this, "status", _descriptor7, this);

      _initializerDefineProperty(this, "datacenter", _descriptor8, this);

      _initializerDefineProperty(this, "region", _descriptor9, this);
    }

    get rpcAddr() {
      const {
        address,
        rpcPort
      } = this;
      return (0, _formatHost.default)(address, rpcPort);
    }

    get isLeader() {
      return this.get('system.leader.rpcAddr') === this.rpcAddr;
    }

    get version() {
      var _this$tags;

      return ((_this$tags = this.tags) === null || _this$tags === void 0 ? void 0 : _this$tags.build) || '';
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "system", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "name", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, "address", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, "serfPort", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor5 = _applyDecoratedDescriptor(_class2.prototype, "rpcPort", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor6 = _applyDecoratedDescriptor(_class2.prototype, "tags", [_dec5], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor7 = _applyDecoratedDescriptor(_class2.prototype, "status", [_dec6], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor8 = _applyDecoratedDescriptor(_class2.prototype, "datacenter", [_dec7], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor9 = _applyDecoratedDescriptor(_class2.prototype, "region", [_dec8], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "rpcAddr", [_dec9], Object.getOwnPropertyDescriptor(_class2.prototype, "rpcAddr"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "isLeader", [_dec10], Object.getOwnPropertyDescriptor(_class2.prototype, "isLeader"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "version", [_dec11], Object.getOwnPropertyDescriptor(_class2.prototype, "version"), _class2.prototype)), _class2)) || _class);
  _exports.default = Agent;
});
;define("nomad-ui/models/allocation", ["exports", "@ember/service", "@ember/object", "@ember/object/computed", "@ember-data/model", "ember-data-model-fragments/attributes", "lodash.isequal", "lodash.intersection", "nomad-ui/utils/properties/short-uuid"], function (_exports, _service, _object, _computed, _model, _attributes, _lodash, _lodash2, _shortUuid) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _dec9, _dec10, _dec11, _dec12, _dec13, _dec14, _dec15, _dec16, _dec17, _dec18, _dec19, _dec20, _dec21, _dec22, _dec23, _dec24, _dec25, _dec26, _dec27, _dec28, _dec29, _dec30, _dec31, _dec32, _dec33, _dec34, _dec35, _dec36, _dec37, _dec38, _dec39, _dec40, _dec41, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8, _descriptor9, _descriptor10, _descriptor11, _descriptor12, _descriptor13, _descriptor14, _descriptor15, _descriptor16, _descriptor17, _descriptor18, _descriptor19, _descriptor20, _descriptor21, _descriptor22, _descriptor23, _descriptor24, _descriptor25, _descriptor26, _descriptor27, _descriptor28, _descriptor29, _descriptor30, _descriptor31, _descriptor32, _descriptor33;

  0; //eaimeta@70e063a35619d71f0,"@ember/service",0,"@ember/object",0,"@ember/object/computed",0,"@ember-data/model",0,"@ember-data/model",0,"ember-data-model-fragments/attributes",0,"lodash.isequal",0,"lodash.intersection",0,"nomad-ui/utils/properties/short-uuid",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;
  const STATUS_ORDER = {
    pending: 1,
    running: 2,
    complete: 3,
    unknown: 4,
    failed: 5,
    lost: 6
  };
  let Allocation = (_dec = (0, _shortUuid.default)('id'), _dec2 = (0, _model.belongsTo)('job'), _dec3 = (0, _model.belongsTo)('node'), _dec4 = (0, _model.attr)('string'), _dec5 = (0, _model.attr)('string'), _dec6 = (0, _model.attr)('string'), _dec7 = (0, _model.attr)('string'), _dec8 = (0, _attributes.fragment)('resources'), _dec9 = (0, _attributes.fragment)('resources'), _dec10 = (0, _model.attr)('number'), _dec11 = (0, _model.attr)('number'), _dec12 = (0, _model.attr)('date'), _dec13 = (0, _model.attr)('number'), _dec14 = (0, _model.attr)('date'), _dec15 = (0, _model.attr)('string'), _dec16 = (0, _model.attr)('string'), _dec17 = (0, _model.attr)(), _dec18 = (0, _model.attr)(), _dec19 = (0, _object.computed)(''), _dec20 = (0, _object.computed)('clientStatus'), _dec21 = (0, _computed.equal)('clientStatus', 'running'), _dec22 = (0, _model.attr)('boolean'), _dec23 = (0, _object.computed)('clientStatus'), _dec24 = (0, _computed.none)('allocationTaskGroup'), _dec25 = (0, _model.belongsTo)('allocation', {
    inverse: 'nextAllocation'
  }), _dec26 = (0, _model.belongsTo)('allocation', {
    inverse: 'previousAllocation'
  }), _dec27 = (0, _model.hasMany)('allocation', {
    inverse: 'preemptedByAllocation'
  }), _dec28 = (0, _model.belongsTo)('allocation', {
    inverse: 'preemptedAllocations'
  }), _dec29 = (0, _model.attr)('boolean'), _dec30 = (0, _model.belongsTo)('evaluation'), _dec31 = (0, _object.computed)('clientStatus'), _dec32 = (0, _object.computed)('jobVersion', 'job.version'), _dec33 = (0, _object.computed)('isOld', 'jobTaskGroup', 'allocationTaskGroup'), _dec34 = (0, _object.computed)('taskGroupName', 'job.taskGroups.[]'), _dec35 = (0, _attributes.fragment)('task-group', {
    defaultValue: null
  }), _dec36 = (0, _object.computed)('taskGroup.drivers.[]', 'node.unhealthyDriverNames.[]'), _dec37 = (0, _object.computed)('name'), _dec38 = (0, _attributes.fragmentArray)('task-state'), _dec39 = (0, _attributes.fragmentArray)('reschedule-event'), _dec40 = (0, _object.computed)('rescheduleEvents.length', 'nextAllocation'), _dec41 = (0, _object.computed)('clientStatus', 'followUpEvaluation.content', 'nextAllocation.content'), classic(_class = (_class2 = class Allocation extends _model.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "token", _descriptor, this);

      _initializerDefineProperty(this, "store", _descriptor2, this);

      _initializerDefineProperty(this, "shortId", _descriptor3, this);

      _initializerDefineProperty(this, "job", _descriptor4, this);

      _initializerDefineProperty(this, "node", _descriptor5, this);

      _initializerDefineProperty(this, "namespace", _descriptor6, this);

      _initializerDefineProperty(this, "nodeID", _descriptor7, this);

      _initializerDefineProperty(this, "name", _descriptor8, this);

      _initializerDefineProperty(this, "taskGroupName", _descriptor9, this);

      _initializerDefineProperty(this, "resources", _descriptor10, this);

      _initializerDefineProperty(this, "allocatedResources", _descriptor11, this);

      _initializerDefineProperty(this, "jobVersion", _descriptor12, this);

      _initializerDefineProperty(this, "modifyIndex", _descriptor13, this);

      _initializerDefineProperty(this, "modifyTime", _descriptor14, this);

      _initializerDefineProperty(this, "createIndex", _descriptor15, this);

      _initializerDefineProperty(this, "createTime", _descriptor16, this);

      _initializerDefineProperty(this, "clientStatus", _descriptor17, this);

      _initializerDefineProperty(this, "desiredStatus", _descriptor18, this);

      _initializerDefineProperty(this, "desiredTransition", _descriptor19, this);

      _initializerDefineProperty(this, "deploymentStatus", _descriptor20, this);

      _initializerDefineProperty(this, "healthChecks", _descriptor21, this);

      _initializerDefineProperty(this, "isRunning", _descriptor22, this);

      _initializerDefineProperty(this, "isMigrating", _descriptor23, this);

      _initializerDefineProperty(this, "isPartial", _descriptor24, this);

      _initializerDefineProperty(this, "previousAllocation", _descriptor25, this);

      _initializerDefineProperty(this, "nextAllocation", _descriptor26, this);

      _initializerDefineProperty(this, "preemptedAllocations", _descriptor27, this);

      _initializerDefineProperty(this, "preemptedByAllocation", _descriptor28, this);

      _initializerDefineProperty(this, "wasPreempted", _descriptor29, this);

      _initializerDefineProperty(this, "followUpEvaluation", _descriptor30, this);

      _initializerDefineProperty(this, "allocationTaskGroup", _descriptor31, this);

      _initializerDefineProperty(this, "states", _descriptor32, this);

      _initializerDefineProperty(this, "rescheduleEvents", _descriptor33, this);
    }

    get isCanary() {
      var _this$deploymentStatu;

      return (_this$deploymentStatu = this.deploymentStatus) === null || _this$deploymentStatu === void 0 ? void 0 : _this$deploymentStatu.Canary;
    } // deploymentStatus.Healthy can be true, false, or null. Null implies pending


    get isHealthy() {
      var _this$deploymentStatu2;

      return (_this$deploymentStatu2 = this.deploymentStatus) === null || _this$deploymentStatu2 === void 0 ? void 0 : _this$deploymentStatu2.Healthy;
    }

    get isUnhealthy() {
      var _this$deploymentStatu3;

      return ((_this$deploymentStatu3 = this.deploymentStatus) === null || _this$deploymentStatu3 === void 0 ? void 0 : _this$deploymentStatu3.Healthy) === false;
    }

    get willNotRestart() {
      return this.clientStatus === 'failed' || this.clientStatus === 'lost';
    }

    get willNotReschedule() {
      return this.willNotRestart && !this.get('nextAllocation.content') && !this.get('followUpEvaluation.content');
    }

    get hasBeenRescheduled() {
      return this.get('followUpEvaluation.content');
    }

    get hasBeenRestarted() {
      return this.states.map(s => s.events.content).flat().find(e => e.type === 'Restarting');
    }

    async getServiceHealth() {
      const data = await this.store.adapterFor('allocation').check(this); // Compare Results

      if (!(0, _lodash.default)(this.healthChecks, data)) {
        this.set('healthChecks', data);
      }
    }

    get plainJobId() {
      return JSON.parse(this.belongsTo('job').id())[0];
    }

    get statusIndex() {
      return STATUS_ORDER[this.clientStatus] || 100;
    }

    get isScheduled() {
      return ['pending', 'running'].includes(this.clientStatus);
    } // An allocation model created from any allocation list response will be lacking
    // many properties (some of which can always be null). This is an indicator that
    // the allocation needs to be reloaded to get the complete allocation state.


    get statusClass() {
      const classMap = {
        pending: 'is-pending',
        running: 'is-primary',
        complete: 'is-complete',
        failed: 'is-error',
        lost: 'is-light',
        unknown: 'is-unknown'
      };
      return classMap[this.clientStatus] || 'is-dark';
    }

    get isOld() {
      return this.jobVersion !== this.get('job.version');
    }

    get taskGroup() {
      if (!this.isOld) return this.jobTaskGroup;
      return this.allocationTaskGroup;
    }

    get jobTaskGroup() {
      const taskGroups = this.get('job.taskGroups');
      return taskGroups && taskGroups.findBy('name', this.taskGroupName);
    }

    get unhealthyDrivers() {
      const taskGroupUnhealthyDrivers = this.get('taskGroup.drivers');
      const nodeUnhealthyDrivers = this.get('node.unhealthyDriverNames');

      if (taskGroupUnhealthyDrivers && nodeUnhealthyDrivers) {
        return (0, _lodash2.default)(taskGroupUnhealthyDrivers, nodeUnhealthyDrivers);
      }

      return [];
    } // When per_alloc is set to true on a volume, the volumes are duplicated between active allocations.
    // We differentiate them with a [#] suffix, inferred from a volume's allocation's name property.


    get volumeExtension() {
      return this.name.substring(this.name.lastIndexOf('['));
    }

    get hasRescheduleEvents() {
      return this.get('rescheduleEvents.length') > 0 || this.nextAllocation;
    }

    get hasStoppedRescheduling() {
      return !this.get('nextAllocation.content') && !this.get('followUpEvaluation.content') && this.clientStatus === 'failed';
    }

    stop() {
      return this.store.adapterFor('allocation').stop(this);
    }

    restart(taskName) {
      return this.store.adapterFor('allocation').restart(this, taskName);
    }

    restartAll() {
      return this.store.adapterFor('allocation').restartAll(this);
    }

    ls(path) {
      return this.store.adapterFor('allocation').ls(this, path);
    }

    stat(path) {
      return this.store.adapterFor('allocation').stat(this, path);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "token", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "store", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, "shortId", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, "job", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor5 = _applyDecoratedDescriptor(_class2.prototype, "node", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor6 = _applyDecoratedDescriptor(_class2.prototype, "namespace", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor7 = _applyDecoratedDescriptor(_class2.prototype, "nodeID", [_dec5], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor8 = _applyDecoratedDescriptor(_class2.prototype, "name", [_dec6], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor9 = _applyDecoratedDescriptor(_class2.prototype, "taskGroupName", [_dec7], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor10 = _applyDecoratedDescriptor(_class2.prototype, "resources", [_dec8], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor11 = _applyDecoratedDescriptor(_class2.prototype, "allocatedResources", [_dec9], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor12 = _applyDecoratedDescriptor(_class2.prototype, "jobVersion", [_dec10], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor13 = _applyDecoratedDescriptor(_class2.prototype, "modifyIndex", [_dec11], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor14 = _applyDecoratedDescriptor(_class2.prototype, "modifyTime", [_dec12], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor15 = _applyDecoratedDescriptor(_class2.prototype, "createIndex", [_dec13], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor16 = _applyDecoratedDescriptor(_class2.prototype, "createTime", [_dec14], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor17 = _applyDecoratedDescriptor(_class2.prototype, "clientStatus", [_dec15], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor18 = _applyDecoratedDescriptor(_class2.prototype, "desiredStatus", [_dec16], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor19 = _applyDecoratedDescriptor(_class2.prototype, "desiredTransition", [_dec17], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor20 = _applyDecoratedDescriptor(_class2.prototype, "deploymentStatus", [_dec18], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor21 = _applyDecoratedDescriptor(_class2.prototype, "healthChecks", [_model.attr], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "plainJobId", [_dec19], Object.getOwnPropertyDescriptor(_class2.prototype, "plainJobId"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "statusIndex", [_dec20], Object.getOwnPropertyDescriptor(_class2.prototype, "statusIndex"), _class2.prototype), _descriptor22 = _applyDecoratedDescriptor(_class2.prototype, "isRunning", [_dec21], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor23 = _applyDecoratedDescriptor(_class2.prototype, "isMigrating", [_dec22], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "isScheduled", [_dec23], Object.getOwnPropertyDescriptor(_class2.prototype, "isScheduled"), _class2.prototype), _descriptor24 = _applyDecoratedDescriptor(_class2.prototype, "isPartial", [_dec24], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor25 = _applyDecoratedDescriptor(_class2.prototype, "previousAllocation", [_dec25], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor26 = _applyDecoratedDescriptor(_class2.prototype, "nextAllocation", [_dec26], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor27 = _applyDecoratedDescriptor(_class2.prototype, "preemptedAllocations", [_dec27], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor28 = _applyDecoratedDescriptor(_class2.prototype, "preemptedByAllocation", [_dec28], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor29 = _applyDecoratedDescriptor(_class2.prototype, "wasPreempted", [_dec29], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor30 = _applyDecoratedDescriptor(_class2.prototype, "followUpEvaluation", [_dec30], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "statusClass", [_dec31], Object.getOwnPropertyDescriptor(_class2.prototype, "statusClass"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "isOld", [_dec32], Object.getOwnPropertyDescriptor(_class2.prototype, "isOld"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "taskGroup", [_dec33], Object.getOwnPropertyDescriptor(_class2.prototype, "taskGroup"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "jobTaskGroup", [_dec34], Object.getOwnPropertyDescriptor(_class2.prototype, "jobTaskGroup"), _class2.prototype), _descriptor31 = _applyDecoratedDescriptor(_class2.prototype, "allocationTaskGroup", [_dec35], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "unhealthyDrivers", [_dec36], Object.getOwnPropertyDescriptor(_class2.prototype, "unhealthyDrivers"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "volumeExtension", [_dec37], Object.getOwnPropertyDescriptor(_class2.prototype, "volumeExtension"), _class2.prototype), _descriptor32 = _applyDecoratedDescriptor(_class2.prototype, "states", [_dec38], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor33 = _applyDecoratedDescriptor(_class2.prototype, "rescheduleEvents", [_dec39], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "hasRescheduleEvents", [_dec40], Object.getOwnPropertyDescriptor(_class2.prototype, "hasRescheduleEvents"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "hasStoppedRescheduling", [_dec41], Object.getOwnPropertyDescriptor(_class2.prototype, "hasStoppedRescheduling"), _class2.prototype)), _class2)) || _class);
  _exports.default = Allocation;
});
;define("nomad-ui/models/auth-method", ["exports", "@ember-data/model"], function (_exports, _model) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _dec9, _class, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8, _descriptor9;

  0; //eaimeta@70e063a35619d71f0,"@ember-data/model",0,"@ember-data/model"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let AuthMethodModel = (_dec = (0, _model.attr)('string'), _dec2 = (0, _model.attr)('string'), _dec3 = (0, _model.attr)('string'), _dec4 = (0, _model.attr)('string'), _dec5 = (0, _model.attr)('boolean'), _dec6 = (0, _model.attr)('date'), _dec7 = (0, _model.attr)('number'), _dec8 = (0, _model.attr)('date'), _dec9 = (0, _model.attr)('number'), (_class = class AuthMethodModel extends _model.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "name", _descriptor, this);

      _initializerDefineProperty(this, "type", _descriptor2, this);

      _initializerDefineProperty(this, "tokenLocality", _descriptor3, this);

      _initializerDefineProperty(this, "maxTokenTTL", _descriptor4, this);

      _initializerDefineProperty(this, "default", _descriptor5, this);

      _initializerDefineProperty(this, "createTime", _descriptor6, this);

      _initializerDefineProperty(this, "createIndex", _descriptor7, this);

      _initializerDefineProperty(this, "modifyTime", _descriptor8, this);

      _initializerDefineProperty(this, "modifyIndex", _descriptor9, this);
    }

    getAuthURL(params) {
      return this.store.adapterFor('authMethod').getAuthURL(params);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "name", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "type", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "tokenLocality", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, "maxTokenTTL", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor5 = _applyDecoratedDescriptor(_class.prototype, "default", [_dec5], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor6 = _applyDecoratedDescriptor(_class.prototype, "createTime", [_dec6], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor7 = _applyDecoratedDescriptor(_class.prototype, "createIndex", [_dec7], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor8 = _applyDecoratedDescriptor(_class.prototype, "modifyTime", [_dec8], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor9 = _applyDecoratedDescriptor(_class.prototype, "modifyIndex", [_dec9], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class));
  _exports.default = AuthMethodModel;
});
;define("nomad-ui/models/consul-connect", ["exports", "ember-data-model-fragments/fragment", "ember-data-model-fragments/attributes"], function (_exports, _fragment, _attributes) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _class, _descriptor;

  0; //eaimeta@70e063a35619d71f0,"ember-data-model-fragments/fragment",0,"ember-data-model-fragments/attributes"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let ConsulConnect = (_dec = (0, _attributes.fragment)('sidecar-service'), (_class = class ConsulConnect extends _fragment.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "sidecarService", _descriptor, this);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "sidecarService", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class));
  _exports.default = ConsulConnect;
});
;define("nomad-ui/models/deployment", ["exports", "@ember/object/computed", "@ember/object", "@ember/debug", "@ember-data/model", "ember-data-model-fragments/attributes", "nomad-ui/utils/properties/short-uuid", "nomad-ui/utils/properties/sum-aggregation"], function (_exports, _computed, _object, _debug, _model, _attributes, _shortUuid, _sumAggregation) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _dec9, _dec10, _dec11, _dec12, _dec13, _dec14, _dec15, _dec16, _dec17, _dec18, _dec19, _dec20, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8, _descriptor9, _descriptor10, _descriptor11, _descriptor12, _descriptor13, _descriptor14, _descriptor15, _descriptor16;

  0; //eaimeta@70e063a35619d71f0,"@ember/object/computed",0,"@ember/object",0,"@ember/debug",0,"@ember-data/model",0,"@ember-data/model",0,"ember-data-model-fragments/attributes",0,"nomad-ui/utils/properties/short-uuid",0,"nomad-ui/utils/properties/sum-aggregation",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let Deployment = (_dec = (0, _shortUuid.default)('id'), _dec2 = (0, _model.belongsTo)('job', {
    inverse: 'deployments'
  }), _dec3 = (0, _model.belongsTo)('job', {
    inverse: 'latestDeployment'
  }), _dec4 = (0, _model.attr)('number'), _dec5 = (0, _object.computed)('status', 'taskGroupSummaries.@each.{promoted,requiresPromotion}'), _dec6 = (0, _object.computed)('taskGroupSummaries.@each.autoPromote'), _dec7 = (0, _model.attr)('string'), _dec8 = (0, _model.attr)('string'), _dec9 = (0, _computed.equal)('status', 'running'), _dec10 = (0, _attributes.fragmentArray)('task-group-deployment-summary'), _dec11 = (0, _model.hasMany)('allocations'), _dec12 = (0, _object.computed)('versionNumber', 'job.versions.content.@each.number'), _dec13 = (0, _computed.alias)('version.submitTime'), _dec14 = (0, _sumAggregation.default)('taskGroupSummaries', 'placedCanaries'), _dec15 = (0, _sumAggregation.default)('taskGroupSummaries', 'desiredCanaries'), _dec16 = (0, _sumAggregation.default)('taskGroupSummaries', 'desiredTotal'), _dec17 = (0, _sumAggregation.default)('taskGroupSummaries', 'placedAllocs'), _dec18 = (0, _sumAggregation.default)('taskGroupSummaries', 'healthyAllocs'), _dec19 = (0, _sumAggregation.default)('taskGroupSummaries', 'unhealthyAllocs'), _dec20 = (0, _object.computed)('status'), classic(_class = (_class2 = class Deployment extends _model.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "shortId", _descriptor, this);

      _initializerDefineProperty(this, "job", _descriptor2, this);

      _initializerDefineProperty(this, "jobForLatest", _descriptor3, this);

      _initializerDefineProperty(this, "versionNumber", _descriptor4, this);

      _initializerDefineProperty(this, "status", _descriptor5, this);

      _initializerDefineProperty(this, "statusDescription", _descriptor6, this);

      _initializerDefineProperty(this, "isRunning", _descriptor7, this);

      _initializerDefineProperty(this, "taskGroupSummaries", _descriptor8, this);

      _initializerDefineProperty(this, "allocations", _descriptor9, this);

      _initializerDefineProperty(this, "versionSubmitTime", _descriptor10, this);

      _initializerDefineProperty(this, "placedCanaries", _descriptor11, this);

      _initializerDefineProperty(this, "desiredCanaries", _descriptor12, this);

      _initializerDefineProperty(this, "desiredTotal", _descriptor13, this);

      _initializerDefineProperty(this, "placedAllocs", _descriptor14, this);

      _initializerDefineProperty(this, "healthyAllocs", _descriptor15, this);

      _initializerDefineProperty(this, "unhealthyAllocs", _descriptor16, this);
    }

    // If any task group is not promoted yet requires promotion and the deployment
    // is still running, the deployment needs promotion.
    get requiresPromotion() {
      return this.status === 'running' && this.taskGroupSummaries.toArray().some(summary => summary.get('requiresPromotion') && !summary.get('promoted'));
    }

    get isAutoPromoted() {
      return this.taskGroupSummaries.toArray().every(summary => summary.get('autoPromote'));
    }

    get version() {
      return (this.get('job.versions') || []).findBy('number', this.versionNumber);
    } // Dependent keys can only go one level past an @each so an alias is needed


    get statusClass() {
      const classMap = {
        running: 'is-running',
        successful: 'is-primary',
        paused: 'is-light',
        failed: 'is-error',
        cancelled: 'is-cancelled'
      };
      return classMap[this.status] || 'is-dark';
    }

    promote() {
      (true && !(this.requiresPromotion) && (0, _debug.assert)('A deployment needs to requirePromotion to be promoted', this.requiresPromotion));
      return this.store.adapterFor('deployment').promote(this);
    }

    fail() {
      (true && !(this.isRunning) && (0, _debug.assert)('A deployment must be running to be failed', this.isRunning));
      return this.store.adapterFor('deployment').fail(this);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "shortId", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "job", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, "jobForLatest", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, "versionNumber", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "requiresPromotion", [_dec5], Object.getOwnPropertyDescriptor(_class2.prototype, "requiresPromotion"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "isAutoPromoted", [_dec6], Object.getOwnPropertyDescriptor(_class2.prototype, "isAutoPromoted"), _class2.prototype), _descriptor5 = _applyDecoratedDescriptor(_class2.prototype, "status", [_dec7], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor6 = _applyDecoratedDescriptor(_class2.prototype, "statusDescription", [_dec8], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor7 = _applyDecoratedDescriptor(_class2.prototype, "isRunning", [_dec9], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor8 = _applyDecoratedDescriptor(_class2.prototype, "taskGroupSummaries", [_dec10], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor9 = _applyDecoratedDescriptor(_class2.prototype, "allocations", [_dec11], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "version", [_dec12], Object.getOwnPropertyDescriptor(_class2.prototype, "version"), _class2.prototype), _descriptor10 = _applyDecoratedDescriptor(_class2.prototype, "versionSubmitTime", [_dec13], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor11 = _applyDecoratedDescriptor(_class2.prototype, "placedCanaries", [_dec14], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor12 = _applyDecoratedDescriptor(_class2.prototype, "desiredCanaries", [_dec15], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor13 = _applyDecoratedDescriptor(_class2.prototype, "desiredTotal", [_dec16], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor14 = _applyDecoratedDescriptor(_class2.prototype, "placedAllocs", [_dec17], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor15 = _applyDecoratedDescriptor(_class2.prototype, "healthyAllocs", [_dec18], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor16 = _applyDecoratedDescriptor(_class2.prototype, "unhealthyAllocs", [_dec19], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "statusClass", [_dec20], Object.getOwnPropertyDescriptor(_class2.prototype, "statusClass"), _class2.prototype)), _class2)) || _class);
  _exports.default = Deployment;
});
;define("nomad-ui/models/drain-strategy", ["exports", "@ember/object/computed", "@ember-data/model", "ember-data-model-fragments/fragment"], function (_exports, _computed, _model, _fragment) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5;

  0; //eaimeta@70e063a35619d71f0,"@ember/object/computed",0,"@ember-data/model",0,"ember-data-model-fragments/fragment",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let DrainStrategy = (_dec = (0, _model.attr)('number'), _dec2 = (0, _model.attr)('date'), _dec3 = (0, _model.attr)('boolean'), _dec4 = (0, _computed.lt)('deadline', 0), _dec5 = (0, _computed.equal)('deadline', 0), classic(_class = (_class2 = class DrainStrategy extends _fragment.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "deadline", _descriptor, this);

      _initializerDefineProperty(this, "forceDeadline", _descriptor2, this);

      _initializerDefineProperty(this, "ignoreSystemJobs", _descriptor3, this);

      _initializerDefineProperty(this, "isForced", _descriptor4, this);

      _initializerDefineProperty(this, "hasNoDeadline", _descriptor5, this);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "deadline", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "forceDeadline", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, "ignoreSystemJobs", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, "isForced", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor5 = _applyDecoratedDescriptor(_class2.prototype, "hasNoDeadline", [_dec5], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class2)) || _class);
  _exports.default = DrainStrategy;
});
;define("nomad-ui/models/evaluation-stub", ["exports", "@ember-data/model", "nomad-ui/utils/properties/short-uuid"], function (_exports, _model, _shortUuid) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _dec9, _dec10, _dec11, _dec12, _dec13, _dec14, _dec15, _dec16, _dec17, _dec18, _class, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8, _descriptor9, _descriptor10, _descriptor11, _descriptor12, _descriptor13, _descriptor14, _descriptor15, _descriptor16, _descriptor17, _descriptor18;

  0; //eaimeta@70e063a35619d71f0,"@ember-data/model",0,"nomad-ui/utils/properties/short-uuid"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let EvaluationStub = (_dec = (0, _shortUuid.default)('id'), _dec2 = (0, _model.attr)('number'), _dec3 = (0, _model.attr)('string'), _dec4 = (0, _model.attr)('string'), _dec5 = (0, _model.attr)('string'), _dec6 = (0, _model.attr)('string'), _dec7 = (0, _model.attr)('string'), _dec8 = (0, _model.attr)('string'), _dec9 = (0, _model.attr)('string'), _dec10 = (0, _model.attr)('string'), _dec11 = (0, _model.attr)('date'), _dec12 = (0, _model.attr)('string'), _dec13 = (0, _model.attr)('string'), _dec14 = (0, _model.attr)('string'), _dec15 = (0, _model.attr)('number'), _dec16 = (0, _model.attr)('date'), _dec17 = (0, _model.attr)('number'), _dec18 = (0, _model.attr)('date'), (_class = class EvaluationStub extends _model.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "shortId", _descriptor, this);

      _initializerDefineProperty(this, "priority", _descriptor2, this);

      _initializerDefineProperty(this, "type", _descriptor3, this);

      _initializerDefineProperty(this, "triggeredBy", _descriptor4, this);

      _initializerDefineProperty(this, "namespace", _descriptor5, this);

      _initializerDefineProperty(this, "jobId", _descriptor6, this);

      _initializerDefineProperty(this, "nodeId", _descriptor7, this);

      _initializerDefineProperty(this, "deploymentId", _descriptor8, this);

      _initializerDefineProperty(this, "status", _descriptor9, this);

      _initializerDefineProperty(this, "statusDescription", _descriptor10, this);

      _initializerDefineProperty(this, "waitUntil", _descriptor11, this);

      _initializerDefineProperty(this, "previousEval", _descriptor12, this);

      _initializerDefineProperty(this, "nextEval", _descriptor13, this);

      _initializerDefineProperty(this, "blockedEval", _descriptor14, this);

      _initializerDefineProperty(this, "modifyIndex", _descriptor15, this);

      _initializerDefineProperty(this, "modifyTime", _descriptor16, this);

      _initializerDefineProperty(this, "createIndex", _descriptor17, this);

      _initializerDefineProperty(this, "createTime", _descriptor18, this);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "shortId", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "priority", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "type", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, "triggeredBy", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor5 = _applyDecoratedDescriptor(_class.prototype, "namespace", [_dec5], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor6 = _applyDecoratedDescriptor(_class.prototype, "jobId", [_dec6], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor7 = _applyDecoratedDescriptor(_class.prototype, "nodeId", [_dec7], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor8 = _applyDecoratedDescriptor(_class.prototype, "deploymentId", [_dec8], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor9 = _applyDecoratedDescriptor(_class.prototype, "status", [_dec9], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor10 = _applyDecoratedDescriptor(_class.prototype, "statusDescription", [_dec10], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor11 = _applyDecoratedDescriptor(_class.prototype, "waitUntil", [_dec11], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor12 = _applyDecoratedDescriptor(_class.prototype, "previousEval", [_dec12], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor13 = _applyDecoratedDescriptor(_class.prototype, "nextEval", [_dec13], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor14 = _applyDecoratedDescriptor(_class.prototype, "blockedEval", [_dec14], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor15 = _applyDecoratedDescriptor(_class.prototype, "modifyIndex", [_dec15], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor16 = _applyDecoratedDescriptor(_class.prototype, "modifyTime", [_dec16], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor17 = _applyDecoratedDescriptor(_class.prototype, "createIndex", [_dec17], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor18 = _applyDecoratedDescriptor(_class.prototype, "createTime", [_dec18], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class));
  _exports.default = EvaluationStub;
});
;define("nomad-ui/models/evaluation", ["exports", "@ember/object/computed", "@ember-data/model", "ember-data-model-fragments/attributes", "nomad-ui/utils/properties/short-uuid"], function (_exports, _computed, _model, _attributes, _shortUuid) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _dec9, _dec10, _dec11, _dec12, _dec13, _dec14, _dec15, _dec16, _dec17, _dec18, _dec19, _dec20, _dec21, _dec22, _dec23, _class, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8, _descriptor9, _descriptor10, _descriptor11, _descriptor12, _descriptor13, _descriptor14, _descriptor15, _descriptor16, _descriptor17, _descriptor18, _descriptor19, _descriptor20, _descriptor21, _descriptor22, _descriptor23;

  0; //eaimeta@70e063a35619d71f0,"@ember/object/computed",0,"@ember-data/model",0,"@ember-data/model",0,"ember-data-model-fragments/attributes",0,"nomad-ui/utils/properties/short-uuid"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let Evaluation = (_dec = (0, _shortUuid.default)('id'), _dec2 = (0, _shortUuid.default)('nodeId'), _dec3 = (0, _model.attr)('number'), _dec4 = (0, _model.attr)('string'), _dec5 = (0, _model.attr)('string'), _dec6 = (0, _model.attr)('string'), _dec7 = (0, _model.attr)('string'), _dec8 = (0, _attributes.fragmentArray)('placement-failure', {
    defaultValue: () => []
  }), _dec9 = (0, _model.attr)('string'), _dec10 = (0, _model.attr)('string'), _dec11 = (0, _model.attr)('string'), _dec12 = (0, _model.hasMany)('evaluation-stub', {
    async: false
  }), _dec13 = (0, _computed.bool)('failedTGAllocs.length'), _dec14 = (0, _computed.equal)('status', 'blocked'), _dec15 = (0, _model.belongsTo)('job'), _dec16 = (0, _model.belongsTo)('node'), _dec17 = (0, _model.attr)('number'), _dec18 = (0, _model.attr)('date'), _dec19 = (0, _model.attr)('number'), _dec20 = (0, _model.attr)('date'), _dec21 = (0, _model.attr)('date'), _dec22 = (0, _model.attr)('string'), _dec23 = (0, _model.attr)('string'), (_class = class Evaluation extends _model.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "shortId", _descriptor, this);

      _initializerDefineProperty(this, "shortNodeId", _descriptor2, this);

      _initializerDefineProperty(this, "priority", _descriptor3, this);

      _initializerDefineProperty(this, "type", _descriptor4, this);

      _initializerDefineProperty(this, "triggeredBy", _descriptor5, this);

      _initializerDefineProperty(this, "status", _descriptor6, this);

      _initializerDefineProperty(this, "statusDescription", _descriptor7, this);

      _initializerDefineProperty(this, "failedTGAllocs", _descriptor8, this);

      _initializerDefineProperty(this, "previousEval", _descriptor9, this);

      _initializerDefineProperty(this, "nextEval", _descriptor10, this);

      _initializerDefineProperty(this, "blockedEval", _descriptor11, this);

      _initializerDefineProperty(this, "relatedEvals", _descriptor12, this);

      _initializerDefineProperty(this, "hasPlacementFailures", _descriptor13, this);

      _initializerDefineProperty(this, "isBlocked", _descriptor14, this);

      _initializerDefineProperty(this, "job", _descriptor15, this);

      _initializerDefineProperty(this, "node", _descriptor16, this);

      _initializerDefineProperty(this, "modifyIndex", _descriptor17, this);

      _initializerDefineProperty(this, "modifyTime", _descriptor18, this);

      _initializerDefineProperty(this, "createIndex", _descriptor19, this);

      _initializerDefineProperty(this, "createTime", _descriptor20, this);

      _initializerDefineProperty(this, "waitUntil", _descriptor21, this);

      _initializerDefineProperty(this, "namespace", _descriptor22, this);

      _initializerDefineProperty(this, "plainJobId", _descriptor23, this);
    }

    get hasJob() {
      return !!this.plainJobId;
    }

    get hasNode() {
      return !!this.belongsTo('node').id();
    }

    get nodeId() {
      return this.belongsTo('node').id();
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "shortId", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "shortNodeId", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "priority", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, "type", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor5 = _applyDecoratedDescriptor(_class.prototype, "triggeredBy", [_dec5], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor6 = _applyDecoratedDescriptor(_class.prototype, "status", [_dec6], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor7 = _applyDecoratedDescriptor(_class.prototype, "statusDescription", [_dec7], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor8 = _applyDecoratedDescriptor(_class.prototype, "failedTGAllocs", [_dec8], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor9 = _applyDecoratedDescriptor(_class.prototype, "previousEval", [_dec9], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor10 = _applyDecoratedDescriptor(_class.prototype, "nextEval", [_dec10], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor11 = _applyDecoratedDescriptor(_class.prototype, "blockedEval", [_dec11], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor12 = _applyDecoratedDescriptor(_class.prototype, "relatedEvals", [_dec12], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor13 = _applyDecoratedDescriptor(_class.prototype, "hasPlacementFailures", [_dec13], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor14 = _applyDecoratedDescriptor(_class.prototype, "isBlocked", [_dec14], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor15 = _applyDecoratedDescriptor(_class.prototype, "job", [_dec15], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor16 = _applyDecoratedDescriptor(_class.prototype, "node", [_dec16], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor17 = _applyDecoratedDescriptor(_class.prototype, "modifyIndex", [_dec17], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor18 = _applyDecoratedDescriptor(_class.prototype, "modifyTime", [_dec18], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor19 = _applyDecoratedDescriptor(_class.prototype, "createIndex", [_dec19], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor20 = _applyDecoratedDescriptor(_class.prototype, "createTime", [_dec20], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor21 = _applyDecoratedDescriptor(_class.prototype, "waitUntil", [_dec21], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor22 = _applyDecoratedDescriptor(_class.prototype, "namespace", [_dec22], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor23 = _applyDecoratedDescriptor(_class.prototype, "plainJobId", [_dec23], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class));
  _exports.default = Evaluation;
});
;define("nomad-ui/models/group-scaling", ["exports", "ember-data-model-fragments/fragment", "@ember-data/model", "ember-data-model-fragments/attributes"], function (_exports, _fragment, _model, _attributes) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5;

  0; //eaimeta@70e063a35619d71f0,"ember-data-model-fragments/fragment",0,"@ember-data/model",0,"ember-data-model-fragments/attributes",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let TaskGroup = (_dec = (0, _attributes.fragmentOwner)(), _dec2 = (0, _model.attr)('boolean'), _dec3 = (0, _model.attr)('number'), _dec4 = (0, _model.attr)('number'), _dec5 = (0, _model.attr)(), classic(_class = (_class2 = class TaskGroup extends _fragment.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "taskGroup", _descriptor, this);

      _initializerDefineProperty(this, "enabled", _descriptor2, this);

      _initializerDefineProperty(this, "max", _descriptor3, this);

      _initializerDefineProperty(this, "min", _descriptor4, this);

      _initializerDefineProperty(this, "policy", _descriptor5, this);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "taskGroup", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "enabled", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, "max", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, "min", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor5 = _applyDecoratedDescriptor(_class2.prototype, "policy", [_dec5], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class2)) || _class);
  _exports.default = TaskGroup;
});
;define("nomad-ui/models/host-volume", ["exports", "ember-data-model-fragments/fragment", "@ember-data/model", "ember-data-model-fragments/attributes"], function (_exports, _fragment, _model, _attributes) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _class, _descriptor, _descriptor2, _descriptor3, _descriptor4;

  0; //eaimeta@70e063a35619d71f0,"ember-data-model-fragments/fragment",0,"@ember-data/model",0,"ember-data-model-fragments/attributes"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let HostVolume = (_dec = (0, _attributes.fragmentOwner)(), _dec2 = (0, _model.attr)('string'), _dec3 = (0, _model.attr)('string'), _dec4 = (0, _model.attr)('boolean'), (_class = class HostVolume extends _fragment.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "node", _descriptor, this);

      _initializerDefineProperty(this, "name", _descriptor2, this);

      _initializerDefineProperty(this, "path", _descriptor3, this);

      _initializerDefineProperty(this, "readOnly", _descriptor4, this);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "node", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "name", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "path", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, "readOnly", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class));
  _exports.default = HostVolume;
});
;define("nomad-ui/models/job-dispatch", ["exports", "@ember-data/model"], function (_exports, _model) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _class, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5;

  0; //eaimeta@70e063a35619d71f0,"@ember-data/model",0,"@ember-data/model"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let JobDispatch = (_dec = (0, _model.attr)(), _dec2 = (0, _model.attr)(), _dec3 = (0, _model.attr)(), _dec4 = (0, _model.attr)(), _dec5 = (0, _model.attr)(), (_class = class JobDispatch extends _model.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "index", _descriptor, this);

      _initializerDefineProperty(this, "jobCreateIndex", _descriptor2, this);

      _initializerDefineProperty(this, "evalCreateIndex", _descriptor3, this);

      _initializerDefineProperty(this, "evalID", _descriptor4, this);

      _initializerDefineProperty(this, "dispatchedJobID", _descriptor5, this);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "index", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "jobCreateIndex", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "evalCreateIndex", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, "evalID", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor5 = _applyDecoratedDescriptor(_class.prototype, "dispatchedJobID", [_dec5], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class));
  _exports.default = JobDispatch;
});
;define("nomad-ui/models/job-plan", ["exports", "@ember-data/model", "ember-data-model-fragments/attributes"], function (_exports, _model, _attributes) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _class, _descriptor, _descriptor2, _descriptor3;

  0; //eaimeta@70e063a35619d71f0,"@ember-data/model",0,"@ember-data/model",0,"ember-data-model-fragments/attributes",0,"@ember-data/model"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let JobPlan = (_dec = (0, _model.attr)(), _dec2 = (0, _attributes.fragmentArray)('placement-failure', {
    defaultValue: () => []
  }), _dec3 = (0, _model.hasMany)('allocation'), (_class = class JobPlan extends _model.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "diff", _descriptor, this);

      _initializerDefineProperty(this, "failedTGAllocs", _descriptor2, this);

      _initializerDefineProperty(this, "preemptions", _descriptor3, this);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "diff", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "failedTGAllocs", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "preemptions", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class));
  _exports.default = JobPlan;
});
;define("nomad-ui/models/job-scale", ["exports", "@ember-data/model", "ember-data-model-fragments/attributes"], function (_exports, _model, _attributes) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _class, _class2, _descriptor, _descriptor2;

  0; //eaimeta@70e063a35619d71f0,"@ember-data/model",0,"@ember-data/model",0,"ember-data-model-fragments/attributes",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let JobSummary = (_dec = (0, _model.belongsTo)('job'), _dec2 = (0, _attributes.fragmentArray)('task-group-scale'), classic(_class = (_class2 = class JobSummary extends _model.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "job", _descriptor, this);

      _initializerDefineProperty(this, "taskGroupScales", _descriptor2, this);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "job", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "taskGroupScales", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class2)) || _class);
  _exports.default = JobSummary;
});
;define("nomad-ui/models/job-summary", ["exports", "@ember/object/computed", "@ember-data/model", "ember-data-model-fragments/attributes", "nomad-ui/utils/properties/sum-aggregation"], function (_exports, _computed, _model, _attributes, _sumAggregation) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _dec9, _dec10, _dec11, _dec12, _dec13, _dec14, _dec15, _dec16, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8, _descriptor9, _descriptor10, _descriptor11, _descriptor12, _descriptor13, _descriptor14, _descriptor15, _descriptor16;

  0; //eaimeta@70e063a35619d71f0,"@ember/object/computed",0,"@ember-data/model",0,"@ember-data/model",0,"ember-data-model-fragments/attributes",0,"nomad-ui/utils/properties/sum-aggregation",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let JobSummary = (_dec = (0, _model.belongsTo)('job'), _dec2 = (0, _attributes.fragmentArray)('task-group-summary'), _dec3 = (0, _sumAggregation.default)('taskGroupSummaries', 'queuedAllocs'), _dec4 = (0, _sumAggregation.default)('taskGroupSummaries', 'startingAllocs'), _dec5 = (0, _sumAggregation.default)('taskGroupSummaries', 'runningAllocs'), _dec6 = (0, _sumAggregation.default)('taskGroupSummaries', 'completeAllocs'), _dec7 = (0, _sumAggregation.default)('taskGroupSummaries', 'failedAllocs'), _dec8 = (0, _sumAggregation.default)('taskGroupSummaries', 'unknownAllocs'), _dec9 = (0, _sumAggregation.default)('taskGroupSummaries', 'lostAllocs'), _dec10 = (0, _computed.collect)('queuedAllocs', 'startingAllocs', 'runningAllocs', 'completeAllocs', 'failedAllocs', 'lostAllocs', 'unknownAllocs'), _dec11 = (0, _computed.sum)('allocsList'), _dec12 = (0, _model.attr)('number'), _dec13 = (0, _model.attr)('number'), _dec14 = (0, _model.attr)('number'), _dec15 = (0, _computed.collect)('pendingChildren', 'runningChildren', 'deadChildren'), _dec16 = (0, _computed.sum)('childrenList'), classic(_class = (_class2 = class JobSummary extends _model.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "job", _descriptor, this);

      _initializerDefineProperty(this, "taskGroupSummaries", _descriptor2, this);

      _initializerDefineProperty(this, "queuedAllocs", _descriptor3, this);

      _initializerDefineProperty(this, "startingAllocs", _descriptor4, this);

      _initializerDefineProperty(this, "runningAllocs", _descriptor5, this);

      _initializerDefineProperty(this, "completeAllocs", _descriptor6, this);

      _initializerDefineProperty(this, "failedAllocs", _descriptor7, this);

      _initializerDefineProperty(this, "unknownAllocs", _descriptor8, this);

      _initializerDefineProperty(this, "lostAllocs", _descriptor9, this);

      _initializerDefineProperty(this, "allocsList", _descriptor10, this);

      _initializerDefineProperty(this, "totalAllocs", _descriptor11, this);

      _initializerDefineProperty(this, "pendingChildren", _descriptor12, this);

      _initializerDefineProperty(this, "runningChildren", _descriptor13, this);

      _initializerDefineProperty(this, "deadChildren", _descriptor14, this);

      _initializerDefineProperty(this, "childrenList", _descriptor15, this);

      _initializerDefineProperty(this, "totalChildren", _descriptor16, this);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "job", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "taskGroupSummaries", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, "queuedAllocs", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, "startingAllocs", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor5 = _applyDecoratedDescriptor(_class2.prototype, "runningAllocs", [_dec5], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor6 = _applyDecoratedDescriptor(_class2.prototype, "completeAllocs", [_dec6], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor7 = _applyDecoratedDescriptor(_class2.prototype, "failedAllocs", [_dec7], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor8 = _applyDecoratedDescriptor(_class2.prototype, "unknownAllocs", [_dec8], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor9 = _applyDecoratedDescriptor(_class2.prototype, "lostAllocs", [_dec9], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor10 = _applyDecoratedDescriptor(_class2.prototype, "allocsList", [_dec10], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor11 = _applyDecoratedDescriptor(_class2.prototype, "totalAllocs", [_dec11], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor12 = _applyDecoratedDescriptor(_class2.prototype, "pendingChildren", [_dec12], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor13 = _applyDecoratedDescriptor(_class2.prototype, "runningChildren", [_dec13], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor14 = _applyDecoratedDescriptor(_class2.prototype, "deadChildren", [_dec14], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor15 = _applyDecoratedDescriptor(_class2.prototype, "childrenList", [_dec15], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor16 = _applyDecoratedDescriptor(_class2.prototype, "totalChildren", [_dec16], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class2)) || _class);
  _exports.default = JobSummary;
});
;define("nomad-ui/models/job-version", ["exports", "@ember-data/model"], function (_exports, _model) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _class, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5;

  0; //eaimeta@70e063a35619d71f0,"@ember-data/model",0,"@ember-data/model"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let JobVersion = (_dec = (0, _model.belongsTo)('job'), _dec2 = (0, _model.attr)('boolean'), _dec3 = (0, _model.attr)('date'), _dec4 = (0, _model.attr)('number'), _dec5 = (0, _model.attr)(), (_class = class JobVersion extends _model.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "job", _descriptor, this);

      _initializerDefineProperty(this, "stable", _descriptor2, this);

      _initializerDefineProperty(this, "submitTime", _descriptor3, this);

      _initializerDefineProperty(this, "number", _descriptor4, this);

      _initializerDefineProperty(this, "diff", _descriptor5, this);
    }

    revertTo() {
      return this.store.adapterFor('job-version').revertTo(this);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "job", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "stable", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "submitTime", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, "number", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor5 = _applyDecoratedDescriptor(_class.prototype, "diff", [_dec5], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class));
  _exports.default = JobVersion;
});
;define("nomad-ui/models/job", ["exports", "@ember/object/computed", "@ember/object", "@ember-data/model", "ember-data-model-fragments/attributes", "rsvp", "@ember/debug"], function (_exports, _computed, _object, _model, _attributes, _rsvp, _debug) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _dec9, _dec10, _dec11, _dec12, _dec13, _dec14, _dec15, _dec16, _dec17, _dec18, _dec19, _dec20, _dec21, _dec22, _dec23, _dec24, _dec25, _dec26, _dec27, _dec28, _dec29, _dec30, _dec31, _dec32, _dec33, _dec34, _dec35, _dec36, _dec37, _dec38, _dec39, _dec40, _dec41, _dec42, _dec43, _dec44, _dec45, _dec46, _dec47, _dec48, _dec49, _dec50, _dec51, _dec52, _dec53, _dec54, _dec55, _dec56, _dec57, _dec58, _dec59, _dec60, _dec61, _dec62, _dec63, _dec64, _dec65, _dec66, _dec67, _dec68, _dec69, _dec70, _dec71, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8, _descriptor9, _descriptor10, _descriptor11, _descriptor12, _descriptor13, _descriptor14, _descriptor15, _descriptor16, _descriptor17, _descriptor18, _descriptor19, _descriptor20, _descriptor21, _descriptor22, _descriptor23, _descriptor24, _descriptor25, _descriptor26, _descriptor27, _descriptor28, _descriptor29, _descriptor30, _descriptor31, _descriptor32, _descriptor33, _descriptor34, _descriptor35, _descriptor36, _descriptor37, _descriptor38, _descriptor39, _descriptor40, _descriptor41, _descriptor42, _descriptor43, _descriptor44, _descriptor45, _descriptor46, _descriptor47, _descriptor48, _descriptor49, _descriptor50, _descriptor51, _descriptor52, _descriptor53, _descriptor54, _descriptor55, _descriptor56;

  0; //eaimeta@70e063a35619d71f0,"@ember/object/computed",0,"@ember/object",0,"@ember-data/model",0,"@ember-data/model",0,"ember-data-model-fragments/attributes",0,"rsvp",0,"@ember/debug",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;
  const JOB_TYPES = ['service', 'batch', 'system', 'sysbatch'];
  let Job = (_dec = (0, _model.attr)('string'), _dec2 = (0, _model.attr)('string'), _dec3 = (0, _model.attr)('string'), _dec4 = (0, _model.attr)('string'), _dec5 = (0, _model.attr)('number'), _dec6 = (0, _model.attr)('boolean'), _dec7 = (0, _model.attr)('string'), _dec8 = (0, _model.attr)('string'), _dec9 = (0, _model.attr)('number'), _dec10 = (0, _model.attr)('number'), _dec11 = (0, _model.attr)('date'), _dec12 = (0, _model.attr)('string'), _dec13 = (0, _attributes.fragment)('structured-attributes'), _dec14 = (0, _model.attr)('boolean'), _dec15 = (0, _model.attr)('boolean'), _dec16 = (0, _model.attr)('boolean'), _dec17 = (0, _model.attr)(), _dec18 = (0, _model.attr)(), _dec19 = (0, _object.computed)('plainId'), _dec20 = (0, _object.computed)('periodic', 'parameterized', 'dispatched'), _dec21 = (0, _object.computed)('type'), _dec22 = (0, _model.belongsTo)('job', {
    inverse: 'children'
  }), _dec23 = (0, _model.hasMany)('job', {
    inverse: 'parent'
  }), _dec24 = (0, _object.computed)('name', 'parent.content'), _dec25 = (0, _object.computed)('isPack', 'type', 'periodic', 'parameterized'), _dec26 = (0, _object.computed)('type', 'periodic', 'parameterized', 'parent.{periodic,parameterized}'), _dec27 = (0, _model.attr)(), _dec28 = (0, _attributes.fragmentArray)('task-group', {
    defaultValue: () => []
  }), _dec29 = (0, _model.belongsTo)('job-summary'), _dec30 = (0, _computed.equal)('taskGroups.length', 0), _dec31 = (0, _computed.or)('taskGroups.length', 'taskGroupSummaries.length'), _dec32 = (0, _computed.alias)('summary.taskGroupSummaries'), _dec33 = (0, _computed.alias)('summary.queuedAllocs'), _dec34 = (0, _computed.alias)('summary.startingAllocs'), _dec35 = (0, _computed.alias)('summary.runningAllocs'), _dec36 = (0, _computed.alias)('summary.completeAllocs'), _dec37 = (0, _computed.alias)('summary.failedAllocs'), _dec38 = (0, _computed.alias)('summary.lostAllocs'), _dec39 = (0, _computed.alias)('summary.unknownAllocs'), _dec40 = (0, _computed.alias)('summary.totalAllocs'), _dec41 = (0, _computed.alias)('summary.pendingChildren'), _dec42 = (0, _computed.alias)('summary.runningChildren'), _dec43 = (0, _computed.alias)('summary.deadChildren'), _dec44 = (0, _computed.alias)('summary.totalChildren'), _dec45 = (0, _model.attr)('number'), _dec46 = (0, _model.hasMany)('job-versions'), _dec47 = (0, _model.hasMany)('allocations'), _dec48 = (0, _model.hasMany)('deployments'), _dec49 = (0, _model.hasMany)('evaluations'), _dec50 = (0, _model.hasMany)('variables'), _dec51 = (0, _model.belongsTo)('namespace'), _dec52 = (0, _model.belongsTo)('job-scale'), _dec53 = (0, _model.hasMany)('services'), _dec54 = (0, _model.hasMany)('recommendation-summary'), _dec55 = (0, _object.computed)('taskGroups.@each.drivers'), _dec56 = (0, _computed.mapBy)('allocations', 'unhealthyDrivers'), _dec57 = (0, _object.computed)('allocations', 'allocationsUnhealthyDrivers.[]'), _dec58 = (0, _object.computed)('evaluations.@each.isBlocked'), _dec59 = (0, _computed.and)('latestFailureEvaluation', 'hasBlockedEvaluation'), _dec60 = (0, _object.computed)('evaluations.{@each.modifyIndex,isPending}'), _dec61 = (0, _object.computed)('evaluations.{@each.modifyIndex,isPending}'), _dec62 = (0, _computed.equal)('type', 'service'), _dec63 = (0, _model.belongsTo)('deployment', {
    inverse: 'jobForLatest'
  }), _dec64 = (0, _object.computed)('latestDeployment', 'latestDeployment.isRunning'), _dec65 = (0, _object.computed)('status'), _dec66 = (0, _model.attr)('string'), _dec67 = (0, _object.computed)('payload'), _dec68 = (0, _model.attr)('string'), _dec69 = (0, _model.attr)('string'), _dec70 = (0, _model.attr)('string'), _dec71 = (0, _object.computed)('variables', 'parent', 'plainId'), classic(_class = (_class2 = class Job extends _model.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "region", _descriptor, this);

      _initializerDefineProperty(this, "name", _descriptor2, this);

      _initializerDefineProperty(this, "plainId", _descriptor3, this);

      _initializerDefineProperty(this, "type", _descriptor4, this);

      _initializerDefineProperty(this, "priority", _descriptor5, this);

      _initializerDefineProperty(this, "allAtOnce", _descriptor6, this);

      _initializerDefineProperty(this, "status", _descriptor7, this);

      _initializerDefineProperty(this, "statusDescription", _descriptor8, this);

      _initializerDefineProperty(this, "createIndex", _descriptor9, this);

      _initializerDefineProperty(this, "modifyIndex", _descriptor10, this);

      _initializerDefineProperty(this, "submitTime", _descriptor11, this);

      _initializerDefineProperty(this, "nodePool", _descriptor12, this);

      _initializerDefineProperty(this, "meta", _descriptor13, this);

      _initializerDefineProperty(this, "periodic", _descriptor14, this);

      _initializerDefineProperty(this, "parameterized", _descriptor15, this);

      _initializerDefineProperty(this, "dispatched", _descriptor16, this);

      _initializerDefineProperty(this, "periodicDetails", _descriptor17, this);

      _initializerDefineProperty(this, "parameterizedDetails", _descriptor18, this);

      _initializerDefineProperty(this, "parent", _descriptor19, this);

      _initializerDefineProperty(this, "children", _descriptor20, this);

      _initializerDefineProperty(this, "datacenters", _descriptor21, this);

      _initializerDefineProperty(this, "taskGroups", _descriptor22, this);

      _initializerDefineProperty(this, "summary", _descriptor23, this);

      _initializerDefineProperty(this, "isPartial", _descriptor24, this);

      _initializerDefineProperty(this, "taskGroupCount", _descriptor25, this);

      _initializerDefineProperty(this, "taskGroupSummaries", _descriptor26, this);

      _initializerDefineProperty(this, "queuedAllocs", _descriptor27, this);

      _initializerDefineProperty(this, "startingAllocs", _descriptor28, this);

      _initializerDefineProperty(this, "runningAllocs", _descriptor29, this);

      _initializerDefineProperty(this, "completeAllocs", _descriptor30, this);

      _initializerDefineProperty(this, "failedAllocs", _descriptor31, this);

      _initializerDefineProperty(this, "lostAllocs", _descriptor32, this);

      _initializerDefineProperty(this, "unknownAllocs", _descriptor33, this);

      _initializerDefineProperty(this, "totalAllocs", _descriptor34, this);

      _initializerDefineProperty(this, "pendingChildren", _descriptor35, this);

      _initializerDefineProperty(this, "runningChildren", _descriptor36, this);

      _initializerDefineProperty(this, "deadChildren", _descriptor37, this);

      _initializerDefineProperty(this, "totalChildren", _descriptor38, this);

      _initializerDefineProperty(this, "version", _descriptor39, this);

      _initializerDefineProperty(this, "versions", _descriptor40, this);

      _initializerDefineProperty(this, "allocations", _descriptor41, this);

      _initializerDefineProperty(this, "deployments", _descriptor42, this);

      _initializerDefineProperty(this, "evaluations", _descriptor43, this);

      _initializerDefineProperty(this, "variables", _descriptor44, this);

      _initializerDefineProperty(this, "namespace", _descriptor45, this);

      _initializerDefineProperty(this, "scaleState", _descriptor46, this);

      _initializerDefineProperty(this, "services", _descriptor47, this);

      _initializerDefineProperty(this, "recommendationSummaries", _descriptor48, this);

      _initializerDefineProperty(this, "allocationsUnhealthyDrivers", _descriptor49, this);

      _initializerDefineProperty(this, "hasPlacementFailures", _descriptor50, this);

      _initializerDefineProperty(this, "supportsDeployments", _descriptor51, this);

      _initializerDefineProperty(this, "latestDeployment", _descriptor52, this);

      _initializerDefineProperty(this, "payload", _descriptor53, this);

      _initializerDefineProperty(this, "_newDefinition", _descriptor54, this);

      _initializerDefineProperty(this, "_newDefinitionVariables", _descriptor55, this);

      _initializerDefineProperty(this, "_newDefinitionJSON", _descriptor56, this);
    }

    get isPack() {
      var _this$meta, _this$meta$structured;

      return !!((_this$meta = this.meta) !== null && _this$meta !== void 0 && (_this$meta$structured = _this$meta.structured) !== null && _this$meta$structured !== void 0 && _this$meta$structured.pack);
    } // True when the job is the parent periodic or parameterized jobs
    // Instances of periodic or parameterized jobs are false for both properties


    get idWithNamespace() {
      return `${this.plainId}@${this.belongsTo('namespace').id() ?? 'default'}`;
    }

    get hasChildren() {
      return this.periodic || this.parameterized && !this.dispatched;
    }

    get hasClientStatus() {
      return this.type === 'system' || this.type === 'sysbatch';
    }

    // The parent job name is prepended to child launch job names
    get trimmedName() {
      return this.get('parent.content') ? this.name.replace(/.+?\//, '') : this.name;
    } // A composite of type and other job attributes to determine
    // a better type descriptor for human interpretation rather
    // than for scheduling.


    get displayType() {
      if (this.periodic) {
        return {
          type: 'periodic',
          isPack: this.isPack
        };
      } else if (this.parameterized) {
        return {
          type: 'parameterized',
          isPack: this.isPack
        };
      }

      return {
        type: this.type,
        isPack: this.isPack
      };
    } // A composite of type and other job attributes to determine
    // type for templating rather than scheduling


    get templateType() {
      const type = this.type;

      if (this.get('parent.periodic')) {
        return 'periodic-child';
      } else if (this.get('parent.parameterized')) {
        return 'parameterized-child';
      } else if (this.periodic) {
        return 'periodic';
      } else if (this.parameterized) {
        return 'parameterized';
      } else if (JOB_TYPES.includes(type)) {
        // Guard against the API introducing a new type before the UI
        // is prepared to handle it.
        return this.type;
      } // A fail-safe in the event the API introduces a new type.


      return 'service';
    }

    get drivers() {
      return this.taskGroups.mapBy('drivers').reduce((all, drivers) => {
        all.push(...drivers);
        return all;
      }, []).uniq();
    }

    // Getting all unhealthy drivers for a job can be incredibly expensive if the job
    // has many allocations. This can lead to making an API request for many nodes.
    get unhealthyDrivers() {
      return this.allocations.mapBy('unhealthyDrivers').reduce((all, drivers) => {
        all.push(...drivers);
        return all;
      }, []).uniq();
    }

    get hasBlockedEvaluation() {
      return this.evaluations.toArray().some(evaluation => evaluation.get('isBlocked'));
    }

    get latestEvaluation() {
      const evaluations = this.evaluations;

      if (!evaluations || evaluations.get('isPending')) {
        return null;
      }

      return evaluations.sortBy('modifyIndex').get('lastObject');
    }

    get latestFailureEvaluation() {
      const evaluations = this.evaluations;

      if (!evaluations || evaluations.get('isPending')) {
        return null;
      }

      const failureEvaluations = evaluations.filterBy('hasPlacementFailures');

      if (failureEvaluations) {
        return failureEvaluations.sortBy('modifyIndex').get('lastObject');
      }

      return undefined;
    }

    get runningDeployment() {
      const latest = this.latestDeployment;
      if (latest.get('isRunning')) return latest;
      return undefined;
    }

    fetchRawDefinition() {
      return this.store.adapterFor('job').fetchRawDefinition(this);
    }

    fetchRawSpecification() {
      return this.store.adapterFor('job').fetchRawSpecification(this);
    }

    forcePeriodic() {
      return this.store.adapterFor('job').forcePeriodic(this);
    }

    stop() {
      return this.store.adapterFor('job').stop(this);
    }

    purge() {
      return this.store.adapterFor('job').purge(this);
    }

    plan() {
      (true && !(this._newDefinitionJSON) && (0, _debug.assert)('A job must be parsed before planned', this._newDefinitionJSON));
      return this.store.adapterFor('job').plan(this);
    }

    run() {
      (true && !(this._newDefinitionJSON) && (0, _debug.assert)('A job must be parsed before ran', this._newDefinitionJSON));
      return this.store.adapterFor('job').run(this);
    }

    update() {
      (true && !(this._newDefinitionJSON) && (0, _debug.assert)('A job must be parsed before updated', this._newDefinitionJSON));
      return this.store.adapterFor('job').update(this);
    }

    parse() {
      const definition = this._newDefinition;
      const variables = this._newDefinitionVariables;
      let promise;

      try {
        // If the definition is already JSON then it doesn't need to be parsed.
        const json = JSON.parse(definition);
        this.set('_newDefinitionJSON', json); // You can't set the ID of a record that already exists

        if (this.isNew) {
          this.setIdByPayload(json);
        }

        promise = _rsvp.default.resolve(definition);
      } catch (err) {
        // If the definition is invalid JSON, assume it is HCL. If it is invalid
        // in anyway, the parse endpoint will throw an error.
        promise = this.store.adapterFor('job').parse(this._newDefinition, variables).then(response => {
          this.set('_newDefinitionJSON', response);
          this.setIdByPayload(response);
        });
      }

      return promise;
    }

    scale(group, count, message) {
      if (message == null) message = `Manually scaled to ${count} from the Nomad UI`;
      return this.store.adapterFor('job').scale(this, group, count, message);
    }

    dispatch(meta, payload) {
      return this.store.adapterFor('job').dispatch(this, meta, payload);
    }

    setIdByPayload(payload) {
      const namespace = payload.Namespace || 'default';
      const id = payload.Name;
      this.set('plainId', id);
      this.set('_idBeforeSaving', JSON.stringify([id, namespace]));
      const namespaceRecord = this.store.peekRecord('namespace', namespace);

      if (namespaceRecord) {
        this.set('namespace', namespaceRecord);
      }
    }

    resetId() {
      this.set('id', JSON.stringify([this.plainId, this.get('namespace.name') || 'default']));
    }

    get statusClass() {
      const classMap = {
        pending: 'is-pending',
        running: 'is-primary',
        dead: 'is-light'
      };
      return classMap[this.status] || 'is-dark';
    }

    get decodedPayload() {
      // Lazily decode the base64 encoded payload
      return window.atob(this.payload || '');
    } // An arbitrary HCL or JSON string that is used by the serializer to plan
    // and run this job. Used for both new job models and saved job models.


    get pathLinkedVariable() {
      if (this.parent.get('id')) {
        var _this$variables;

        return (_this$variables = this.variables) === null || _this$variables === void 0 ? void 0 : _this$variables.findBy('path', `nomad/jobs/${JSON.parse(this.parent.get('id'))[0]}`);
      } else {
        var _this$variables2;

        return (_this$variables2 = this.variables) === null || _this$variables2 === void 0 ? void 0 : _this$variables2.findBy('path', `nomad/jobs/${this.plainId}`);
      }
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "region", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "name", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, "plainId", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, "type", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor5 = _applyDecoratedDescriptor(_class2.prototype, "priority", [_dec5], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor6 = _applyDecoratedDescriptor(_class2.prototype, "allAtOnce", [_dec6], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor7 = _applyDecoratedDescriptor(_class2.prototype, "status", [_dec7], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor8 = _applyDecoratedDescriptor(_class2.prototype, "statusDescription", [_dec8], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor9 = _applyDecoratedDescriptor(_class2.prototype, "createIndex", [_dec9], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor10 = _applyDecoratedDescriptor(_class2.prototype, "modifyIndex", [_dec10], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor11 = _applyDecoratedDescriptor(_class2.prototype, "submitTime", [_dec11], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor12 = _applyDecoratedDescriptor(_class2.prototype, "nodePool", [_dec12], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor13 = _applyDecoratedDescriptor(_class2.prototype, "meta", [_dec13], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor14 = _applyDecoratedDescriptor(_class2.prototype, "periodic", [_dec14], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor15 = _applyDecoratedDescriptor(_class2.prototype, "parameterized", [_dec15], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor16 = _applyDecoratedDescriptor(_class2.prototype, "dispatched", [_dec16], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor17 = _applyDecoratedDescriptor(_class2.prototype, "periodicDetails", [_dec17], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor18 = _applyDecoratedDescriptor(_class2.prototype, "parameterizedDetails", [_dec18], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "idWithNamespace", [_dec19], Object.getOwnPropertyDescriptor(_class2.prototype, "idWithNamespace"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "hasChildren", [_dec20], Object.getOwnPropertyDescriptor(_class2.prototype, "hasChildren"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "hasClientStatus", [_dec21], Object.getOwnPropertyDescriptor(_class2.prototype, "hasClientStatus"), _class2.prototype), _descriptor19 = _applyDecoratedDescriptor(_class2.prototype, "parent", [_dec22], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor20 = _applyDecoratedDescriptor(_class2.prototype, "children", [_dec23], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "trimmedName", [_dec24], Object.getOwnPropertyDescriptor(_class2.prototype, "trimmedName"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "displayType", [_dec25], Object.getOwnPropertyDescriptor(_class2.prototype, "displayType"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "templateType", [_dec26], Object.getOwnPropertyDescriptor(_class2.prototype, "templateType"), _class2.prototype), _descriptor21 = _applyDecoratedDescriptor(_class2.prototype, "datacenters", [_dec27], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor22 = _applyDecoratedDescriptor(_class2.prototype, "taskGroups", [_dec28], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor23 = _applyDecoratedDescriptor(_class2.prototype, "summary", [_dec29], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor24 = _applyDecoratedDescriptor(_class2.prototype, "isPartial", [_dec30], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor25 = _applyDecoratedDescriptor(_class2.prototype, "taskGroupCount", [_dec31], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor26 = _applyDecoratedDescriptor(_class2.prototype, "taskGroupSummaries", [_dec32], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor27 = _applyDecoratedDescriptor(_class2.prototype, "queuedAllocs", [_dec33], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor28 = _applyDecoratedDescriptor(_class2.prototype, "startingAllocs", [_dec34], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor29 = _applyDecoratedDescriptor(_class2.prototype, "runningAllocs", [_dec35], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor30 = _applyDecoratedDescriptor(_class2.prototype, "completeAllocs", [_dec36], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor31 = _applyDecoratedDescriptor(_class2.prototype, "failedAllocs", [_dec37], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor32 = _applyDecoratedDescriptor(_class2.prototype, "lostAllocs", [_dec38], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor33 = _applyDecoratedDescriptor(_class2.prototype, "unknownAllocs", [_dec39], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor34 = _applyDecoratedDescriptor(_class2.prototype, "totalAllocs", [_dec40], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor35 = _applyDecoratedDescriptor(_class2.prototype, "pendingChildren", [_dec41], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor36 = _applyDecoratedDescriptor(_class2.prototype, "runningChildren", [_dec42], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor37 = _applyDecoratedDescriptor(_class2.prototype, "deadChildren", [_dec43], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor38 = _applyDecoratedDescriptor(_class2.prototype, "totalChildren", [_dec44], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor39 = _applyDecoratedDescriptor(_class2.prototype, "version", [_dec45], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor40 = _applyDecoratedDescriptor(_class2.prototype, "versions", [_dec46], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor41 = _applyDecoratedDescriptor(_class2.prototype, "allocations", [_dec47], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor42 = _applyDecoratedDescriptor(_class2.prototype, "deployments", [_dec48], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor43 = _applyDecoratedDescriptor(_class2.prototype, "evaluations", [_dec49], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor44 = _applyDecoratedDescriptor(_class2.prototype, "variables", [_dec50], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor45 = _applyDecoratedDescriptor(_class2.prototype, "namespace", [_dec51], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor46 = _applyDecoratedDescriptor(_class2.prototype, "scaleState", [_dec52], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor47 = _applyDecoratedDescriptor(_class2.prototype, "services", [_dec53], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor48 = _applyDecoratedDescriptor(_class2.prototype, "recommendationSummaries", [_dec54], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "drivers", [_dec55], Object.getOwnPropertyDescriptor(_class2.prototype, "drivers"), _class2.prototype), _descriptor49 = _applyDecoratedDescriptor(_class2.prototype, "allocationsUnhealthyDrivers", [_dec56], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "unhealthyDrivers", [_dec57], Object.getOwnPropertyDescriptor(_class2.prototype, "unhealthyDrivers"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "hasBlockedEvaluation", [_dec58], Object.getOwnPropertyDescriptor(_class2.prototype, "hasBlockedEvaluation"), _class2.prototype), _descriptor50 = _applyDecoratedDescriptor(_class2.prototype, "hasPlacementFailures", [_dec59], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "latestEvaluation", [_dec60], Object.getOwnPropertyDescriptor(_class2.prototype, "latestEvaluation"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "latestFailureEvaluation", [_dec61], Object.getOwnPropertyDescriptor(_class2.prototype, "latestFailureEvaluation"), _class2.prototype), _descriptor51 = _applyDecoratedDescriptor(_class2.prototype, "supportsDeployments", [_dec62], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor52 = _applyDecoratedDescriptor(_class2.prototype, "latestDeployment", [_dec63], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "runningDeployment", [_dec64], Object.getOwnPropertyDescriptor(_class2.prototype, "runningDeployment"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "statusClass", [_dec65], Object.getOwnPropertyDescriptor(_class2.prototype, "statusClass"), _class2.prototype), _descriptor53 = _applyDecoratedDescriptor(_class2.prototype, "payload", [_dec66], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "decodedPayload", [_dec67], Object.getOwnPropertyDescriptor(_class2.prototype, "decodedPayload"), _class2.prototype), _descriptor54 = _applyDecoratedDescriptor(_class2.prototype, "_newDefinition", [_dec68], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor55 = _applyDecoratedDescriptor(_class2.prototype, "_newDefinitionVariables", [_dec69], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor56 = _applyDecoratedDescriptor(_class2.prototype, "_newDefinitionJSON", [_dec70], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "pathLinkedVariable", [_dec71], Object.getOwnPropertyDescriptor(_class2.prototype, "pathLinkedVariable"), _class2.prototype)), _class2)) || _class);
  _exports.default = Job;
});
;define("nomad-ui/models/lifecycle", ["exports", "@ember-data/model", "ember-data-model-fragments/fragment", "ember-data-model-fragments/attributes"], function (_exports, _model, _fragment, _attributes) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _class, _descriptor, _descriptor2, _descriptor3;

  0; //eaimeta@70e063a35619d71f0,"@ember-data/model",0,"ember-data-model-fragments/fragment",0,"ember-data-model-fragments/attributes"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let Lifecycle = (_dec = (0, _attributes.fragmentOwner)(), _dec2 = (0, _model.attr)('string'), _dec3 = (0, _model.attr)('boolean'), (_class = class Lifecycle extends _fragment.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "task", _descriptor, this);

      _initializerDefineProperty(this, "hook", _descriptor2, this);

      _initializerDefineProperty(this, "sidecar", _descriptor3, this);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "task", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "hook", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "sidecar", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class));
  _exports.default = Lifecycle;
});
;define("nomad-ui/models/namespace", ["exports", "@ember/object/computed", "@ember-data/model"], function (_exports, _computed, _model) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _class, _descriptor, _descriptor2, _descriptor3;

  0; //eaimeta@70e063a35619d71f0,"@ember/object/computed",0,"@ember-data/model",0,"@ember-data/model"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let Namespace = (_dec = (0, _computed.readOnly)('id'), _dec2 = (0, _model.attr)('string'), _dec3 = (0, _model.attr)('string'), (_class = class Namespace extends _model.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "name", _descriptor, this);

      _initializerDefineProperty(this, "hash", _descriptor2, this);

      _initializerDefineProperty(this, "description", _descriptor3, this);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "name", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "hash", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "description", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class));
  _exports.default = Namespace;
});
;define("nomad-ui/models/network", ["exports", "@ember-data/model", "ember-data-model-fragments/fragment", "ember-data-model-fragments/attributes"], function (_exports, _model, _fragment, _attributes) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _class, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6;

  0; //eaimeta@70e063a35619d71f0,"@ember-data/model",0,"ember-data-model-fragments/fragment",0,"ember-data-model-fragments/attributes"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let Network = (_dec = (0, _model.attr)('string'), _dec2 = (0, _model.attr)('string'), _dec3 = (0, _model.attr)('string'), _dec4 = (0, _model.attr)('string'), _dec5 = (0, _model.attr)('number'), _dec6 = (0, _attributes.array)(), (_class = class Network extends _fragment.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "device", _descriptor, this);

      _initializerDefineProperty(this, "cidr", _descriptor2, this);

      _initializerDefineProperty(this, "ip", _descriptor3, this);

      _initializerDefineProperty(this, "mode", _descriptor4, this);

      _initializerDefineProperty(this, "mbits", _descriptor5, this);

      _initializerDefineProperty(this, "ports", _descriptor6, this);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "device", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "cidr", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "ip", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, "mode", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor5 = _applyDecoratedDescriptor(_class.prototype, "mbits", [_dec5], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor6 = _applyDecoratedDescriptor(_class.prototype, "ports", [_dec6], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class));
  _exports.default = Network;
});
;define("nomad-ui/models/node-driver", ["exports", "ember-data-model-fragments/fragment", "@ember/object", "@ember-data/model", "ember-data-model-fragments/attributes"], function (_exports, _fragment, _object, _model, _attributes) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _dec9, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7;

  0; //eaimeta@70e063a35619d71f0,"ember-classic-decorator",0,"ember-data-model-fragments/fragment",0,"@ember/object",0,"@ember-data/model",0,"ember-data-model-fragments/attributes",0,"ember-data-model-fragments/attributes"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  /**
   * Copyright (c) HashiCorp, Inc.
   * SPDX-License-Identifier: MPL-2.0
   */
  const classic = __EMBER_CLASSIC_DECORATOR;
  let NodeDriver = (_dec = (0, _attributes.fragmentOwner)(), _dec2 = (0, _attributes.fragment)('structured-attributes'), _dec3 = (0, _object.computed)('name', 'attributes.structured'), _dec4 = (0, _model.attr)('string'), _dec5 = (0, _model.attr)('boolean', {
    defaultValue: false
  }), _dec6 = (0, _model.attr)('boolean', {
    defaultValue: false
  }), _dec7 = (0, _model.attr)('string'), _dec8 = (0, _model.attr)('date'), _dec9 = (0, _object.computed)('healthy'), classic(_class = (_class2 = class NodeDriver extends _fragment.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "node", _descriptor, this);

      _initializerDefineProperty(this, "attributes", _descriptor2, this);

      _initializerDefineProperty(this, "name", _descriptor3, this);

      _initializerDefineProperty(this, "detected", _descriptor4, this);

      _initializerDefineProperty(this, "healthy", _descriptor5, this);

      _initializerDefineProperty(this, "healthDescription", _descriptor6, this);

      _initializerDefineProperty(this, "updateTime", _descriptor7, this);
    }

    get attributesShort() {
      const attributes = this.get('attributes.structured');
      return (0, _object.get)(attributes, `driver.${this.name}`);
    }

    get healthClass() {
      return this.healthy ? 'running' : 'failed';
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "node", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "attributes", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "attributesShort", [_dec3], Object.getOwnPropertyDescriptor(_class2.prototype, "attributesShort"), _class2.prototype), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, "name", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, "detected", [_dec5], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor5 = _applyDecoratedDescriptor(_class2.prototype, "healthy", [_dec6], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor6 = _applyDecoratedDescriptor(_class2.prototype, "healthDescription", [_dec7], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor7 = _applyDecoratedDescriptor(_class2.prototype, "updateTime", [_dec8], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "healthClass", [_dec9], Object.getOwnPropertyDescriptor(_class2.prototype, "healthClass"), _class2.prototype)), _class2)) || _class);
  _exports.default = NodeDriver;
});
;define("nomad-ui/models/node-event", ["exports", "@ember/object/computed", "ember-data-model-fragments/fragment", "@ember-data/model", "ember-data-model-fragments/attributes"], function (_exports, _computed, _fragment, _model, _attributes) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _class, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6;

  0; //eaimeta@70e063a35619d71f0,"@ember/object/computed",0,"ember-data-model-fragments/fragment",0,"@ember-data/model",0,"ember-data-model-fragments/attributes"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let NodeEvent = (_dec = (0, _attributes.fragmentOwner)(), _dec2 = (0, _model.attr)('string'), _dec3 = (0, _model.attr)('string'), _dec4 = (0, _model.attr)(), _dec5 = (0, _model.attr)('date'), _dec6 = (0, _computed.alias)('details.driver'), (_class = class NodeEvent extends _fragment.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "node", _descriptor, this);

      _initializerDefineProperty(this, "message", _descriptor2, this);

      _initializerDefineProperty(this, "subsystem", _descriptor3, this);

      _initializerDefineProperty(this, "details", _descriptor4, this);

      _initializerDefineProperty(this, "time", _descriptor5, this);

      _initializerDefineProperty(this, "driver", _descriptor6, this);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "node", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "message", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "subsystem", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, "details", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor5 = _applyDecoratedDescriptor(_class.prototype, "time", [_dec5], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor6 = _applyDecoratedDescriptor(_class.prototype, "driver", [_dec6], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class));
  _exports.default = NodeEvent;
});
;define("nomad-ui/models/node-pool", ["exports", "@ember-data/model", "@ember/object"], function (_exports, _model, _object) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4;

  0; //eaimeta@70e063a35619d71f0,"@ember-data/model",0,"@ember-data/model",0,"@ember/object",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let NodePool = (_dec = (0, _model.attr)('string'), _dec2 = (0, _model.attr)('string'), _dec3 = (0, _model.attr)(), _dec4 = (0, _model.attr)(), _dec5 = (0, _object.computed)('schedulerConfiguration.SchedulerAlgorithm'), _dec6 = (0, _object.computed)('schedulerConfiguration.MemoryOversubscriptionEnabled'), classic(_class = (_class2 = class NodePool extends _model.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "name", _descriptor, this);

      _initializerDefineProperty(this, "description", _descriptor2, this);

      _initializerDefineProperty(this, "meta", _descriptor3, this);

      _initializerDefineProperty(this, "schedulerConfiguration", _descriptor4, this);
    }

    get schedulerAlgorithm() {
      return this.get('schedulerConfiguration.SchedulerAlgorithm');
    }

    get memoryOversubscriptionEnabled() {
      return this.get('schedulerConfiguration.MemoryOversubscriptionEnabled');
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "name", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "description", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, "meta", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, "schedulerConfiguration", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "schedulerAlgorithm", [_dec5], Object.getOwnPropertyDescriptor(_class2.prototype, "schedulerAlgorithm"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "memoryOversubscriptionEnabled", [_dec6], Object.getOwnPropertyDescriptor(_class2.prototype, "memoryOversubscriptionEnabled"), _class2.prototype)), _class2)) || _class);
  _exports.default = NodePool;
});
;define("nomad-ui/models/node", ["exports", "@ember/object", "@ember/object/computed", "@ember-data/model", "ember-data-model-fragments/attributes", "rsvp", "nomad-ui/utils/properties/short-uuid", "nomad-ui/utils/ip-parts"], function (_exports, _object, _computed, _model, _attributes, _rsvp, _shortUuid, _ipParts) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _dec9, _dec10, _dec11, _dec12, _dec13, _dec14, _dec15, _dec16, _dec17, _dec18, _dec19, _dec20, _dec21, _dec22, _dec23, _dec24, _dec25, _dec26, _dec27, _dec28, _dec29, _dec30, _dec31, _dec32, _dec33, _dec34, _dec35, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8, _descriptor9, _descriptor10, _descriptor11, _descriptor12, _descriptor13, _descriptor14, _descriptor15, _descriptor16, _descriptor17, _descriptor18, _descriptor19, _descriptor20, _descriptor21, _descriptor22, _descriptor23;

  0; //eaimeta@70e063a35619d71f0,"@ember/object",0,"@ember/object/computed",0,"@ember-data/model",0,"@ember-data/model",0,"@ember-data/model",0,"ember-data-model-fragments/attributes",0,"rsvp",0,"nomad-ui/utils/properties/short-uuid",0,"nomad-ui/utils/ip-parts",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let Node = (_dec = (0, _model.attr)('string'), _dec2 = (0, _model.attr)('string'), _dec3 = (0, _model.attr)('string'), _dec4 = (0, _model.attr)('boolean'), _dec5 = (0, _model.attr)('string'), _dec6 = (0, _model.attr)('string'), _dec7 = (0, _model.attr)('string'), _dec8 = (0, _shortUuid.default)('id'), _dec9 = (0, _model.attr)('number'), _dec10 = (0, _model.attr)('string'), _dec11 = (0, _model.attr)('string'), _dec12 = (0, _model.attr)('string'), _dec13 = (0, _model.attr)('boolean'), _dec14 = (0, _attributes.fragment)('structured-attributes'), _dec15 = (0, _attributes.fragment)('structured-attributes'), _dec16 = (0, _attributes.fragment)('resources'), _dec17 = (0, _attributes.fragment)('resources'), _dec18 = (0, _attributes.fragment)('drain-strategy'), _dec19 = (0, _computed.equal)('schedulingEligibility', 'eligible'), _dec20 = (0, _object.computed)('httpAddr'), _dec21 = (0, _object.computed)('httpAddr'), _dec22 = (0, _object.computed)('httpAddr'), _dec23 = (0, _model.hasMany)('allocations', {
    inverse: 'node'
  }), _dec24 = (0, _object.computed)('allocations.@each.clientStatus'), _dec25 = (0, _object.computed)('allocations.@each.isRunning'), _dec26 = (0, _object.computed)('allocations.@each.{isMigrating,isRunning}'), _dec27 = (0, _object.computed)('allocations.@each.{isMigrating,isRunning,modifyTime}'), _dec28 = (0, _attributes.fragmentArray)('node-driver'), _dec29 = (0, _attributes.fragmentArray)('node-event'), _dec30 = (0, _attributes.fragmentArray)('host-volume'), _dec31 = (0, _object.computed)('drivers.@each.detected'), _dec32 = (0, _object.computed)('detectedDrivers.@each.healthy'), _dec33 = (0, _object.computed)('unhealthyDrivers.@each.name'), _dec34 = (0, _object.computed)('isDraining', 'isEligible', 'status'), _dec35 = (0, _object.computed)('isDraining', 'isEligible', 'status'), classic(_class = (_class2 = class Node extends _model.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "name", _descriptor, this);

      _initializerDefineProperty(this, "datacenter", _descriptor2, this);

      _initializerDefineProperty(this, "nodeClass", _descriptor3, this);

      _initializerDefineProperty(this, "isDraining", _descriptor4, this);

      _initializerDefineProperty(this, "schedulingEligibility", _descriptor5, this);

      _initializerDefineProperty(this, "status", _descriptor6, this);

      _initializerDefineProperty(this, "statusDescription", _descriptor7, this);

      _initializerDefineProperty(this, "shortId", _descriptor8, this);

      _initializerDefineProperty(this, "modifyIndex", _descriptor9, this);

      _initializerDefineProperty(this, "version", _descriptor10, this);

      _initializerDefineProperty(this, "nodePool", _descriptor11, this);

      _initializerDefineProperty(this, "httpAddr", _descriptor12, this);

      _initializerDefineProperty(this, "tlsEnabled", _descriptor13, this);

      _initializerDefineProperty(this, "attributes", _descriptor14, this);

      _initializerDefineProperty(this, "meta", _descriptor15, this);

      _initializerDefineProperty(this, "resources", _descriptor16, this);

      _initializerDefineProperty(this, "reserved", _descriptor17, this);

      _initializerDefineProperty(this, "drainStrategy", _descriptor18, this);

      _initializerDefineProperty(this, "isEligible", _descriptor19, this);

      _initializerDefineProperty(this, "allocations", _descriptor20, this);

      _initializerDefineProperty(this, "drivers", _descriptor21, this);

      _initializerDefineProperty(this, "events", _descriptor22, this);

      _initializerDefineProperty(this, "hostVolumes", _descriptor23, this);
    }

    get address() {
      return (0, _ipParts.default)(this.httpAddr).address;
    }

    get port() {
      return (0, _ipParts.default)(this.httpAddr).port;
    }

    get isPartial() {
      return this.httpAddr == null;
    }

    get completeAllocations() {
      return this.allocations.filterBy('clientStatus', 'complete');
    }

    get runningAllocations() {
      return this.allocations.filterBy('isRunning');
    }

    get migratingAllocations() {
      return this.allocations.filter(alloc => alloc.isRunning && alloc.isMigrating);
    }

    get lastMigrateTime() {
      const allocation = this.allocations.filterBy('isRunning', false).filterBy('isMigrating').sortBy('modifyTime').reverse()[0];

      if (allocation) {
        return allocation.modifyTime;
      }

      return undefined;
    }

    get detectedDrivers() {
      return this.drivers.filterBy('detected');
    }

    get unhealthyDrivers() {
      return this.detectedDrivers.filterBy('healthy', false);
    }

    get unhealthyDriverNames() {
      return this.unhealthyDrivers.mapBy('name');
    } // A status attribute that includes states not included in node status.
    // Useful for coloring and sorting nodes


    get compositeStatus() {
      if (this.status === 'down') {
        return 'down';
      } else if (this.isDraining) {
        return 'draining';
      } else if (!this.isEligible) {
        return 'ineligible';
      } else {
        return this.status;
      }
    }

    get compositeStatusIcon() {
      if (this.isDraining || !this.isEligible) {
        return 'alert-circle-fill';
      } else if (this.status === 'down') {
        return 'cancel-circle-fill';
      } else if (this.status === 'initializing') {
        return 'node-init-circle-fill';
      }

      return 'check-circle-fill';
    }

    setEligible() {
      if (this.isEligible) return _rsvp.default.resolve(); // Optimistically update schedulingEligibility for immediate feedback

      this.set('schedulingEligibility', 'eligible');
      return this.store.adapterFor('node').setEligible(this);
    }

    setIneligible() {
      if (!this.isEligible) return _rsvp.default.resolve(); // Optimistically update schedulingEligibility for immediate feedback

      this.set('schedulingEligibility', 'ineligible');
      return this.store.adapterFor('node').setIneligible(this);
    }

    drain(drainSpec) {
      return this.store.adapterFor('node').drain(this, drainSpec);
    }

    forceDrain(drainSpec) {
      return this.store.adapterFor('node').forceDrain(this, drainSpec);
    }

    cancelDrain() {
      return this.store.adapterFor('node').cancelDrain(this);
    }

    async addMeta(newMeta) {
      let metaResponse = await this.store.adapterFor('node').addMeta(this, newMeta);

      if (!this.meta) {
        this.set('meta', this.store.createFragment('structured-attributes'));
      }

      this.meta.recomputeRawProperties(metaResponse.Meta);
      return metaResponse;
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "name", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "datacenter", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, "nodeClass", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, "isDraining", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor5 = _applyDecoratedDescriptor(_class2.prototype, "schedulingEligibility", [_dec5], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor6 = _applyDecoratedDescriptor(_class2.prototype, "status", [_dec6], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor7 = _applyDecoratedDescriptor(_class2.prototype, "statusDescription", [_dec7], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor8 = _applyDecoratedDescriptor(_class2.prototype, "shortId", [_dec8], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor9 = _applyDecoratedDescriptor(_class2.prototype, "modifyIndex", [_dec9], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor10 = _applyDecoratedDescriptor(_class2.prototype, "version", [_dec10], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor11 = _applyDecoratedDescriptor(_class2.prototype, "nodePool", [_dec11], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor12 = _applyDecoratedDescriptor(_class2.prototype, "httpAddr", [_dec12], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor13 = _applyDecoratedDescriptor(_class2.prototype, "tlsEnabled", [_dec13], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor14 = _applyDecoratedDescriptor(_class2.prototype, "attributes", [_dec14], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor15 = _applyDecoratedDescriptor(_class2.prototype, "meta", [_dec15], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor16 = _applyDecoratedDescriptor(_class2.prototype, "resources", [_dec16], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor17 = _applyDecoratedDescriptor(_class2.prototype, "reserved", [_dec17], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor18 = _applyDecoratedDescriptor(_class2.prototype, "drainStrategy", [_dec18], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor19 = _applyDecoratedDescriptor(_class2.prototype, "isEligible", [_dec19], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "address", [_dec20], Object.getOwnPropertyDescriptor(_class2.prototype, "address"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "port", [_dec21], Object.getOwnPropertyDescriptor(_class2.prototype, "port"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "isPartial", [_dec22], Object.getOwnPropertyDescriptor(_class2.prototype, "isPartial"), _class2.prototype), _descriptor20 = _applyDecoratedDescriptor(_class2.prototype, "allocations", [_dec23], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "completeAllocations", [_dec24], Object.getOwnPropertyDescriptor(_class2.prototype, "completeAllocations"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "runningAllocations", [_dec25], Object.getOwnPropertyDescriptor(_class2.prototype, "runningAllocations"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "migratingAllocations", [_dec26], Object.getOwnPropertyDescriptor(_class2.prototype, "migratingAllocations"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "lastMigrateTime", [_dec27], Object.getOwnPropertyDescriptor(_class2.prototype, "lastMigrateTime"), _class2.prototype), _descriptor21 = _applyDecoratedDescriptor(_class2.prototype, "drivers", [_dec28], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor22 = _applyDecoratedDescriptor(_class2.prototype, "events", [_dec29], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor23 = _applyDecoratedDescriptor(_class2.prototype, "hostVolumes", [_dec30], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "detectedDrivers", [_dec31], Object.getOwnPropertyDescriptor(_class2.prototype, "detectedDrivers"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "unhealthyDrivers", [_dec32], Object.getOwnPropertyDescriptor(_class2.prototype, "unhealthyDrivers"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "unhealthyDriverNames", [_dec33], Object.getOwnPropertyDescriptor(_class2.prototype, "unhealthyDriverNames"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "compositeStatus", [_dec34], Object.getOwnPropertyDescriptor(_class2.prototype, "compositeStatus"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "compositeStatusIcon", [_dec35], Object.getOwnPropertyDescriptor(_class2.prototype, "compositeStatusIcon"), _class2.prototype)), _class2)) || _class);
  _exports.default = Node;
});
;define("nomad-ui/models/placement-failure", ["exports", "@ember-data/model", "ember-data-model-fragments/fragment"], function (_exports, _model, _fragment) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _dec9, _dec10, _dec11, _class, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8, _descriptor9, _descriptor10, _descriptor11;

  0; //eaimeta@70e063a35619d71f0,"@ember-data/model",0,"ember-data-model-fragments/fragment"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let PlacementFailure = (_dec = (0, _model.attr)('string'), _dec2 = (0, _model.attr)('number'), _dec3 = (0, _model.attr)('number'), _dec4 = (0, _model.attr)('number'), _dec5 = (0, _model.attr)(), _dec6 = (0, _model.attr)(), _dec7 = (0, _model.attr)(), _dec8 = (0, _model.attr)(), _dec9 = (0, _model.attr)(), _dec10 = (0, _model.attr)(), _dec11 = (0, _model.attr)(), (_class = class PlacementFailure extends _fragment.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "name", _descriptor, this);

      _initializerDefineProperty(this, "coalescedFailures", _descriptor2, this);

      _initializerDefineProperty(this, "nodesEvaluated", _descriptor3, this);

      _initializerDefineProperty(this, "nodesExhausted", _descriptor4, this);

      _initializerDefineProperty(this, "nodesAvailable", _descriptor5, this);

      _initializerDefineProperty(this, "classFiltered", _descriptor6, this);

      _initializerDefineProperty(this, "constraintFiltered", _descriptor7, this);

      _initializerDefineProperty(this, "classExhausted", _descriptor8, this);

      _initializerDefineProperty(this, "dimensionExhausted", _descriptor9, this);

      _initializerDefineProperty(this, "quotaExhausted", _descriptor10, this);

      _initializerDefineProperty(this, "scores", _descriptor11, this);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "name", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "coalescedFailures", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "nodesEvaluated", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, "nodesExhausted", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor5 = _applyDecoratedDescriptor(_class.prototype, "nodesAvailable", [_dec5], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor6 = _applyDecoratedDescriptor(_class.prototype, "classFiltered", [_dec6], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor7 = _applyDecoratedDescriptor(_class.prototype, "constraintFiltered", [_dec7], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor8 = _applyDecoratedDescriptor(_class.prototype, "classExhausted", [_dec8], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor9 = _applyDecoratedDescriptor(_class.prototype, "dimensionExhausted", [_dec9], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor10 = _applyDecoratedDescriptor(_class.prototype, "quotaExhausted", [_dec10], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor11 = _applyDecoratedDescriptor(_class.prototype, "scores", [_dec11], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class));
  _exports.default = PlacementFailure;
});
;define("nomad-ui/models/plugin", ["exports", "@ember/object", "@ember-data/model", "ember-data-model-fragments/attributes"], function (_exports, _object, _model, _attributes) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _dec9, _dec10, _dec11, _dec12, _dec13, _class, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8, _descriptor9, _descriptor10, _descriptor11;

  0; //eaimeta@70e063a35619d71f0,"@ember/object",0,"@ember-data/model",0,"@ember-data/model",0,"ember-data-model-fragments/attributes"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let Plugin = (_dec = (0, _model.attr)('string'), _dec2 = (0, _model.attr)(), _dec3 = (0, _model.attr)('string'), _dec4 = (0, _model.attr)('string'), _dec5 = (0, _attributes.fragmentArray)('storage-controller', {
    defaultValue: () => []
  }), _dec6 = (0, _attributes.fragmentArray)('storage-node', {
    defaultValue: () => []
  }), _dec7 = (0, _model.attr)('boolean'), _dec8 = (0, _model.attr)('number'), _dec9 = (0, _model.attr)('number'), _dec10 = (0, _object.computed)('controllersHealthy', 'controllersExpected'), _dec11 = (0, _model.attr)('number'), _dec12 = (0, _model.attr)('number'), _dec13 = (0, _object.computed)('nodesHealthy', 'nodesExpected'), (_class = class Plugin extends _model.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "plainId", _descriptor, this);

      _initializerDefineProperty(this, "topologies", _descriptor2, this);

      _initializerDefineProperty(this, "provider", _descriptor3, this);

      _initializerDefineProperty(this, "version", _descriptor4, this);

      _initializerDefineProperty(this, "controllers", _descriptor5, this);

      _initializerDefineProperty(this, "nodes", _descriptor6, this);

      _initializerDefineProperty(this, "controllerRequired", _descriptor7, this);

      _initializerDefineProperty(this, "controllersHealthy", _descriptor8, this);

      _initializerDefineProperty(this, "controllersExpected", _descriptor9, this);

      _initializerDefineProperty(this, "nodesHealthy", _descriptor10, this);

      _initializerDefineProperty(this, "nodesExpected", _descriptor11, this);
    }

    get controllersHealthyProportion() {
      return this.controllersHealthy / this.controllersExpected;
    }

    get nodesHealthyProportion() {
      return this.nodesHealthy / this.nodesExpected;
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "plainId", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "topologies", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "provider", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, "version", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor5 = _applyDecoratedDescriptor(_class.prototype, "controllers", [_dec5], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor6 = _applyDecoratedDescriptor(_class.prototype, "nodes", [_dec6], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor7 = _applyDecoratedDescriptor(_class.prototype, "controllerRequired", [_dec7], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor8 = _applyDecoratedDescriptor(_class.prototype, "controllersHealthy", [_dec8], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor9 = _applyDecoratedDescriptor(_class.prototype, "controllersExpected", [_dec9], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class.prototype, "controllersHealthyProportion", [_dec10], Object.getOwnPropertyDescriptor(_class.prototype, "controllersHealthyProportion"), _class.prototype), _descriptor10 = _applyDecoratedDescriptor(_class.prototype, "nodesHealthy", [_dec11], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor11 = _applyDecoratedDescriptor(_class.prototype, "nodesExpected", [_dec12], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class.prototype, "nodesHealthyProportion", [_dec13], Object.getOwnPropertyDescriptor(_class.prototype, "nodesHealthyProportion"), _class.prototype)), _class));
  _exports.default = Plugin;
});
;define("nomad-ui/models/policy", ["exports", "@ember-data/model"], function (_exports, _model) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _class, _descriptor, _descriptor2, _descriptor3, _descriptor4;

  0; //eaimeta@70e063a35619d71f0,"@ember-data/model",0,"@ember-data/model"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let Policy = (_dec = (0, _model.attr)('string'), _dec2 = (0, _model.attr)('string'), _dec3 = (0, _model.attr)('string'), _dec4 = (0, _model.attr)(), (_class = class Policy extends _model.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "name", _descriptor, this);

      _initializerDefineProperty(this, "description", _descriptor2, this);

      _initializerDefineProperty(this, "rules", _descriptor3, this);

      _initializerDefineProperty(this, "rulesJSON", _descriptor4, this);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "name", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "description", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "rules", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, "rulesJSON", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class));
  _exports.default = Policy;
});
;define("nomad-ui/models/port", ["exports", "@ember-data/model", "ember-data-model-fragments/fragment"], function (_exports, _model, _fragment) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _class, _descriptor, _descriptor2, _descriptor3, _descriptor4;

  0; //eaimeta@70e063a35619d71f0,"@ember-data/model",0,"ember-data-model-fragments/fragment"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let Port = (_dec = (0, _model.attr)('string'), _dec2 = (0, _model.attr)('string'), _dec3 = (0, _model.attr)('number'), _dec4 = (0, _model.attr)('number'), (_class = class Port extends _fragment.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "hostIp", _descriptor, this);

      _initializerDefineProperty(this, "label", _descriptor2, this);

      _initializerDefineProperty(this, "to", _descriptor3, this);

      _initializerDefineProperty(this, "value", _descriptor4, this);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "hostIp", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "label", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "to", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, "value", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class));
  _exports.default = Port;
});
;define("nomad-ui/models/recommendation-summary", ["exports", "@ember-data/model", "@ember/object"], function (_exports, _model, _object) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _class, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8;

  0; //eaimeta@70e063a35619d71f0,"@ember-data/model",0,"@ember-data/model",0,"@ember/object",0,"@ember/object"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let RecommendationSummary = (_dec = (0, _model.hasMany)('recommendation'), _dec2 = (0, _model.hasMany)('recommendation', {
    defaultValue: () => []
  }), _dec3 = (0, _model.belongsTo)('job'), _dec4 = (0, _model.attr)('string'), _dec5 = (0, _model.attr)('string'), _dec6 = (0, _model.attr)('date'), _dec7 = (0, _model.attr)('string'), _dec8 = (0, _model.attr)('boolean', {
    defaultValue: false
  }), (_class = class RecommendationSummary extends _model.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "recommendations", _descriptor, this);

      _initializerDefineProperty(this, "excludedRecommendations", _descriptor2, this);

      _initializerDefineProperty(this, "job", _descriptor3, this);

      _initializerDefineProperty(this, "jobId", _descriptor4, this);

      _initializerDefineProperty(this, "jobNamespace", _descriptor5, this);

      _initializerDefineProperty(this, "submitTime", _descriptor6, this);

      _initializerDefineProperty(this, "taskGroupName", _descriptor7, this);

      _initializerDefineProperty(this, "isProcessed", _descriptor8, this);
    }

    get taskGroup() {
      const taskGroups = (0, _object.get)(this, 'job.taskGroups');

      if (taskGroups) {
        return taskGroups.findBy('name', this.taskGroupName);
      } else {
        return undefined;
      }
    }

    toggleRecommendation(recommendation) {
      if (this.excludedRecommendations.includes(recommendation)) {
        this.excludedRecommendations = this.excludedRecommendations.removeObject(recommendation);
      } else {
        this.excludedRecommendations.pushObject(recommendation);
      }
    }

    toggleAllRecommendationsForResource(resource, enabled) {
      if (enabled) {
        this.excludedRecommendations = this.excludedRecommendations.rejectBy('resource', resource);
      } else {
        this.excludedRecommendations.pushObjects(this.recommendations.filterBy('resource', resource));
      }
    }

    get slug() {
      return `${(0, _object.get)(this, 'job.name')}/${this.taskGroupName}`;
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "recommendations", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "excludedRecommendations", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "job", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, "jobId", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor5 = _applyDecoratedDescriptor(_class.prototype, "jobNamespace", [_dec5], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor6 = _applyDecoratedDescriptor(_class.prototype, "submitTime", [_dec6], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor7 = _applyDecoratedDescriptor(_class.prototype, "taskGroupName", [_dec7], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor8 = _applyDecoratedDescriptor(_class.prototype, "isProcessed", [_dec8], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class.prototype, "toggleRecommendation", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "toggleRecommendation"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "toggleAllRecommendationsForResource", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "toggleAllRecommendationsForResource"), _class.prototype)), _class));
  _exports.default = RecommendationSummary;
});
;define("nomad-ui/models/recommendation", ["exports", "@ember-data/model", "@ember/object"], function (_exports, _model, _object) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _class, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7;

  0; //eaimeta@70e063a35619d71f0,"@ember-data/model",0,"@ember-data/model",0,"@ember/object"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let Recommendation = (_dec = (0, _model.belongsTo)('job'), _dec2 = (0, _model.belongsTo)('recommendation-summary', {
    inverse: 'recommendations'
  }), _dec3 = (0, _model.attr)('date'), _dec4 = (0, _model.attr)('string'), _dec5 = (0, _model.attr)('string'), _dec6 = (0, _model.attr)('number'), _dec7 = (0, _model.attr)(), (_class = class Recommendation extends _model.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "job", _descriptor, this);

      _initializerDefineProperty(this, "recommendationSummary", _descriptor2, this);

      _initializerDefineProperty(this, "submitTime", _descriptor3, this);

      _initializerDefineProperty(this, "taskName", _descriptor4, this);

      _initializerDefineProperty(this, "resource", _descriptor5, this);

      _initializerDefineProperty(this, "value", _descriptor6, this);

      _initializerDefineProperty(this, "stats", _descriptor7, this);
    }

    get taskGroup() {
      return (0, _object.get)(this, 'recommendationSummary.taskGroup');
    }

    get task() {
      return (0, _object.get)(this, 'taskGroup.tasks').findBy('name', this.taskName);
    }

    get currentValue() {
      const resourceProperty = this.resource === 'CPU' ? 'reservedCPU' : 'reservedMemory';
      return (0, _object.get)(this, `task.${resourceProperty}`);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "job", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "recommendationSummary", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "submitTime", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, "taskName", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor5 = _applyDecoratedDescriptor(_class.prototype, "resource", [_dec5], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor6 = _applyDecoratedDescriptor(_class.prototype, "value", [_dec6], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor7 = _applyDecoratedDescriptor(_class.prototype, "stats", [_dec7], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class));
  _exports.default = Recommendation;
});
;define("nomad-ui/models/reschedule-event", ["exports", "ember-data-model-fragments/fragment", "@ember-data/model", "ember-data-model-fragments/attributes", "nomad-ui/utils/properties/short-uuid"], function (_exports, _fragment, _model, _attributes, _shortUuid) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _class, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7;

  0; //eaimeta@70e063a35619d71f0,"ember-data-model-fragments/fragment",0,"@ember-data/model",0,"ember-data-model-fragments/attributes",0,"nomad-ui/utils/properties/short-uuid"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let RescheduleEvent = (_dec = (0, _attributes.fragmentOwner)(), _dec2 = (0, _model.attr)('string'), _dec3 = (0, _model.attr)('string'), _dec4 = (0, _model.attr)('date'), _dec5 = (0, _model.attr)('string'), _dec6 = (0, _shortUuid.default)('previousAllocationId'), _dec7 = (0, _shortUuid.default)('previousNodeShortId'), (_class = class RescheduleEvent extends _fragment.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "allocation", _descriptor, this);

      _initializerDefineProperty(this, "previousAllocationId", _descriptor2, this);

      _initializerDefineProperty(this, "previousNodeId", _descriptor3, this);

      _initializerDefineProperty(this, "time", _descriptor4, this);

      _initializerDefineProperty(this, "delay", _descriptor5, this);

      _initializerDefineProperty(this, "previousAllocationShortId", _descriptor6, this);

      _initializerDefineProperty(this, "previousNodeShortId", _descriptor7, this);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "allocation", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "previousAllocationId", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "previousNodeId", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, "time", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor5 = _applyDecoratedDescriptor(_class.prototype, "delay", [_dec5], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor6 = _applyDecoratedDescriptor(_class.prototype, "previousAllocationShortId", [_dec6], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor7 = _applyDecoratedDescriptor(_class.prototype, "previousNodeShortId", [_dec7], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class));
  _exports.default = RescheduleEvent;
});
;define("nomad-ui/models/resources", ["exports", "@ember-data/model", "ember-data-model-fragments/fragment", "ember-data-model-fragments/attributes"], function (_exports, _model, _fragment, _attributes) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _class, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7;

  0; //eaimeta@70e063a35619d71f0,"@ember-data/model",0,"ember-data-model-fragments/fragment",0,"ember-data-model-fragments/attributes"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let Resources = (_dec = (0, _model.attr)('number'), _dec2 = (0, _model.attr)('number'), _dec3 = (0, _model.attr)('number'), _dec4 = (0, _model.attr)('number'), _dec5 = (0, _model.attr)('number'), _dec6 = (0, _attributes.fragmentArray)('network', {
    defaultValue: () => []
  }), _dec7 = (0, _attributes.fragmentArray)('port', {
    defaultValue: () => []
  }), (_class = class Resources extends _fragment.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "cpu", _descriptor, this);

      _initializerDefineProperty(this, "memory", _descriptor2, this);

      _initializerDefineProperty(this, "memoryMax", _descriptor3, this);

      _initializerDefineProperty(this, "disk", _descriptor4, this);

      _initializerDefineProperty(this, "iops", _descriptor5, this);

      _initializerDefineProperty(this, "networks", _descriptor6, this);

      _initializerDefineProperty(this, "ports", _descriptor7, this);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "cpu", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "memory", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "memoryMax", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, "disk", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor5 = _applyDecoratedDescriptor(_class.prototype, "iops", [_dec5], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor6 = _applyDecoratedDescriptor(_class.prototype, "networks", [_dec6], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor7 = _applyDecoratedDescriptor(_class.prototype, "ports", [_dec7], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class));
  _exports.default = Resources;
});
;define("nomad-ui/models/scale-event", ["exports", "@ember/object", "ember-data-model-fragments/fragment", "@ember-data/model", "ember-data-model-fragments/attributes"], function (_exports, _object, _fragment, _model, _attributes) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _dec9, _dec10, _dec11, _dec12, _dec13, _class, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8, _descriptor9, _descriptor10, _descriptor11, _descriptor12, _descriptor13;

  0; //eaimeta@70e063a35619d71f0,"@ember/object",0,"ember-data-model-fragments/fragment",0,"@ember-data/model",0,"ember-data-model-fragments/attributes"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let ScaleEvent = (_dec = (0, _attributes.fragmentOwner)(), _dec2 = (0, _model.attr)('number'), _dec3 = (0, _model.attr)('number'), _dec4 = (0, _model.attr)('boolean'), _dec5 = (0, _model.attr)('string'), _dec6 = (0, _object.computed)('count', function () {
    return this.count != null;
  }), _dec7 = (0, _object.computed)('count', 'previousCount', function () {
    return this.count > this.previousCount;
  }), _dec8 = (0, _model.attr)('date'), _dec9 = (0, _model.attr)('number'), _dec10 = (0, _model.attr)('string'), _dec11 = (0, _model.attr)(), _dec12 = (0, _object.computed)('meta', function () {
    return Object.keys(this.meta).length > 0;
  }), _dec13 = (0, _object.computed)('time', 'timeNanos', 'message', function () {
    return `${+this.time}${this.timeNanos}_${this.message}`;
  }), (_class = class ScaleEvent extends _fragment.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "taskGroupScale", _descriptor, this);

      _initializerDefineProperty(this, "count", _descriptor2, this);

      _initializerDefineProperty(this, "previousCount", _descriptor3, this);

      _initializerDefineProperty(this, "error", _descriptor4, this);

      _initializerDefineProperty(this, "evalId", _descriptor5, this);

      _initializerDefineProperty(this, "hasCount", _descriptor6, this);

      _initializerDefineProperty(this, "increased", _descriptor7, this);

      _initializerDefineProperty(this, "time", _descriptor8, this);

      _initializerDefineProperty(this, "timeNanos", _descriptor9, this);

      _initializerDefineProperty(this, "message", _descriptor10, this);

      _initializerDefineProperty(this, "meta", _descriptor11, this);

      _initializerDefineProperty(this, "hasMeta", _descriptor12, this);

      _initializerDefineProperty(this, "uid", _descriptor13, this);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "taskGroupScale", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "count", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "previousCount", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, "error", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor5 = _applyDecoratedDescriptor(_class.prototype, "evalId", [_dec5], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor6 = _applyDecoratedDescriptor(_class.prototype, "hasCount", [_dec6], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor7 = _applyDecoratedDescriptor(_class.prototype, "increased", [_dec7], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor8 = _applyDecoratedDescriptor(_class.prototype, "time", [_dec8], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor9 = _applyDecoratedDescriptor(_class.prototype, "timeNanos", [_dec9], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor10 = _applyDecoratedDescriptor(_class.prototype, "message", [_dec10], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor11 = _applyDecoratedDescriptor(_class.prototype, "meta", [_dec11], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor12 = _applyDecoratedDescriptor(_class.prototype, "hasMeta", [_dec12], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor13 = _applyDecoratedDescriptor(_class.prototype, "uid", [_dec13], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class));
  _exports.default = ScaleEvent;
});
;define("nomad-ui/models/service-fragment", ["exports", "@ember-data/model", "ember-data-model-fragments/fragment", "ember-data-model-fragments/attributes", "@ember/object"], function (_exports, _model, _fragment, _attributes, _object) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _dec9, _dec10, _dec11, _dec12, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8, _descriptor9, _descriptor10;

  0; //eaimeta@70e063a35619d71f0,"@ember-data/model",0,"ember-data-model-fragments/fragment",0,"ember-data-model-fragments/attributes",0,"@ember/object",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let Service = (_dec = (0, _model.attr)('string'), _dec2 = (0, _model.attr)('string'), _dec3 = (0, _model.attr)(), _dec4 = (0, _model.attr)(), _dec5 = (0, _model.attr)('string'), _dec6 = (0, _model.attr)('string'), _dec7 = (0, _attributes.fragment)('consul-connect'), _dec8 = (0, _model.attr)(), _dec9 = (0, _model.attr)(), _dec10 = (0, _model.attr)({
    defaultValue: () => []
  }), _dec11 = (0, _object.computed)('healthChecks.[]'), _dec12 = (0, _object.computed)('mostRecentChecks.[]'), classic(_class = (_class2 = class Service extends _fragment.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "name", _descriptor, this);

      _initializerDefineProperty(this, "portLabel", _descriptor2, this);

      _initializerDefineProperty(this, "tags", _descriptor3, this);

      _initializerDefineProperty(this, "canary_tags", _descriptor4, this);

      _initializerDefineProperty(this, "onUpdate", _descriptor5, this);

      _initializerDefineProperty(this, "provider", _descriptor6, this);

      _initializerDefineProperty(this, "connect", _descriptor7, this);

      _initializerDefineProperty(this, "groupName", _descriptor8, this);

      _initializerDefineProperty(this, "taskName", _descriptor9, this);

      _initializerDefineProperty(this, "healthChecks", _descriptor10, this);
    }

    get refID() {
      return `${this.groupName || this.taskName}-${this.name}`;
    }

    get mostRecentChecks() {
      // Get unique check names, then get the most recent one
      return this.get('healthChecks').mapBy('Check').uniq().map(name => {
        return this.get('healthChecks').sortBy('Timestamp').reverse().find(x => x.Check === name);
      }).sortBy('Check');
    }

    get mostRecentCheckStatus() {
      // Get unique check names, then get the most recent one
      return this.get('mostRecentChecks').mapBy('Status').reduce((acc, curr) => {
        acc[curr] = (acc[curr] || 0) + 1;
        return acc;
      }, {});
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "name", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "portLabel", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, "tags", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, "canary_tags", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor5 = _applyDecoratedDescriptor(_class2.prototype, "onUpdate", [_dec5], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor6 = _applyDecoratedDescriptor(_class2.prototype, "provider", [_dec6], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor7 = _applyDecoratedDescriptor(_class2.prototype, "connect", [_dec7], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor8 = _applyDecoratedDescriptor(_class2.prototype, "groupName", [_dec8], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor9 = _applyDecoratedDescriptor(_class2.prototype, "taskName", [_dec9], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor10 = _applyDecoratedDescriptor(_class2.prototype, "healthChecks", [_dec10], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "mostRecentChecks", [_dec11], Object.getOwnPropertyDescriptor(_class2.prototype, "mostRecentChecks"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "mostRecentCheckStatus", [_dec12], Object.getOwnPropertyDescriptor(_class2.prototype, "mostRecentCheckStatus"), _class2.prototype)), _class2)) || _class);
  _exports.default = Service;
});
;define("nomad-ui/models/service", ["exports", "@ember-data/model", "@ember/object/computed"], function (_exports, _model, _computed) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _dec9, _dec10, _dec11, _dec12, _dec13, _class, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8, _descriptor9, _descriptor10, _descriptor11, _descriptor12, _descriptor13;

  0; //eaimeta@70e063a35619d71f0,"@ember-data/model",0,"@ember-data/model",0,"@ember/object/computed"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let Service = (_dec = (0, _model.belongsTo)('allocation'), _dec2 = (0, _model.belongsTo)('job'), _dec3 = (0, _model.belongsTo)('node'), _dec4 = (0, _model.attr)('string'), _dec5 = (0, _model.attr)('number'), _dec6 = (0, _model.attr)('string'), _dec7 = (0, _model.attr)('number'), _dec8 = (0, _model.attr)('string'), _dec9 = (0, _model.attr)('number'), _dec10 = (0, _model.attr)('string'), _dec11 = (0, _model.attr)(), _dec12 = (0, _model.attr)(), _dec13 = (0, _computed.alias)('serviceName'), (_class = class Service extends _model.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "allocation", _descriptor, this);

      _initializerDefineProperty(this, "job", _descriptor2, this);

      _initializerDefineProperty(this, "node", _descriptor3, this);

      _initializerDefineProperty(this, "address", _descriptor4, this);

      _initializerDefineProperty(this, "createIndex", _descriptor5, this);

      _initializerDefineProperty(this, "datacenter", _descriptor6, this);

      _initializerDefineProperty(this, "modifyIndex", _descriptor7, this);

      _initializerDefineProperty(this, "namespace", _descriptor8, this);

      _initializerDefineProperty(this, "port", _descriptor9, this);

      _initializerDefineProperty(this, "serviceName", _descriptor10, this);

      _initializerDefineProperty(this, "tags", _descriptor11, this);

      _initializerDefineProperty(this, "canary_tags", _descriptor12, this);

      _initializerDefineProperty(this, "name", _descriptor13, this);
    }

    // Services can exist at either Group or Task level.
    // While our endpoints to get them do not explicitly tell us this,
    // we can infer it from the service's ID:
    get derivedLevel() {
      const idWithoutServiceName = this.id.replace(this.serviceName, '');

      if (idWithoutServiceName.includes('group-')) {
        return 'group';
      } else {
        return 'task';
      }
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "allocation", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "job", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "node", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, "address", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor5 = _applyDecoratedDescriptor(_class.prototype, "createIndex", [_dec5], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor6 = _applyDecoratedDescriptor(_class.prototype, "datacenter", [_dec6], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor7 = _applyDecoratedDescriptor(_class.prototype, "modifyIndex", [_dec7], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor8 = _applyDecoratedDescriptor(_class.prototype, "namespace", [_dec8], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor9 = _applyDecoratedDescriptor(_class.prototype, "port", [_dec9], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor10 = _applyDecoratedDescriptor(_class.prototype, "serviceName", [_dec10], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor11 = _applyDecoratedDescriptor(_class.prototype, "tags", [_dec11], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor12 = _applyDecoratedDescriptor(_class.prototype, "canary_tags", [_dec12], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor13 = _applyDecoratedDescriptor(_class.prototype, "name", [_dec13], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class));
  _exports.default = Service;
});
;define("nomad-ui/models/sidecar-proxy-upstream", ["exports", "ember-data-model-fragments/fragment", "@ember-data/model"], function (_exports, _fragment, _model) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _class, _descriptor, _descriptor2;

  0; //eaimeta@70e063a35619d71f0,"ember-data-model-fragments/fragment",0,"@ember-data/model"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let SidecarProxyUpstream = (_dec = (0, _model.attr)('string'), _dec2 = (0, _model.attr)('string'), (_class = class SidecarProxyUpstream extends _fragment.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "destinationName", _descriptor, this);

      _initializerDefineProperty(this, "localBindPort", _descriptor2, this);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "destinationName", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "localBindPort", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class));
  _exports.default = SidecarProxyUpstream;
});
;define("nomad-ui/models/sidecar-proxy", ["exports", "ember-data-model-fragments/fragment", "ember-data-model-fragments/attributes"], function (_exports, _fragment, _attributes) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _class, _descriptor;

  0; //eaimeta@70e063a35619d71f0,"ember-data-model-fragments/fragment",0,"ember-data-model-fragments/attributes"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let SidecarProxy = (_dec = (0, _attributes.fragmentArray)('sidecar-proxy-upstream'), (_class = class SidecarProxy extends _fragment.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "upstreams", _descriptor, this);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "upstreams", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class));
  _exports.default = SidecarProxy;
});
;define("nomad-ui/models/sidecar-service", ["exports", "ember-data-model-fragments/fragment", "ember-data-model-fragments/attributes"], function (_exports, _fragment, _attributes) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _class, _descriptor;

  0; //eaimeta@70e063a35619d71f0,"ember-data-model-fragments/fragment",0,"ember-data-model-fragments/attributes"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let SidecarService = (_dec = (0, _attributes.fragment)('sidecar-proxy'), (_class = class SidecarService extends _fragment.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "proxy", _descriptor, this);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "proxy", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class));
  _exports.default = SidecarService;
});
;define("nomad-ui/models/storage-controller", ["exports", "@ember-data/model", "ember-data-model-fragments/fragment", "ember-data-model-fragments/attributes"], function (_exports, _model, _fragment, _attributes) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _dec9, _dec10, _dec11, _class, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8, _descriptor9, _descriptor10, _descriptor11;

  0; //eaimeta@70e063a35619d71f0,"@ember-data/model",0,"ember-data-model-fragments/fragment",0,"ember-data-model-fragments/attributes"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let StorageController = (_dec = (0, _attributes.fragmentOwner)(), _dec2 = (0, _model.belongsTo)('node'), _dec3 = (0, _model.attr)('string'), _dec4 = (0, _model.attr)('string'), _dec5 = (0, _model.attr)('string'), _dec6 = (0, _model.attr)('boolean'), _dec7 = (0, _model.attr)('string'), _dec8 = (0, _model.attr)('date'), _dec9 = (0, _model.attr)('boolean'), _dec10 = (0, _model.attr)('boolean'), _dec11 = (0, _model.attr)(), (_class = class StorageController extends _fragment.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "plugin", _descriptor, this);

      _initializerDefineProperty(this, "node", _descriptor2, this);

      _initializerDefineProperty(this, "allocID", _descriptor3, this);

      _initializerDefineProperty(this, "provider", _descriptor4, this);

      _initializerDefineProperty(this, "version", _descriptor5, this);

      _initializerDefineProperty(this, "healthy", _descriptor6, this);

      _initializerDefineProperty(this, "healthDescription", _descriptor7, this);

      _initializerDefineProperty(this, "updateTime", _descriptor8, this);

      _initializerDefineProperty(this, "requiresControllerPlugin", _descriptor9, this);

      _initializerDefineProperty(this, "requiresTopologies", _descriptor10, this);

      _initializerDefineProperty(this, "controllerInfo", _descriptor11, this);
    }

    // Fragments can't have relationships, so provider a manual getter instead.
    async getAllocation() {
      return this.store.findRecord('allocation', this.allocID);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "plugin", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "node", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "allocID", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, "provider", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor5 = _applyDecoratedDescriptor(_class.prototype, "version", [_dec5], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor6 = _applyDecoratedDescriptor(_class.prototype, "healthy", [_dec6], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor7 = _applyDecoratedDescriptor(_class.prototype, "healthDescription", [_dec7], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor8 = _applyDecoratedDescriptor(_class.prototype, "updateTime", [_dec8], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor9 = _applyDecoratedDescriptor(_class.prototype, "requiresControllerPlugin", [_dec9], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor10 = _applyDecoratedDescriptor(_class.prototype, "requiresTopologies", [_dec10], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor11 = _applyDecoratedDescriptor(_class.prototype, "controllerInfo", [_dec11], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class));
  _exports.default = StorageController;
});
;define("nomad-ui/models/storage-node", ["exports", "@ember-data/model", "ember-data-model-fragments/fragment", "ember-data-model-fragments/attributes"], function (_exports, _model, _fragment, _attributes) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _dec9, _dec10, _dec11, _class, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8, _descriptor9, _descriptor10, _descriptor11;

  0; //eaimeta@70e063a35619d71f0,"@ember-data/model",0,"ember-data-model-fragments/fragment",0,"ember-data-model-fragments/attributes"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let StorageNode = (_dec = (0, _attributes.fragmentOwner)(), _dec2 = (0, _model.belongsTo)('node'), _dec3 = (0, _model.attr)('string'), _dec4 = (0, _model.attr)('string'), _dec5 = (0, _model.attr)('string'), _dec6 = (0, _model.attr)('boolean'), _dec7 = (0, _model.attr)('string'), _dec8 = (0, _model.attr)('date'), _dec9 = (0, _model.attr)('boolean'), _dec10 = (0, _model.attr)('boolean'), _dec11 = (0, _model.attr)(), (_class = class StorageNode extends _fragment.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "plugin", _descriptor, this);

      _initializerDefineProperty(this, "node", _descriptor2, this);

      _initializerDefineProperty(this, "allocID", _descriptor3, this);

      _initializerDefineProperty(this, "provider", _descriptor4, this);

      _initializerDefineProperty(this, "version", _descriptor5, this);

      _initializerDefineProperty(this, "healthy", _descriptor6, this);

      _initializerDefineProperty(this, "healthDescription", _descriptor7, this);

      _initializerDefineProperty(this, "updateTime", _descriptor8, this);

      _initializerDefineProperty(this, "requiresControllerPlugin", _descriptor9, this);

      _initializerDefineProperty(this, "requiresTopologies", _descriptor10, this);

      _initializerDefineProperty(this, "nodeInfo", _descriptor11, this);
    }

    // Fragments can't have relationships, so provider a manual getter instead.
    async getAllocation() {
      return this.store.findRecord('allocation', this.allocID);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "plugin", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "node", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "allocID", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, "provider", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor5 = _applyDecoratedDescriptor(_class.prototype, "version", [_dec5], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor6 = _applyDecoratedDescriptor(_class.prototype, "healthy", [_dec6], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor7 = _applyDecoratedDescriptor(_class.prototype, "healthDescription", [_dec7], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor8 = _applyDecoratedDescriptor(_class.prototype, "updateTime", [_dec8], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor9 = _applyDecoratedDescriptor(_class.prototype, "requiresControllerPlugin", [_dec9], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor10 = _applyDecoratedDescriptor(_class.prototype, "requiresTopologies", [_dec10], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor11 = _applyDecoratedDescriptor(_class.prototype, "nodeInfo", [_dec11], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class));
  _exports.default = StorageNode;
});
;define("nomad-ui/models/structured-attributes", ["exports", "@ember/object", "@ember-data/model", "ember-data-model-fragments/fragment", "flat"], function (_exports, _object, _model, _fragment, _flat) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _class, _descriptor;

  0; //eaimeta@70e063a35619d71f0,"@ember/object",0,"@ember/object",0,"@ember-data/model",0,"ember-data-model-fragments/fragment",0,"flat"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const {
    unflatten
  } = _flat.default;
  let StructuredAttributes = (_dec = (0, _model.attr)(), _dec2 = (0, _object.computed)('raw'), (_class = class StructuredAttributes extends _fragment.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "raw", _descriptor, this);
    }

    recomputeRawProperties(incoming) {
      (0, _object.set)(this, 'raw', incoming);
    }

    get structured() {
      const original = this.raw;

      if (!original) {
        return undefined;
      } // `unflatten` doesn't sort keys before unflattening, so manual preprocessing is necessary.


      const attrs = Object.keys(original).sort().reduce((obj, key) => {
        obj[key] = original[key];
        return obj;
      }, {});
      return unflatten(attrs, {
        overwrite: true
      });
    }

    unknownProperty(key) {
      // Returns the exact value in index 0 and the subtree in index 1
      //
      // ex: nodeAttrs.get('driver.docker')
      // [ "1", { version: "17.05.0-ce", volumes: { enabled: "1" } } ]
      if (this.structured) {
        return (0, _object.get)(this.structured, key);
      }
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "raw", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class.prototype, "structured", [_dec2], Object.getOwnPropertyDescriptor(_class.prototype, "structured"), _class.prototype)), _class));
  _exports.default = StructuredAttributes;
});
;define("nomad-ui/models/task-event", ["exports", "ember-data-model-fragments/fragment", "@ember-data/model", "ember-data-model-fragments/attributes"], function (_exports, _fragment, _model, _attributes) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _class, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7;

  0; //eaimeta@70e063a35619d71f0,"ember-data-model-fragments/fragment",0,"@ember-data/model",0,"ember-data-model-fragments/attributes"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let TaskEvent = (_dec = (0, _attributes.fragmentOwner)(), _dec2 = (0, _model.attr)('string'), _dec3 = (0, _model.attr)('number'), _dec4 = (0, _model.attr)('number'), _dec5 = (0, _model.attr)('date'), _dec6 = (0, _model.attr)('number'), _dec7 = (0, _model.attr)('string'), (_class = class TaskEvent extends _fragment.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "state", _descriptor, this);

      _initializerDefineProperty(this, "type", _descriptor2, this);

      _initializerDefineProperty(this, "signal", _descriptor3, this);

      _initializerDefineProperty(this, "exitCode", _descriptor4, this);

      _initializerDefineProperty(this, "time", _descriptor5, this);

      _initializerDefineProperty(this, "timeNanos", _descriptor6, this);

      _initializerDefineProperty(this, "message", _descriptor7, this);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "state", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "type", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "signal", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, "exitCode", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor5 = _applyDecoratedDescriptor(_class.prototype, "time", [_dec5], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor6 = _applyDecoratedDescriptor(_class.prototype, "timeNanos", [_dec6], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor7 = _applyDecoratedDescriptor(_class.prototype, "message", [_dec7], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class));
  _exports.default = TaskEvent;
});
;define("nomad-ui/models/task-group-deployment-summary", ["exports", "@ember/object/computed", "ember-data-model-fragments/fragment", "@ember-data/model", "ember-data-model-fragments/attributes"], function (_exports, _computed, _fragment, _model, _attributes) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _dec9, _dec10, _dec11, _dec12, _dec13, _dec14, _class, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8, _descriptor9, _descriptor10, _descriptor11, _descriptor12, _descriptor13, _descriptor14;

  0; //eaimeta@70e063a35619d71f0,"@ember/object/computed",0,"ember-data-model-fragments/fragment",0,"@ember-data/model",0,"ember-data-model-fragments/attributes"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let TaskGroupDeploymentSummary = (_dec = (0, _attributes.fragmentOwner)(), _dec2 = (0, _model.attr)('string'), _dec3 = (0, _model.attr)('boolean'), _dec4 = (0, _model.attr)('boolean'), _dec5 = (0, _model.attr)('boolean'), _dec6 = (0, _computed.gt)('desiredCanaries', 0), _dec7 = (0, _model.attr)({
    defaultValue: () => []
  }), _dec8 = (0, _computed.alias)('placedCanaryAllocations.length'), _dec9 = (0, _model.attr)('number'), _dec10 = (0, _model.attr)('number'), _dec11 = (0, _model.attr)('number'), _dec12 = (0, _model.attr)('number'), _dec13 = (0, _model.attr)('number'), _dec14 = (0, _model.attr)('date'), (_class = class TaskGroupDeploymentSummary extends _fragment.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "deployment", _descriptor, this);

      _initializerDefineProperty(this, "name", _descriptor2, this);

      _initializerDefineProperty(this, "autoRevert", _descriptor3, this);

      _initializerDefineProperty(this, "autoPromote", _descriptor4, this);

      _initializerDefineProperty(this, "promoted", _descriptor5, this);

      _initializerDefineProperty(this, "requiresPromotion", _descriptor6, this);

      _initializerDefineProperty(this, "placedCanaryAllocations", _descriptor7, this);

      _initializerDefineProperty(this, "placedCanaries", _descriptor8, this);

      _initializerDefineProperty(this, "desiredCanaries", _descriptor9, this);

      _initializerDefineProperty(this, "desiredTotal", _descriptor10, this);

      _initializerDefineProperty(this, "placedAllocs", _descriptor11, this);

      _initializerDefineProperty(this, "healthyAllocs", _descriptor12, this);

      _initializerDefineProperty(this, "unhealthyAllocs", _descriptor13, this);

      _initializerDefineProperty(this, "requireProgressBy", _descriptor14, this);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "deployment", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "name", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "autoRevert", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, "autoPromote", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor5 = _applyDecoratedDescriptor(_class.prototype, "promoted", [_dec5], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor6 = _applyDecoratedDescriptor(_class.prototype, "requiresPromotion", [_dec6], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor7 = _applyDecoratedDescriptor(_class.prototype, "placedCanaryAllocations", [_dec7], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor8 = _applyDecoratedDescriptor(_class.prototype, "placedCanaries", [_dec8], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor9 = _applyDecoratedDescriptor(_class.prototype, "desiredCanaries", [_dec9], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor10 = _applyDecoratedDescriptor(_class.prototype, "desiredTotal", [_dec10], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor11 = _applyDecoratedDescriptor(_class.prototype, "placedAllocs", [_dec11], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor12 = _applyDecoratedDescriptor(_class.prototype, "healthyAllocs", [_dec12], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor13 = _applyDecoratedDescriptor(_class.prototype, "unhealthyAllocs", [_dec13], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor14 = _applyDecoratedDescriptor(_class.prototype, "requireProgressBy", [_dec14], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class));
  _exports.default = TaskGroupDeploymentSummary;
});
;define("nomad-ui/models/task-group-scale", ["exports", "@ember/object/computed", "ember-data-model-fragments/fragment", "@ember-data/model", "ember-data-model-fragments/attributes"], function (_exports, _computed, _fragment, _model, _attributes) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _dec9, _class, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8, _descriptor9;

  0; //eaimeta@70e063a35619d71f0,"@ember/object/computed",0,"ember-data-model-fragments/fragment",0,"@ember-data/model",0,"ember-data-model-fragments/attributes"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let TaskGroupScale = (_dec = (0, _attributes.fragmentOwner)(), _dec2 = (0, _model.attr)('string'), _dec3 = (0, _model.attr)('number'), _dec4 = (0, _model.attr)('number'), _dec5 = (0, _model.attr)('number'), _dec6 = (0, _model.attr)('number'), _dec7 = (0, _model.attr)('number'), _dec8 = (0, _attributes.fragmentArray)('scale-event'), _dec9 = (0, _computed.reads)('events.length'), (_class = class TaskGroupScale extends _fragment.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "jobScale", _descriptor, this);

      _initializerDefineProperty(this, "name", _descriptor2, this);

      _initializerDefineProperty(this, "desired", _descriptor3, this);

      _initializerDefineProperty(this, "placed", _descriptor4, this);

      _initializerDefineProperty(this, "running", _descriptor5, this);

      _initializerDefineProperty(this, "healthy", _descriptor6, this);

      _initializerDefineProperty(this, "unhealthy", _descriptor7, this);

      _initializerDefineProperty(this, "events", _descriptor8, this);

      _initializerDefineProperty(this, "isVisible", _descriptor9, this);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "jobScale", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "name", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "desired", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, "placed", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor5 = _applyDecoratedDescriptor(_class.prototype, "running", [_dec5], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor6 = _applyDecoratedDescriptor(_class.prototype, "healthy", [_dec6], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor7 = _applyDecoratedDescriptor(_class.prototype, "unhealthy", [_dec7], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor8 = _applyDecoratedDescriptor(_class.prototype, "events", [_dec8], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor9 = _applyDecoratedDescriptor(_class.prototype, "isVisible", [_dec9], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class));
  _exports.default = TaskGroupScale;
});
;define("nomad-ui/models/task-group-summary", ["exports", "@ember/object/computed", "ember-data-model-fragments/fragment", "@ember-data/model", "ember-data-model-fragments/attributes"], function (_exports, _computed, _fragment, _model, _attributes) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _dec9, _dec10, _dec11, _class, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8, _descriptor9, _descriptor10, _descriptor11;

  0; //eaimeta@70e063a35619d71f0,"@ember/object/computed",0,"ember-data-model-fragments/fragment",0,"@ember-data/model",0,"ember-data-model-fragments/attributes"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let TaskGroupSummary = (_dec = (0, _attributes.fragmentOwner)(), _dec2 = (0, _model.attr)('string'), _dec3 = (0, _model.attr)('number'), _dec4 = (0, _model.attr)('number'), _dec5 = (0, _model.attr)('number'), _dec6 = (0, _model.attr)('number'), _dec7 = (0, _model.attr)('number'), _dec8 = (0, _model.attr)('number'), _dec9 = (0, _model.attr)('number'), _dec10 = (0, _computed.collect)('queuedAllocs', 'startingAllocs', 'runningAllocs', 'completeAllocs', 'failedAllocs', 'lostAllocs', 'unknownAllocs'), _dec11 = (0, _computed.sum)('allocsList'), (_class = class TaskGroupSummary extends _fragment.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "job", _descriptor, this);

      _initializerDefineProperty(this, "name", _descriptor2, this);

      _initializerDefineProperty(this, "queuedAllocs", _descriptor3, this);

      _initializerDefineProperty(this, "startingAllocs", _descriptor4, this);

      _initializerDefineProperty(this, "runningAllocs", _descriptor5, this);

      _initializerDefineProperty(this, "completeAllocs", _descriptor6, this);

      _initializerDefineProperty(this, "failedAllocs", _descriptor7, this);

      _initializerDefineProperty(this, "lostAllocs", _descriptor8, this);

      _initializerDefineProperty(this, "unknownAllocs", _descriptor9, this);

      _initializerDefineProperty(this, "allocsList", _descriptor10, this);

      _initializerDefineProperty(this, "totalAllocs", _descriptor11, this);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "job", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "name", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "queuedAllocs", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, "startingAllocs", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor5 = _applyDecoratedDescriptor(_class.prototype, "runningAllocs", [_dec5], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor6 = _applyDecoratedDescriptor(_class.prototype, "completeAllocs", [_dec6], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor7 = _applyDecoratedDescriptor(_class.prototype, "failedAllocs", [_dec7], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor8 = _applyDecoratedDescriptor(_class.prototype, "lostAllocs", [_dec8], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor9 = _applyDecoratedDescriptor(_class.prototype, "unknownAllocs", [_dec9], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor10 = _applyDecoratedDescriptor(_class.prototype, "allocsList", [_dec10], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor11 = _applyDecoratedDescriptor(_class.prototype, "totalAllocs", [_dec11], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class));
  _exports.default = TaskGroupSummary;
});
;define("nomad-ui/models/task-group", ["exports", "@ember/object", "ember-data-model-fragments/fragment", "@ember-data/model", "ember-data-model-fragments/attributes", "nomad-ui/utils/properties/sum-aggregation"], function (_exports, _object, _fragment, _model, _attributes, _sumAggregation) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _dec9, _dec10, _dec11, _dec12, _dec13, _dec14, _dec15, _dec16, _dec17, _dec18, _dec19, _dec20, _dec21, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8, _descriptor9, _descriptor10, _descriptor11, _descriptor12;

  0; //eaimeta@70e063a35619d71f0,"@ember/object",0,"ember-data-model-fragments/fragment",0,"@ember-data/model",0,"ember-data-model-fragments/attributes",0,"nomad-ui/utils/properties/sum-aggregation",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }

  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;

  const maybe = arr => arr || [];

  let TaskGroup = (_dec = (0, _attributes.fragmentOwner)(), _dec2 = (0, _model.attr)('string'), _dec3 = (0, _model.attr)('number'), _dec4 = (0, _object.computed)('job.{variables,parent,plainId}', 'name'), _dec5 = (0, _attributes.fragmentArray)('task'), _dec6 = (0, _attributes.fragmentArray)('service-fragment'), _dec7 = (0, _attributes.fragmentArray)('volume-definition'), _dec8 = (0, _attributes.fragment)('group-scaling'), _dec9 = (0, _model.attr)(), _dec10 = (0, _object.computed)('job.meta.raw', 'meta'), _dec11 = (0, _object.computed)('tasks.@each.driver'), _dec12 = (0, _object.computed)('job.allocations.{@each.taskGroup,isFulfilled}', 'name'), _dec13 = (0, _sumAggregation.default)('tasks', 'reservedCPU'), _dec14 = (0, _sumAggregation.default)('tasks', 'reservedMemory'), _dec15 = (0, _sumAggregation.default)('tasks', 'reservedDisk'), _dec16 = (0, _object.computed)('tasks.@each.{reservedMemory,reservedMemoryMax}'), _dec17 = (0, _model.attr)('number'), _dec18 = (0, _object.computed)('job.latestFailureEvaluation.failedTGAllocs.[]', 'name'), _dec19 = (0, _object.computed)('summary.{queuedAllocs,startingAllocs}'), _dec20 = (0, _object.computed)('job.taskGroupSummaries.[]', 'name'), _dec21 = (0, _object.computed)('job.scaleState.taskGroupScales.[]', 'name'), classic(_class = (_class2 = class TaskGroup extends _fragment.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "job", _descriptor, this);

      _initializerDefineProperty(this, "name", _descriptor2, this);

      _initializerDefineProperty(this, "count", _descriptor3, this);

      _initializerDefineProperty(this, "tasks", _descriptor4, this);

      _initializerDefineProperty(this, "services", _descriptor5, this);

      _initializerDefineProperty(this, "volumes", _descriptor6, this);

      _initializerDefineProperty(this, "scaling", _descriptor7, this);

      _initializerDefineProperty(this, "meta", _descriptor8, this);

      _initializerDefineProperty(this, "reservedCPU", _descriptor9, this);

      _initializerDefineProperty(this, "reservedMemory", _descriptor10, this);

      _initializerDefineProperty(this, "reservedDisk", _descriptor11, this);

      _initializerDefineProperty(this, "reservedEphemeralDisk", _descriptor12, this);
    }

    get pathLinkedVariable() {
      if (this.job.parent.get('id')) {
        var _this$job$variables;

        return (_this$job$variables = this.job.variables) === null || _this$job$variables === void 0 ? void 0 : _this$job$variables.findBy('path', `nomad/jobs/${JSON.parse(this.job.parent.get('id'))[0]}/${this.name}`);
      } else {
        var _this$job$variables2;

        return (_this$job$variables2 = this.job.variables) === null || _this$job$variables2 === void 0 ? void 0 : _this$job$variables2.findBy('path', `nomad/jobs/${this.job.plainId}/${this.name}`);
      }
    }

    get mergedMeta() {
      return _objectSpread(_objectSpread({}, this.job.get('meta.raw')), this.meta);
    }

    get drivers() {
      return this.tasks.mapBy('driver').uniq();
    }

    get allocations() {
      return maybe(this.get('job.allocations')).filterBy('taskGroupName', this.name);
    }

    get reservedMemoryMax() {
      return this.get('tasks').map(t => t.get('reservedMemoryMax') || t.get('reservedMemory')).reduce((sum, count) => sum + count, 0);
    }

    get placementFailures() {
      const placementFailures = this.get('job.latestFailureEvaluation.failedTGAllocs');
      return placementFailures && placementFailures.findBy('name', this.name);
    }

    get queuedOrStartingAllocs() {
      return this.get('summary.queuedAllocs') + this.get('summary.startingAllocs');
    }

    get summary() {
      return maybe(this.get('job.taskGroupSummaries')).findBy('name', this.name);
    }

    get scaleState() {
      return maybe(this.get('job.scaleState.taskGroupScales')).findBy('name', this.name);
    }

    scale(count, message) {
      return this.job.scale(this.name, count, message);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "job", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "name", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, "count", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "pathLinkedVariable", [_dec4], Object.getOwnPropertyDescriptor(_class2.prototype, "pathLinkedVariable"), _class2.prototype), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, "tasks", [_dec5], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor5 = _applyDecoratedDescriptor(_class2.prototype, "services", [_dec6], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor6 = _applyDecoratedDescriptor(_class2.prototype, "volumes", [_dec7], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor7 = _applyDecoratedDescriptor(_class2.prototype, "scaling", [_dec8], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor8 = _applyDecoratedDescriptor(_class2.prototype, "meta", [_dec9], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "mergedMeta", [_dec10], Object.getOwnPropertyDescriptor(_class2.prototype, "mergedMeta"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "drivers", [_dec11], Object.getOwnPropertyDescriptor(_class2.prototype, "drivers"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "allocations", [_dec12], Object.getOwnPropertyDescriptor(_class2.prototype, "allocations"), _class2.prototype), _descriptor9 = _applyDecoratedDescriptor(_class2.prototype, "reservedCPU", [_dec13], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor10 = _applyDecoratedDescriptor(_class2.prototype, "reservedMemory", [_dec14], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor11 = _applyDecoratedDescriptor(_class2.prototype, "reservedDisk", [_dec15], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "reservedMemoryMax", [_dec16], Object.getOwnPropertyDescriptor(_class2.prototype, "reservedMemoryMax"), _class2.prototype), _descriptor12 = _applyDecoratedDescriptor(_class2.prototype, "reservedEphemeralDisk", [_dec17], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "placementFailures", [_dec18], Object.getOwnPropertyDescriptor(_class2.prototype, "placementFailures"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "queuedOrStartingAllocs", [_dec19], Object.getOwnPropertyDescriptor(_class2.prototype, "queuedOrStartingAllocs"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "summary", [_dec20], Object.getOwnPropertyDescriptor(_class2.prototype, "summary"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "scaleState", [_dec21], Object.getOwnPropertyDescriptor(_class2.prototype, "scaleState"), _class2.prototype)), _class2)) || _class);
  _exports.default = TaskGroup;
});
;define("nomad-ui/models/task-state", ["exports", "@ember/object", "@ember/object/computed", "ember-data-model-fragments/fragment", "@ember-data/model", "ember-data-model-fragments/attributes"], function (_exports, _object, _computed, _fragment, _model, _attributes) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _dec9, _dec10, _dec11, _dec12, _dec13, _dec14, _dec15, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8, _descriptor9, _descriptor10;

  0; //eaimeta@70e063a35619d71f0,"@ember/object",0,"@ember/object/computed",0,"ember-data-model-fragments/fragment",0,"@ember-data/model",0,"ember-data-model-fragments/attributes",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let TaskState = (_dec = (0, _attributes.fragmentOwner)(), _dec2 = (0, _model.attr)('string'), _dec3 = (0, _model.attr)('string'), _dec4 = (0, _model.attr)('date'), _dec5 = (0, _model.attr)('date'), _dec6 = (0, _model.attr)('boolean'), _dec7 = (0, _computed.and)('isActive', 'allocation.isRunning'), _dec8 = (0, _object.computed)('task.kind'), _dec9 = (0, _object.computed)('name', 'allocation.taskGroup.tasks.[]'), _dec10 = (0, _computed.alias)('task.driver'), _dec11 = (0, _object.computed)('task.driver', 'allocation.node.drivers.[]'), _dec12 = (0, _attributes.fragment)('resources'), _dec13 = (0, _attributes.fragmentArray)('task-event'), _dec14 = (0, _object.computed)('state'), _dec15 = (0, _object.computed)('state'), classic(_class = (_class2 = class TaskState extends _fragment.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "allocation", _descriptor, this);

      _initializerDefineProperty(this, "name", _descriptor2, this);

      _initializerDefineProperty(this, "state", _descriptor3, this);

      _initializerDefineProperty(this, "startedAt", _descriptor4, this);

      _initializerDefineProperty(this, "finishedAt", _descriptor5, this);

      _initializerDefineProperty(this, "failed", _descriptor6, this);

      _initializerDefineProperty(this, "isRunning", _descriptor7, this);

      _initializerDefineProperty(this, "driver", _descriptor8, this);

      _initializerDefineProperty(this, "resources", _descriptor9, this);

      _initializerDefineProperty(this, "events", _descriptor10, this);
    }

    get isConnectProxy() {
      return (this.get('task.kind') || '').startsWith('connect-proxy:');
    }

    get task() {
      const tasks = this.get('allocation.taskGroup.tasks');
      return tasks && tasks.findBy('name', this.name);
    }

    // TaskState represents a task running on a node, so in addition to knowing the
    // driver via the task, the health of the driver is also known via the node
    get driverStatus() {
      const nodeDrivers = this.get('allocation.node.drivers') || [];
      return nodeDrivers.findBy('name', this.get('task.driver'));
    }

    get stateClass() {
      const classMap = {
        pending: 'is-pending',
        running: 'is-primary',
        finished: 'is-complete',
        failed: 'is-error'
      };
      return classMap[this.state] || 'is-dark';
    }

    get isActive() {
      return this.state === 'running';
    }

    restart() {
      return this.allocation.restart(this.name);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "allocation", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "name", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, "state", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, "startedAt", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor5 = _applyDecoratedDescriptor(_class2.prototype, "finishedAt", [_dec5], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor6 = _applyDecoratedDescriptor(_class2.prototype, "failed", [_dec6], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor7 = _applyDecoratedDescriptor(_class2.prototype, "isRunning", [_dec7], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "isConnectProxy", [_dec8], Object.getOwnPropertyDescriptor(_class2.prototype, "isConnectProxy"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "task", [_dec9], Object.getOwnPropertyDescriptor(_class2.prototype, "task"), _class2.prototype), _descriptor8 = _applyDecoratedDescriptor(_class2.prototype, "driver", [_dec10], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "driverStatus", [_dec11], Object.getOwnPropertyDescriptor(_class2.prototype, "driverStatus"), _class2.prototype), _descriptor9 = _applyDecoratedDescriptor(_class2.prototype, "resources", [_dec12], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor10 = _applyDecoratedDescriptor(_class2.prototype, "events", [_dec13], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "stateClass", [_dec14], Object.getOwnPropertyDescriptor(_class2.prototype, "stateClass"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "isActive", [_dec15], Object.getOwnPropertyDescriptor(_class2.prototype, "isActive"), _class2.prototype)), _class2)) || _class);
  _exports.default = TaskState;
});
;define("nomad-ui/models/task", ["exports", "@ember-data/model", "ember-data-model-fragments/fragment", "ember-data-model-fragments/attributes", "@ember/object"], function (_exports, _model, _fragment, _attributes, _object) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _dec9, _dec10, _dec11, _dec12, _dec13, _dec14, _dec15, _class, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8, _descriptor9, _descriptor10, _descriptor11, _descriptor12, _descriptor13;

  0; //eaimeta@70e063a35619d71f0,"@ember-data/model",0,"ember-data-model-fragments/fragment",0,"ember-data-model-fragments/attributes",0,"@ember/object"eaimeta@70e063a35619d71f

  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }

  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let Task = (_dec = (0, _attributes.fragmentOwner)(), _dec2 = (0, _model.attr)('string'), _dec3 = (0, _model.attr)('string'), _dec4 = (0, _model.attr)('string'), _dec5 = (0, _model.attr)(), _dec6 = (0, _object.computed)('taskGroup.mergedMeta', 'meta'), _dec7 = (0, _attributes.fragment)('lifecycle'), _dec8 = (0, _object.computed)('lifecycle', 'lifecycle.sidecar'), _dec9 = (0, _model.attr)('number'), _dec10 = (0, _model.attr)('number'), _dec11 = (0, _model.attr)('number'), _dec12 = (0, _model.attr)('number'), _dec13 = (0, _model.attr)('number'), _dec14 = (0, _attributes.fragmentArray)('service-fragment'), _dec15 = (0, _attributes.fragmentArray)('volume-mount', {
    defaultValue: () => []
  }), (_class = class Task extends _fragment.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "taskGroup", _descriptor, this);

      _initializerDefineProperty(this, "name", _descriptor2, this);

      _initializerDefineProperty(this, "driver", _descriptor3, this);

      _initializerDefineProperty(this, "kind", _descriptor4, this);

      _initializerDefineProperty(this, "meta", _descriptor5, this);

      _initializerDefineProperty(this, "lifecycle", _descriptor6, this);

      _initializerDefineProperty(this, "reservedMemory", _descriptor7, this);

      _initializerDefineProperty(this, "reservedMemoryMax", _descriptor8, this);

      _initializerDefineProperty(this, "reservedCPU", _descriptor9, this);

      _initializerDefineProperty(this, "reservedDisk", _descriptor10, this);

      _initializerDefineProperty(this, "reservedEphemeralDisk", _descriptor11, this);

      _initializerDefineProperty(this, "services", _descriptor12, this);

      _initializerDefineProperty(this, "volumeMounts", _descriptor13, this);
    }

    get mergedMeta() {
      return _objectSpread(_objectSpread({}, this.taskGroup.mergedMeta), this.meta);
    }

    get lifecycleName() {
      if (this.lifecycle) {
        const {
          hook,
          sidecar
        } = this.lifecycle;

        if (hook === 'prestart') {
          return sidecar ? 'prestart-sidecar' : 'prestart-ephemeral';
        } else if (hook === 'poststart') {
          return sidecar ? 'poststart-sidecar' : 'poststart-ephemeral';
        } else if (hook === 'poststop') {
          return 'poststop';
        }
      }

      return 'main';
    }

    async _fetchParentJob() {
      let job = await this.store.findRecord('job', this.taskGroup.job.id, {
        reload: true
      });
      this._job = job;
    }

    get pathLinkedVariable() {
      if (!this._job) {
        this._fetchParentJob();

        return null;
      } else {
        var _this$_job$variables;

        let jobID = this._job.plainId;

        if (this._job.parent.get('plainId')) {
          jobID = this._job.parent.get('plainId');
        }

        return (_this$_job$variables = this._job.variables) === null || _this$_job$variables === void 0 ? void 0 : _this$_job$variables.findBy('path', `nomad/jobs/${jobID}/${this.taskGroup.name}/${this.name}`);
      }
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "taskGroup", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "name", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "driver", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, "kind", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor5 = _applyDecoratedDescriptor(_class.prototype, "meta", [_dec5], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class.prototype, "mergedMeta", [_dec6], Object.getOwnPropertyDescriptor(_class.prototype, "mergedMeta"), _class.prototype), _descriptor6 = _applyDecoratedDescriptor(_class.prototype, "lifecycle", [_dec7], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class.prototype, "lifecycleName", [_dec8], Object.getOwnPropertyDescriptor(_class.prototype, "lifecycleName"), _class.prototype), _descriptor7 = _applyDecoratedDescriptor(_class.prototype, "reservedMemory", [_dec9], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor8 = _applyDecoratedDescriptor(_class.prototype, "reservedMemoryMax", [_dec10], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor9 = _applyDecoratedDescriptor(_class.prototype, "reservedCPU", [_dec11], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor10 = _applyDecoratedDescriptor(_class.prototype, "reservedDisk", [_dec12], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor11 = _applyDecoratedDescriptor(_class.prototype, "reservedEphemeralDisk", [_dec13], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor12 = _applyDecoratedDescriptor(_class.prototype, "services", [_dec14], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor13 = _applyDecoratedDescriptor(_class.prototype, "volumeMounts", [_dec15], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class));
  _exports.default = Task;
});
;define("nomad-ui/models/token", ["exports", "@ember/object/computed", "@ember-data/model"], function (_exports, _computed, _model) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _dec9, _class, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8, _descriptor9;

  0; //eaimeta@70e063a35619d71f0,"@ember/object/computed",0,"@ember-data/model",0,"@ember-data/model",0,"@ember-data/model"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let Token = (_dec = (0, _model.attr)('string'), _dec2 = (0, _model.attr)('string'), _dec3 = (0, _model.attr)('boolean'), _dec4 = (0, _model.attr)('date'), _dec5 = (0, _model.attr)('string'), _dec6 = (0, _model.hasMany)('policy'), _dec7 = (0, _model.attr)(), _dec8 = (0, _model.attr)('date'), _dec9 = (0, _computed.alias)('id'), (_class = class Token extends _model.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "secret", _descriptor, this);

      _initializerDefineProperty(this, "name", _descriptor2, this);

      _initializerDefineProperty(this, "global", _descriptor3, this);

      _initializerDefineProperty(this, "createTime", _descriptor4, this);

      _initializerDefineProperty(this, "type", _descriptor5, this);

      _initializerDefineProperty(this, "policies", _descriptor6, this);

      _initializerDefineProperty(this, "policyNames", _descriptor7, this);

      _initializerDefineProperty(this, "expirationTime", _descriptor8, this);

      _initializerDefineProperty(this, "accessor", _descriptor9, this);
    }

    get isExpired() {
      return this.expirationTime && this.expirationTime < new Date();
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "secret", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "name", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "global", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, "createTime", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor5 = _applyDecoratedDescriptor(_class.prototype, "type", [_dec5], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor6 = _applyDecoratedDescriptor(_class.prototype, "policies", [_dec6], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor7 = _applyDecoratedDescriptor(_class.prototype, "policyNames", [_dec7], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor8 = _applyDecoratedDescriptor(_class.prototype, "expirationTime", [_dec8], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor9 = _applyDecoratedDescriptor(_class.prototype, "accessor", [_dec9], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class));
  _exports.default = Token;
});
;define("nomad-ui/models/variable", ["exports", "@ember-data/model", "@ember/object", "@ember/array/mutable", "nomad-ui/helpers/trim-path"], function (_exports, _model, _object, _mutable, _trimPath) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _dec9, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7;

  0; //eaimeta@70e063a35619d71f0,"@ember-data/model",0,"@ember/object",0,"ember-classic-decorator",0,"@ember/array/mutable",0,"nomad-ui/helpers/trim-path",0,"@ember-data/model"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR; // eslint-disable-next-line no-unused-vars

  let VariableModel = (
  /**
   * @typedef KeyValue
   * @type {object}
   * @property {string} key
   * @property {string} value
   */

  /**
   * @typedef Variable
   * @type {object}
   */

  /**
   * A Variable has a path, namespace, and an array of key-value pairs within the client.
   * On the server, these key-value pairs are serialized into object structure.
   * @class
   * @extends Model
   */
  _dec = (0, _model.attr)('string', {
    defaultValue: ''
  }), _dec2 = (0, _model.attr)({
    defaultValue() {
      return [{
        key: '',
        value: ''
      }];
    }

  }), _dec3 = (0, _model.attr)('number'), _dec4 = (0, _model.attr)('number'), _dec5 = (0, _model.attr)('date'), _dec6 = (0, _model.attr)('date'), _dec7 = (0, _model.attr)('string', {
    defaultValue: 'default'
  }), _dec8 = (0, _object.computed)('path'), _dec9 = (0, _object.computed)('keyValues'), classic(_class = (_class2 = class VariableModel extends _model.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "path", _descriptor, this);

      _initializerDefineProperty(this, "keyValues", _descriptor2, this);

      _initializerDefineProperty(this, "createIndex", _descriptor3, this);

      _initializerDefineProperty(this, "modifyIndex", _descriptor4, this);

      _initializerDefineProperty(this, "createTime", _descriptor5, this);

      _initializerDefineProperty(this, "modifyTime", _descriptor6, this);

      _initializerDefineProperty(this, "namespace", _descriptor7, this);
    }

    get parentFolderPath() {
      const split = this.path.split('/');
      const [, ...folderPath] = [split.pop(), ...split];
      return folderPath.join('/');
    }
    /**
     * Removes starting and trailing slashes, pathLinkedEntitiesand sets the ID property
     */


    setAndTrimPath() {
      this.set('path', (0, _trimPath.trimPath)([this.path]));

      if (!this.get('id')) {
        this.set('id', `${this.get('path')}@${this.get('namespace')}`);
      }
    }
    /**
     * Translates the key-value pairs into an object structure.
     */


    get items() {
      return this.keyValues.reduce((acc, _ref) => {
        let {
          key,
          value
        } = _ref;
        acc[key] = value;
        return acc;
      }, {});
    } // Gets the path of the variable, and if it starts with jobs/, delimits on / and returns each part separately in an array

    /**
     * @typedef pathLinkedEntities
     * @type {Object}
     * @property {string} job
     * @property {string} [group]
     * @property {string} [task]
     */

    /**
     * @type {pathLinkedEntities}
     */


    get pathLinkedEntities() {
      var _this$path, _this$path2;

      const entityTypes = ['job', 'group', 'task'];
      const emptyEntities = {
        job: '',
        group: '',
        task: ''
      };

      if ((_this$path = this.path) !== null && _this$path !== void 0 && _this$path.startsWith('nomad/jobs/') && ((_this$path2 = this.path) === null || _this$path2 === void 0 ? void 0 : _this$path2.split('/').length) <= 5) {
        return this.path.split('/').slice(2, 5).reduce((acc, pathPart, index) => {
          acc[entityTypes[index]] = pathPart;
          return acc;
        }, emptyEntities);
      } else {
        return emptyEntities;
      }
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "path", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "keyValues", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, "createIndex", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, "modifyIndex", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor5 = _applyDecoratedDescriptor(_class2.prototype, "createTime", [_dec5], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor6 = _applyDecoratedDescriptor(_class2.prototype, "modifyTime", [_dec6], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor7 = _applyDecoratedDescriptor(_class2.prototype, "namespace", [_dec7], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "parentFolderPath", [_dec8], Object.getOwnPropertyDescriptor(_class2.prototype, "parentFolderPath"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "items", [_dec9], Object.getOwnPropertyDescriptor(_class2.prototype, "items"), _class2.prototype)), _class2)) || _class);
  _exports.default = VariableModel;
});
;define("nomad-ui/models/volume-definition", ["exports", "@ember/object/computed", "@ember-data/model", "ember-data-model-fragments/fragment", "ember-data-model-fragments/attributes"], function (_exports, _computed, _model, _fragment, _attributes) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _class, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8;

  0; //eaimeta@70e063a35619d71f0,"@ember/object/computed",0,"@ember-data/model",0,"ember-data-model-fragments/fragment",0,"ember-data-model-fragments/attributes"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let VolumeDefinition = (_dec = (0, _attributes.fragmentOwner)(), _dec2 = (0, _model.attr)('string'), _dec3 = (0, _model.attr)('string'), _dec4 = (0, _model.attr)('string'), _dec5 = (0, _model.attr)('boolean'), _dec6 = (0, _model.attr)('boolean'), _dec7 = (0, _computed.equal)('type', 'csi'), _dec8 = (0, _computed.alias)('taskGroup.job.namespace'), (_class = class VolumeDefinition extends _fragment.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "taskGroup", _descriptor, this);

      _initializerDefineProperty(this, "name", _descriptor2, this);

      _initializerDefineProperty(this, "source", _descriptor3, this);

      _initializerDefineProperty(this, "type", _descriptor4, this);

      _initializerDefineProperty(this, "readOnly", _descriptor5, this);

      _initializerDefineProperty(this, "perAlloc", _descriptor6, this);

      _initializerDefineProperty(this, "isCSI", _descriptor7, this);

      _initializerDefineProperty(this, "namespace", _descriptor8, this);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "taskGroup", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "name", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "source", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, "type", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor5 = _applyDecoratedDescriptor(_class.prototype, "readOnly", [_dec5], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor6 = _applyDecoratedDescriptor(_class.prototype, "perAlloc", [_dec6], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor7 = _applyDecoratedDescriptor(_class.prototype, "isCSI", [_dec7], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor8 = _applyDecoratedDescriptor(_class.prototype, "namespace", [_dec8], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class));
  _exports.default = VolumeDefinition;
});
;define("nomad-ui/models/volume-mount", ["exports", "@ember/object", "@ember/object/computed", "@ember-data/model", "ember-data-model-fragments/fragment", "ember-data-model-fragments/attributes"], function (_exports, _object, _computed, _model, _fragment, _attributes) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _dec9, _class, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8;

  0; //eaimeta@70e063a35619d71f0,"@ember/object",0,"@ember/object/computed",0,"@ember-data/model",0,"ember-data-model-fragments/fragment",0,"ember-data-model-fragments/attributes"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let VolumeMount = (_dec = (0, _attributes.fragmentOwner)(), _dec2 = (0, _model.attr)('string'), _dec3 = (0, _object.computed)('task.taskGroup.volumes.@each.name', 'volume'), _dec4 = (0, _computed.equal)('volumeDeclaration.type', 'csi'), _dec5 = (0, _computed.alias)('volumeDeclaration.source'), _dec6 = (0, _computed.alias)('task.taskGroup.job.namespace'), _dec7 = (0, _model.attr)('string'), _dec8 = (0, _model.attr)('string'), _dec9 = (0, _model.attr)('boolean'), (_class = class VolumeMount extends _fragment.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "task", _descriptor, this);

      _initializerDefineProperty(this, "volume", _descriptor2, this);

      _initializerDefineProperty(this, "isCSI", _descriptor3, this);

      _initializerDefineProperty(this, "source", _descriptor4, this);

      _initializerDefineProperty(this, "namespace", _descriptor5, this);

      _initializerDefineProperty(this, "destination", _descriptor6, this);

      _initializerDefineProperty(this, "propagationMode", _descriptor7, this);

      _initializerDefineProperty(this, "readOnly", _descriptor8, this);
    }

    get volumeDeclaration() {
      return this.task.taskGroup.volumes.findBy('name', this.volume);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "task", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "volume", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class.prototype, "volumeDeclaration", [_dec3], Object.getOwnPropertyDescriptor(_class.prototype, "volumeDeclaration"), _class.prototype), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "isCSI", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, "source", [_dec5], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor5 = _applyDecoratedDescriptor(_class.prototype, "namespace", [_dec6], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor6 = _applyDecoratedDescriptor(_class.prototype, "destination", [_dec7], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor7 = _applyDecoratedDescriptor(_class.prototype, "propagationMode", [_dec8], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor8 = _applyDecoratedDescriptor(_class.prototype, "readOnly", [_dec9], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class));
  _exports.default = VolumeMount;
});
;define("nomad-ui/models/volume", ["exports", "@ember/object", "@ember-data/model"], function (_exports, _object, _model) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _dec9, _dec10, _dec11, _dec12, _dec13, _dec14, _dec15, _dec16, _dec17, _dec18, _dec19, _dec20, _dec21, _dec22, _dec23, _dec24, _dec25, _dec26, _dec27, _dec28, _class, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8, _descriptor9, _descriptor10, _descriptor11, _descriptor12, _descriptor13, _descriptor14, _descriptor15, _descriptor16, _descriptor17, _descriptor18, _descriptor19, _descriptor20, _descriptor21, _descriptor22, _descriptor23;

  0; //eaimeta@70e063a35619d71f0,"@ember/object",0,"@ember-data/model",0,"@ember-data/model"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let Volume = (_dec = (0, _model.attr)('string'), _dec2 = (0, _model.attr)('string'), _dec3 = (0, _model.belongsTo)('namespace'), _dec4 = (0, _model.belongsTo)('plugin'), _dec5 = (0, _model.hasMany)('allocation'), _dec6 = (0, _model.hasMany)('allocation'), _dec7 = (0, _object.computed)('writeAllocations.[]', 'readAllocations.[]'), _dec8 = (0, _model.attr)('number'), _dec9 = (0, _model.attr)('number'), _dec10 = (0, _object.computed)('currentWriters', 'currentReaders'), _dec11 = (0, _model.attr)('string'), _dec12 = (0, _model.attr)(), _dec13 = (0, _model.attr)('string'), _dec14 = (0, _model.attr)('string'), _dec15 = (0, _model.attr)('boolean'), _dec16 = (0, _model.attr)('string'), _dec17 = (0, _model.attr)('string'), _dec18 = (0, _model.attr)('boolean'), _dec19 = (0, _model.attr)('number'), _dec20 = (0, _model.attr)('number'), _dec21 = (0, _object.computed)('plainId'), _dec22 = (0, _object.computed)('controllersHealthy', 'controllersExpected'), _dec23 = (0, _model.attr)('number'), _dec24 = (0, _model.attr)('number'), _dec25 = (0, _object.computed)('nodesHealthy', 'nodesExpected'), _dec26 = (0, _model.attr)('number'), _dec27 = (0, _model.attr)('number'), _dec28 = (0, _model.attr)('number'), (_class = class Volume extends _model.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "plainId", _descriptor, this);

      _initializerDefineProperty(this, "name", _descriptor2, this);

      _initializerDefineProperty(this, "namespace", _descriptor3, this);

      _initializerDefineProperty(this, "plugin", _descriptor4, this);

      _initializerDefineProperty(this, "writeAllocations", _descriptor5, this);

      _initializerDefineProperty(this, "readAllocations", _descriptor6, this);

      _initializerDefineProperty(this, "currentWriters", _descriptor7, this);

      _initializerDefineProperty(this, "currentReaders", _descriptor8, this);

      _initializerDefineProperty(this, "externalId", _descriptor9, this);

      _initializerDefineProperty(this, "topologies", _descriptor10, this);

      _initializerDefineProperty(this, "accessMode", _descriptor11, this);

      _initializerDefineProperty(this, "attachmentMode", _descriptor12, this);

      _initializerDefineProperty(this, "schedulable", _descriptor13, this);

      _initializerDefineProperty(this, "provider", _descriptor14, this);

      _initializerDefineProperty(this, "version", _descriptor15, this);

      _initializerDefineProperty(this, "controllerRequired", _descriptor16, this);

      _initializerDefineProperty(this, "controllersHealthy", _descriptor17, this);

      _initializerDefineProperty(this, "controllersExpected", _descriptor18, this);

      _initializerDefineProperty(this, "nodesHealthy", _descriptor19, this);

      _initializerDefineProperty(this, "nodesExpected", _descriptor20, this);

      _initializerDefineProperty(this, "resourceExhausted", _descriptor21, this);

      _initializerDefineProperty(this, "createIndex", _descriptor22, this);

      _initializerDefineProperty(this, "modifyIndex", _descriptor23, this);
    }

    get allocations() {
      return [...this.writeAllocations.toArray(), ...this.readAllocations.toArray()];
    }

    get allocationCount() {
      return this.currentWriters + this.currentReaders;
    }

    get idWithNamespace() {
      return `${this.plainId}@${this.belongsTo('namespace').id()}`;
    }

    get controllersHealthyProportion() {
      return this.controllersHealthy / this.controllersExpected;
    }

    get nodesHealthyProportion() {
      return this.nodesHealthy / this.nodesExpected;
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "plainId", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "name", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "namespace", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, "plugin", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor5 = _applyDecoratedDescriptor(_class.prototype, "writeAllocations", [_dec5], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor6 = _applyDecoratedDescriptor(_class.prototype, "readAllocations", [_dec6], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class.prototype, "allocations", [_dec7], Object.getOwnPropertyDescriptor(_class.prototype, "allocations"), _class.prototype), _descriptor7 = _applyDecoratedDescriptor(_class.prototype, "currentWriters", [_dec8], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor8 = _applyDecoratedDescriptor(_class.prototype, "currentReaders", [_dec9], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class.prototype, "allocationCount", [_dec10], Object.getOwnPropertyDescriptor(_class.prototype, "allocationCount"), _class.prototype), _descriptor9 = _applyDecoratedDescriptor(_class.prototype, "externalId", [_dec11], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor10 = _applyDecoratedDescriptor(_class.prototype, "topologies", [_dec12], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor11 = _applyDecoratedDescriptor(_class.prototype, "accessMode", [_dec13], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor12 = _applyDecoratedDescriptor(_class.prototype, "attachmentMode", [_dec14], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor13 = _applyDecoratedDescriptor(_class.prototype, "schedulable", [_dec15], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor14 = _applyDecoratedDescriptor(_class.prototype, "provider", [_dec16], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor15 = _applyDecoratedDescriptor(_class.prototype, "version", [_dec17], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor16 = _applyDecoratedDescriptor(_class.prototype, "controllerRequired", [_dec18], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor17 = _applyDecoratedDescriptor(_class.prototype, "controllersHealthy", [_dec19], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor18 = _applyDecoratedDescriptor(_class.prototype, "controllersExpected", [_dec20], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class.prototype, "idWithNamespace", [_dec21], Object.getOwnPropertyDescriptor(_class.prototype, "idWithNamespace"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "controllersHealthyProportion", [_dec22], Object.getOwnPropertyDescriptor(_class.prototype, "controllersHealthyProportion"), _class.prototype), _descriptor19 = _applyDecoratedDescriptor(_class.prototype, "nodesHealthy", [_dec23], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor20 = _applyDecoratedDescriptor(_class.prototype, "nodesExpected", [_dec24], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class.prototype, "nodesHealthyProportion", [_dec25], Object.getOwnPropertyDescriptor(_class.prototype, "nodesHealthyProportion"), _class.prototype), _descriptor21 = _applyDecoratedDescriptor(_class.prototype, "resourceExhausted", [_dec26], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor22 = _applyDecoratedDescriptor(_class.prototype, "createIndex", [_dec27], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor23 = _applyDecoratedDescriptor(_class.prototype, "modifyIndex", [_dec28], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class));
  _exports.default = Volume;
});
;define("nomad-ui/modifiers/autofocus", ["exports", "ember-modifier"], function (_exports, _emberModifier) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember-modifier"eaimeta@70e063a35619d71f

  var _default = (0, _emberModifier.modifier)(function autofocus(element, _positional, named) {
    const {
      ignore
    } = named;
    if (ignore) return;
    element.focus();
  });

  _exports.default = _default;
});
;define("nomad-ui/modifiers/clipboard", ["exports", "ember-cli-clipboard/modifiers/clipboard"], function (_exports, _clipboard) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _clipboard.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-cli-clipboard/modifiers/clipboard"eaimeta@70e063a35619d71f
});
;define("nomad-ui/modifiers/code-mirror", ["exports", "@ember/object", "@ember/runloop", "codemirror", "ember-modifier", "codemirror/addon/edit/matchbrackets", "codemirror/addon/selection/active-line", "codemirror/addon/lint/lint.js", "codemirror/addon/lint/json-lint.js", "codemirror/mode/javascript/javascript", "codemirror/mode/ruby/ruby"], function (_exports, _object, _runloop, _codemirror, _emberModifier, _matchbrackets, _activeLine, _lint, _jsonLint, _javascript, _ruby) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class;

  0; //eaimeta@70e063a35619d71f0,"@ember/object",0,"@ember/runloop",0,"codemirror",0,"ember-modifier",0,"codemirror/addon/edit/matchbrackets",0,"codemirror/addon/selection/active-line",0,"codemirror/addon/lint/lint.js",0,"codemirror/addon/lint/json-lint.js",0,"codemirror/mode/javascript/javascript",0,"codemirror/mode/ruby/ruby"eaimeta@70e063a35619d71f

  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }

  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  let CodeMirrorModifier = (_class = class CodeMirrorModifier extends _emberModifier.default {
    get autofocus() {
      if (Object.hasOwn(_objectSpread({}, this.args.named), 'autofocus')) {
        // spread (...) because proxy, and because Ember over-eagerly prevents named prop lookups for modifier args.
        return this.args.named.autofocus;
      } else {
        return !this.args.named.readOnly;
      }
    }

    didInstall() {
      this._setup();
    }

    didUpdateArguments() {
      this._editor.setOption('lineWrapping', this.args.named.lineWrapping);

      this._editor.setOption('readOnly', this.args.named.readOnly);

      if (!this.args.named.content) {
        return;
      }

      if (this._editor.getValue() !== this.args.named.content) {
        this._editor.setValue(this.args.named.content);
      }
    }

    _onChange(editor) {
      this.args.named.onUpdate(editor.getValue(), this._editor, this.args.named.type);
    }

    _setup() {
      if (this.element) {
        const editor = (0, _codemirror.default)(this.element, {
          gutters: this.args.named.gutters || ['CodeMirror-lint-markers'],
          matchBrackets: true,
          lint: {
            lintOnChange: true
          },
          showCursorWhenSelecting: true,
          styleActiveLine: true,
          tabSize: 2,
          // all values we can pass into the modifier
          extraKeys: this.args.named.extraKeys || '',
          lineNumbers: this.args.named.lineNumbers || true,
          mode: this.args.named.mode || 'application/json',
          readOnly: this.args.named.readOnly || false,
          theme: this.args.named.theme || 'hashi',
          value: this.args.named.content || '',
          viewportMargin: this.args.named.viewportMargin || '',
          screenReaderLabel: this.args.named.screenReaderLabel || '',
          lineWrapping: this.args.named.lineWrapping || false
        });

        if (this.autofocus) {
          editor.focus();
        }

        editor.on('change', (0, _runloop.bind)(this, this._onChange));
        this._editor = editor;
      }
    }

  }, (_applyDecoratedDescriptor(_class.prototype, "_onChange", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "_onChange"), _class.prototype)), _class);
  _exports.default = CodeMirrorModifier;
});
;define("nomad-ui/modifiers/did-insert", ["exports", "@ember/render-modifiers/modifiers/did-insert"], function (_exports, _didInsert) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _didInsert.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@ember/render-modifiers/modifiers/did-insert"eaimeta@70e063a35619d71f
});
;define("nomad-ui/modifiers/did-update", ["exports", "@ember/render-modifiers/modifiers/did-update"], function (_exports, _didUpdate) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _didUpdate.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@ember/render-modifiers/modifiers/did-update"eaimeta@70e063a35619d71f
});
;define("nomad-ui/modifiers/focus-trap", ["exports", "ember-focus-trap/modifiers/focus-trap.js"], function (_exports, _focusTrap) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _focusTrap.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-focus-trap/modifiers/focus-trap.js"eaimeta@70e063a35619d71f
});
;define("nomad-ui/modifiers/hds-tooltip", ["exports", "@hashicorp/design-system-components/modifiers/hds-tooltip"], function (_exports, _hdsTooltip) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _hdsTooltip.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/modifiers/hds-tooltip"eaimeta@70e063a35619d71f
});
;define("nomad-ui/modifiers/keyboard-shortcut", ["exports", "@ember/service", "ember-modifier", "@ember/destroyable"], function (_exports, _service, _emberModifier, _destroyable) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _descriptor, _descriptor2;

  0; //eaimeta@70e063a35619d71f0,"@ember/service",0,"ember-modifier",0,"@ember/destroyable"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let KeyboardShortcutModifier = (_class = class KeyboardShortcutModifier extends _emberModifier.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "keyboard", _descriptor, this);

      _initializerDefineProperty(this, "router", _descriptor2, this);
    }

    modify(element, _positional, _ref) {
      let {
        label,
        pattern = '',
        action = () => {},
        menuLevel = false,
        enumerated = false,
        exclusive = false
      } = _ref;
      let commands = [{
        label,
        action,
        pattern,
        element,
        menuLevel,
        enumerated,
        exclusive
      }];
      this.keyboard.addCommands(commands);
      (0, _destroyable.registerDestructor)(this, () => {
        this.keyboard.removeCommands(commands);
      });
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "keyboard", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "router", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class);
  _exports.default = KeyboardShortcutModifier;
});
;define("nomad-ui/modifiers/on-click-outside", ["exports", "ember-click-outside/modifier"], function (_exports, _modifier) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _modifier.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-click-outside/modifier"eaimeta@70e063a35619d71f
});
;define("nomad-ui/modifiers/on-key", ["exports", "ember-keyboard/modifiers/on-key.js"], function (_exports, _onKey) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _onKey.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-keyboard/modifiers/on-key.js"eaimeta@70e063a35619d71f
});
;define("nomad-ui/modifiers/on-resize", ["exports", "ember-on-resize-modifier/modifiers/on-resize"], function (_exports, _onResize) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _onResize.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-on-resize-modifier/modifiers/on-resize"eaimeta@70e063a35619d71f
});
;define("nomad-ui/modifiers/style", ["exports", "ember-style-modifier/modifiers/style"], function (_exports, _style) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _style.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-style-modifier/modifiers/style"eaimeta@70e063a35619d71f
});
;define("nomad-ui/modifiers/will-destroy", ["exports", "@ember/render-modifiers/modifiers/will-destroy"], function (_exports, _willDestroy) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _willDestroy.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@ember/render-modifiers/modifiers/will-destroy"eaimeta@70e063a35619d71f
});
;define("nomad-ui/modifiers/window-resize", ["exports", "ember-modifier"], function (_exports, _emberModifier) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember-modifier"eaimeta@70e063a35619d71f

  var _default = (0, _emberModifier.modifier)(function windowResize(element, _ref) {
    let [handler] = _ref;

    const boundHandler = ev => handler(element, ev);

    window.addEventListener('resize', boundHandler);
    return () => {
      window.removeEventListener('resize', boundHandler);
    };
  });

  _exports.default = _default;
});
;define("nomad-ui/router", ["exports", "@ember/routing/router", "nomad-ui/config/environment"], function (_exports, _router, _environment) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/routing/router",0,"nomad-ui/config/environment"eaimeta@70e063a35619d71f

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  class Router extends _router.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "location", _environment.default.locationType);

      _defineProperty(this, "rootURL", _environment.default.rootURL);
    }

  }

  _exports.default = Router;

  window.__CLASSIC_OWN_CLASSES__.set(Router, true);

  Router.map(function () {
    this.route('exec', {
      path: '/exec/:job_name'
    }, function () {
      this.route('task-group', {
        path: '/:task_group_name'
      }, function () {
        this.route('task', {
          path: '/:task_name'
        });
      });
    });
    this.route('jobs', function () {
      this.route('run', function () {
        this.route('templates', function () {
          this.route('new');
          this.route('manage');
          this.route('template', {
            path: '/:name'
          });
        });
      });
      this.route('job', {
        path: '/:job_name'
      }, function () {
        this.route('task-group', {
          path: '/:name'
        });
        this.route('definition');
        this.route('versions');
        this.route('deployments');
        this.route('dispatch');
        this.route('evaluations');
        this.route('allocations');
        this.route('clients');
        this.route('services', function () {
          this.route('service', {
            path: '/:name'
          });
        });
      });
    });
    this.route('optimize', function () {
      this.route('summary', {
        path: '*slug'
      });
    });
    this.route('clients', function () {
      this.route('client', {
        path: '/:node_id'
      }, function () {
        this.route('monitor');
      });
    });
    this.route('servers', function () {
      this.route('server', {
        path: '/:agent_id'
      }, function () {
        this.route('monitor');
      });
    });
    this.route('topology');
    this.route('csi', function () {
      this.route('volumes', function () {
        this.route('volume', {
          path: '/:volume_name'
        });
      });
      this.route('plugins', function () {
        this.route('plugin', {
          path: '/:plugin_name'
        }, function () {
          this.route('allocations');
        });
      });
    });
    this.route('allocations', function () {
      this.route('allocation', {
        path: '/:allocation_id'
      }, function () {
        this.route('fs-root', {
          path: '/fs'
        });
        this.route('fs', {
          path: '/fs/*path'
        });
        this.route('task', {
          path: '/:name'
        }, function () {
          this.route('logs');
          this.route('fs-root', {
            path: '/fs'
          });
          this.route('fs', {
            path: '/fs/*path'
          });
        });
      });
    });
    this.route('settings', function () {
      this.route('tokens');
    }); // if we don't include function() the outlet won't render

    this.route('evaluations', function () {});
    this.route('not-found', {
      path: '/*'
    });
    this.route('variables', function () {
      this.route('new');
      this.route('variable', {
        path: '/var/*id'
      }, function () {
        this.route('edit');
      });
      this.route('path', {
        path: '/path/*absolutePath'
      });
    });
    this.route('policies', function () {
      this.route('new');
      this.route('policy', {
        path: '/:name'
      });
    }); // Mirage-only route for testing OIDC flow

    if (_environment.default['ember-cli-mirage']) {
      this.route('oidc-mock');
    }
  });
});
;define("nomad-ui/routes/allocations/allocation", ["exports", "@ember/routing/route", "@ember/service", "@ember/object/computed", "nomad-ui/utils/properties/watch", "nomad-ui/mixins/with-watchers", "nomad-ui/utils/notify-error"], function (_exports, _route, _service, _computed, _watch, _withWatchers, _notifyError) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _class, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6;

  0; //eaimeta@70e063a35619d71f0,"@ember/routing/route",0,"@ember/service",0,"@ember/object/computed",0,"nomad-ui/utils/properties/watch",0,"nomad-ui/mixins/with-watchers",0,"nomad-ui/utils/notify-error"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let AllocationRoute = (_dec = (0, _watch.watchRecord)('allocation'), _dec2 = (0, _watch.watchNonStoreRecords)('allocation'), _dec3 = (0, _computed.collect)('watch', 'watchHealthChecks'), (_class = class AllocationRoute extends _route.default.extend(_withWatchers.default) {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "notifications", _descriptor, this);

      _initializerDefineProperty(this, "router", _descriptor2, this);

      _initializerDefineProperty(this, "store", _descriptor3, this);

      _initializerDefineProperty(this, "watch", _descriptor4, this);

      _initializerDefineProperty(this, "watchHealthChecks", _descriptor5, this);

      _initializerDefineProperty(this, "watchers", _descriptor6, this);
    }

    startWatchers(controller, model) {
      if (model) {
        var _model$taskGroup, _model$taskGroup$serv;

        controller.set('watcher', this.watch.perform(model));
        const anyGroupServicesAreNomad = !!((_model$taskGroup = model.taskGroup) !== null && _model$taskGroup !== void 0 && (_model$taskGroup$serv = _model$taskGroup.services) !== null && _model$taskGroup$serv !== void 0 && _model$taskGroup$serv.filterBy('provider', 'nomad').length);
        const anyTaskServicesAreNomad = model.states.mapBy('task.services').compact().map(fragmentClass => fragmentClass.mapBy('provider')).flat().any(provider => provider === 'nomad'); // Conditionally Long Poll /checks endpoint if alloc has nomad services

        if (anyGroupServicesAreNomad || anyTaskServicesAreNomad) {
          controller.set('watchHealthChecks', this.watchHealthChecks.perform(model, 'getServiceHealth', 2000));
        }
      }
    }

    async model() {
      // Preload the job for the allocation since it's required for the breadcrumb trail
      try {
        const [allocation] = await Promise.all([super.model(...arguments), this.store.findAll('namespace')]);

        if (allocation.isPartial) {
          await allocation.reload();
        }

        const jobId = allocation.belongsTo('job').id();
        await this.store.findRecord('job', jobId);
        return allocation;
      } catch (e) {
        var _e$errors$;

        const [allocId, transition] = arguments;

        if ((e === null || e === void 0 ? void 0 : (_e$errors$ = e.errors[0]) === null || _e$errors$ === void 0 ? void 0 : _e$errors$.detail) === 'alloc not found' && !!transition.from) {
          this.notifications.add({
            title: `Error:  Not Found`,
            message: `Allocation of id:  ${allocId} was not found.`,
            color: 'critical',
            sticky: true
          });
          this.goBackToReferrer(transition.from.name);
        } else {
          (0, _notifyError.default)(this)(e);
        }
      }
    }

    goBackToReferrer(referringRoute) {
      this.router.transitionTo(referringRoute);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "notifications", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "router", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "store", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, "watch", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor5 = _applyDecoratedDescriptor(_class.prototype, "watchHealthChecks", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor6 = _applyDecoratedDescriptor(_class.prototype, "watchers", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class));
  _exports.default = AllocationRoute;
});
;define("nomad-ui/routes/allocations/allocation/fs-root", ["exports", "nomad-ui/routes/allocations/allocation/fs"], function (_exports, _fs) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"nomad-ui/routes/allocations/allocation/fs"eaimeta@70e063a35619d71f

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  class FsRootRoute extends _fs.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "templateName", 'allocations/allocation/fs');
    }

  }

  _exports.default = FsRootRoute;

  window.__CLASSIC_OWN_CLASSES__.set(FsRootRoute, true);
});
;define("nomad-ui/routes/allocations/allocation/fs", ["exports", "@ember/routing/route", "rsvp", "nomad-ui/utils/notify-error"], function (_exports, _route, _rsvp, _notifyError) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/routing/route",0,"rsvp",0,"nomad-ui/utils/notify-error"eaimeta@70e063a35619d71f

  class FsRoute extends _route.default {
    model(_ref) {
      let {
        path = '/'
      } = _ref;
      const decodedPath = decodeURIComponent(path);
      const allocation = this.modelFor('allocations.allocation');
      if (!allocation) return;
      return _rsvp.default.all([allocation.stat(decodedPath), allocation.get('node')]).then(_ref2 => {
        let [statJson] = _ref2;

        if (statJson.IsDir) {
          return _rsvp.default.hash({
            path: decodedPath,
            allocation,
            directoryEntries: allocation.ls(decodedPath).catch((0, _notifyError.default)(this)),
            isFile: false
          });
        } else {
          return {
            path: decodedPath,
            allocation,
            isFile: true,
            stat: statJson
          };
        }
      }).catch((0, _notifyError.default)(this));
    }

    setupController(controller) {
      let {
        path,
        allocation,
        directoryEntries,
        isFile,
        stat
      } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
      super.setupController(...arguments);
      controller.setProperties({
        path,
        allocation,
        directoryEntries,
        isFile,
        stat
      });
    }

  }

  _exports.default = FsRoute;

  window.__CLASSIC_OWN_CLASSES__.set(FsRoute, true);
});
;define("nomad-ui/routes/allocations/allocation/index", ["exports", "@ember/routing/route"], function (_exports, _route) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/routing/route"eaimeta@70e063a35619d71f

  class IndexRoute extends _route.default {
    setupController(controller, model) {
      // Suppress the preemptedByAllocation fetch error in the event it's a 404
      if (model) {
        const setPreempter = () => controller.set('preempter', model.preemptedByAllocation);

        model.preemptedByAllocation.then(setPreempter, setPreempter);
      }

      return super.setupController(...arguments);
    }

    resetController(controller, isExiting) {
      if (isExiting) {
        controller.watchNext.cancelAll();
      }
    }

  }

  _exports.default = IndexRoute;

  window.__CLASSIC_OWN_CLASSES__.set(IndexRoute, true);
});
;define("nomad-ui/routes/allocations/allocation/task", ["exports", "@ember/service", "@ember/routing/route", "@ember/error"], function (_exports, _service, _route, _error) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _descriptor;

  0; //eaimeta@70e063a35619d71f0,"@ember/service",0,"@ember/routing/route",0,"@ember/error"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let TaskRoute = (_class = class TaskRoute extends _route.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "store", _descriptor, this);
    }

    model(_ref) {
      let {
        name
      } = _ref;
      const allocation = this.modelFor('allocations.allocation'); // If there is no allocation, then there is no task.
      // Let the allocation route handle the 404 error.

      if (!allocation) return;
      const task = allocation.get('states').findBy('name', name);

      if (!task) {
        const err = new _error.default(`Task ${name} not found for allocation ${allocation.get('id')}`);
        err.code = '404';
        this.controllerFor('application').set('error', err);
      }

      return task;
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "store", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class);
  _exports.default = TaskRoute;
});
;define("nomad-ui/routes/allocations/allocation/task/fs-root", ["exports", "nomad-ui/routes/allocations/allocation/task/fs"], function (_exports, _fs) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"nomad-ui/routes/allocations/allocation/task/fs"eaimeta@70e063a35619d71f

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  class FsRootRoute extends _fs.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "templateName", 'allocations/allocation/task/fs');
    }

  }

  _exports.default = FsRootRoute;

  window.__CLASSIC_OWN_CLASSES__.set(FsRootRoute, true);
});
;define("nomad-ui/routes/allocations/allocation/task/fs", ["exports", "@ember/routing/route", "rsvp", "nomad-ui/utils/notify-error"], function (_exports, _route, _rsvp, _notifyError) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/routing/route",0,"rsvp",0,"nomad-ui/utils/notify-error"eaimeta@70e063a35619d71f

  class FsRoute extends _route.default {
    model(_ref) {
      let {
        path = '/'
      } = _ref;
      const decodedPath = decodeURIComponent(path);
      const taskState = this.modelFor('allocations.allocation.task');
      if (!taskState || !taskState.allocation) return;
      const allocation = taskState.allocation;
      const pathWithTaskName = `${taskState.name}${decodedPath.startsWith('/') ? '' : '/'}${decodedPath}`;
      return _rsvp.default.all([allocation.stat(pathWithTaskName), taskState.get('allocation.node')]).then(_ref2 => {
        let [statJson] = _ref2;

        if (statJson.IsDir) {
          return _rsvp.default.hash({
            path: decodedPath,
            taskState,
            directoryEntries: allocation.ls(pathWithTaskName).catch((0, _notifyError.default)(this)),
            isFile: false
          });
        } else {
          return {
            path: decodedPath,
            taskState,
            isFile: true,
            stat: statJson
          };
        }
      }).catch((0, _notifyError.default)(this));
    }

    setupController(controller) {
      let {
        path,
        taskState,
        directoryEntries,
        isFile,
        stat
      } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
      super.setupController(...arguments);
      controller.setProperties({
        path,
        taskState,
        directoryEntries,
        isFile,
        stat
      });
    }

  }

  _exports.default = FsRoute;

  window.__CLASSIC_OWN_CLASSES__.set(FsRoute, true);
});
;define("nomad-ui/routes/allocations/allocation/task/logs", ["exports", "@ember/routing/route"], function (_exports, _route) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/routing/route"eaimeta@70e063a35619d71f

  class LogsRoute extends _route.default {
    model() {
      const task = super.model(...arguments);
      return task && task.get('allocation.node').then(() => task);
    }

  }

  _exports.default = LogsRoute;

  window.__CLASSIC_OWN_CLASSES__.set(LogsRoute, true);
});
;define("nomad-ui/routes/application", ["exports", "@ember/service", "@ember/runloop", "@ember/routing/route", "@ember-data/adapter/error", "rsvp", "@ember/object"], function (_exports, _service, _runloop, _route, _error, _rsvp, _object) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5;

  0; //eaimeta@70e063a35619d71f0,"@ember/service",0,"@ember/runloop",0,"@ember/routing/route",0,"@ember-data/adapter/error",0,"rsvp",0,"@ember/object",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;

  let ApplicationRoute = classic(_class = (_class2 = class ApplicationRoute extends _route.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "config", _descriptor, this);

      _initializerDefineProperty(this, "system", _descriptor2, this);

      _initializerDefineProperty(this, "store", _descriptor3, this);

      _initializerDefineProperty(this, "token", _descriptor4, this);

      _initializerDefineProperty(this, "router", _descriptor5, this);

      _defineProperty(this, "queryParams", {
        region: {
          refreshModel: true
        }
      });
    }

    resetController(controller, isExiting) {
      if (isExiting) {
        controller.set('error', null);
      }
    }

    async beforeModel(transition) {
      let promises; // service:router#transitionTo can cause this to rerun because of refreshModel on
      // the region query parameter, this skips rerunning the detection/loading queries.

      if (transition.queryParamsOnly) {
        promises = Promise.resolve(true);
      } else {
        let exchangeOneTimeToken;

        if (transition.to.queryParams.ott) {
          exchangeOneTimeToken = this.get('token').exchangeOneTimeToken(transition.to.queryParams.ott);
        } else {
          exchangeOneTimeToken = Promise.resolve(true);
        }

        try {
          await exchangeOneTimeToken;
        } catch (e) {
          this.controllerFor('application').set('error', e);
        }

        const fetchSelfTokenAndPolicies = this.get('token.fetchSelfTokenAndPolicies').perform().catch();
        const fetchLicense = this.get('system.fetchLicense').perform().catch();
        const checkFuzzySearchPresence = this.get('system.checkFuzzySearchPresence').perform().catch();
        promises = await _rsvp.default.all([this.get('system.regions'), this.get('system.defaultRegion'), fetchLicense, fetchSelfTokenAndPolicies, checkFuzzySearchPresence]);
      }

      if (!this.get('system.shouldShowRegions')) return promises;
      const queryParam = transition.to.queryParams.region;
      const defaultRegion = this.get('system.defaultRegion.region');
      const currentRegion = this.get('system.activeRegion') || defaultRegion; // Only reset the store if the region actually changed

      if (queryParam && queryParam !== currentRegion || !queryParam && currentRegion !== defaultRegion) {
        this.store.unloadAll();
      }

      this.set('system.activeRegion', queryParam || defaultRegion);
      return promises;
    } // Model is being used as a way to propagate the region and
    // one time token query parameters for use in setupController.


    model(_ref, _ref2) {
      let {
        region
      } = _ref;
      let {
        to: {
          queryParams: {
            ott
          }
        }
      } = _ref2;
      return {
        region,
        hasOneTimeToken: ott
      };
    }

    setupController(controller, _ref3) {
      let {
        region,
        hasOneTimeToken
      } = _ref3;

      if (region === this.get('system.defaultRegion.region')) {
        (0, _runloop.next)(() => {
          controller.set('region', null);
        });
      }

      super.setupController(...arguments);

      if (hasOneTimeToken) {
        // Hack to force clear the OTT query parameter
        (0, _runloop.later)(() => {
          controller.set('oneTimeToken', '');
        }, 500);
      }
    }

    didTransition() {
      if (!this.get('config.isTest')) {
        window.scrollTo(0, 0);
      }
    }

    willTransition() {
      this.controllerFor('application').set('error', null);
    }

    error(error) {
      if (!(error instanceof _error.AbortError)) {
        var _error$errors;

        if ((_error$errors = error.errors) !== null && _error$errors !== void 0 && _error$errors.any(e => e.detail === 'ACL token expired' || e.detail === 'ACL token not found')) {
          this.router.transitionTo('settings.tokens');
        } else {
          this.controllerFor('application').set('error', error);
        }
      }
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "config", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "system", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, "store", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, "token", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor5 = _applyDecoratedDescriptor(_class2.prototype, "router", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "didTransition", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "didTransition"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "willTransition", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "willTransition"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "error", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "error"), _class2.prototype)), _class2)) || _class;

  _exports.default = ApplicationRoute;
});
;define("nomad-ui/routes/clients", ["exports", "@ember/service", "@ember/routing/route", "rsvp", "nomad-ui/mixins/with-forbidden-state", "nomad-ui/utils/notify-forbidden"], function (_exports, _service, _route, _rsvp, _withForbiddenState, _notifyForbidden) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _class2, _descriptor, _descriptor2;

  0; //eaimeta@70e063a35619d71f0,"@ember/service",0,"@ember/routing/route",0,"rsvp",0,"nomad-ui/mixins/with-forbidden-state",0,"nomad-ui/utils/notify-forbidden",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;

  let ClientsRoute = classic(_class = (_class2 = class ClientsRoute extends _route.default.extend(_withForbiddenState.default) {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "store", _descriptor, this);

      _initializerDefineProperty(this, "system", _descriptor2, this);
    }

    beforeModel() {
      return this.get('system.leader');
    }

    model() {
      return _rsvp.default.hash({
        nodes: this.store.findAll('node'),
        agents: this.store.findAll('agent'),
        nodePools: this.store.findAll('node-pool')
      }).catch((0, _notifyForbidden.default)(this));
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "store", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "system", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class2)) || _class;

  _exports.default = ClientsRoute;
});
;define("nomad-ui/routes/clients/client", ["exports", "@ember/service", "@ember/routing/route", "nomad-ui/utils/notify-error"], function (_exports, _service, _route, _notifyError) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _descriptor;

  0; //eaimeta@70e063a35619d71f0,"@ember/service",0,"@ember/routing/route",0,"nomad-ui/utils/notify-error"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let ClientRoute = (_class = class ClientRoute extends _route.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "store", _descriptor, this);
    }

    model() {
      return super.model(...arguments).catch((0, _notifyError.default)(this));
    }

    afterModel(model) {
      if (model && model.get('isPartial')) {
        return model.reload().then(node => node.get('allocations'));
      }

      return model && model.get('allocations');
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "store", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class);
  _exports.default = ClientRoute;
});
;define("nomad-ui/routes/clients/client/index", ["exports", "@ember/service", "@ember/routing/route", "@ember/object/computed", "nomad-ui/utils/properties/watch", "nomad-ui/mixins/with-watchers"], function (_exports, _service, _route, _computed, _watch, _withWatchers) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _class, _descriptor, _descriptor2, _descriptor3, _descriptor4;

  0; //eaimeta@70e063a35619d71f0,"@ember/service",0,"@ember/routing/route",0,"@ember/object/computed",0,"nomad-ui/utils/properties/watch",0,"nomad-ui/mixins/with-watchers"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let ClientRoute = (_dec = (0, _watch.watchRecord)('node'), _dec2 = (0, _watch.watchRelationship)('allocations'), _dec3 = (0, _computed.collect)('watch', 'watchAllocations'), (_class = class ClientRoute extends _route.default.extend(_withWatchers.default) {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "store", _descriptor, this);

      _initializerDefineProperty(this, "watch", _descriptor2, this);

      _initializerDefineProperty(this, "watchAllocations", _descriptor3, this);

      _initializerDefineProperty(this, "watchers", _descriptor4, this);
    }

    setupController(controller, model) {
      controller.set('flagAsDraining', model && model.isDraining);
      return super.setupController(...arguments);
    }

    resetController(controller) {
      controller.setProperties({
        eligibilityError: null,
        stopDrainError: null,
        drainError: null,
        flagAsDraining: false,
        showDrainNotification: false,
        showDrainUpdateNotification: false,
        showDrainStoppedNotification: false
      });
    }

    startWatchers(controller, model) {
      if (model) {
        controller.set('watchModel', this.watch.perform(model));
        controller.set('watchAllocations', this.watchAllocations.perform(model));
      }
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "store", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "watch", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "watchAllocations", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, "watchers", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class));
  _exports.default = ClientRoute;
});
;define("nomad-ui/routes/clients/index", ["exports", "@ember/routing/route", "@ember/object/computed", "nomad-ui/utils/properties/watch", "nomad-ui/mixins/with-watchers", "@ember/service"], function (_exports, _route, _computed, _watch, _withWatchers, _service) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _class, _descriptor, _descriptor2, _descriptor3;

  0; //eaimeta@70e063a35619d71f0,"@ember/routing/route",0,"@ember/object/computed",0,"nomad-ui/utils/properties/watch",0,"nomad-ui/mixins/with-watchers",0,"@ember/service"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let IndexRoute = (_dec = (0, _watch.watchAll)('node'), _dec2 = (0, _computed.collect)('watch'), (_class = class IndexRoute extends _route.default.extend(_withWatchers.default) {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "store", _descriptor, this);

      _initializerDefineProperty(this, "watch", _descriptor2, this);

      _initializerDefineProperty(this, "watchers", _descriptor3, this);
    }

    startWatchers(controller) {
      controller.set('watcher', this.watch.perform());
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "store", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "watch", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "watchers", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class));
  _exports.default = IndexRoute;
});
;define("nomad-ui/routes/csi/index", ["exports", "@ember/routing/route"], function (_exports, _route) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/routing/route"eaimeta@70e063a35619d71f

  class IndexRoute extends _route.default {
    redirect() {
      this.transitionTo('csi.volumes');
    }

  }

  _exports.default = IndexRoute;

  window.__CLASSIC_OWN_CLASSES__.set(IndexRoute, true);
});
;define("nomad-ui/routes/csi/plugins", ["exports", "@ember/service", "@ember/routing/route", "nomad-ui/mixins/with-forbidden-state", "nomad-ui/utils/notify-forbidden"], function (_exports, _service, _route, _withForbiddenState, _notifyForbidden) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _descriptor;

  0; //eaimeta@70e063a35619d71f0,"@ember/service",0,"@ember/routing/route",0,"nomad-ui/mixins/with-forbidden-state",0,"nomad-ui/utils/notify-forbidden"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let PluginsRoute = (_class = class PluginsRoute extends _route.default.extend(_withForbiddenState.default) {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "store", _descriptor, this);
    }

    model() {
      return this.store.query('plugin', {
        type: 'csi'
      }).catch((0, _notifyForbidden.default)(this));
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "store", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class);
  _exports.default = PluginsRoute;
});
;define("nomad-ui/routes/csi/plugins/index", ["exports", "@ember/routing/route", "@ember/object/computed", "nomad-ui/utils/properties/watch", "nomad-ui/mixins/with-watchers", "@ember/service"], function (_exports, _route, _computed, _watch, _withWatchers, _service) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _class, _descriptor, _descriptor2, _descriptor3;

  0; //eaimeta@70e063a35619d71f0,"@ember/routing/route",0,"@ember/object/computed",0,"nomad-ui/utils/properties/watch",0,"nomad-ui/mixins/with-watchers",0,"@ember/service"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let IndexRoute = (_dec = (0, _watch.watchQuery)('plugin'), _dec2 = (0, _computed.collect)('watch'), (_class = class IndexRoute extends _route.default.extend(_withWatchers.default) {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "store", _descriptor, this);

      _initializerDefineProperty(this, "watch", _descriptor2, this);

      _initializerDefineProperty(this, "watchers", _descriptor3, this);
    }

    startWatchers(controller) {
      controller.set('modelWatch', this.watch.perform({
        type: 'csi'
      }));
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "store", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "watch", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "watchers", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class));
  _exports.default = IndexRoute;
});
;define("nomad-ui/routes/csi/plugins/plugin", ["exports", "@ember/service", "@ember/routing/route", "nomad-ui/utils/notify-error"], function (_exports, _service, _route, _notifyError) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _descriptor, _descriptor2;

  0; //eaimeta@70e063a35619d71f0,"@ember/service",0,"@ember/routing/route",0,"nomad-ui/utils/notify-error"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let PluginRoute = (_class = class PluginRoute extends _route.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "store", _descriptor, this);

      _initializerDefineProperty(this, "system", _descriptor2, this);
    }

    serialize(model) {
      return {
        plugin_name: model.get('plainId')
      };
    }

    model(params) {
      return this.store.findRecord('plugin', `csi/${params.plugin_name}`).catch((0, _notifyError.default)(this));
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "store", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "system", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class);
  _exports.default = PluginRoute;
});
;define("nomad-ui/routes/csi/plugins/plugin/allocations", ["exports", "@ember/routing/route", "@ember/object/computed", "nomad-ui/utils/properties/watch", "nomad-ui/mixins/with-watchers", "@ember/service"], function (_exports, _route, _computed, _watch, _withWatchers, _service) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _class, _descriptor, _descriptor2, _descriptor3;

  0; //eaimeta@70e063a35619d71f0,"@ember/routing/route",0,"@ember/object/computed",0,"nomad-ui/utils/properties/watch",0,"nomad-ui/mixins/with-watchers",0,"@ember/service"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let AllocationsRoute = (_dec = (0, _watch.watchRecord)('plugin'), _dec2 = (0, _computed.collect)('watch'), (_class = class AllocationsRoute extends _route.default.extend(_withWatchers.default) {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "store", _descriptor, this);

      _initializerDefineProperty(this, "watch", _descriptor2, this);

      _initializerDefineProperty(this, "watchers", _descriptor3, this);
    }

    startWatchers(controller, model) {
      if (!model) return;
      controller.set('watchers', {
        model: this.watch.perform(model)
      });
    }

    resetController(controller, isExiting) {
      if (isExiting) {
        controller.setProperties({
          currentPage: 1,
          qpType: '',
          qpHealth: ''
        });
      }
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "store", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "watch", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "watchers", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class));
  _exports.default = AllocationsRoute;
});
;define("nomad-ui/routes/csi/plugins/plugin/index", ["exports", "@ember/routing/route", "@ember/object/computed", "nomad-ui/utils/properties/watch", "nomad-ui/mixins/with-watchers", "@ember/service"], function (_exports, _route, _computed, _watch, _withWatchers, _service) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _class, _descriptor, _descriptor2, _descriptor3;

  0; //eaimeta@70e063a35619d71f0,"@ember/routing/route",0,"@ember/object/computed",0,"nomad-ui/utils/properties/watch",0,"nomad-ui/mixins/with-watchers",0,"@ember/service"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let IndexRoute = (_dec = (0, _watch.watchRecord)('plugin'), _dec2 = (0, _computed.collect)('watch'), (_class = class IndexRoute extends _route.default.extend(_withWatchers.default) {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "store", _descriptor, this);

      _initializerDefineProperty(this, "watch", _descriptor2, this);

      _initializerDefineProperty(this, "watchers", _descriptor3, this);
    }

    startWatchers(controller, model) {
      if (!model) return;
      controller.set('watchers', {
        model: this.watch.perform(model)
      });
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "store", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "watch", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "watchers", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class));
  _exports.default = IndexRoute;
});
;define("nomad-ui/routes/csi/volumes", ["exports", "@ember/service", "@ember/routing/route"], function (_exports, _service, _route) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _class2, _descriptor, _descriptor2;

  0; //eaimeta@70e063a35619d71f0,"@ember/service",0,"@ember/routing/route",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;

  let VolumesRoute = classic(_class = (_class2 = class VolumesRoute extends _route.default.extend() {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "system", _descriptor, this);

      _initializerDefineProperty(this, "store", _descriptor2, this);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "system", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "store", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class2)) || _class;

  _exports.default = VolumesRoute;
});
;define("nomad-ui/routes/csi/volumes/index", ["exports", "@ember/service", "rsvp", "@ember/routing/route", "@ember/object/computed", "nomad-ui/utils/properties/watch", "nomad-ui/mixins/with-watchers", "nomad-ui/utils/notify-forbidden", "nomad-ui/mixins/with-forbidden-state"], function (_exports, _service, _rsvp, _route, _computed, _watch, _withWatchers, _notifyForbidden, _withForbiddenState) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _class, _descriptor, _descriptor2, _descriptor3, _descriptor4;

  0; //eaimeta@70e063a35619d71f0,"@ember/service",0,"rsvp",0,"@ember/routing/route",0,"@ember/object/computed",0,"nomad-ui/utils/properties/watch",0,"nomad-ui/mixins/with-watchers",0,"nomad-ui/utils/notify-forbidden",0,"nomad-ui/mixins/with-forbidden-state"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let IndexRoute = (_dec = (0, _watch.watchQuery)('volume'), _dec2 = (0, _watch.watchAll)('namespace'), _dec3 = (0, _computed.collect)('watchVolumes', 'watchNamespaces'), (_class = class IndexRoute extends _route.default.extend(_withWatchers.default, _withForbiddenState.default) {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "store", _descriptor, this);

      _defineProperty(this, "queryParams", {
        qpNamespace: {
          refreshModel: true
        }
      });

      _initializerDefineProperty(this, "watchVolumes", _descriptor2, this);

      _initializerDefineProperty(this, "watchNamespaces", _descriptor3, this);

      _initializerDefineProperty(this, "watchers", _descriptor4, this);
    }

    model(params) {
      return _rsvp.default.hash({
        volumes: this.store.query('volume', {
          type: 'csi',
          namespace: params.qpNamespace
        }).catch((0, _notifyForbidden.default)(this)),
        namespaces: this.store.findAll('namespace')
      });
    }

    startWatchers(controller) {
      controller.set('namespacesWatch', this.watchNamespaces.perform());
      controller.set('modelWatch', this.watchVolumes.perform({
        type: 'csi',
        namespace: controller.qpNamespace
      }));
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "store", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "watchVolumes", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "watchNamespaces", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, "watchers", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class));
  _exports.default = IndexRoute;
});
;define("nomad-ui/routes/csi/volumes/volume", ["exports", "@ember/service", "@ember/routing/route", "@ember/object/computed", "rsvp", "nomad-ui/utils/notify-error", "nomad-ui/utils/properties/watch", "nomad-ui/mixins/with-watchers"], function (_exports, _service, _route, _computed, _rsvp, _notifyError, _watch, _withWatchers) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4;

  0; //eaimeta@70e063a35619d71f0,"@ember/service",0,"@ember/routing/route",0,"@ember/object/computed",0,"rsvp",0,"nomad-ui/utils/notify-error",0,"nomad-ui/utils/properties/watch",0,"nomad-ui/mixins/with-watchers",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let VolumeRoute = (_dec = (0, _watch.watchRecord)('volume'), _dec2 = (0, _computed.collect)('watch'), classic(_class = (_class2 = class VolumeRoute extends _route.default.extend(_withWatchers.default) {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "store", _descriptor, this);

      _initializerDefineProperty(this, "system", _descriptor2, this);

      _initializerDefineProperty(this, "watch", _descriptor3, this);

      _initializerDefineProperty(this, "watchers", _descriptor4, this);
    }

    startWatchers(controller, model) {
      if (!model) return;
      controller.set('watchers', {
        model: this.watch.perform(model)
      });
    }

    serialize(model) {
      return {
        volume_name: JSON.parse(model.get('id')).join('@')
      };
    }

    model(params) {
      // Issue with naming collissions
      const url = params.volume_name.split('@');
      const namespace = url.pop();
      const name = url.join('');
      const fullId = JSON.stringify([`csi/${name}`, namespace || 'default']);
      return _rsvp.default.hash({
        volume: this.store.findRecord('volume', fullId, {
          reload: true
        }),
        namespaces: this.store.findAll('namespace')
      }).then(hash => hash.volume).catch((0, _notifyError.default)(this));
    } // Since volume includes embedded records for allocations,
    // it's possible that allocations that are server-side deleted may
    // not be removed from the UI while sitting on the volume detail page.


  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "store", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "system", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, "watch", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, "watchers", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class2)) || _class);
  _exports.default = VolumeRoute;
});
;define("nomad-ui/routes/evaluations/index", ["exports", "@ember/service", "@ember/routing/route"], function (_exports, _service, _route) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _descriptor;

  0; //eaimeta@70e063a35619d71f0,"@ember/service",0,"@ember/routing/route"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let EvaluationsIndexRoute = (_class = class EvaluationsIndexRoute extends _route.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "store", _descriptor, this);

      _defineProperty(this, "queryParams", {
        pageSize: {
          refreshModel: true
        },
        nextToken: {
          refreshModel: true
        },
        status: {
          refreshModel: true
        },
        triggeredBy: {
          refreshModel: true
        },
        qpNamespace: {
          refreshModel: true
        },
        searchTerm: {
          refreshModel: true
        },
        type: {
          refreshModel: true
        }
      });
    }

    model(_ref) {
      let {
        nextToken,
        pageSize,
        searchTerm,
        status,
        triggeredBy,
        type,
        qpNamespace: namespace
      } = _ref;

      /*
      We use our own DSL for filter expressions. This function takes our query parameters and builds a query that matches our DSL.
      Documentation can be found here:  https://www.nomadproject.io/api-docs#filtering
      */
      const generateFilterExpression = () => {
        const searchFilter = searchTerm ? `ID contains "${searchTerm}" or JobID contains "${searchTerm}" or NodeID contains "${searchTerm}" or TriggeredBy contains "${searchTerm}"` : null;
        const typeFilter = type === 'client' ? `NodeID is not empty` : `NodeID is empty`;
        const triggeredByFilter = `TriggeredBy contains "${triggeredBy}"`;
        const statusFilter = `Status contains "${status}"`;
        let filterExp;

        if (searchTerm) {
          if (!type && !status && !triggeredBy) {
            return searchFilter;
          }

          filterExp = `(${searchFilter})`;

          if (type) {
            filterExp = `${filterExp} and ${typeFilter}`;
          }

          if (triggeredBy) {
            filterExp = `${filterExp} and ${triggeredByFilter}`;
          }

          if (status) {
            filterExp = `${filterExp} and ${statusFilter}`;
          }

          return filterExp;
        }

        if (type || status || triggeredBy) {
          const lookup = {
            [type]: typeFilter,
            [status]: statusFilter,
            [triggeredBy]: triggeredByFilter
          };
          filterExp = [type, status, triggeredBy].reduce((result, filter) => {
            const expression = lookup[filter];

            if (!!filter && result !== '') {
              result = result.concat(` and ${expression}`);
            } else if (filter) {
              result = expression;
            }

            return result;
          }, '');
          return filterExp;
        }

        return null;
      };

      this.store.findAll('namespace');
      return this.store.query('evaluation', {
        namespace,
        reverse: true,
        per_page: pageSize,
        next_token: nextToken,
        filter: generateFilterExpression()
      });
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "store", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class);
  _exports.default = EvaluationsIndexRoute;
});
;define("nomad-ui/routes/exec", ["exports", "@ember/service", "@ember/routing/route", "nomad-ui/utils/notify-error", "@ember/object/computed", "nomad-ui/mixins/with-watchers", "nomad-ui/utils/properties/watch"], function (_exports, _service, _route, _notifyError, _computed, _withWatchers, _watch) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5;

  0; //eaimeta@70e063a35619d71f0,"@ember/service",0,"@ember/routing/route",0,"nomad-ui/utils/notify-error",0,"@ember/object/computed",0,"nomad-ui/mixins/with-watchers",0,"nomad-ui/utils/properties/watch",0,"ember-classic-decorator",1,"xterm"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let ExecRoute = (_dec = (0, _watch.watchRecord)('job'), _dec2 = (0, _watch.watchRelationship)('allocations'), _dec3 = (0, _computed.collect)('watch', 'watchAllocations'), classic(_class = (_class2 = class ExecRoute extends _route.default.extend(_withWatchers.default) {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "store", _descriptor, this);

      _initializerDefineProperty(this, "token", _descriptor2, this);

      _initializerDefineProperty(this, "watch", _descriptor3, this);

      _initializerDefineProperty(this, "watchAllocations", _descriptor4, this);

      _initializerDefineProperty(this, "watchers", _descriptor5, this);
    }

    serialize(model) {
      return {
        job_name: model.get('plainId')
      };
    }

    model(params, transition) {
      const namespace = transition.to.queryParams.namespace;
      const name = params.job_name;
      const fullId = JSON.stringify([name, namespace || 'default']);
      const jobPromise = this.store.findRecord('job', fullId).then(job => {
        return job.get('allocations').then(() => job);
      }).catch((0, _notifyError.default)(this));
      const xtermImport = emberAutoImportDynamic("xterm").then(module => module.Terminal);
      return Promise.all([jobPromise, xtermImport]);
    }

    setupController(controller, _ref) {
      let [job, Terminal] = _ref;
      super.setupController(controller, job);
      controller.setUpTerminal(Terminal);
    }

    startWatchers(controller, model) {
      if (model) {
        controller.set('watcher', this.watch.perform(model));
        controller.set('watchAllocations', this.watchAllocations.perform(model));
      }
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "store", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "token", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, "watch", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, "watchAllocations", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor5 = _applyDecoratedDescriptor(_class2.prototype, "watchers", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class2)) || _class);
  _exports.default = ExecRoute;
});
;define("nomad-ui/routes/exec/task-group/task", ["exports", "@ember/service", "@ember/routing/route"], function (_exports, _service, _route) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _descriptor;

  0; //eaimeta@70e063a35619d71f0,"@ember/service",0,"@ember/routing/route"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let TaskRoute = (_class = class TaskRoute extends _route.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "store", _descriptor, this);
    }

    model(_ref) {
      let {
        task_name
      } = _ref;
      const allocationQueryParam = this.paramsFor('exec').allocation;
      const taskGroupName = this.paramsFor('exec.task-group').task_group_name;
      return {
        allocationShortId: allocationQueryParam,
        taskName: task_name,
        taskGroupName
      };
    }

    setupController(controller, _ref2) {
      let {
        allocationShortId,
        taskGroupName,
        taskName
      } = _ref2;
      this.controllerFor('exec').send('setTaskProperties', {
        allocationShortId,
        taskName,
        taskGroupName
      });
      super.setupController(...arguments);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "store", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class);
  _exports.default = TaskRoute;
});
;define("nomad-ui/routes/index", ["exports", "@ember/routing/route"], function (_exports, _route) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/routing/route"eaimeta@70e063a35619d71f

  class IndexRoute extends _route.default {
    redirect() {
      this.transitionTo('jobs');
    }

  }

  _exports.default = IndexRoute;

  window.__CLASSIC_OWN_CLASSES__.set(IndexRoute, true);
});
;define("nomad-ui/routes/jobs/index", ["exports", "@ember/service", "@ember/routing/route", "rsvp", "@ember/object/computed", "nomad-ui/utils/properties/watch", "nomad-ui/mixins/with-watchers", "nomad-ui/utils/notify-forbidden", "nomad-ui/mixins/with-forbidden-state"], function (_exports, _service, _route, _rsvp, _computed, _watch, _withWatchers, _notifyForbidden, _withForbiddenState) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _class, _descriptor, _descriptor2, _descriptor3, _descriptor4;

  0; //eaimeta@70e063a35619d71f0,"@ember/service",0,"@ember/routing/route",0,"rsvp",0,"@ember/object/computed",0,"nomad-ui/utils/properties/watch",0,"nomad-ui/mixins/with-watchers",0,"nomad-ui/utils/notify-forbidden",0,"nomad-ui/mixins/with-forbidden-state"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let IndexRoute = (_dec = (0, _watch.watchQuery)('job'), _dec2 = (0, _watch.watchAll)('namespace'), _dec3 = (0, _computed.collect)('watchJobs', 'watchNamespaces'), (_class = class IndexRoute extends _route.default.extend(_withWatchers.default, _withForbiddenState.default) {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "store", _descriptor, this);

      _defineProperty(this, "queryParams", {
        qpNamespace: {
          refreshModel: true
        }
      });

      _initializerDefineProperty(this, "watchJobs", _descriptor2, this);

      _initializerDefineProperty(this, "watchNamespaces", _descriptor3, this);

      _initializerDefineProperty(this, "watchers", _descriptor4, this);
    }

    model(params) {
      return _rsvp.default.hash({
        jobs: this.store.query('job', {
          namespace: params.qpNamespace,
          meta: true
        }).catch((0, _notifyForbidden.default)(this)),
        namespaces: this.store.findAll('namespace'),
        nodePools: this.store.findAll('node-pool')
      });
    }

    startWatchers(controller) {
      controller.set('namespacesWatch', this.watchNamespaces.perform());
      controller.set('modelWatch', this.watchJobs.perform({
        namespace: controller.qpNamespace,
        meta: true
      }));
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "store", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "watchJobs", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "watchNamespaces", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, "watchers", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class));
  _exports.default = IndexRoute;
});
;define("nomad-ui/routes/jobs/job", ["exports", "@ember/service", "@ember/routing/route", "rsvp", "nomad-ui/utils/notify-error", "nomad-ui/utils/properties/watch", "@ember/object/computed", "nomad-ui/mixins/with-watchers"], function (_exports, _service, _route, _rsvp, _notifyError, _watch, _computed, _withWatchers) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7;

  0; //eaimeta@70e063a35619d71f0,"@ember/service",0,"@ember/routing/route",0,"rsvp",0,"nomad-ui/utils/notify-error",0,"ember-classic-decorator",0,"nomad-ui/utils/properties/watch",0,"@ember/object/computed",0,"nomad-ui/mixins/with-watchers"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let JobRoute = (_dec = (0, _watch.watchRecord)('job', {
    shouldSurfaceErrors: true
  }), _dec2 = (0, _computed.collect)('watch'), classic(_class = (_class2 = class JobRoute extends _route.default.extend(_withWatchers.default) {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "can", _descriptor, this);

      _initializerDefineProperty(this, "store", _descriptor2, this);

      _initializerDefineProperty(this, "token", _descriptor3, this);

      _initializerDefineProperty(this, "router", _descriptor4, this);

      _initializerDefineProperty(this, "notifications", _descriptor5, this);

      _initializerDefineProperty(this, "watch", _descriptor6, this);

      _initializerDefineProperty(this, "watchers", _descriptor7, this);
    }

    serialize(model) {
      return {
        job_name: model.get('idWithNamespace')
      };
    }

    model(params) {
      let name,
          namespace = 'default';
      const {
        job_name
      } = params;
      const delimiter = job_name.lastIndexOf('@');

      if (delimiter !== -1) {
        name = job_name.slice(0, delimiter);
        namespace = job_name.slice(delimiter + 1);
      } else {
        name = job_name;
      }

      const fullId = JSON.stringify([name, namespace]);
      return this.store.findRecord('job', fullId, {
        reload: true
      }).then(job => {
        const relatedModelsQueries = [job.get('allocations'), job.get('evaluations'), this.store.query('job', {
          namespace,
          meta: true
        }), this.store.findAll('namespace')];

        if (this.can.can('accept recommendation')) {
          relatedModelsQueries.push(job.get('recommendationSummaries'));
        } // Optimizing future node look ups by preemptively loading everything


        if (job.get('hasClientStatus') && this.can.can('read client')) {
          relatedModelsQueries.push(this.store.findAll('node'));
        }

        return _rsvp.default.all(relatedModelsQueries).then(() => job);
      }).catch((0, _notifyError.default)(this));
    }

    startWatchers(controller, model) {
      if (!model) {
        return;
      }

      controller.set('watchers', {
        job: this.watch.perform(model)
      });
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "can", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "store", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, "token", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, "router", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor5 = _applyDecoratedDescriptor(_class2.prototype, "notifications", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor6 = _applyDecoratedDescriptor(_class2.prototype, "watch", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor7 = _applyDecoratedDescriptor(_class2.prototype, "watchers", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class2)) || _class);
  _exports.default = JobRoute;
});
;define("nomad-ui/routes/jobs/job/allocations", ["exports", "@ember/routing/route", "@ember/object/computed", "nomad-ui/utils/properties/watch", "nomad-ui/mixins/with-watchers", "@ember/service"], function (_exports, _route, _computed, _watch, _withWatchers, _service) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _class, _descriptor, _descriptor2, _descriptor3;

  0; //eaimeta@70e063a35619d71f0,"@ember/routing/route",0,"@ember/object/computed",0,"nomad-ui/utils/properties/watch",0,"nomad-ui/mixins/with-watchers",0,"@ember/service"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let AllocationsRoute = (_dec = (0, _watch.watchRelationship)('allocations'), _dec2 = (0, _computed.collect)('watchAllocations'), (_class = class AllocationsRoute extends _route.default.extend(_withWatchers.default) {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "store", _descriptor, this);

      _initializerDefineProperty(this, "watchAllocations", _descriptor2, this);

      _initializerDefineProperty(this, "watchers", _descriptor3, this);
    }

    model() {
      const job = this.modelFor('jobs.job');
      return job && job.get('allocations').then(() => job);
    }

    startWatchers(controller, model) {
      if (model) {
        controller.set('watchAllocations', this.watchAllocations.perform(model));
      }
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "store", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "watchAllocations", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "watchers", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class));
  _exports.default = AllocationsRoute;
});
;define("nomad-ui/routes/jobs/job/clients", ["exports", "@ember/service", "@ember/routing/route", "nomad-ui/mixins/with-watchers", "nomad-ui/utils/properties/watch", "@ember/object/computed"], function (_exports, _service, _route, _withWatchers, _watch, _computed) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _class, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6;

  0; //eaimeta@70e063a35619d71f0,"@ember/service",0,"@ember/routing/route",0,"nomad-ui/mixins/with-watchers",0,"nomad-ui/utils/properties/watch",0,"@ember/object/computed"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let ClientsRoute = (_dec = (0, _watch.watchRecord)('job'), _dec2 = (0, _watch.watchAll)('node'), _dec3 = (0, _watch.watchRelationship)('allocations'), _dec4 = (0, _computed.collect)('watch', 'watchNodes', 'watchAllocations'), (_class = class ClientsRoute extends _route.default.extend(_withWatchers.default) {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "can", _descriptor, this);

      _initializerDefineProperty(this, "store", _descriptor2, this);

      _initializerDefineProperty(this, "watch", _descriptor3, this);

      _initializerDefineProperty(this, "watchNodes", _descriptor4, this);

      _initializerDefineProperty(this, "watchAllocations", _descriptor5, this);

      _initializerDefineProperty(this, "watchers", _descriptor6, this);
    }

    beforeModel() {
      if (this.can.cannot('read client')) {
        this.transitionTo('jobs.job');
      }
    }

    async model() {
      return this.modelFor('jobs.job');
    }

    startWatchers(controller, model) {
      if (!model) {
        return;
      }

      controller.set('watchers', {
        model: this.watch.perform(model),
        allocations: this.watchAllocations.perform(model),
        nodes: this.watchNodes.perform()
      });
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "can", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "store", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "watch", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, "watchNodes", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor5 = _applyDecoratedDescriptor(_class.prototype, "watchAllocations", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor6 = _applyDecoratedDescriptor(_class.prototype, "watchers", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class));
  _exports.default = ClientsRoute;
});
;define("nomad-ui/routes/jobs/job/definition", ["exports", "@ember/routing/route"], function (_exports, _route) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/routing/route"eaimeta@70e063a35619d71f

  /**
   * Route for fetching and displaying a job's definition and specification.
   */
  class DefinitionRoute extends _route.default {
    /**
     * Fetch the job's definition, specification, and variables from the API.
     *
     * @returns {Promise<Object>} A promise that resolves to an object containing the job, definition, format,
     *                            specification, variableFlags, and variableLiteral.
     */
    async model() {
      const job = this.modelFor('jobs.job');
      if (!job) return;
      const definition = await job.fetchRawDefinition();
      let format = 'json'; // default to json in network request errors

      let specification;
      let variableFlags;
      let variableLiteral;

      try {
        const specificationResponse = await job.fetchRawSpecification();
        specification = (specificationResponse === null || specificationResponse === void 0 ? void 0 : specificationResponse.Source) ?? null;
        variableFlags = (specificationResponse === null || specificationResponse === void 0 ? void 0 : specificationResponse.VariableFlags) ?? null;
        variableLiteral = (specificationResponse === null || specificationResponse === void 0 ? void 0 : specificationResponse.Variables) ?? null;
        format = (specificationResponse === null || specificationResponse === void 0 ? void 0 : specificationResponse.Format) ?? 'json';
      } catch (e) {// Swallow the error because Nomad job pre-1.6 will not have a specification
      }

      return {
        definition,
        format,
        job,
        specification,
        variableFlags,
        variableLiteral
      };
    }
    /**
     * Reset the controller when exiting the route.
     *
     * @param {Controller} controller - The controller instance.
     * @param {boolean} isExiting - A boolean flag indicating if the route is being exited.
     */


    resetController(controller, isExiting) {
      if (isExiting) {
        const job = controller.job;
        job.rollbackAttributes();
        job.resetId();
        controller.set('isEditing', false);
      }
    }
    /**
     * Set up the controller with the model data and determine the view type.
     *
     * @param {Controller} controller - The controller instance.
     * @param {Object} model - The model data fetched in the `model` method.
     */


    setupController(controller, model) {
      super.setupController(controller, model);
      const view = controller.view ? controller.view : model !== null && model !== void 0 && model.specification ? 'job-spec' : 'full-definition';
      controller.view = view;
    }

  }

  _exports.default = DefinitionRoute;

  window.__CLASSIC_OWN_CLASSES__.set(DefinitionRoute, true);
});
;define("nomad-ui/routes/jobs/job/deployments", ["exports", "@ember/routing/route", "rsvp", "@ember/object/computed", "nomad-ui/utils/properties/watch", "nomad-ui/mixins/with-watchers", "@ember/service"], function (_exports, _route, _rsvp, _computed, _watch, _withWatchers, _service) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _class, _descriptor, _descriptor2, _descriptor3, _descriptor4;

  0; //eaimeta@70e063a35619d71f0,"@ember/routing/route",0,"rsvp",0,"@ember/object/computed",0,"nomad-ui/utils/properties/watch",0,"nomad-ui/mixins/with-watchers",0,"@ember/service"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let DeploymentsRoute = (_dec = (0, _watch.watchRelationship)('deployments'), _dec2 = (0, _watch.watchRelationship)('versions'), _dec3 = (0, _computed.collect)('watchDeployments', 'watchVersions'), (_class = class DeploymentsRoute extends _route.default.extend(_withWatchers.default) {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "store", _descriptor, this);

      _initializerDefineProperty(this, "watchDeployments", _descriptor2, this);

      _initializerDefineProperty(this, "watchVersions", _descriptor3, this);

      _initializerDefineProperty(this, "watchers", _descriptor4, this);
    }

    model() {
      const job = this.modelFor('jobs.job');
      return job && _rsvp.default.all([job.get('deployments'), job.get('versions')]).then(() => job);
    }

    startWatchers(controller, model) {
      if (model) {
        controller.set('watchDeployments', this.watchDeployments.perform(model));
        controller.set('watchVersions', this.watchVersions.perform(model));
      }
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "store", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "watchDeployments", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "watchVersions", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, "watchers", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class));
  _exports.default = DeploymentsRoute;
});
;define("nomad-ui/routes/jobs/job/dispatch", ["exports", "@ember/routing/route", "@ember/service"], function (_exports, _route, _service) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _descriptor;

  0; //eaimeta@70e063a35619d71f0,"@ember/routing/route",0,"@ember/service"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let DispatchRoute = (_class = class DispatchRoute extends _route.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "can", _descriptor, this);
    }

    beforeModel() {
      const job = this.modelFor('jobs.job');
      const namespace = job.namespace.get('name');

      if (this.can.cannot('dispatch job', null, {
        namespace
      })) {
        this.transitionTo('jobs.job');
      }
    }

    model() {
      const job = this.modelFor('jobs.job');
      if (!job) return this.transitionTo('jobs.job');
      return job;
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "can", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class);
  _exports.default = DispatchRoute;
});
;define("nomad-ui/routes/jobs/job/evaluations", ["exports", "@ember/routing/route", "@ember/object/computed", "nomad-ui/utils/properties/watch", "nomad-ui/mixins/with-watchers", "@ember/service"], function (_exports, _route, _computed, _watch, _withWatchers, _service) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _class, _descriptor, _descriptor2, _descriptor3;

  0; //eaimeta@70e063a35619d71f0,"@ember/routing/route",0,"@ember/object/computed",0,"nomad-ui/utils/properties/watch",0,"nomad-ui/mixins/with-watchers",0,"@ember/service"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let EvaluationsRoute = (_dec = (0, _watch.watchRelationship)('evaluations'), _dec2 = (0, _computed.collect)('watchEvaluations'), (_class = class EvaluationsRoute extends _route.default.extend(_withWatchers.default) {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "store", _descriptor, this);

      _initializerDefineProperty(this, "watchEvaluations", _descriptor2, this);

      _initializerDefineProperty(this, "watchers", _descriptor3, this);
    }

    model() {
      const job = this.modelFor('jobs.job');
      return job && job.get('evaluations').then(() => job);
    }

    startWatchers(controller, model) {
      if (model) {
        controller.set('watchEvaluations', this.watchEvaluations.perform(model));
      }
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "store", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "watchEvaluations", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "watchers", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class));
  _exports.default = EvaluationsRoute;
});
;define("nomad-ui/routes/jobs/job/index", ["exports", "@ember/service", "@ember/routing/route", "@ember/object/computed", "nomad-ui/utils/properties/watch", "nomad-ui/mixins/with-watchers"], function (_exports, _service, _route, _computed, _watch, _withWatchers) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _class, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8, _descriptor9;

  0; //eaimeta@70e063a35619d71f0,"@ember/service",0,"@ember/routing/route",0,"@ember/object/computed",0,"nomad-ui/utils/properties/watch",0,"nomad-ui/mixins/with-watchers"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let IndexRoute = (_dec = (0, _watch.watchQuery)('job'), _dec2 = (0, _watch.watchAll)('node'), _dec3 = (0, _watch.watchRecord)('job-summary'), _dec4 = (0, _watch.watchRelationship)('allocations'), _dec5 = (0, _watch.watchRelationship)('evaluations'), _dec6 = (0, _watch.watchRelationship)('latestDeployment'), _dec7 = (0, _computed.collect)('watchAllJobs', 'watchSummary', 'watchAllocations', 'watchEvaluations', 'watchLatestDeployment', 'watchNodes'), (_class = class IndexRoute extends _route.default.extend(_withWatchers.default) {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "can", _descriptor, this);

      _initializerDefineProperty(this, "store", _descriptor2, this);

      _initializerDefineProperty(this, "watchAllJobs", _descriptor3, this);

      _initializerDefineProperty(this, "watchNodes", _descriptor4, this);

      _initializerDefineProperty(this, "watchSummary", _descriptor5, this);

      _initializerDefineProperty(this, "watchAllocations", _descriptor6, this);

      _initializerDefineProperty(this, "watchEvaluations", _descriptor7, this);

      _initializerDefineProperty(this, "watchLatestDeployment", _descriptor8, this);

      _initializerDefineProperty(this, "watchers", _descriptor9, this);
    }

    async model() {
      return this.modelFor('jobs.job');
    }

    startWatchers(controller, model) {
      if (!model) {
        return;
      }

      controller.set('watchers', {
        summary: this.watchSummary.perform(model.get('summary')),
        allocations: this.watchAllocations.perform(model),
        evaluations: this.watchEvaluations.perform(model),
        latestDeployment: model.get('supportsDeployments') && this.watchLatestDeployment.perform(model),
        list: model.get('hasChildren') && this.watchAllJobs.perform({
          namespace: model.namespace.get('name'),
          meta: true
        }),
        nodes: model.get('hasClientStatus') && this.can.can('read client') && this.watchNodes.perform()
      });
    }

    setupController(controller, model) {
      // Parameterized and periodic detail pages, which list children jobs,
      // should sort by submit time.
      if (model && ['periodic', 'parameterized'].includes(model.templateType)) {
        controller.setProperties({
          sortProperty: 'submitTime',
          sortDescending: true
        });
      }

      return super.setupController(...arguments);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "can", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "store", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "watchAllJobs", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, "watchNodes", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor5 = _applyDecoratedDescriptor(_class.prototype, "watchSummary", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor6 = _applyDecoratedDescriptor(_class.prototype, "watchAllocations", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor7 = _applyDecoratedDescriptor(_class.prototype, "watchEvaluations", [_dec5], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor8 = _applyDecoratedDescriptor(_class.prototype, "watchLatestDeployment", [_dec6], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor9 = _applyDecoratedDescriptor(_class.prototype, "watchers", [_dec7], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class));
  _exports.default = IndexRoute;
});
;define("nomad-ui/routes/jobs/job/services", ["exports", "@ember/routing/route", "nomad-ui/mixins/with-watchers", "@ember/object/computed", "nomad-ui/utils/properties/watch"], function (_exports, _route, _withWatchers, _computed, _watch) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _class, _descriptor, _descriptor2, _descriptor3;

  0; //eaimeta@70e063a35619d71f0,"@ember/routing/route",0,"nomad-ui/mixins/with-watchers",0,"@ember/object/computed",0,"nomad-ui/utils/properties/watch"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let JobsJobServicesRoute = (_dec = (0, _watch.watchRelationship)('services', true), _dec2 = (0, _watch.watchRecord)('job'), _dec3 = (0, _computed.collect)('watchServices', 'watchJob'), (_class = class JobsJobServicesRoute extends _route.default.extend(_withWatchers.default) {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "watchServices", _descriptor, this);

      _initializerDefineProperty(this, "watchJob", _descriptor2, this);

      _initializerDefineProperty(this, "watchers", _descriptor3, this);
    }

    model() {
      const job = this.modelFor('jobs.job');
      return job && job.get('services').then(() => job);
    }

    startWatchers(controller, model) {
      if (model) {
        controller.set('watchServices', this.watchServices.perform(model));
        controller.set('watchJob', this.watchJob.perform(model));
      }
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "watchServices", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "watchJob", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "watchers", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class));
  _exports.default = JobsJobServicesRoute;
});
;define("nomad-ui/routes/jobs/job/services/index", ["exports", "@ember/routing/route"], function (_exports, _route) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/routing/route"eaimeta@70e063a35619d71f

  class JobsJobServicesIndexRoute extends _route.default {}

  _exports.default = JobsJobServicesIndexRoute;

  window.__CLASSIC_OWN_CLASSES__.set(JobsJobServicesIndexRoute, true);
});
;define("nomad-ui/routes/jobs/job/services/service", ["exports", "@ember/routing/route"], function (_exports, _route) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/routing/route"eaimeta@70e063a35619d71f

  class JobsJobServicesServiceRoute extends _route.default {
    model(_ref) {
      let {
        name = '',
        level = ''
      } = _ref;
      const services = this.modelFor('jobs.job').get('services').filter(service => service.name === name && service.derivedLevel === level);
      return {
        name,
        instances: services || []
      };
    }

  }

  _exports.default = JobsJobServicesServiceRoute;

  window.__CLASSIC_OWN_CLASSES__.set(JobsJobServicesServiceRoute, true);
});
;define("nomad-ui/routes/jobs/job/task-group", ["exports", "@ember/routing/route", "@ember/object/computed", "@ember/error", "rsvp", "nomad-ui/utils/properties/watch", "nomad-ui/mixins/with-watchers", "nomad-ui/utils/notify-error", "@ember/service"], function (_exports, _route, _computed, _error, _rsvp, _watch, _withWatchers, _notifyError, _service) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _class, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7;

  0; //eaimeta@70e063a35619d71f0,"@ember/routing/route",0,"@ember/object/computed",0,"@ember/error",0,"rsvp",0,"nomad-ui/utils/properties/watch",0,"nomad-ui/mixins/with-watchers",0,"nomad-ui/utils/notify-error",0,"@ember/service"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let TaskGroupRoute = (_dec = (0, _watch.watchRecord)('job'), _dec2 = (0, _watch.watchRecord)('job-summary'), _dec3 = (0, _watch.watchRecord)('job-scale'), _dec4 = (0, _watch.watchRelationship)('allocations'), _dec5 = (0, _watch.watchRelationship)('latestDeployment'), _dec6 = (0, _computed.collect)('watchJob', 'watchSummary', 'watchScale', 'watchAllocations', 'watchLatestDeployment'), (_class = class TaskGroupRoute extends _route.default.extend(_withWatchers.default) {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "store", _descriptor, this);

      _initializerDefineProperty(this, "watchJob", _descriptor2, this);

      _initializerDefineProperty(this, "watchSummary", _descriptor3, this);

      _initializerDefineProperty(this, "watchScale", _descriptor4, this);

      _initializerDefineProperty(this, "watchAllocations", _descriptor5, this);

      _initializerDefineProperty(this, "watchLatestDeployment", _descriptor6, this);

      _initializerDefineProperty(this, "watchers", _descriptor7, this);
    }

    model(_ref) {
      let {
        name
      } = _ref;
      const job = this.modelFor('jobs.job'); // If there is no job, then there is no task group.
      // Let the job route handle the 404.

      if (!job) return; // If the job is a partial (from the list request) it won't have task
      // groups. Reload the job to ensure task groups are present.

      const reload = job.get('isPartial') ? job.reload() : (0, _rsvp.resolve)();
      return reload.then(() => {
        const taskGroup = job.get('taskGroups').findBy('name', name);

        if (!taskGroup) {
          const err = new _error.default(`Task group ${name} for job ${job.get('name')} not found`);
          err.code = '404';
          throw err;
        } // Refresh job allocations before-hand (so page sort works on load)


        return (0, _rsvp.all)([job.hasMany('allocations').reload(), job.get('scaleState')]).then(() => taskGroup);
      }).catch((0, _notifyError.default)(this));
    }

    startWatchers(controller, model) {
      if (model) {
        const job = model.get('job');
        controller.set('watchers', {
          job: this.watchJob.perform(job),
          summary: this.watchSummary.perform(job.get('summary')),
          scale: this.watchScale.perform(job.get('scaleState')),
          allocations: this.watchAllocations.perform(job),
          latestDeployment: job.get('supportsDeployments') && this.watchLatestDeployment.perform(job)
        });
      }
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "store", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "watchJob", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "watchSummary", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, "watchScale", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor5 = _applyDecoratedDescriptor(_class.prototype, "watchAllocations", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor6 = _applyDecoratedDescriptor(_class.prototype, "watchLatestDeployment", [_dec5], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor7 = _applyDecoratedDescriptor(_class.prototype, "watchers", [_dec6], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class));
  _exports.default = TaskGroupRoute;
});
;define("nomad-ui/routes/jobs/job/versions", ["exports", "@ember/routing/route", "@ember/object/computed", "nomad-ui/utils/properties/watch", "nomad-ui/mixins/with-watchers", "@ember/service"], function (_exports, _route, _computed, _watch, _withWatchers, _service) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _class, _descriptor, _descriptor2, _descriptor3, _descriptor4;

  0; //eaimeta@70e063a35619d71f0,"@ember/routing/route",0,"@ember/object/computed",0,"nomad-ui/utils/properties/watch",0,"nomad-ui/mixins/with-watchers",0,"@ember/service"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let VersionsRoute = (_dec = (0, _watch.watchRecord)('job'), _dec2 = (0, _watch.watchRelationship)('versions'), _dec3 = (0, _computed.collect)('watch', 'watchVersions'), (_class = class VersionsRoute extends _route.default.extend(_withWatchers.default) {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "store", _descriptor, this);

      _initializerDefineProperty(this, "watch", _descriptor2, this);

      _initializerDefineProperty(this, "watchVersions", _descriptor3, this);

      _initializerDefineProperty(this, "watchers", _descriptor4, this);
    }

    model() {
      const job = this.modelFor('jobs.job');
      return job && job.get('versions').then(() => job);
    }

    startWatchers(controller, model) {
      if (model) {
        controller.set('watcher', this.watch.perform(model));
        controller.set('watchVersions', this.watchVersions.perform(model));
      }
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "store", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "watch", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "watchVersions", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, "watchers", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class));
  _exports.default = VersionsRoute;
});
;define("nomad-ui/routes/jobs/run/index", ["exports", "@ember/routing/route", "@ember/service", "nomad-ui/utils/notify-forbidden"], function (_exports, _route, _service, _notifyForbidden) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5;

  0; //eaimeta@70e063a35619d71f0,"@ember/routing/route",0,"@ember/service",0,"ember-classic-decorator",0,"nomad-ui/utils/notify-forbidden"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;

  let JobsRunIndexRoute = classic(_class = (_class2 = class JobsRunIndexRoute extends _route.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "can", _descriptor, this);

      _initializerDefineProperty(this, "notifications", _descriptor2, this);

      _initializerDefineProperty(this, "router", _descriptor3, this);

      _initializerDefineProperty(this, "store", _descriptor4, this);

      _initializerDefineProperty(this, "system", _descriptor5, this);

      _defineProperty(this, "queryParams", {
        template: {
          refreshModel: true
        }
      });
    }

    beforeModel(transition) {
      if (this.can.cannot('run job', null, {
        namespace: transition.to.queryParams.namespace
      })) {
        this.router.transitionTo('jobs');
      }
    }

    async model(_ref) {
      let {
        template
      } = _ref;

      try {
        // When jobs are created with a namespace attribute, it is verified against
        // available namespaces to prevent redirecting to a non-existent namespace.
        await this.store.findAll('namespace');

        if (template) {
          const VariableAdapter = this.store.adapterFor('variable');
          const templateRecord = await VariableAdapter.getJobTemplate(template);
          return this.store.createRecord('job', {
            _newDefinition: templateRecord.items.template
          });
        } else {
          return this.store.createRecord('job');
        }
      } catch (e) {
        this.handle404(e);
      }
    }

    handle404(e) {
      var _e$errors;

      const error404 = (_e$errors = e.errors) === null || _e$errors === void 0 ? void 0 : _e$errors.find(err => err.status === 404);

      if (error404) {
        this.notifications.add({
          title: `Error loading job template`,
          message: error404.detail,
          color: 'critical',
          sticky: true
        });
        return;
      }

      (0, _notifyForbidden.default)(this)(e);
    }

    resetController(controller, isExiting) {
      if (isExiting) {
        var _controller$model;

        (_controller$model = controller.model) === null || _controller$model === void 0 ? void 0 : _controller$model.deleteRecord();
        controller.set('template', null);
      }
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "can", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "notifications", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, "router", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, "store", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor5 = _applyDecoratedDescriptor(_class2.prototype, "system", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class2)) || _class;

  _exports.default = JobsRunIndexRoute;
});
;define("nomad-ui/routes/jobs/run/templates/index", ["exports", "@ember/routing/route", "@ember/service"], function (_exports, _route, _service) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _descriptor, _descriptor2, _descriptor3;

  0; //eaimeta@70e063a35619d71f0,"@ember/routing/route",0,"@ember/service"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let JobsRunTemplatesIndexRoute = (_class = class JobsRunTemplatesIndexRoute extends _route.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "can", _descriptor, this);

      _initializerDefineProperty(this, "router", _descriptor2, this);

      _initializerDefineProperty(this, "store", _descriptor3, this);
    }

    beforeModel() {
      const hasPermissions = this.can.can('write variable', null, {
        namespace: '*',
        path: '*'
      });

      if (!hasPermissions) {
        this.router.transitionTo('jobs');
      }
    }

    model() {
      return this.store.adapterFor('variable').getJobTemplates();
    }

    resetController(controller) {
      controller.set('selectedTemplate', null);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "can", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "router", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "store", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class);
  _exports.default = JobsRunTemplatesIndexRoute;
});
;define("nomad-ui/routes/jobs/run/templates/manage", ["exports", "@ember/routing/route", "@ember/service"], function (_exports, _route, _service) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _descriptor, _descriptor2, _descriptor3;

  0; //eaimeta@70e063a35619d71f0,"@ember/routing/route",0,"@ember/service"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let JobsRunTemplatesManageRoute = (_class = class JobsRunTemplatesManageRoute extends _route.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "can", _descriptor, this);

      _initializerDefineProperty(this, "router", _descriptor2, this);

      _initializerDefineProperty(this, "store", _descriptor3, this);
    }

    beforeModel() {
      const hasPermissions = this.can.can('write variable', null, {
        namespace: '*',
        path: '*'
      });

      if (!hasPermissions) {
        this.router.transitionTo('jobs');
      }
    }

    model() {
      return this.store.adapterFor('variable').getJobTemplates();
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "can", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "router", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "store", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class);
  _exports.default = JobsRunTemplatesManageRoute;
});
;define("nomad-ui/routes/jobs/run/templates/new", ["exports", "@ember/application", "@ember/routing/route", "@ember/service", "nomad-ui/utils/notify-forbidden"], function (_exports, _application, _route, _service, _notifyForbidden) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _descriptor, _descriptor2, _descriptor3, _descriptor4;

  0; //eaimeta@70e063a35619d71f0,"@ember/application",0,"@ember/routing/route",0,"@ember/service",0,"nomad-ui/utils/notify-forbidden"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let JobsRunTemplatesNewRoute = (_class = class JobsRunTemplatesNewRoute extends _route.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "can", _descriptor, this);

      _initializerDefineProperty(this, "router", _descriptor2, this);

      _initializerDefineProperty(this, "store", _descriptor3, this);

      _initializerDefineProperty(this, "system", _descriptor4, this);
    }

    beforeModel(transition) {
      if (this.can.cannot('write variable', null, {
        namespace: transition.to.queryParams.namespace
      })) {
        this.router.transitionTo('jobs.run');
      }
    }

    async model() {
      try {
        // When variables are created with a namespace attribute, it is verified against
        // available namespaces to prevent redirecting to a non-existent namespace.
        await Promise.all([this.store.query('variable', {
          prefix: 'nomad/job-templates',
          namespace: '*'
        }), this.store.findAll('namespace')]); // When navigating from jobs.run.index using "Save as Template"

        const json = (0, _application.getOwner)(this).lookup('controller:jobs.run').jsonTemplate;

        if (json) {
          return this.store.createRecord('variable', {
            keyValues: [{
              key: 'template',
              value: json
            }]
          });
        } // Override Default Value


        return this.store.createRecord('variable', {
          keyValues: []
        });
      } catch (e) {
        (0, _notifyForbidden.default)(this)(e);
      }
    }

    resetController(controller, isExiting) {
      if (isExiting && controller.model.isNew && !controller.model.isDestroyed && !controller.model.isDestroying) {
        var _controller$model;

        (_controller$model = controller.model) === null || _controller$model === void 0 ? void 0 : _controller$model.unloadRecord();
      }

      controller.set('templateName', null);
      controller.set('templateNamespace', 'default');
      (0, _application.getOwner)(this).lookup('controller:jobs.run').jsonTemplate = null;
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "can", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "router", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "store", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, "system", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class);
  _exports.default = JobsRunTemplatesNewRoute;
});
;define("nomad-ui/routes/jobs/run/templates/template", ["exports", "@ember/routing/route", "@ember/service", "nomad-ui/utils/notify-forbidden"], function (_exports, _route, _service, _notifyForbidden) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _descriptor, _descriptor2, _descriptor3, _descriptor4;

  0; //eaimeta@70e063a35619d71f0,"@ember/routing/route",0,"@ember/service",0,"nomad-ui/utils/notify-forbidden"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let JobsRunTemplatesTemplateRoute = (_class = class JobsRunTemplatesTemplateRoute extends _route.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "can", _descriptor, this);

      _initializerDefineProperty(this, "router", _descriptor2, this);

      _initializerDefineProperty(this, "store", _descriptor3, this);

      _initializerDefineProperty(this, "system", _descriptor4, this);
    }

    beforeModel(transition) {
      if (this.can.cannot('write variable', null, {
        namespace: transition.to.queryParams.namespace
      })) {
        this.router.transitionTo('jobs.run');
      }
    }

    async model(_ref) {
      let {
        name
      } = _ref;

      try {
        return this.store.findRecord('variable', name);
      } catch (e) {
        (0, _notifyForbidden.default)(this)(e);
      }
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "can", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "router", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "store", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, "system", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class);
  _exports.default = JobsRunTemplatesTemplateRoute;
});
;define("nomad-ui/routes/not-found", ["exports", "@ember/routing/route", "@ember/error"], function (_exports, _route, _error) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/routing/route",0,"@ember/error"eaimeta@70e063a35619d71f

  class NotFoundRoute extends _route.default {
    model() {
      const err = new _error.default('Page not found');
      err.code = '404';
      this.controllerFor('application').set('error', err);
    }

  }

  _exports.default = NotFoundRoute;

  window.__CLASSIC_OWN_CLASSES__.set(NotFoundRoute, true);
});
;define("nomad-ui/routes/oidc-mock", ["exports", "@ember/routing/route"], function (_exports, _route) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/routing/route"eaimeta@70e063a35619d71f

  class OidcMockRoute extends _route.default {
    // This route only exists for testing SSO/OIDC flow in development, backed by our mirage server.
    // This route won't load outside of a mirage environment, nor will the model hook here return anything meaningful.
    model() {
      return this.store.findAll('token');
    }

  }

  _exports.default = OidcMockRoute;

  window.__CLASSIC_OWN_CLASSES__.set(OidcMockRoute, true);
});
;define("nomad-ui/routes/optimize", ["exports", "@ember/routing/route", "@ember/service", "@ember/object", "@ember/runloop", "rsvp"], function (_exports, _route, _service, _object, _runloop, _rsvp) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _class2, _descriptor, _descriptor2;

  0; //eaimeta@70e063a35619d71f0,"@ember/routing/route",0,"ember-classic-decorator",0,"@ember/service",0,"@ember/object",0,"@ember/runloop",0,"rsvp"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;

  let OptimizeRoute = classic(_class = (_class2 = class OptimizeRoute extends _route.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "can", _descriptor, this);

      _initializerDefineProperty(this, "store", _descriptor2, this);
    }

    beforeModel() {
      if (this.can.cannot('accept recommendation')) {
        this.transitionTo('jobs');
      }
    }

    async model() {
      const summaries = await this.store.findAll('recommendation-summary');
      const jobs = await _rsvp.default.all(summaries.mapBy('job'));
      const [namespaces] = await _rsvp.default.all([this.store.findAll('namespace'), ...jobs.filter(job => job).filterBy('isPartial').map(j => j.reload())]);
      return {
        summaries: summaries.sortBy('submitTime').reverse(),
        namespaces
      };
    }

    reachedEnd() {
      this.store.unloadAll('recommendation-summary');
      (0, _runloop.next)(() => {
        this.transitionTo('optimize');
        this.refresh();
      });
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "can", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "store", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "reachedEnd", [_object.action], Object.getOwnPropertyDescriptor(_class2.prototype, "reachedEnd"), _class2.prototype)), _class2)) || _class;

  _exports.default = OptimizeRoute;
});
;define("nomad-ui/routes/optimize/index", ["exports", "@ember/routing/route"], function (_exports, _route) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/routing/route"eaimeta@70e063a35619d71f

  class OptimizeIndexRoute extends _route.default {
    async activate() {
      // This runs late in the loading lifecycle to ensure .filteredSummaries is populated
      const summaries = this.controllerFor('optimize').filteredSummaries;

      if (summaries.length) {
        const firstSummary = summaries.objectAt(0);
        return this.transitionTo('optimize.summary', firstSummary.slug, {
          queryParams: {
            jobNamespace: firstSummary.jobNamespace || 'default'
          }
        });
      }
    }

  }

  _exports.default = OptimizeIndexRoute;

  window.__CLASSIC_OWN_CLASSES__.set(OptimizeIndexRoute, true);
});
;define("nomad-ui/routes/optimize/summary", ["exports", "@ember/routing/route", "nomad-ui/utils/notify-error"], function (_exports, _route, _notifyError) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/routing/route",0,"nomad-ui/utils/notify-error"eaimeta@70e063a35619d71f

  class OptimizeSummaryRoute extends _route.default {
    async model(_ref) {
      let {
        jobNamespace,
        slug
      } = _ref;
      const model = this.modelFor('optimize').summaries.find(summary => summary.slug === slug && summary.jobNamespace === jobNamespace);

      if (!model) {
        const error = new Error(`Unable to find summary for ${slug} in namespace ${jobNamespace}`);
        error.code = 404;
        (0, _notifyError.default)(this)(error);
      } else {
        return model;
      }
    }

  }

  _exports.default = OptimizeSummaryRoute;

  window.__CLASSIC_OWN_CLASSES__.set(OptimizeSummaryRoute, true);
});
;define("nomad-ui/routes/policies", ["exports", "@ember/routing/route", "nomad-ui/mixins/with-forbidden-state", "nomad-ui/mixins/with-model-error-handling", "@ember/service", "rsvp"], function (_exports, _route, _withForbiddenState, _withModelErrorHandling, _service, _rsvp) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _descriptor, _descriptor2, _descriptor3;

  0; //eaimeta@70e063a35619d71f0,"@ember/routing/route",0,"nomad-ui/mixins/with-forbidden-state",0,"nomad-ui/mixins/with-model-error-handling",0,"@ember/service",0,"rsvp"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let PoliciesRoute = (_class = class PoliciesRoute extends _route.default.extend(_withForbiddenState.default, _withModelErrorHandling.default) {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "can", _descriptor, this);

      _initializerDefineProperty(this, "store", _descriptor2, this);

      _initializerDefineProperty(this, "router", _descriptor3, this);
    }

    beforeModel() {
      if (this.can.cannot('list policies')) {
        this.router.transitionTo('/jobs');
      }
    }

    async model() {
      return await (0, _rsvp.hash)({
        policies: this.store.query('policy', {
          reload: true
        }),
        tokens: this.can.can('list tokens') && this.store.query('token', {
          reload: true
        })
      });
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "can", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "store", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "router", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class);
  _exports.default = PoliciesRoute;
});
;define("nomad-ui/routes/policies/new", ["exports", "@ember/routing/route", "@ember/service"], function (_exports, _route, _service) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _descriptor, _descriptor2;

  0; //eaimeta@70e063a35619d71f0,"@ember/routing/route",0,"@ember/service"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const INITIAL_POLICY_RULES = `# See https://developer.hashicorp.com/nomad/tutorials/access-control/access-control-policies for ACL Policy details

# Example policy structure:

namespace "default" {
  policy = "deny"
  capabilities = []
}

namespace "example-ns" {
  policy = "deny"
  capabilities = ["list-jobs", "read-job"]
  variables {
    # list access to variables in all paths, full access in nested/variables/*
    path "*" {
      capabilities = ["list"]
    }
    path "nested/variables/*" {
      capabilities = ["write", "read", "destroy", "list"]
    }
  }
}

host_volume "example-volume" {
  policy = "deny"
}

agent {
  policy = "deny"
}

node {
  policy = "deny"
}

quota {
  policy = "deny"
}

operator {
  policy = "deny"
}

# Possible Namespace Policies:
#  * deny
#  * read
#  * write
#  * scale

# Possible Namespace Capabilities:
#  * list-jobs
#  * parse-job
#  * read-job
#  * submit-job
#  * dispatch-job
#  * read-logs
#  * read-fs
#  * alloc-exec
#  * alloc-lifecycle
#  * csi-write-volume
#  * csi-mount-volume
#  * list-scaling-policies
#  * read-scaling-policy
#  * read-job-scaling
#  * scale-job

# Possible Variables capabilities
#  * write
#  * read
#  * destroy
#  * list

# Possible Policies for "agent", "node", "quota", "operator", and "host_volume":
#  * deny
#  * read
#  * write
`;
  let PoliciesNewRoute = (_class = class PoliciesNewRoute extends _route.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "can", _descriptor, this);

      _initializerDefineProperty(this, "router", _descriptor2, this);
    }

    beforeModel() {
      if (this.can.cannot('write policy')) {
        this.router.transitionTo('/policies');
      }
    }

    model() {
      return this.store.createRecord('policy', {
        name: '',
        rules: INITIAL_POLICY_RULES
      });
    }

    resetController(controller, isExiting) {
      // If the user navigates away from /new, clear the path
      controller.set('path', null);

      if (isExiting) {
        // If user didn't save, delete the freshly created model
        if (controller.model.isNew) {
          controller.model.destroyRecord();
        }
      }
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "can", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "router", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class);
  _exports.default = PoliciesNewRoute;
});
;define("nomad-ui/routes/policies/policy", ["exports", "@ember/routing/route", "nomad-ui/mixins/with-forbidden-state", "nomad-ui/mixins/with-model-error-handling", "@ember/service", "rsvp"], function (_exports, _route, _withForbiddenState, _withModelErrorHandling, _service, _rsvp) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _descriptor;

  0; //eaimeta@70e063a35619d71f0,"@ember/routing/route",0,"nomad-ui/mixins/with-forbidden-state",0,"nomad-ui/mixins/with-model-error-handling",0,"@ember/service",0,"rsvp"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let PoliciesPolicyRoute = (_class = class PoliciesPolicyRoute extends _route.default.extend(_withForbiddenState.default, _withModelErrorHandling.default) {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "store", _descriptor, this);
    }

    async model(params) {
      return (0, _rsvp.hash)({
        policy: this.store.findRecord('policy', decodeURIComponent(params.name), {
          reload: true
        }),
        tokens: this.store.peekAll('token').filter(token => {
          var _token$policyNames;

          return (_token$policyNames = token.policyNames) === null || _token$policyNames === void 0 ? void 0 : _token$policyNames.includes(decodeURIComponent(params.name));
        })
      });
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "store", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class);
  _exports.default = PoliciesPolicyRoute;
});
;define("nomad-ui/routes/servers", ["exports", "@ember/service", "@ember/routing/route", "rsvp", "nomad-ui/mixins/with-forbidden-state", "nomad-ui/utils/notify-forbidden"], function (_exports, _service, _route, _rsvp, _withForbiddenState, _notifyForbidden) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _class2, _descriptor, _descriptor2;

  0; //eaimeta@70e063a35619d71f0,"@ember/service",0,"@ember/routing/route",0,"rsvp",0,"nomad-ui/mixins/with-forbidden-state",0,"nomad-ui/utils/notify-forbidden",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;

  let ServersRoute = classic(_class = (_class2 = class ServersRoute extends _route.default.extend(_withForbiddenState.default) {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "store", _descriptor, this);

      _initializerDefineProperty(this, "system", _descriptor2, this);
    }

    beforeModel() {
      return this.get('system.leader');
    }

    model() {
      return _rsvp.default.hash({
        nodes: this.store.findAll('node'),
        agents: this.store.findAll('agent')
      }).catch((0, _notifyForbidden.default)(this));
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "store", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "system", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class2)) || _class;

  _exports.default = ServersRoute;
});
;define("nomad-ui/routes/servers/server", ["exports", "@ember/routing/route", "nomad-ui/mixins/with-model-error-handling"], function (_exports, _route, _withModelErrorHandling) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/routing/route",0,"nomad-ui/mixins/with-model-error-handling"eaimeta@70e063a35619d71f

  class ServerRoute extends _route.default.extend(_withModelErrorHandling.default) {}

  _exports.default = ServerRoute;

  window.__CLASSIC_OWN_CLASSES__.set(ServerRoute, true);
});
;define("nomad-ui/routes/settings/tokens", ["exports", "@ember/routing/route", "@ember/service"], function (_exports, _route, _service) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _descriptor;

  0; //eaimeta@70e063a35619d71f0,"@ember/routing/route",0,"@ember/service"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let SettingsTokensRoute = (_class = class SettingsTokensRoute extends _route.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "store", _descriptor, this);
    }

    model() {
      return {
        authMethods: this.store.findAll('auth-method')
      };
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "store", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class);
  _exports.default = SettingsTokensRoute;
});
;define("nomad-ui/routes/topology", ["exports", "@ember/service", "@ember/routing/route", "nomad-ui/mixins/with-forbidden-state", "nomad-ui/utils/notify-forbidden", "rsvp"], function (_exports, _service, _route, _withForbiddenState, _notifyForbidden, _rsvp) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _class2, _descriptor, _descriptor2;

  0; //eaimeta@70e063a35619d71f0,"@ember/service",0,"@ember/routing/route",0,"nomad-ui/mixins/with-forbidden-state",0,"nomad-ui/utils/notify-forbidden",0,"ember-classic-decorator",0,"rsvp"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;

  let TopologyRoute = classic(_class = (_class2 = class TopologyRoute extends _route.default.extend(_withForbiddenState.default) {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "store", _descriptor, this);

      _initializerDefineProperty(this, "system", _descriptor2, this);
    }

    model() {
      return _rsvp.default.hash({
        allocations: this.store.query('allocation', {
          resources: true,
          task_states: false,
          namespace: '*'
        }),
        nodes: this.store.query('node', {
          resources: true
        }),
        // Nodes are not allowed to be in the 'all' node pool, so filter it out.
        nodePools: this.store.findAll('node-pool').then(pools => pools.filter(p => p.name !== 'all'))
      }).catch((0, _notifyForbidden.default)(this));
    }

    setupController(controller, model) {
      // When the model throws, make sure the interface expected by the controller is consistent.
      if (!model) {
        controller.model = {
          allocations: [],
          nodes: [],
          nodePools: []
        };
      }

      return super.setupController(...arguments);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "store", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "system", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class2)) || _class;

  _exports.default = TopologyRoute;
});
;define("nomad-ui/routes/variables", ["exports", "@ember/routing/route", "@ember/service", "nomad-ui/mixins/with-forbidden-state", "nomad-ui/utils/notify-forbidden", "nomad-ui/utils/path-tree"], function (_exports, _route, _service, _withForbiddenState, _notifyForbidden, _pathTree) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _descriptor, _descriptor2, _descriptor3;

  0; //eaimeta@70e063a35619d71f0,"@ember/routing/route",0,"@ember/service",0,"nomad-ui/mixins/with-forbidden-state",0,"nomad-ui/utils/notify-forbidden",0,"nomad-ui/utils/path-tree"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let VariablesRoute = (_class = class VariablesRoute extends _route.default.extend(_withForbiddenState.default) {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "can", _descriptor, this);

      _initializerDefineProperty(this, "router", _descriptor2, this);

      _initializerDefineProperty(this, "store", _descriptor3, this);

      _defineProperty(this, "queryParams", {
        qpNamespace: {
          refreshModel: true
        }
      });
    }

    beforeModel() {
      if (this.can.cannot('list variables')) {
        this.router.transitionTo('/jobs');
      }
    }

    async model(_ref) {
      let {
        qpNamespace
      } = _ref;
      const namespace = qpNamespace ?? '*';

      try {
        await this.store.findAll('namespace');
        const variables = await this.store.query('variable', {
          namespace
        }, {
          reload: true
        });
        return {
          variables,
          pathTree: new _pathTree.default(variables)
        };
      } catch (e) {
        (0, _notifyForbidden.default)(this)(e);
        return e;
      }
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "can", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "router", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "store", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class);
  _exports.default = VariablesRoute;
});
;define("nomad-ui/routes/variables/index", ["exports", "@ember/routing/route", "nomad-ui/mixins/with-forbidden-state", "nomad-ui/utils/notify-forbidden"], function (_exports, _route, _withForbiddenState, _notifyForbidden) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/routing/route",0,"nomad-ui/mixins/with-forbidden-state",0,"nomad-ui/utils/notify-forbidden"eaimeta@70e063a35619d71f

  class VariablesIndexRoute extends _route.default.extend(_withForbiddenState.default) {
    model() {
      if (this.modelFor('variables').errors) {
        (0, _notifyForbidden.default)(this)(this.modelFor('variables'));
      } else {
        const {
          variables,
          pathTree
        } = this.modelFor('variables');
        return {
          variables,
          root: pathTree.paths.root
        };
      }
    }

  }

  _exports.default = VariablesIndexRoute;

  window.__CLASSIC_OWN_CLASSES__.set(VariablesIndexRoute, true);
});
;define("nomad-ui/routes/variables/new", ["exports", "@ember/routing/route"], function (_exports, _route) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/routing/route"eaimeta@70e063a35619d71f

  class VariablesNewRoute extends _route.default {
    async model(params) {
      var _namespaces$objectAt;

      const namespaces = await this.store.peekAll('namespace');
      return this.store.createRecord('variable', {
        path: params.path,
        namespace: (_namespaces$objectAt = namespaces.objectAt(0)) === null || _namespaces$objectAt === void 0 ? void 0 : _namespaces$objectAt.id
      });
    }

    resetController(controller, isExiting) {
      // If the user navigates away from /new, clear the path
      controller.set('path', null);

      if (isExiting) {
        // If user didn't save, delete the freshly created model
        if (controller.model.isNew) {
          controller.model.destroyRecord();
        }
      }
    }

  }

  _exports.default = VariablesNewRoute;

  window.__CLASSIC_OWN_CLASSES__.set(VariablesNewRoute, true);
});
;define("nomad-ui/routes/variables/path", ["exports", "@ember/routing/route", "nomad-ui/mixins/with-forbidden-state", "nomad-ui/utils/notify-forbidden"], function (_exports, _route, _withForbiddenState, _notifyForbidden) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/routing/route",0,"nomad-ui/mixins/with-forbidden-state",0,"nomad-ui/utils/notify-forbidden"eaimeta@70e063a35619d71f

  class VariablesPathRoute extends _route.default.extend(_withForbiddenState.default) {
    model(_ref) {
      let {
        absolutePath
      } = _ref;

      if (this.modelFor('variables').errors) {
        (0, _notifyForbidden.default)(this)(this.modelFor('variables'));
      } else {
        const treeAtPath = this.modelFor('variables').pathTree.findPath(absolutePath);

        if (treeAtPath) {
          return {
            treeAtPath,
            absolutePath
          };
        } else {
          return {
            absolutePath
          };
        }
      }
    }

  }

  _exports.default = VariablesPathRoute;

  window.__CLASSIC_OWN_CLASSES__.set(VariablesPathRoute, true);
});
;define("nomad-ui/routes/variables/variable", ["exports", "@ember/routing/route", "nomad-ui/mixins/with-forbidden-state", "@ember/service", "nomad-ui/utils/notify-forbidden"], function (_exports, _route, _withForbiddenState, _service, _notifyForbidden) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _descriptor;

  0; //eaimeta@70e063a35619d71f0,"@ember/routing/route",0,"nomad-ui/mixins/with-forbidden-state",0,"@ember/service",0,"nomad-ui/utils/notify-forbidden"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let VariablesVariableRoute = (_class = class VariablesVariableRoute extends _route.default.extend(_withForbiddenState.default) {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "store", _descriptor, this);
    }

    model(params) {
      return this.store.findRecord('variable', decodeURIComponent(params.id), {
        reload: true
      }).catch((0, _notifyForbidden.default)(this));
    }

    setupController(controller) {
      super.setupController(controller);
      controller.set('params', this.paramsFor('variables.variable'));
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "store", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class);
  _exports.default = VariablesVariableRoute;
});
;define("nomad-ui/routes/variables/variable/edit", ["exports", "@ember/routing/route"], function (_exports, _route) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/routing/route"eaimeta@70e063a35619d71f

  class VariablesVariableEditRoute extends _route.default {
    model() {
      return this.modelFor('variables.variable');
    }

  }

  _exports.default = VariablesVariableEditRoute;

  window.__CLASSIC_OWN_CLASSES__.set(VariablesVariableEditRoute, true);
});
;define("nomad-ui/serializers/-default", ["exports", "@ember-data/serializer/json"], function (_exports, _json) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _json.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@ember-data/serializer/json"eaimeta@70e063a35619d71f
});
;define("nomad-ui/serializers/-json-api", ["exports", "@ember-data/serializer/json-api"], function (_exports, _jsonApi) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _jsonApi.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@ember-data/serializer/json-api"eaimeta@70e063a35619d71f
});
;define("nomad-ui/serializers/-rest", ["exports", "@ember-data/serializer/rest"], function (_exports, _rest) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _rest.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@ember-data/serializer/rest"eaimeta@70e063a35619d71f
});
;define("nomad-ui/serializers/agent", ["exports", "nomad-ui/serializers/application", "@ember-data/adapter/error"], function (_exports, _application, _error) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class;

  0; //eaimeta@70e063a35619d71f0,"nomad-ui/serializers/application",0,"@ember-data/adapter/error",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  const classic = __EMBER_CLASSIC_DECORATOR;

  let AgentSerializer = classic(_class = class AgentSerializer extends _application.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "attrs", {
        datacenter: 'dc',
        address: 'Addr',
        serfPort: 'Port'
      });
    }

    normalize(typeHash, hash) {
      if (!hash) {
        // It's unusual to throw an adapter error from a serializer,
        // but there is no single server end point so the serializer
        // acts like the API in this case.
        const error = new _error.default([{
          status: '404'
        }]);
        error.message = 'Requested Agent was not found in set of available Agents';
        throw error;
      }

      hash.ID = hash.Name;
      hash.Datacenter = hash.Tags && hash.Tags.dc;
      hash.Region = hash.Tags && hash.Tags.region;
      hash.RpcPort = hash.Tags && hash.Tags.port;
      return super.normalize(typeHash, hash);
    }

    normalizeResponse(store, typeClass, hash) {
      for (var _len = arguments.length, args = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {
        args[_key - 3] = arguments[_key];
      }

      return super.normalizeResponse(store, typeClass, hash.Members || [], ...args);
    }

    normalizeSingleResponse(store, typeClass, hash, id) {
      for (var _len2 = arguments.length, args = new Array(_len2 > 4 ? _len2 - 4 : 0), _key2 = 4; _key2 < _len2; _key2++) {
        args[_key2 - 4] = arguments[_key2];
      }

      return super.normalizeSingleResponse(store, typeClass, hash.findBy('Name', id), id, ...args);
    }

  }) || _class;

  _exports.default = AgentSerializer;
});
;define("nomad-ui/serializers/allocation", ["exports", "@ember/service", "@ember/object", "nomad-ui/serializers/application"], function (_exports, _service, _object, _application) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _class2, _descriptor;

  0; //eaimeta@70e063a35619d71f0,"@ember/service",0,"@ember/object",0,"nomad-ui/serializers/application",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;

  const taskGroupFromJob = (job, taskGroupName) => {
    const taskGroups = job && job.TaskGroups;
    const taskGroup = taskGroups && taskGroups.find(group => group.Name === taskGroupName);
    return taskGroup ? taskGroup : null;
  };

  const merge = tasks => {
    const mergedResources = {
      Cpu: {
        CpuShares: 0
      },
      Memory: {
        MemoryMB: 0
      },
      Disk: {
        DiskMB: 0
      }
    };
    return tasks.reduce((resources, task) => {
      resources.Cpu.CpuShares += task.Cpu && task.Cpu.CpuShares || 0;
      resources.Memory.MemoryMB += task.Memory && task.Memory.MemoryMB || 0;
      resources.Disk.DiskMB += task.Disk && task.Disk.DiskMB || 0;
      return resources;
    }, mergedResources);
  };

  let AllocationSerializer = classic(_class = (_class2 = class AllocationSerializer extends _application.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "system", _descriptor, this);

      _defineProperty(this, "attrs", {
        taskGroupName: 'TaskGroup',
        states: 'TaskStates'
      });

      _defineProperty(this, "separateNanos", ['CreateTime', 'ModifyTime']);
    }

    normalize(typeHash, hash) {
      // Transform the map-based TaskStates object into an array-based
      // TaskState fragment list
      const states = hash.TaskStates || {};
      hash.TaskStates = Object.keys(states).sort().map(key => {
        const state = states[key] || {};
        const summary = {
          Name: key
        };
        Object.keys(state).forEach(stateKey => summary[stateKey] = state[stateKey]);
        summary.Resources = hash.AllocatedResources && hash.AllocatedResources.Tasks[key];
        return summary;
      });
      hash.JobVersion = hash.JobVersion != null ? hash.JobVersion : (0, _object.get)(hash, 'Job.Version');
      hash.PlainJobId = hash.JobID;
      hash.Namespace = hash.Namespace || (0, _object.get)(hash, 'Job.Namespace') || 'default';
      hash.JobID = JSON.stringify([hash.JobID, hash.Namespace]);
      hash.RescheduleEvents = (hash.RescheduleTracker || {}).Events;
      hash.IsMigrating = (hash.DesiredTransition || {}).Migrate; // API returns empty strings instead of null

      hash.PreviousAllocationID = hash.PreviousAllocation ? hash.PreviousAllocation : null;
      hash.NextAllocationID = hash.NextAllocation ? hash.NextAllocation : null;
      hash.FollowUpEvaluationID = hash.FollowupEvalID ? hash.FollowupEvalID : null;
      hash.PreemptedAllocationIDs = hash.PreemptedAllocations || [];
      hash.PreemptedByAllocationID = hash.PreemptedByAllocation || null;
      hash.WasPreempted = !!hash.PreemptedByAllocationID;
      const shared = hash.AllocatedResources && hash.AllocatedResources.Shared;
      hash.AllocatedResources = hash.AllocatedResources && merge(Object.values(hash.AllocatedResources.Tasks));

      if (shared) {
        hash.AllocatedResources.Ports = shared.Ports;
        hash.AllocatedResources.Networks = shared.Networks;
      } // The Job definition for an allocation is only included in findRecord responses.


      hash.AllocationTaskGroup = !hash.Job ? null : taskGroupFromJob(hash.Job, hash.TaskGroup);
      return super.normalize(typeHash, hash);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "system", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class2)) || _class;

  _exports.default = AllocationSerializer;
});
;define("nomad-ui/serializers/application", ["exports", "ember-copy", "@ember/object", "@ember/array", "@ember-data/serializer/json", "ember-inflector", "nomad-ui/utils/remove-record", "@ember/polyfills", "@ember/string"], function (_exports, _emberCopy, _object, _array, _json, _emberInflector, _removeRecord, _polyfills, _string) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class;

  0; //eaimeta@70e063a35619d71f0,"ember-copy",0,"@ember/object",0,"@ember/array",0,"@ember-data/serializer/json",0,"ember-inflector",0,"nomad-ui/utils/remove-record",0,"@ember/polyfills",0,"ember-classic-decorator",0,"@ember/string"eaimeta@70e063a35619d71f

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  const classic = __EMBER_CLASSIC_DECORATOR;

  let Application = classic(_class = class Application extends _json.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "primaryKey", 'ID');

      _defineProperty(this, "arrayNullOverrides", null);

      _defineProperty(this, "objectNullOverrides", null);

      _defineProperty(this, "mapToArray", null);

      _defineProperty(this, "separateNanos", null);
    }

    keyForAttribute(attr) {
      return (0, _string.capitalize)((0, _string.camelize)(attr));
    }

    keyForRelationship(attr, relationshipType) {
      const key = `${(0, _string.capitalize)((0, _string.camelize)((0, _emberInflector.singularize)(attr)))}ID`;
      return relationshipType === 'hasMany' ? (0, _emberInflector.pluralize)(key) : key;
    } // Modeled after the pushPayload for ember-data/serializers/rest


    pushPayload(store, payload) {
      const documentHash = {
        data: [],
        included: []
      };
      Object.keys(payload).forEach(key => {
        const modelName = this.modelNameFromPayloadKey(key);
        const serializer = store.serializerFor(modelName);
        const type = store.modelFor(modelName);
        (0, _array.makeArray)(payload[key]).forEach(hash => {
          const {
            data,
            included
          } = serializer.normalize(type, hash, key);
          documentHash.data.push(data);

          if (included) {
            documentHash.included.push(...included);
          }
        });
      });
      store.push(documentHash);
    }

    normalize(modelClass, hash) {
      if (hash) {
        if (this.arrayNullOverrides) {
          this.arrayNullOverrides.forEach(key => {
            if (!hash[key]) {
              hash[key] = [];
            }
          });
        }

        if (this.objectNullOverrides) {
          this.objectNullOverrides.forEach(key => {
            if (!hash[key]) {
              hash[key] = {};
            }
          });
        }

        if (this.mapToArray) {
          this.mapToArray.forEach(conversion => {
            let apiKey, uiKey;

            if (conversion.beforeName) {
              apiKey = conversion.beforeName;
              uiKey = conversion.afterName;
            } else {
              apiKey = conversion;
              uiKey = conversion;
            }

            const map = hash[apiKey] || {};
            hash[uiKey] = Object.keys(map).sort().map(mapKey => {
              const propertiesForKey = map[mapKey] || {};
              const convertedMap = {
                Name: mapKey
              };
              (0, _polyfills.assign)(convertedMap, propertiesForKey);
              return convertedMap;
            });
          });
        }

        if (this.separateNanos) {
          this.separateNanos.forEach(key => {
            const timeWithNanos = hash[key];
            hash[`${key}Nanos`] = timeWithNanos % 1000000;
            hash[key] = Math.floor(timeWithNanos / 1000000);
          });
        }
      }

      return super.normalize(modelClass, hash);
    }

    normalizeFindAllResponse(store, modelClass) {
      const result = super.normalizeFindAllResponse(...arguments);
      this.cullStore(store, modelClass.modelName, result.data);
      return result;
    } // When records are removed server-side, and therefore don't show up in requests,
    // the local copies of those records need to be unloaded from the store.


    cullStore(store, type, records) {
      let storeFilter = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : () => true;
      const newRecords = (0, _emberCopy.copy)(records).filter(record => (0, _object.get)(record, 'id'));
      const oldRecords = store.peekAll(type);
      oldRecords.filter(record => (0, _object.get)(record, 'id')).filter(storeFilter).forEach(old => {
        const newRecord = newRecords.find(record => (0, _object.get)(record, 'id') === (0, _object.get)(old, 'id'));

        if (!newRecord) {
          (0, _removeRecord.default)(store, old);
        } else {
          newRecords.removeObject(newRecord);
        }
      });
    }

    modelNameFromPayloadKey(key) {
      return (0, _emberInflector.singularize)((0, _string.dasherize)(key));
    }

  }) || _class;

  _exports.default = Application;
});
;define("nomad-ui/serializers/auth-method", ["exports", "nomad-ui/serializers/application"], function (_exports, _application) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class;

  0; //eaimeta@70e063a35619d71f0,"nomad-ui/serializers/application",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  const classic = __EMBER_CLASSIC_DECORATOR;

  let AuthMethodSerializer = classic(_class = class AuthMethodSerializer extends _application.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "primaryKey", 'Name');
    }

  }) || _class;

  _exports.default = AuthMethodSerializer;
});
;define("nomad-ui/serializers/deployment", ["exports", "@ember/object", "@ember/polyfills", "nomad-ui/serializers/application"], function (_exports, _object, _polyfills, _application) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class;

  0; //eaimeta@70e063a35619d71f0,"@ember/object",0,"@ember/polyfills",0,"nomad-ui/serializers/application",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  const classic = __EMBER_CLASSIC_DECORATOR;

  let DeploymentSerializer = classic(_class = class DeploymentSerializer extends _application.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "attrs", {
        versionNumber: 'JobVersion'
      });

      _defineProperty(this, "mapToArray", [{
        beforeName: 'TaskGroups',
        afterName: 'TaskGroupSummaries'
      }]);
    }

    normalize(typeHash, hash) {
      if (hash) {
        hash.PlainJobId = hash.JobID;
        hash.Namespace = hash.Namespace || (0, _object.get)(hash, 'Job.Namespace') || 'default'; // Ember Data doesn't support multiple inverses. This means that since jobs have
        // two relationships to a deployment (hasMany deployments, and belongsTo latestDeployment),
        // the deployment must in turn have two relationships to the job, despite it being the
        // same job.

        hash.JobID = hash.JobForLatestID = JSON.stringify([hash.JobID, hash.Namespace]);
      }

      return super.normalize(typeHash, hash);
    }

    extractRelationships(modelClass, hash) {
      const namespace = this.store.adapterFor(modelClass.modelName).get('namespace');
      const id = this.extractId(modelClass, hash);
      return (0, _polyfills.assign)({
        allocations: {
          links: {
            related: `/${namespace}/deployment/allocations/${id}`
          }
        }
      }, super.extractRelationships(modelClass, hash));
    }

  }) || _class;

  _exports.default = DeploymentSerializer;
});
;define("nomad-ui/serializers/drain-strategy", ["exports", "nomad-ui/serializers/application"], function (_exports, _application) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class;

  0; //eaimeta@70e063a35619d71f0,"nomad-ui/serializers/application",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  const classic = __EMBER_CLASSIC_DECORATOR;

  let DrainStrategy = classic(_class = class DrainStrategy extends _application.default {
    normalize(typeHash, hash) {
      // TODO API: finishedAt is always marshaled as a date even when unset.
      // To simplify things, unset it here when it's the empty date value.
      if (hash.ForceDeadline === '0001-01-01T00:00:00Z') {
        hash.ForceDeadline = null;
      }

      return super.normalize(typeHash, hash);
    }

  }) || _class;

  _exports.default = DrainStrategy;
});
;define("nomad-ui/serializers/evaluation", ["exports", "@ember/service", "@ember/object", "nomad-ui/serializers/application"], function (_exports, _service, _object, _application) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _class2, _descriptor;

  0; //eaimeta@70e063a35619d71f0,"@ember/service",0,"@ember/object",0,"nomad-ui/serializers/application",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;

  let Evaluation = classic(_class = (_class2 = class Evaluation extends _application.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "system", _descriptor, this);

      _defineProperty(this, "mapToArray", ['FailedTGAllocs']);

      _defineProperty(this, "separateNanos", ['CreateTime', 'ModifyTime']);
    }

    normalize(typeHash, hash) {
      hash.PlainJobId = hash.JobID;
      hash.Namespace = hash.Namespace || (0, _object.get)(hash, 'Job.Namespace') || 'default';
      hash.JobID = JSON.stringify([hash.JobID, hash.Namespace]);
      const relatedEvals = hash.RelatedEvals;
      const normalizedHash = super.normalize(typeHash, hash);

      if (relatedEvals !== null && relatedEvals !== void 0 && relatedEvals.length) {
        this._handleRelatedEvalsRelationshipData(relatedEvals, normalizedHash);
      }

      return normalizedHash;
    }

    _handleRelatedEvalsRelationshipData(relatedEvals, normalizedHash) {
      normalizedHash.data.relationships = normalizedHash.data.relationships || {};
      normalizedHash.data.relationships.relatedEvals = {
        data: relatedEvals.map(evaluationStub => {
          return {
            id: evaluationStub.ID,
            type: 'evaluation-stub'
          };
        })
      };
      normalizedHash.included = normalizedHash.included || [];
      const included = relatedEvals.reduce((acc, evaluationStub) => {
        const jsonDocument = this.normalize(this.store.modelFor('evaluation-stub'), evaluationStub);
        return [...acc, jsonDocument.data];
      }, normalizedHash.included);
      normalizedHash.included = included;
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "system", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class2)) || _class;

  _exports.default = Evaluation;
});
;define("nomad-ui/serializers/fragment", ["exports", "nomad-ui/serializers/application"], function (_exports, _application) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class;

  0; //eaimeta@70e063a35619d71f0,"nomad-ui/serializers/application",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  const classic = __EMBER_CLASSIC_DECORATOR;

  let Fragment = classic(_class = class Fragment extends _application.default {}) || _class;

  _exports.default = Fragment;
});
;define("nomad-ui/serializers/job-plan", ["exports", "nomad-ui/serializers/application", "@ember/object"], function (_exports, _application, _object) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class;

  0; //eaimeta@70e063a35619d71f0,"nomad-ui/serializers/application",0,"@ember/object",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  const classic = __EMBER_CLASSIC_DECORATOR;

  let JobPlan = classic(_class = class JobPlan extends _application.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "mapToArray", ['FailedTGAllocs']);
    }

    normalize(typeHash, hash) {
      hash.PreemptionIDs = ((0, _object.get)(hash, 'Annotations.PreemptedAllocs') || []).mapBy('ID');
      return super.normalize(...arguments);
    }

  }) || _class;

  _exports.default = JobPlan;
});
;define("nomad-ui/serializers/job-scale", ["exports", "nomad-ui/serializers/application"], function (_exports, _application) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class;

  0; //eaimeta@70e063a35619d71f0,"nomad-ui/serializers/application",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  const classic = __EMBER_CLASSIC_DECORATOR;

  let JobScale = classic(_class = class JobScale extends _application.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "mapToArray", [{
        beforeName: 'TaskGroups',
        afterName: 'TaskGroupScales'
      }]);
    }

    normalize(modelClass, hash) {
      hash.PlainJobId = hash.JobID;
      hash.ID = JSON.stringify([hash.JobID, hash.Namespace || 'default']);
      hash.JobID = hash.ID;
      return super.normalize(modelClass, hash);
    }

  }) || _class;

  _exports.default = JobScale;
});
;define("nomad-ui/serializers/job-summary", ["exports", "@ember/object", "nomad-ui/serializers/application"], function (_exports, _object, _application) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class;

  0; //eaimeta@70e063a35619d71f0,"@ember/object",0,"nomad-ui/serializers/application",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  const classic = __EMBER_CLASSIC_DECORATOR;

  let JobSummary = classic(_class = class JobSummary extends _application.default {
    normalize(modelClass, hash) {
      hash.PlainJobId = hash.JobID;
      hash.ID = JSON.stringify([hash.JobID, hash.Namespace || 'default']);
      hash.JobID = hash.ID; // Transform the map-based Summary object into an array-based
      // TaskGroupSummary fragment list

      const fullSummary = hash.Summary || {};
      hash.TaskGroupSummaries = Object.keys(fullSummary).sort().map(key => {
        const allocStats = fullSummary[key] || {};
        const summary = {
          Name: key
        };
        Object.keys(allocStats).forEach(allocKey => summary[`${allocKey}Allocs`] = allocStats[allocKey]);
        return summary;
      }); // Lift the children stats out of the Children object

      const childrenStats = (0, _object.get)(hash, 'Children');

      if (childrenStats) {
        Object.keys(childrenStats).forEach(childrenKey => hash[`${childrenKey}Children`] = childrenStats[childrenKey]);
      }

      return super.normalize(modelClass, hash);
    }

  }) || _class;

  _exports.default = JobSummary;
});
;define("nomad-ui/serializers/job-version", ["exports", "@ember/polyfills", "nomad-ui/serializers/application"], function (_exports, _polyfills, _application) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class;

  0; //eaimeta@70e063a35619d71f0,"@ember/polyfills",0,"nomad-ui/serializers/application",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  const classic = __EMBER_CLASSIC_DECORATOR;

  let JobVersionSerializer = classic(_class = class JobVersionSerializer extends _application.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "attrs", {
        number: 'Version'
      });
    }

    normalizeFindHasManyResponse(store, modelClass, hash, id, requestType) {
      const zippedVersions = hash.Versions.map((version, index) => (0, _polyfills.assign)({}, version, {
        Diff: hash.Diffs && hash.Diffs[index],
        ID: `${version.ID}-${version.Version}`,
        JobID: JSON.stringify([version.ID, version.Namespace || 'default']),
        SubmitTime: Math.floor(version.SubmitTime / 1000000),
        SubmitTimeNanos: version.SubmitTime % 1000000
      }));
      return super.normalizeFindHasManyResponse(store, modelClass, zippedVersions, hash, id, requestType);
    }

  }) || _class;

  _exports.default = JobVersionSerializer;
});
;define("nomad-ui/serializers/job", ["exports", "@ember/polyfills", "nomad-ui/serializers/application", "query-string"], function (_exports, _polyfills, _application, _queryString) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class;

  0; //eaimeta@70e063a35619d71f0,"@ember/polyfills",0,"nomad-ui/serializers/application",0,"query-string",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  const classic = __EMBER_CLASSIC_DECORATOR;

  let JobSerializer = classic(_class = class JobSerializer extends _application.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "attrs", {
        parameterized: 'ParameterizedJob'
      });

      _defineProperty(this, "separateNanos", ['SubmitTime']);
    }

    normalize(typeHash, hash) {
      hash.NamespaceID = hash.Namespace; // ID is a composite of both the job ID and the namespace the job is in

      hash.PlainId = hash.ID;
      hash.ID = JSON.stringify([hash.ID, hash.NamespaceID || 'default']); // ParentID comes in as "" instead of null

      if (!hash.ParentID) {
        hash.ParentID = null;
      } else {
        hash.ParentID = JSON.stringify([hash.ParentID, hash.NamespaceID || 'default']);
      } // Job Summary is always at /:job-id/summary, but since it can also come from
      // the job list, it's better for Ember Data to be linked by ID association.


      hash.SummaryID = hash.ID; // Periodic is a boolean on list and an object on single

      if (hash.Periodic instanceof Object) {
        hash.PeriodicDetails = hash.Periodic;
        hash.Periodic = true;
      } // Parameterized behaves like Periodic


      if (hash.ParameterizedJob instanceof Object) {
        hash.ParameterizedDetails = hash.ParameterizedJob;
        hash.ParameterizedJob = true;
      } // If the hash contains summary information, push it into the store
      // as a job-summary model.


      if (hash.JobSummary) {
        this.store.pushPayload('job-summary', {
          'job-summary': [hash.JobSummary]
        });
      }

      return super.normalize(typeHash, hash);
    }

    extractRelationships(modelClass, hash) {
      const namespace = !hash.NamespaceID || hash.NamespaceID === 'default' ? undefined : hash.NamespaceID;
      const {
        modelName
      } = modelClass;
      const apiNamespace = this.store.adapterFor(modelClass.modelName).get('namespace');
      const [jobURL] = this.store.adapterFor(modelName).buildURL(modelName, hash.ID, hash, 'findRecord').split('?');
      const variableLookup = hash.ParentID ? JSON.parse(hash.ParentID)[0] : hash.PlainId;
      return (0, _polyfills.assign)(super.extractRelationships(...arguments), {
        allocations: {
          links: {
            related: buildURL(`${jobURL}/allocations`, {
              namespace
            })
          }
        },
        versions: {
          links: {
            related: buildURL(`${jobURL}/versions`, {
              namespace,
              diffs: true
            })
          }
        },
        deployments: {
          links: {
            related: buildURL(`${jobURL}/deployments`, {
              namespace
            })
          }
        },
        latestDeployment: {
          links: {
            related: buildURL(`${jobURL}/deployment`, {
              namespace
            })
          }
        },
        evaluations: {
          links: {
            related: buildURL(`${jobURL}/evaluations`, {
              namespace
            })
          }
        },
        services: {
          links: {
            related: buildURL(`${jobURL}/services`, {
              namespace
            })
          }
        },
        variables: {
          links: {
            related: buildURL(`/${apiNamespace}/vars`, {
              prefix: `nomad/jobs/${variableLookup}`,
              namespace
            })
          }
        },
        scaleState: {
          links: {
            related: buildURL(`${jobURL}/scale`, {
              namespace
            })
          }
        },
        recommendationSummaries: {
          links: {
            related: buildURL(`/${apiNamespace}/recommendations`, {
              job: hash.PlainId,
              namespace: hash.NamespaceID || 'default'
            })
          }
        }
      });
    }

  }) || _class;

  _exports.default = JobSerializer;

  function buildURL(path, queryParams) {
    const qpString = _queryString.default.stringify(queryParams);

    if (qpString) {
      return `${path}?${qpString}`;
    }

    return path;
  }
});
;define("nomad-ui/serializers/namespace", ["exports", "nomad-ui/serializers/application"], function (_exports, _application) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class;

  0; //eaimeta@70e063a35619d71f0,"nomad-ui/serializers/application",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  const classic = __EMBER_CLASSIC_DECORATOR;

  let Namespace = classic(_class = class Namespace extends _application.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "primaryKey", 'Name');
    }

  }) || _class;

  _exports.default = Namespace;
});
;define("nomad-ui/serializers/network", ["exports", "nomad-ui/serializers/application", "is-ip"], function (_exports, _application, _isIp) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class;

  0; //eaimeta@70e063a35619d71f0,"nomad-ui/serializers/application",0,"is-ip",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  const classic = __EMBER_CLASSIC_DECORATOR;

  let NetworkSerializer = classic(_class = class NetworkSerializer extends _application.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "attrs", {
        cidr: 'CIDR',
        ip: 'IP',
        mbits: 'MBits'
      });
    }

    normalize(typeHash, hash) {
      const ip = hash.IP;

      if (_isIp.default.v6(ip)) {
        hash.IP = `[${ip}]`;
      }

      const reservedPorts = (hash.ReservedPorts || []).map(port => ({
        name: port.Label,
        port: port.Value,
        to: port.To,
        isDynamic: false
      }));
      const dynamicPorts = (hash.DynamicPorts || []).map(port => ({
        name: port.Label,
        port: port.Value,
        to: port.To,
        isDynamic: true
      }));
      hash.Ports = reservedPorts.concat(dynamicPorts).sortBy('name');
      return super.normalize(...arguments);
    }

  }) || _class;

  _exports.default = NetworkSerializer;
});
;define("nomad-ui/serializers/node-event", ["exports", "nomad-ui/serializers/application"], function (_exports, _application) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class;

  0; //eaimeta@70e063a35619d71f0,"nomad-ui/serializers/application",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  const classic = __EMBER_CLASSIC_DECORATOR;

  let NodeEventSerializer = classic(_class = class NodeEventSerializer extends _application.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "attrs", {
        time: 'Timestamp'
      });
    }

  }) || _class;

  _exports.default = NodeEventSerializer;
});
;define("nomad-ui/serializers/node-pool", ["exports", "nomad-ui/serializers/application"], function (_exports, _application) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class;

  0; //eaimeta@70e063a35619d71f0,"nomad-ui/serializers/application",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  const classic = __EMBER_CLASSIC_DECORATOR;

  let NodePool = classic(_class = class NodePool extends _application.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "primaryKey", 'Name');
    }

  }) || _class;

  _exports.default = NodePool;
});
;define("nomad-ui/serializers/node", ["exports", "@ember/service", "nomad-ui/serializers/application"], function (_exports, _service, _application) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _descriptor;

  0; //eaimeta@70e063a35619d71f0,"@ember/service",0,"nomad-ui/serializers/application"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let NodeSerializer = (_class = class NodeSerializer extends _application.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "config", _descriptor, this);

      _defineProperty(this, "attrs", {
        isDraining: 'Drain',
        httpAddr: 'HTTPAddr',
        resources: 'NodeResources',
        reserved: 'ReservedResources'
      });

      _defineProperty(this, "mapToArray", ['Drivers', 'HostVolumes']);
    }

    extractRelationships(modelClass, hash) {
      const {
        modelName
      } = modelClass;
      const nodeURL = this.store.adapterFor(modelName).buildURL(modelName, this.extractId(modelClass, hash), hash, 'findRecord');
      return {
        allocations: {
          links: {
            related: `${nodeURL}/allocations`
          }
        }
      };
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "config", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class);
  _exports.default = NodeSerializer;
});
;define("nomad-ui/serializers/plugin", ["exports", "nomad-ui/serializers/application"], function (_exports, _application) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class;

  0; //eaimeta@70e063a35619d71f0,"nomad-ui/serializers/application",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  const classic = __EMBER_CLASSIC_DECORATOR; // Convert a map[string]interface{} into an array of objects
  // where the key becomes a property at propKey.
  // This is destructive. The original object is mutated to avoid
  // excessive copies of the originals which would otherwise just
  // be garbage collected.

  const unmap = (hash, propKey) => Object.keys(hash).sort().map(key => {
    const record = hash[key];
    record[propKey] = key;
    return record;
  });

  let Plugin = classic(_class = class Plugin extends _application.default {
    normalize(typeHash, hash) {
      hash.PlainId = hash.ID; // TODO This shouldn't hardcode `csi/` as part of the ID,
      // but it is necessary to make the correct find request and the
      // payload does not contain the required information to derive
      // this identifier.

      hash.ID = `csi/${hash.ID}`;
      const nodes = hash.Nodes || {};
      const controllers = hash.Controllers || {};
      hash.Nodes = unmap(nodes, 'NodeID');
      hash.Controllers = unmap(controllers, 'NodeID');
      return super.normalize(typeHash, hash);
    }

  }) || _class;

  _exports.default = Plugin;
});
;define("nomad-ui/serializers/policy", ["exports", "nomad-ui/serializers/application"], function (_exports, _application) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class;

  0; //eaimeta@70e063a35619d71f0,"nomad-ui/serializers/application",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  const classic = __EMBER_CLASSIC_DECORATOR;

  let PolicySerializer = classic(_class = class PolicySerializer extends _application.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "primaryKey", 'Name');
    }

    normalize(typeHash, hash) {
      hash.ID = hash.Name;
      return super.normalize(typeHash, hash);
    }

    serialize(snapshot, options) {
      const hash = super.serialize(snapshot, options);
      hash.ID = hash.Name;
      return hash;
    }

  }) || _class;

  _exports.default = PolicySerializer;
});
;define("nomad-ui/serializers/port", ["exports", "nomad-ui/serializers/application", "is-ip"], function (_exports, _application, _isIp) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class;

  0; //eaimeta@70e063a35619d71f0,"nomad-ui/serializers/application",0,"is-ip",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  const classic = __EMBER_CLASSIC_DECORATOR;

  let PortSerializer = classic(_class = class PortSerializer extends _application.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "attrs", {
        hostIp: 'HostIP'
      });
    }

    normalize(typeHash, hash) {
      const ip = hash.HostIP;

      if (_isIp.default.v6(ip)) {
        hash.HostIP = `[${ip}]`;
      }

      return super.normalize(...arguments);
    }

  }) || _class;

  _exports.default = PortSerializer;
});
;define("nomad-ui/serializers/recommendation-summary", ["exports", "nomad-ui/serializers/application"], function (_exports, _application) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class;

  0; //eaimeta@70e063a35619d71f0,"nomad-ui/serializers/application",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }

  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  const classic = __EMBER_CLASSIC_DECORATOR;
  /*
    There’s no grouping of recommendations on the server, so this
    processes a list of recommendations and groups them by task
    group.
  */

  let RecommendationSummarySerializer = classic(_class = class RecommendationSummarySerializer extends _application.default {
    normalizeArrayResponse(store, modelClass, payload) {
      const recommendationSerializer = store.serializerFor('recommendation');
      const RecommendationModel = store.modelFor('recommendation');
      const slugToSummaryObject = {};
      const allRecommendations = [];
      payload.forEach(recommendationHash => {
        const slug = `${JSON.stringify([recommendationHash.JobID, recommendationHash.Namespace])}/${recommendationHash.Group}`;

        if (!slugToSummaryObject[slug]) {
          slugToSummaryObject[slug] = {
            attributes: {
              jobId: recommendationHash.JobID,
              jobNamespace: recommendationHash.Namespace,
              taskGroupName: recommendationHash.Group
            },
            recommendations: []
          };
        }

        slugToSummaryObject[slug].recommendations.push(recommendationHash);
        allRecommendations.push(recommendationHash);
      });
      return {
        data: Object.values(slugToSummaryObject).map(summaryObject => {
          const latest = Math.max(...summaryObject.recommendations.mapBy('SubmitTime'));
          return {
            type: 'recommendation-summary',
            id: summaryObject.recommendations.mapBy('ID').sort().join('-'),
            attributes: _objectSpread(_objectSpread({}, summaryObject.attributes), {}, {
              submitTime: new Date(Math.floor(latest / 1000000))
            }),
            relationships: {
              job: {
                data: {
                  type: 'job',
                  id: JSON.stringify([summaryObject.attributes.jobId, summaryObject.attributes.jobNamespace])
                }
              },
              recommendations: {
                data: summaryObject.recommendations.map(r => {
                  return {
                    type: 'recommendation',
                    id: r.ID
                  };
                })
              }
            }
          };
        }),
        included: allRecommendations.map(recommendationHash => recommendationSerializer.normalize(RecommendationModel, recommendationHash).data)
      };
    }

    normalizeUpdateRecordResponse(store, primaryModelClass, payload, id) {
      return {
        data: {
          id,
          attributes: {
            isProcessed: true
          }
        }
      };
    }

  }) || _class;

  _exports.default = RecommendationSummarySerializer;
});
;define("nomad-ui/serializers/recommendation", ["exports", "@ember/polyfills", "nomad-ui/serializers/application", "query-string"], function (_exports, _polyfills, _application, _queryString) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class;

  0; //eaimeta@70e063a35619d71f0,"@ember/polyfills",0,"nomad-ui/serializers/application",0,"ember-classic-decorator",0,"query-string"eaimeta@70e063a35619d71f

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  const classic = __EMBER_CLASSIC_DECORATOR;

  let RecommendationSerializer = classic(_class = class RecommendationSerializer extends _application.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "attrs", {
        taskName: 'Task'
      });

      _defineProperty(this, "separateNanos", ['SubmitTime']);
    }

    extractRelationships(modelClass, hash) {
      const namespace = !hash.Namespace || hash.Namespace === 'default' ? undefined : hash.Namespace;
      const [jobURL] = this.store.adapterFor('job').buildURL('job', JSON.stringify([hash.JobID]), hash, 'findRecord').split('?');
      return (0, _polyfills.assign)(super.extractRelationships(...arguments), {
        job: {
          links: {
            related: buildURL(jobURL, {
              namespace
            })
          }
        }
      });
    }

  }) || _class;

  _exports.default = RecommendationSerializer;

  function buildURL(path, queryParams) {
    const qpString = _queryString.default.stringify(queryParams);

    if (qpString) {
      return `${path}?${qpString}`;
    }

    return path;
  }
});
;define("nomad-ui/serializers/reschedule-event", ["exports", "nomad-ui/serializers/application"], function (_exports, _application) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class;

  0; //eaimeta@70e063a35619d71f0,"nomad-ui/serializers/application",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  const classic = __EMBER_CLASSIC_DECORATOR;

  let RescheduleEvent = classic(_class = class RescheduleEvent extends _application.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "separateNanos", ['Time']);
    }

    normalize(typeHash, hash) {
      hash.PreviousAllocationId = hash.PrevAllocID ? hash.PrevAllocID : null;
      hash.PreviousNodeId = hash.PrevNodeID ? hash.PrevNodeID : null;
      return super.normalize(typeHash, hash);
    }

  }) || _class;

  _exports.default = RescheduleEvent;
});
;define("nomad-ui/serializers/resources", ["exports", "nomad-ui/serializers/application"], function (_exports, _application) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class;

  0; //eaimeta@70e063a35619d71f0,"nomad-ui/serializers/application",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  const classic = __EMBER_CLASSIC_DECORATOR;

  let ResourcesSerializer = classic(_class = class ResourcesSerializer extends _application.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "arrayNullOverrides", ['Ports', 'Networks']);
    }

    normalize(typeHash, hash) {
      hash.Cpu = hash.Cpu && hash.Cpu.CpuShares;
      hash.Memory = hash.Memory && hash.Memory.MemoryMB;
      hash.Disk = hash.Disk && hash.Disk.DiskMB; // Networks for ReservedResources is different than for Resources.
      // This smooths over the differences, but doesn't actually support
      // anything in the ReservedResources.Networks object, since we don't
      // use any of it in the UI.

      if (!(hash.Networks instanceof Array)) {
        hash.Networks = [];
      }

      return super.normalize(...arguments);
    }

  }) || _class;

  _exports.default = ResourcesSerializer;
});
;define("nomad-ui/serializers/scale-event", ["exports", "nomad-ui/serializers/application"], function (_exports, _application) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class;

  0; //eaimeta@70e063a35619d71f0,"nomad-ui/serializers/application",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  const classic = __EMBER_CLASSIC_DECORATOR;

  let ScaleEventSerializer = classic(_class = class ScaleEventSerializer extends _application.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "separateNanos", ['Time']);

      _defineProperty(this, "objectNullOverrides", ['Meta']);
    }

  }) || _class;

  _exports.default = ScaleEventSerializer;
});
;define("nomad-ui/serializers/service-fragment", ["exports", "nomad-ui/serializers/application"], function (_exports, _application) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class;

  0; //eaimeta@70e063a35619d71f0,"nomad-ui/serializers/application",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  const classic = __EMBER_CLASSIC_DECORATOR;

  let ServiceFragmentSerializer = classic(_class = class ServiceFragmentSerializer extends _application.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "arrayNullOverrides", ['Tags']);
    }

  }) || _class;

  _exports.default = ServiceFragmentSerializer;
});
;define("nomad-ui/serializers/service", ["exports", "nomad-ui/serializers/application"], function (_exports, _application) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class;

  0; //eaimeta@70e063a35619d71f0,"ember-classic-decorator",0,"nomad-ui/serializers/application"eaimeta@70e063a35619d71f

  /**
   * Copyright (c) HashiCorp, Inc.
   * SPDX-License-Identifier: MPL-2.0
   */
  const classic = __EMBER_CLASSIC_DECORATOR;

  let ServiceSerializer = classic(_class = class ServiceSerializer extends _application.default {
    normalize(typeHash, hash) {
      hash.AllocationID = hash.AllocID;
      hash.JobID = JSON.stringify([hash.JobID, hash.Namespace]);
      return super.normalize(typeHash, hash);
    }

  }) || _class;

  _exports.default = ServiceSerializer;
});
;define("nomad-ui/serializers/structured-attributes", ["exports", "nomad-ui/serializers/application"], function (_exports, _application) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class;

  0; //eaimeta@70e063a35619d71f0,"nomad-ui/serializers/application",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  const classic = __EMBER_CLASSIC_DECORATOR;

  let StructuredAttributes = classic(_class = class StructuredAttributes extends _application.default {
    normalize(typeHash, hash) {
      return super.normalize(typeHash, {
        Raw: hash
      });
    }

  }) || _class;

  _exports.default = StructuredAttributes;
});
;define("nomad-ui/serializers/task-event", ["exports", "nomad-ui/serializers/application"], function (_exports, _application) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class;

  0; //eaimeta@70e063a35619d71f0,"nomad-ui/serializers/application",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  const classic = __EMBER_CLASSIC_DECORATOR;

  let TaskEventSerializer = classic(_class = class TaskEventSerializer extends _application.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "attrs", {
        message: 'DisplayMessage'
      });

      _defineProperty(this, "separateNanos", ['Time']);
    }

  }) || _class;

  _exports.default = TaskEventSerializer;
});
;define("nomad-ui/serializers/task-group-deployment-summary", ["exports", "nomad-ui/serializers/application"], function (_exports, _application) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class;

  0; //eaimeta@70e063a35619d71f0,"nomad-ui/serializers/application",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  const classic = __EMBER_CLASSIC_DECORATOR;

  let TaskGroupDeploymentSummary = classic(_class = class TaskGroupDeploymentSummary extends _application.default {
    normalize(typeHash, hash) {
      hash.PlacedCanaryAllocations = hash.PlacedCanaries || [];
      delete hash.PlacedCanaries;
      return super.normalize(typeHash, hash);
    }

  }) || _class;

  _exports.default = TaskGroupDeploymentSummary;
});
;define("nomad-ui/serializers/task-group-scale", ["exports", "nomad-ui/serializers/application"], function (_exports, _application) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class;

  0; //eaimeta@70e063a35619d71f0,"nomad-ui/serializers/application",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  const classic = __EMBER_CLASSIC_DECORATOR;

  let TaskGroupScaleSerializer = classic(_class = class TaskGroupScaleSerializer extends _application.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "arrayNullOverrides", ['Events']);
    }

  }) || _class;

  _exports.default = TaskGroupScaleSerializer;
});
;define("nomad-ui/serializers/task-group", ["exports", "ember-copy", "nomad-ui/serializers/application"], function (_exports, _emberCopy, _application) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class;

  0; //eaimeta@70e063a35619d71f0,"ember-copy",0,"nomad-ui/serializers/application",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  const classic = __EMBER_CLASSIC_DECORATOR;

  let TaskGroup = classic(_class = class TaskGroup extends _application.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "arrayNullOverrides", ['Services']);

      _defineProperty(this, "mapToArray", ['Volumes']);
    }

    normalize(typeHash, hash) {
      if (hash.Services) {
        hash.Services.forEach(service => {
          service.GroupName = hash.Name;
        });
      } // Provide EphemeralDisk to each task


      hash.Tasks.forEach(task => {
        task.EphemeralDisk = (0, _emberCopy.copy)(hash.EphemeralDisk);
      });
      hash.ReservedEphemeralDisk = hash.EphemeralDisk.SizeMB;
      return super.normalize(typeHash, hash);
    }

  }) || _class;

  _exports.default = TaskGroup;
});
;define("nomad-ui/serializers/task-state", ["exports", "nomad-ui/serializers/application"], function (_exports, _application) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class;

  0; //eaimeta@70e063a35619d71f0,"nomad-ui/serializers/application",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  const classic = __EMBER_CLASSIC_DECORATOR;

  let TaskState = classic(_class = class TaskState extends _application.default {
    normalize(typeHash, hash) {
      // TODO API: finishedAt is always marshaled as a date even when unset.
      // To simplify things, unset it here when it's the empty date value.
      if (hash.FinishedAt === '0001-01-01T00:00:00Z') {
        hash.FinishedAt = null;
      }

      return super.normalize(typeHash, hash);
    }

  }) || _class;

  _exports.default = TaskState;
});
;define("nomad-ui/serializers/task", ["exports", "nomad-ui/serializers/application"], function (_exports, _application) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class;

  0; //eaimeta@70e063a35619d71f0,"nomad-ui/serializers/application",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  const classic = __EMBER_CLASSIC_DECORATOR;

  let Task = classic(_class = class Task extends _application.default {
    normalize(typeHash, hash) {
      // Lift the reserved resource numbers out of the Resources object
      const resources = hash.Resources;

      if (resources) {
        hash.ReservedMemory = resources.MemoryMB;
        hash.ReservedMemoryMax = resources.MemoryMaxMB;
        hash.ReservedCPU = resources.CPU;
        hash.ReservedDisk = resources.DiskMB;
        hash.ReservedEphemeralDisk = hash.EphemeralDisk.SizeMB;
      }

      return super.normalize(typeHash, hash);
    }

  }) || _class;

  _exports.default = Task;
});
;define("nomad-ui/serializers/token", ["exports", "ember-copy", "nomad-ui/serializers/application"], function (_exports, _emberCopy, _application) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class;

  0; //eaimeta@70e063a35619d71f0,"ember-copy",0,"nomad-ui/serializers/application",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  const classic = __EMBER_CLASSIC_DECORATOR;

  let TokenSerializer = classic(_class = class TokenSerializer extends _application.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "primaryKey", 'AccessorID');

      _defineProperty(this, "attrs", {
        secret: 'SecretID'
      });
    }

    normalize(typeHash, hash) {
      hash.PolicyIDs = hash.Policies;
      hash.PolicyNames = (0, _emberCopy.copy)(hash.Policies);
      return super.normalize(typeHash, hash);
    }

  }) || _class;

  _exports.default = TokenSerializer;
});
;define("nomad-ui/serializers/variable", ["exports", "nomad-ui/serializers/application"], function (_exports, _application) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class;

  0; //eaimeta@70e063a35619d71f0,"ember-classic-decorator",0,"nomad-ui/serializers/application"eaimeta@70e063a35619d71f

  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }

  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  /**
   * Copyright (c) HashiCorp, Inc.
   * SPDX-License-Identifier: MPL-2.0
   */
  const classic = __EMBER_CLASSIC_DECORATOR;

  let VariableSerializer = classic(_class = class VariableSerializer extends _application.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "separateNanos", ['CreateTime', 'ModifyTime']);
    }

    normalize(typeHash, hash) {
      // ID is a composite of both the job ID and the namespace the job is in
      hash.ID = `${hash.Path}@${hash.Namespace || 'default'}`;
      return super.normalize(typeHash, hash);
    } // Transform API's Items object into an array of a KeyValue objects


    normalizeFindRecordResponse(store, typeClass, hash, id) {
      if (!hash.Items) {
        hash.Items = {
          '': ''
        };
      }

      hash.KeyValues = Object.entries(hash.Items).map(_ref => {
        let [key, value] = _ref;
        return {
          key,
          value
        };
      });
      delete hash.Items;

      for (var _len = arguments.length, args = new Array(_len > 4 ? _len - 4 : 0), _key = 4; _key < _len; _key++) {
        args[_key - 4] = arguments[_key];
      }

      return super.normalizeFindRecordResponse(store, typeClass, hash, id, ...args);
    }

    normalizeDefaultJobTemplate(hash) {
      return _objectSpread({
        path: hash.id,
        isDefaultJobTemplate: true
      }, hash);
    } // Transform our KeyValues array into an Items object


    serialize(snapshot, options) {
      const json = super.serialize(snapshot, options);
      json.ID = json.Path;
      json.Items = json.KeyValues.reduce((acc, _ref2) => {
        let {
          key,
          value
        } = _ref2;
        acc[key] = value;
        return acc;
      }, {});
      delete json.KeyValues;
      delete json.ModifyTime;
      delete json.CreateTime;
      return json;
    }

  }) || _class;

  _exports.default = VariableSerializer;
});
;define("nomad-ui/serializers/volume", ["exports", "@ember/object", "nomad-ui/serializers/application", "@ember/string"], function (_exports, _object, _application, _string) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class;

  0; //eaimeta@70e063a35619d71f0,"@ember/object",0,"nomad-ui/serializers/application",0,"ember-classic-decorator",0,"@ember/string"eaimeta@70e063a35619d71f

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  const classic = __EMBER_CLASSIC_DECORATOR;

  let VolumeSerializer = classic(_class = class VolumeSerializer extends _application.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "attrs", {
        externalId: 'ExternalID'
      });

      _defineProperty(this, "embeddedRelationships", ['writeAllocations', 'readAllocations']);
    }

    // Volumes treat Allocations as embedded records. Ember has an
    // EmbeddedRecords mixin, but it assumes an application is using
    // the REST serializer and Nomad does not.
    normalize(typeHash, hash) {
      hash.NamespaceID = hash.Namespace;
      hash.PlainId = hash.ID; // TODO These shouldn't hardcode `csi/` as part of the IDs,
      // but it is necessary to make the correct find requests and the
      // payload does not contain the required information to derive
      // this identifier.

      hash.ID = JSON.stringify([`csi/${hash.ID}`, hash.NamespaceID || 'default']);
      hash.PluginID = `csi/${hash.PluginID}`; // Populate read/write allocation lists from aggregate allocation list

      const readAllocs = hash.ReadAllocs || {};
      const writeAllocs = hash.WriteAllocs || {};
      hash.ReadAllocations = [];
      hash.WriteAllocations = [];

      if (hash.Allocations) {
        hash.Allocations.forEach(function (alloc) {
          const id = alloc.ID;

          if (id in readAllocs) {
            hash.ReadAllocations.push(alloc);
          }

          if (id in writeAllocs) {
            hash.WriteAllocations.push(alloc);
          }
        });
        delete hash.Allocations;
      }

      const normalizedHash = super.normalize(typeHash, hash);
      return this.extractEmbeddedRecords(this, this.store, typeHash, normalizedHash);
    }

    keyForRelationship(attr, relationshipType) {
      //Embedded relationship attributes don't end in IDs
      if (this.embeddedRelationships.includes(attr)) return (0, _string.capitalize)(attr);
      return super.keyForRelationship(attr, relationshipType);
    } // Convert the embedded relationship arrays into JSONAPI included records


    extractEmbeddedRecords(serializer, store, typeHash, partial) {
      partial.included = partial.included || [];
      this.embeddedRelationships.forEach(embed => {
        const relationshipMeta = typeHash.relationshipsByName.get(embed);
        const relationship = (0, _object.get)(partial, `data.relationships.${embed}.data`);
        if (!relationship) return; // Create a sidecar relationships array

        const hasMany = new Array(relationship.length); // For each embedded allocation, normalize the allocation JSON according
        // to the allocation serializer.

        relationship.forEach((alloc, idx) => {
          const {
            data,
            included
          } = this.normalizeEmbeddedRelationship(store, relationshipMeta, alloc); // In JSONAPI, embedded records go in the included array.

          partial.included.push(data);

          if (included) {
            partial.included.push(...included);
          } // In JSONAPI, the main payload value is an array of IDs that
          // map onto the objects in the included array.


          hasMany[idx] = {
            id: data.id,
            type: data.type
          };
        }); // Set the JSONAPI relationship value to the sidecar.

        const relationshipJson = {
          data: hasMany
        };
        (0, _object.set)(partial, `data.relationships.${embed}`, relationshipJson);
      });
      return partial;
    }

    normalizeEmbeddedRelationship(store, relationshipMeta, relationshipHash) {
      const modelName = relationshipMeta.type;
      const modelClass = store.modelFor(modelName);
      const serializer = store.serializerFor(modelName);
      return serializer.normalize(modelClass, relationshipHash, null);
    }

  }) || _class;

  _exports.default = VolumeSerializer;
});
;define("nomad-ui/services/-ensure-registered", ["exports", "@embroider/util/services/ensure-registered"], function (_exports, _ensureRegistered) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _ensureRegistered.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@embroider/util/services/ensure-registered"eaimeta@70e063a35619d71f
});
;define("nomad-ui/services/-portal", ["exports", "ember-stargate/services/-portal"], function (_exports, _portal) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _portal.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-stargate/services/-portal"eaimeta@70e063a35619d71f
});
;define("nomad-ui/services/abilities", ["exports", "ember-can/services/abilities"], function (_exports, _abilities) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _abilities.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-can/services/abilities"eaimeta@70e063a35619d71f
});
;define("nomad-ui/services/actors-relationships", ["exports", "@ember/service", "@ember/object", "@glimmer/tracking", "@ember/runloop", "curved-arrows"], function (_exports, _service, _object, _tracking, _runloop, _curvedArrows) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _descriptor;

  0; //eaimeta@70e063a35619d71f0,"@ember/service",0,"@ember/object",0,"@glimmer/tracking",0,"@ember/runloop",0,"curved-arrows"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  function boxToArrow(ra, rb) {
    const bbA = ra;
    const bbB = rb;
    const [sx, sy, c1x, c1y, c2x, c2y, ex, ey, ae, as] = (0, _curvedArrows.getBoxToBoxArrow)(bbA.offsetLeft, bbA.offsetTop, bbA.offsetWidth, bbA.offsetHeight, bbB.offsetLeft, bbB.offsetTop, bbB.offsetWidth, bbB.offsetHeight);
    return {
      sx,
      sy,
      c1x,
      c1y,
      c2x,
      c2y,
      ex,
      ey,
      ae,
      as
    };
  }

  let ActorRelationshipService = (_class = class ActorRelationshipService extends _service.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "actors", _descriptor, this);
    }

    get fns() {
      const {
        registerActor,
        deregisterActor,
        recalcCurves
      } = this;
      return {
        registerActor,
        deregisterActor,
        recalcCurves
      };
    }

    get data() {
      const {
        actors,
        relationships
      } = this;
      return {
        actors,
        relationships
      };
    }

    registerActor(actor) {
      (0, _runloop.schedule)('actions', this, () => {
        this.actors = [...this.actors, actor];
      });
    }

    deregisterActor(actor) {
      (0, _runloop.schedule)('actions', this, () => {
        this.actors = this.actors.filter(a => a !== actor);
      });
    }

    get rects() {
      const {
        actors
      } = this;
      return actors.filter(e => e.previousEval).map(e => {
        const {
          previousEval: pid,
          id
        } = e;
        const eRectangle = document.querySelector(`[data-eval="${id}"]`);
        const prevRectangle = document.querySelector(`[data-eval="${pid}"]`);
        return [eRectangle, prevRectangle];
      });
    }

    get relationships() {
      const {
        rects
      } = this;
      return rects.map(_ref => {
        let [eRectangle, prevRectangle] = _ref;
        const {
          sx,
          sy,
          c1x,
          c1y,
          c2x,
          c2y,
          ex,
          ey
        } = boxToArrow(eRectangle, prevRectangle);
        return {
          d: `M ${sx} ${sy} C ${c1x} ${c1y}, ${c2x} ${c2y}, ${ex} ${ey}`,
          sx,
          sy,
          ex,
          ey
        };
      });
    }

    recalcCurves() {
      // retrigger the tracked getters by resetting dependent keys

      /* eslint-disable-next-line */
      this.actors = this.actors;
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "actors", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return [];
    }
  }), _applyDecoratedDescriptor(_class.prototype, "registerActor", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "registerActor"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "deregisterActor", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "deregisterActor"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "recalcCurves", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "recalcCurves"), _class.prototype)), _class);
  _exports.default = ActorRelationshipService;
});
;define("nomad-ui/services/breadcrumbs", ["exports", "@ember/service", "@ember/object", "@glimmer/tracking", "@ember/runloop"], function (_exports, _service, _object, _tracking, _runloop) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _descriptor;

  0; //eaimeta@70e063a35619d71f0,"@ember/service",0,"@ember/object",0,"@glimmer/tracking",0,"@ember/runloop"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let BucketService = (_class = class BucketService extends _service.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "crumbs", _descriptor, this);
    }

    registerBreadcrumb(crumb) {
      (0, _runloop.schedule)('actions', this, () => {
        this.crumbs = [...this.crumbs, crumb];
      });
    }

    deregisterBreadcrumb(crumb) {
      const newCrumbs = this.crumbs.filter(c => c !== crumb);
      this.crumbs = newCrumbs;
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "crumbs", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return [];
    }
  }), _applyDecoratedDescriptor(_class.prototype, "registerBreadcrumb", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "registerBreadcrumb"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "deregisterBreadcrumb", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "deregisterBreadcrumb"), _class.prototype)), _class);
  _exports.default = BucketService;
});
;define("nomad-ui/services/can", ["exports", "ember-can/services/abilities"], function (_exports, _abilities) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _abilities.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-can/services/abilities"eaimeta@70e063a35619d71f
});
;define("nomad-ui/services/config", ["exports", "@ember/object/computed", "@ember/service", "@ember/object", "nomad-ui/config/environment"], function (_exports, _computed, _service, _object, _environment) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _class, _descriptor, _descriptor2, _descriptor3;

  0; //eaimeta@70e063a35619d71f0,"@ember/object/computed",0,"@ember/service",0,"@ember/object",0,"nomad-ui/config/environment"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let ConfigService = (_dec = (0, _computed.equal)('environment', 'development'), _dec2 = (0, _computed.equal)('environment', 'production'), _dec3 = (0, _computed.equal)('environment', 'test'), (_class = class ConfigService extends _service.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "isDev", _descriptor, this);

      _initializerDefineProperty(this, "isProd", _descriptor2, this);

      _initializerDefineProperty(this, "isTest", _descriptor3, this);
    }

    unknownProperty(path) {
      return (0, _object.get)(_environment.default, path);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "isDev", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "isProd", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "isTest", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class));
  _exports.default = ConfigService;
});
;define("nomad-ui/services/flash-messages", ["exports", "ember-cli-flash/services/flash-messages"], function (_exports, _flashMessages) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _flashMessages.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-cli-flash/services/flash-messages"eaimeta@70e063a35619d71f
});
;define("nomad-ui/services/keyboard", ["exports", "@ember/service", "ember-concurrency", "@glimmer/tracking", "@ember/utils", "@ember/array", "@ember/routing/router", "@ember/runloop", "@ember/object", "@ember/object/internals", "@ember/debug", "@ember/array/mutable", "nomad-ui/utils/properties/local-storage"], function (_exports, _service, _emberConcurrency, _tracking, _utils, _array, _router, _runloop, _object, _internals, _debug, _mutable, _localStorage) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _class, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7;

  0; //eaimeta@70e063a35619d71f0,"@ember/service",0,"@ember/service",0,"ember-concurrency",0,"@glimmer/tracking",0,"@ember/utils",0,"@ember/array",0,"@ember/routing/router",0,"@ember/runloop",0,"@ember/object",0,"@ember/object/internals",0,"@ember/debug",0,"@ember/array/mutable",0,"nomad-ui/utils/properties/local-storage"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  /**
   * @typedef {Object} KeyCommand
   * @property {string} label
   * @property {string[]} pattern
   * @property {any} action
   * @property {boolean} [requireModifier]
   * @property {boolean} [enumerated]
   * @property {boolean} [recording]
   * @property {boolean} [custom]
   * @property {boolean} [exclusive]
   */
  const DEBOUNCE_MS = 750; // This modifies event.key to a symbol; get the digit equivalent to perform commands

  const DIGIT_MAP = {
    '!': 1,
    '@': 2,
    '#': 3,
    $: 4,
    '%': 5,
    '^': 6,
    '&': 7,
    '*': 8,
    '(': 9,
    ')': 0
  };
  const DISALLOWED_KEYS = ['Shift', 'Backspace', 'Delete', 'Meta', 'Alt', 'Control', 'Tab', 'CapsLock', 'Clear', 'ScrollLock'];
  let KeyboardService = (_dec = (0, _localStorage.default)('keyboardNavEnabled', true), (_class = class KeyboardService extends _service.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "router", _descriptor, this);

      _initializerDefineProperty(this, "config", _descriptor2, this);

      _initializerDefineProperty(this, "shortcutsVisible", _descriptor3, this);

      _initializerDefineProperty(this, "buffer", _descriptor4, this);

      _initializerDefineProperty(this, "displayHints", _descriptor5, this);

      _initializerDefineProperty(this, "enabled", _descriptor6, this);

      _defineProperty(this, "defaultPatterns", {
        'Go to Jobs': ['g', 'j'],
        'Go to Storage': ['g', 'r'],
        'Go to Variables': ['g', 'v'],
        'Go to Servers': ['g', 's'],
        'Go to Clients': ['g', 'c'],
        'Go to Topology': ['g', 't'],
        'Go to Evaluations': ['g', 'e'],
        'Go to Profile': ['g', 'p'],
        'Next Subnav': ['Shift+ArrowRight'],
        'Previous Subnav': ['Shift+ArrowLeft'],
        'Previous Main Section': ['Shift+ArrowUp'],
        'Next Main Section': ['Shift+ArrowDown'],
        'Show Keyboard Shortcuts': ['Shift+?']
      });

      _initializerDefineProperty(this, "keyCommands", _descriptor7, this);

      _defineProperty(this, "subnavLinks", []);

      _defineProperty(this, "navLinks", []);

      _defineProperty(this, "rebindCommand", (cmd, ele) => {
        ele.target.blur(); // keynav ignores on inputs

        this.clearBuffer();
        (0, _object.set)(cmd, 'recording', true);
        (0, _object.set)(cmd, 'previousPattern', cmd.pattern);
        (0, _object.set)(cmd, 'pattern', null);
      });

      _defineProperty(this, "endRebind", cmd => {
        (0, _object.set)(cmd, 'custom', true);
        (0, _object.set)(cmd, 'recording', false);
        (0, _object.set)(cmd, 'previousPattern', null);
        window.localStorage.setItem(`keyboard.command.${cmd.label}`, JSON.stringify([...this.buffer]));
      });

      _defineProperty(this, "resetCommandToDefault", cmd => {
        window.localStorage.removeItem(`keyboard.command.${cmd.label}`);
        (0, _object.set)(cmd, 'pattern', this.defaultPatterns[cmd.label]);
        (0, _object.set)(cmd, 'custom', false);
      });
    }

    /**
     * For Dynamic/iterative keyboard shortcuts, we want to do a couple things to make them more human-friendly:
     * 1. Make them 1-based, instead of 0-based
     * 2. Prefix numbers 1-9 with "0" to make it so "Shift+10" doesn't trigger "Shift+1" then "0", etc.
     * ^--- stops being a good solution with 100+ row lists/tables, but a better UX than waiting for shift key-up otherwise
     *
     * @param {number} iter
     * @returns {string[]}
     */
    cleanPattern(iter) {
      iter = iter + 1; // first item should be Shift+1, not Shift+0

      (true && !(iter < 100) && (0, _debug.assert)('Dynamic keyboard shortcuts only work up to 99 digits', iter < 100));
      return [`Shift+${('0' + iter).slice(-2)}`]; // Shift+01, not Shift+1
    }

    recomputeEnumeratedCommands() {
      this.keyCommands.filterBy('enumerated').forEach((command, iter) => {
        command.pattern = this.cleanPattern(iter);
      });
    }

    addCommands(commands) {
      (0, _runloop.schedule)('afterRender', () => {
        commands.forEach(command => {
          if (command.exclusive) {
            this.removeCommands(this.keyCommands.filterBy('label', command.label));
          }

          this.keyCommands.pushObject(command);

          if (command.enumerated) {
            // Recompute enumerated numbers to handle things like sort
            this.recomputeEnumeratedCommands();
          }
        });
      });
    }

    removeCommands() {
      let commands = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : (0, _array.A)([]);
      this.keyCommands.removeObjects(commands);
    } //#region Nav Traversal


    /**
     * Map over a passed element's links and determine if they're routable
     * If so, return them in a transitionTo-able format
     *
     * @param {HTMLElement} element did-insertable menu container element
     * @param {Object} args
     * @param {('main' | 'subnav')} args.type determine which traversable list the routes belong to
     */
    registerNav(element, _, args) {
      const {
        type
      } = args;
      const links = Array.from(element.querySelectorAll('a:not(.loading)')).map(link => {
        if (link.getAttribute('href')) {
          var _this$router$recogniz;

          return {
            route: (_this$router$recogniz = this.router.recognize(link.getAttribute('href'))) === null || _this$router$recogniz === void 0 ? void 0 : _this$router$recogniz.name,
            parent: (0, _internals.guidFor)(element)
          };
        }
      }).compact();

      if (type === 'main') {
        this.navLinks = links;
      } else if (type === 'subnav') {
        this.subnavLinks = links;
      }
    }
    /**
     * Removes links associated with a specific nav.
     * guidFor is necessary because willDestroy runs async;
     * it can happen after the next page's did-insert, so we .reject() instead of resetting to [].
     *
     * @param {HTMLElement} element
     */


    unregisterSubnav(element) {
      this.subnavLinks = this.subnavLinks.reject(link => link.parent === (0, _internals.guidFor)(element));
    }
    /**
     *
     * @param {Array<string>} links - array of root.branch.twig strings
     * @param {number} traverseBy - positive or negative number to move along links
     */


    traverseLinkList(links, traverseBy) {
      // afterRender because LinkTos evaluate their href value at render time
      (0, _runloop.schedule)('afterRender', () => {
        if (links.length) {
          let activeLink = links.find(link => this.router.isActive(link.route)); // If no activeLink, means we're nested within a primary section.
          // Luckily, Ember's RouteInfo.find() gives us access to parents and connected leaves of a route.
          // So, if we're on /csi/volumes but the nav link is to /csi, we'll .find() it.
          // Similarly, /job/:job/taskgroupid/index will find /job.

          if (!activeLink) {
            activeLink = links.find(link => {
              return this.router.currentRoute.find(r => {
                return r.name === link.route || `${r.name}.index` === link.route;
              });
            });
          }

          if (activeLink) {
            const activeLinkPosition = links.indexOf(activeLink);
            const nextPosition = activeLinkPosition + traverseBy; // Modulo (%) logic: if the next position is longer than the array, wrap to 0.
            // If it's before the beginning, wrap to the end.

            const nextLink = links[(nextPosition % links.length + links.length) % links.length].route;
            this.router.transitionTo(nextLink);
          }
        }
      });
    } //#endregion Nav Traversal

    /**
     *
     * @param {("press" | "release")} type
     * @param {KeyboardEvent} event
     */


    recordKeypress(type, event) {
      const inputElements = ['input', 'textarea', 'code'];
      const disallowedClassNames = ['ember-basic-dropdown-trigger', 'dropdown-option'];
      const targetElementName = event.target.nodeName.toLowerCase();
      const inputDisallowed = inputElements.includes(targetElementName) || disallowedClassNames.any(className => event.target.classList.contains(className)); // Don't fire keypress events from within an input field

      if (!inputDisallowed) {
        // Treat Shift like a special modifier key.
        // If it's depressed, display shortcuts
        const {
          key
        } = event;
        const shifted = event.getModifierState('Shift');

        if (type === 'press') {
          if (key === 'Shift') {
            this.displayHints = true;
          } else {
            if (!DISALLOWED_KEYS.includes(key)) {
              this.addKeyToBuffer.perform(key, shifted, event);
            }
          }
        } else if (type === 'release') {
          if (key === 'Shift') {
            this.displayHints = false;
          }
        }
      }
    }

    /**
     *
     * @param {string} key
     * @param {boolean} shifted
     */
    *addKeyToBuffer(key, shifted, event) {
      // Replace key with its unshifted equivalent if it's a number key
      if (shifted && key in DIGIT_MAP) {
        key = DIGIT_MAP[key];
      }

      this.buffer.pushObject(shifted ? `Shift+${key}` : key);
      let recorder = this.keyCommands.find(c => c.recording);

      if (recorder) {
        if (key === 'Escape' || key === '/') {
          // Escape cancels recording; slash is reserved for global search
          (0, _object.set)(recorder, 'recording', false);
          (0, _object.set)(recorder, 'pattern', recorder.previousPattern);
          recorder = null;
        } else if (key === 'Enter') {
          // Enter finishes recording and removes itself from the buffer
          this.buffer = this.buffer.slice(0, -1);
          this.endRebind(recorder);
          recorder = null;
        } else {
          (0, _object.set)(recorder, 'pattern', [...this.buffer]);
        }
      } else {
        if (this.matchedCommands.length) {
          this.matchedCommands.forEach(command => {
            if (this.enabled || command.label === 'Show Keyboard Shortcuts' || command.label === 'Hide Keyboard Shortcuts') {
              event.preventDefault();
              command.action();
            }
          });
          this.clearBuffer();
        }
      }

      yield (0, _emberConcurrency.timeout)(DEBOUNCE_MS);

      if (recorder) {
        this.endRebind(recorder);
      }

      this.clearBuffer();
    }

    get matchedCommands() {
      // Shiftless Buffer: handle the case where use is holding shift (to see shortcut hints) and typing a key command
      const shiftlessBuffer = this.buffer.map(key => key.replace('Shift+', '').toLowerCase()); // Shift Friendly Buffer: If you hold Shift and type 0 and 1, it'll output as ['Shift+0', 'Shift+1'].
      // Instead, translate that to ['Shift+01'] for clearer UX

      const shiftFriendlyBuffer = [`Shift+${this.buffer.map(key => key.replace('Shift+', '')).join('')}`]; // Ember Compare: returns 0 if there's no diff between arrays.

      const matches = this.keyCommands.filter(command => {
        return command.action && (!(0, _utils.compare)(command.pattern, this.buffer) || (command.requireModifier ? false : !(0, _utils.compare)(command.pattern, shiftlessBuffer)) || (command.requireModifier ? false : !(0, _utils.compare)(command.pattern, shiftFriendlyBuffer)));
      });
      return matches;
    }

    clearBuffer() {
      this.buffer.clear();
    }

    listenForKeypress() {
      (0, _object.set)(this, '_keyDownHandler', this.recordKeypress.bind(this, 'press'));
      document.addEventListener('keydown', this._keyDownHandler);
      (0, _object.set)(this, '_keyUpHandler', this.recordKeypress.bind(this, 'release'));
      document.addEventListener('keyup', this._keyUpHandler);
    }

    willDestroy() {
      document.removeEventListener('keydown', this._keyDownHandler);
      document.removeEventListener('keyup', this._keyUpHandler);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "router", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "config", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "shortcutsVisible", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return false;
    }
  }), _descriptor4 = _applyDecoratedDescriptor(_class.prototype, "buffer", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return (0, _array.A)([]);
    }
  }), _descriptor5 = _applyDecoratedDescriptor(_class.prototype, "displayHints", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return false;
    }
  }), _descriptor6 = _applyDecoratedDescriptor(_class.prototype, "enabled", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor7 = _applyDecoratedDescriptor(_class.prototype, "keyCommands", [_tracking.tracked], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: function () {
      return (0, _array.A)([{
        label: 'Go to Jobs',
        action: () => this.router.transitionTo('jobs'),
        rebindable: true
      }, {
        label: 'Go to Storage',
        action: () => this.router.transitionTo('csi.volumes'),
        rebindable: true
      }, {
        label: 'Go to Variables',
        action: () => this.router.transitionTo('variables')
      }, {
        label: 'Go to Servers',
        action: () => this.router.transitionTo('servers'),
        rebindable: true
      }, {
        label: 'Go to Clients',
        action: () => this.router.transitionTo('clients'),
        rebindable: true
      }, {
        label: 'Go to Topology',
        action: () => this.router.transitionTo('topology'),
        rebindable: true
      }, {
        label: 'Go to Evaluations',
        action: () => this.router.transitionTo('evaluations'),
        rebindable: true
      }, {
        label: 'Go to Profile',
        action: () => this.router.transitionTo('settings.tokens'),
        rebindable: true
      }, {
        label: 'Next Subnav',
        action: () => {
          this.traverseLinkList(this.subnavLinks, 1);
        },
        requireModifier: true,
        rebindable: true
      }, {
        label: 'Previous Subnav',
        action: () => {
          this.traverseLinkList(this.subnavLinks, -1);
        },
        requireModifier: true,
        rebindable: true
      }, {
        label: 'Previous Main Section',
        action: () => {
          this.traverseLinkList(this.navLinks, -1);
        },
        requireModifier: true,
        rebindable: true
      }, {
        label: 'Next Main Section',
        action: () => {
          this.traverseLinkList(this.navLinks, 1);
        },
        requireModifier: true,
        rebindable: true
      }, {
        label: 'Show Keyboard Shortcuts',
        action: () => {
          this.shortcutsVisible = true;
        }
      }].map(command => {
        const persistedValue = window.localStorage.getItem(`keyboard.command.${command.label}`);

        if (persistedValue) {
          (0, _object.set)(command, 'pattern', JSON.parse(persistedValue));
          (0, _object.set)(command, 'custom', true);
        } else {
          (0, _object.set)(command, 'pattern', this.defaultPatterns[command.label]);
        }

        return command;
      }));
    }
  }), _applyDecoratedDescriptor(_class.prototype, "registerNav", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "registerNav"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "unregisterSubnav", [_object.action], Object.getOwnPropertyDescriptor(_class.prototype, "unregisterSubnav"), _class.prototype), _applyDecoratedDescriptor(_class.prototype, "addKeyToBuffer", [_emberConcurrency.restartableTask], Object.getOwnPropertyDescriptor(_class.prototype, "addKeyToBuffer"), _class.prototype)), _class));
  _exports.default = KeyboardService;
});
;define("nomad-ui/services/media", ["exports", "ember-responsive/services/media"], function (_exports, _media) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember-responsive/services/media"eaimeta@70e063a35619d71f

  var _default = _media.default;
  _exports.default = _default;
});
;define("nomad-ui/services/moment", ["exports", "ember-moment/services/moment", "nomad-ui/config/environment"], function (_exports, _moment, _environment) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember-moment/services/moment",0,"nomad-ui/config/environment"eaimeta@70e063a35619d71f

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  class MomentOverride extends _moment.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "defaultFormat", _environment.default.moment && _environment.default.moment.outputFormat || null);
    }

  }

  _exports.default = MomentOverride;

  window.__CLASSIC_OWN_CLASSES__.set(MomentOverride, true);
});
;define("nomad-ui/services/notifications", ["exports", "ember-cli-flash/services/flash-messages"], function (_exports, _flashMessages) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember-cli-flash/services/flash-messages"eaimeta@70e063a35619d71f

  /**
   * @typedef {Object} NotificationObject
   * @property {string} title
   * @property {string} [message]
   * @property {string} [type]
   * @property {string} [color = 'neutral']
   * @property {boolean} [sticky = true]
   * @property {boolean} [destroyOnClick = false]
   * @property {number} [timeout = 5000]
   */

  /**
   * @class NotificationsService
   * @extends FlashService
   * A wrapper service around Ember Flash Messages, for adding notifications to the UI
   */
  class NotificationsService extends _flashMessages.default {
    /**
     * @param {NotificationObject} notificationObject
     * @returns {FlashService}
     */
    add(notificationObject) {
      // Set some defaults
      if (!('type' in notificationObject)) {
        notificationObject.type = notificationObject.color || 'neutral';
      }

      if (!('destroyOnClick' in notificationObject)) {
        notificationObject.destroyOnClick = false;
      }

      if (!('timeout' in notificationObject)) {
        notificationObject.timeout = 5000;
      }

      return super.add(notificationObject);
    }

  }

  _exports.default = NotificationsService;

  window.__CLASSIC_OWN_CLASSES__.set(NotificationsService, true);
});
;define("nomad-ui/services/page-title-list", ["exports", "ember-page-title/services/page-title-list"], function (_exports, _pageTitleList) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _pageTitleList.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-page-title/services/page-title-list"eaimeta@70e063a35619d71f
});
;define("nomad-ui/services/page-title", ["exports", "ember-page-title/services/page-title"], function (_exports, _pageTitle) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _pageTitle.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-page-title/services/page-title"eaimeta@70e063a35619d71f
});
;define("nomad-ui/services/resize-observer", ["exports", "ember-resize-observer-service/services/resize-observer"], function (_exports, _resizeObserver) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _resizeObserver.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-resize-observer-service/services/resize-observer"eaimeta@70e063a35619d71f
});
;define("nomad-ui/services/sockets", ["exports", "@ember/service", "nomad-ui/config/environment", "@ember/application"], function (_exports, _service, _environment, _application) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _descriptor;

  0; //eaimeta@70e063a35619d71f0,"@ember/service",0,"nomad-ui/config/environment",0,"@ember/application",0,"@ember/service"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let SocketsService = (_class = class SocketsService extends _service.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "system", _descriptor, this);
    }

    getTaskStateSocket(taskState, command) {
      const mirageEnabled = _environment.default.environment !== 'production' && _environment.default['ember-cli-mirage'] && _environment.default['ember-cli-mirage'].enabled !== false;

      if (mirageEnabled) {
        return new Object({
          messageDisplayed: false,

          send(e) {
            if (!this.messageDisplayed) {
              this.messageDisplayed = true;
              this.onmessage({
                data: `{"stdout":{"data":"${btoa('unsupported in Mirage\n\r')}"}}`
              });
            } else {
              this.onmessage({
                data: e.replace('stdin', 'stdout')
              });
            }
          }

        });
      } else {
        const protocol = window.location.protocol === 'https:' ? 'wss:' : 'ws:';
        const applicationAdapter = (0, _application.getOwner)(this).lookup('adapter:application');
        const prefix = `${applicationAdapter.host || window.location.host}/${applicationAdapter.urlPrefix()}`;
        const region = this.system.activeRegion;
        return new WebSocket(`${protocol}//${prefix}/client/allocation/${taskState.allocation.id}` + `/exec?task=${taskState.name}&tty=true&ws_handshake=true` + (region ? `&region=${region}` : '') + `&command=${encodeURIComponent(`["${command}"]`)}`);
      }
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "system", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class);
  _exports.default = SocketsService;
});
;define("nomad-ui/services/stats-trackers-registry", ["exports", "@ember/object", "@ember/service", "lru_map", "nomad-ui/utils/classes/node-stats-tracker", "nomad-ui/utils/classes/allocation-stats-tracker"], function (_exports, _object, _service, _lru_map, _nodeStatsTracker, _allocationStatsTracker) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class, _descriptor;

  0; //eaimeta@70e063a35619d71f0,"@ember/object",0,"@ember/service",0,"lru_map",0,"nomad-ui/utils/classes/node-stats-tracker",0,"nomad-ui/utils/classes/allocation-stats-tracker"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  // An unbounded number of stat trackers is a great way to gobble up all the memory
  // on a machine. This max number is unscientific, but aims to balance losing
  // stat trackers a user is likely to return to with preventing gc from freeing
  // memory occupied by stat trackers a user is likely to no longer care about
  const MAX_STAT_TRACKERS = 10;
  let registry;

  const exists = (tracker, prop) => tracker.get(prop) && !tracker.get(prop).isDestroyed && !tracker.get(prop).isDestroying;

  let StatsTrackersRegistryService = (_class = class StatsTrackersRegistryService extends _service.default {
    constructor() {
      super(...arguments); // The LRUMap limits the number of trackers tracked by making room for
      // new entries beyond the limit by removing the least recently used entry.

      _initializerDefineProperty(this, "token", _descriptor, this);

      registry = new _lru_map.LRUMap(MAX_STAT_TRACKERS);
    } // A read-only way of getting a reference to the registry.
    // Since this could be overwritten by a bad actor, it isn't
    // used in getTracker


    get registryRef() {
      return registry;
    }

    getTracker(resource) {
      if (!resource) return;
      const type = resource && resource.constructor.modelName;
      const key = `${type}:${resource.get('id')}`;
      const Constructor = type === 'node' ? _nodeStatsTracker.default : _allocationStatsTracker.default;
      const resourceProp = type === 'node' ? 'node' : 'allocation';
      const cachedTracker = registry.get(key);

      if (cachedTracker) {
        // It's possible for the resource on a cachedTracker to have been
        // deleted. Rebind it if that's the case.
        if (!exists(cachedTracker, resourceProp)) cachedTracker.set(resourceProp, resource);
        return cachedTracker;
      }

      const tracker = Constructor.create({
        fetch: url => this.token.authorizedRequest(url),
        [resourceProp]: resource
      });
      registry.set(key, tracker);
      return tracker;
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "token", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class.prototype, "registryRef", [_object.computed], Object.getOwnPropertyDescriptor(_class.prototype, "registryRef"), _class.prototype)), _class);
  _exports.default = StatsTrackersRegistryService;
});
;define("nomad-ui/services/store", ["exports", "ember-data/store"], function (_exports, _store) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _store.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-data/store"eaimeta@70e063a35619d71f
});
;define("nomad-ui/services/system", ["exports", "@ember/service", "@ember/object", "@ember/object/computed", "nomad-ui/utils/classes/promise-object", "nomad-ui/utils/classes/promise-array", "nomad-ui/adapters/application", "nomad-ui/utils/json-with-default", "ember-concurrency"], function (_exports, _service, _object, _computed, _promiseObject, _promiseArray, _application, _jsonWithDefault, _emberConcurrency) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _dec7, _dec8, _dec9, _dec10, _dec11, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6;

  0; //eaimeta@70e063a35619d71f0,"@ember/service",0,"@ember/object",0,"@ember/object/computed",0,"nomad-ui/utils/classes/promise-object",0,"nomad-ui/utils/classes/promise-array",0,"nomad-ui/adapters/application",0,"nomad-ui/utils/json-with-default",0,"ember-classic-decorator",0,"ember-concurrency"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let SystemService = (_dec = (0, _object.computed)('activeRegion'), _dec2 = (0, _object.computed)('regions.[]'), _dec3 = (0, _object.computed)('regions.[]'), _dec4 = (0, _object.computed)('activeRegion', 'defaultRegion.region', 'shouldShowRegions'), _dec5 = (0, _object.computed)('activeRegion'), _dec6 = (0, _object.computed)('namespaces.[]'), _dec7 = (0, _emberConcurrency.task)(function* () {
    const emptyLicense = {
      License: {
        Features: []
      }
    };

    try {
      return yield this.token.authorizedRawRequest(`/${_application.namespace}/operator/license`).then((0, _jsonWithDefault.default)(emptyLicense));
    } catch (e) {
      return emptyLicense;
    }
  }), _dec8 = (0, _emberConcurrency.task)(function* () {
    try {
      const request = yield this.token.authorizedRequest('/v1/search/fuzzy', {
        method: 'POST',
        body: JSON.stringify({
          Text: 'feature-detection-query',
          Context: 'namespaces'
        })
      });
      return request.ok;
    } catch (e) {
      return false;
    }
  }), _dec9 = (0, _computed.alias)('fetchLicense.lastSuccessful.value'), _dec10 = (0, _computed.alias)('checkFuzzySearchPresence.last.value'), _dec11 = (0, _object.computed)('license.License.Features.[]'), classic(_class = (_class2 = class SystemService extends _service.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "token", _descriptor, this);

      _initializerDefineProperty(this, "store", _descriptor2, this);

      _initializerDefineProperty(this, "fetchLicense", _descriptor3, this);

      _initializerDefineProperty(this, "checkFuzzySearchPresence", _descriptor4, this);

      _initializerDefineProperty(this, "license", _descriptor5, this);

      _initializerDefineProperty(this, "fuzzySearchEnabled", _descriptor6, this);
    }

    get leader() {
      const token = this.token;
      return _promiseObject.default.create({
        promise: token.authorizedRequest(`/${_application.namespace}/status/leader`).then(res => res.json()).then(rpcAddr => ({
          rpcAddr
        })).then(leader => {
          // Dirty self so leader can be used as a dependent key
          this.notifyPropertyChange('leader.rpcAddr');
          return leader;
        })
      });
    }

    get agent() {
      const token = this.token;
      return _promiseObject.default.create({
        promise: token.authorizedRawRequest(`/${_application.namespace}/agent/self`).then((0, _jsonWithDefault.default)({})).then(agent => {
          var _agent$config;

          if (agent !== null && agent !== void 0 && (_agent$config = agent.config) !== null && _agent$config !== void 0 && _agent$config.Version) {
            const {
              Version,
              VersionPrerelease,
              VersionMetadata
            } = agent.config.Version;
            agent.version = Version;
            if (VersionPrerelease) agent.version = `${agent.version}-${VersionPrerelease}`;
            if (VersionMetadata) agent.version = `${agent.version}+${VersionMetadata}`;
          }

          return agent;
        })
      });
    }

    get defaultRegion() {
      const token = this.token;
      return _promiseObject.default.create({
        promise: token.authorizedRawRequest(`/${_application.namespace}/agent/members`).then((0, _jsonWithDefault.default)({})).then(json => {
          return {
            region: json.ServerRegion
          };
        })
      });
    }

    get regions() {
      const token = this.token;
      return _promiseArray.default.create({
        promise: token.authorizedRawRequest(`/${_application.namespace}/regions`).then((0, _jsonWithDefault.default)([]))
      });
    }

    get activeRegion() {
      const regions = this.regions;
      const region = window.localStorage.nomadActiveRegion;

      if (regions.includes(region)) {
        return region;
      }

      return null;
    }

    set activeRegion(value) {
      if (value == null) {
        window.localStorage.removeItem('nomadActiveRegion');
        return;
      } else {
        // All localStorage values are strings. Stringify first so
        // the return value is consistent with what is persisted.
        const strValue = value + '';
        window.localStorage.nomadActiveRegion = strValue;
      }
    }

    get shouldShowRegions() {
      return this.get('regions.length') > 1;
    }

    get shouldIncludeRegion() {
      return this.shouldShowRegions && this.activeRegion !== this.get('defaultRegion.region');
    }

    get namespaces() {
      return _promiseArray.default.create({
        promise: this.store.findAll('namespace').then(namespaces => namespaces.compact())
      });
    }

    get shouldShowNamespaces() {
      const namespaces = this.namespaces.toArray();
      return namespaces.length && namespaces.some(namespace => namespace.get('id') !== 'default');
    }

    get features() {
      return this.get('license.License.Features') || [];
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "token", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "store", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "leader", [_dec], Object.getOwnPropertyDescriptor(_class2.prototype, "leader"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "agent", [_object.computed], Object.getOwnPropertyDescriptor(_class2.prototype, "agent"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "defaultRegion", [_object.computed], Object.getOwnPropertyDescriptor(_class2.prototype, "defaultRegion"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "regions", [_object.computed], Object.getOwnPropertyDescriptor(_class2.prototype, "regions"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "activeRegion", [_dec2], Object.getOwnPropertyDescriptor(_class2.prototype, "activeRegion"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "shouldShowRegions", [_dec3], Object.getOwnPropertyDescriptor(_class2.prototype, "shouldShowRegions"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "shouldIncludeRegion", [_dec4], Object.getOwnPropertyDescriptor(_class2.prototype, "shouldIncludeRegion"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "namespaces", [_dec5], Object.getOwnPropertyDescriptor(_class2.prototype, "namespaces"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "shouldShowNamespaces", [_dec6], Object.getOwnPropertyDescriptor(_class2.prototype, "shouldShowNamespaces"), _class2.prototype), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, "fetchLicense", [_dec7], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, "checkFuzzySearchPresence", [_dec8], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor5 = _applyDecoratedDescriptor(_class2.prototype, "license", [_dec9], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor6 = _applyDecoratedDescriptor(_class2.prototype, "fuzzySearchEnabled", [_dec10], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "features", [_dec11], Object.getOwnPropertyDescriptor(_class2.prototype, "features"), _class2.prototype)), _class2)) || _class);
  _exports.default = SystemService;
});
;define("nomad-ui/services/text-measurer", ["exports", "ember-text-measurer/services/text-measurer"], function (_exports, _textMeasurer) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _textMeasurer.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-text-measurer/services/text-measurer"eaimeta@70e063a35619d71f
});
;define("nomad-ui/services/token", ["exports", "@ember/service", "@ember/object", "@ember/object/computed", "@ember/application", "@ember/polyfills", "ember-concurrency", "query-string", "nomad-ui/utils/fetch", "moment"], function (_exports, _service, _object, _computed, _application, _polyfills, _emberConcurrency, _queryString, _fetch, _moment) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4, _descriptor5, _descriptor6, _descriptor7, _descriptor8, _descriptor9, _descriptor10;

  0; //eaimeta@70e063a35619d71f0,"@ember/service",0,"@ember/object",0,"@ember/object/computed",0,"@ember/application",0,"@ember/polyfills",0,"ember-concurrency",0,"query-string",0,"nomad-ui/utils/fetch",0,"ember-classic-decorator",0,"moment"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;
  const MINUTES_LEFT_AT_WARNING = 10;
  const EXPIRY_NOTIFICATION_TITLE = 'Your access is about to expire';
  let TokenService = (_dec = (0, _emberConcurrency.task)(function* () {
    const TokenAdapter = (0, _application.getOwner)(this).lookup('adapter:token');

    try {
      var token = yield TokenAdapter.findSelf();
      this.secret = token.secret;
      return token;
    } catch (e) {
      const errors = e.errors ? e.errors.mapBy('detail') : [];

      if (errors.find(error => error === 'ACL support disabled')) {
        this.set('aclEnabled', false);
      }

      if (errors.find(error => error === 'ACL token not found')) {
        this.set('tokenNotFound', true);
      }

      return null;
    }
  }), _dec2 = (0, _computed.reads)('fetchSelfToken.lastSuccessful.value'), _dec3 = (0, _emberConcurrency.task)(function* () {
    try {
      if (this.selfToken) {
        return yield this.selfToken.get('policies');
      } else {
        let policy = yield this.store.findRecord('policy', 'anonymous');
        return [policy];
      }
    } catch (e) {
      return [];
    }
  }), _dec4 = (0, _computed.alias)('fetchSelfTokenPolicies.lastSuccessful.value'), _dec5 = (0, _emberConcurrency.task)(function* () {
    yield this.fetchSelfToken.perform();
    this.kickoffTokenTTLMonitoring();

    if (this.aclEnabled) {
      yield this.fetchSelfTokenPolicies.perform();
    }
  }), _dec6 = (0, _emberConcurrency.task)(function* () {
    while ((_this$selfToken = this.selfToken) !== null && _this$selfToken !== void 0 && _this$selfToken.expirationTime) {
      var _this$selfToken;

      const diff = new Date(this.selfToken.expirationTime) - new Date(); // Let the user know at the 10 minute mark,
      // or any time they refresh with under 10 minutes left

      if (diff < 1000 * 60 * MINUTES_LEFT_AT_WARNING) {
        var _this$notifications$q;

        const existingNotification = (_this$notifications$q = this.notifications.queue) === null || _this$notifications$q === void 0 ? void 0 : _this$notifications$q.find(m => m.title === EXPIRY_NOTIFICATION_TITLE); // For the sake of updating the "time left" message, we keep running the task down to the moment of expiration

        if (diff > 0) {
          if (existingNotification) {
            existingNotification.set('message', `Your token access expires ${(0, _moment.default)(this.selfToken.expirationTime).fromNow()}`);
          } else {
            if (!this.expirationNotificationDismissed) {
              this.notifications.add({
                title: EXPIRY_NOTIFICATION_TITLE,
                message: `Your token access expires ${(0, _moment.default)(this.selfToken.expirationTime).fromNow()}`,
                color: 'warning',
                sticky: true,
                customCloseAction: () => {
                  this.set('expirationNotificationDismissed', true);
                },
                customAction: {
                  label: 'Re-authenticate',
                  action: () => {
                    this.router.transitionTo('settings.tokens');
                  }
                }
              });
            }
          }
        } else {
          if (existingNotification) {
            existingNotification.setProperties({
              title: 'Your access has expired',
              message: `Your token will need to be re-authenticated`
            });
          }

          this.monitorTokenTime.cancelAll(); // Stop updating time left after expiration
        }
      }

      yield (0, _emberConcurrency.timeout)(1000);
    }
  }), classic(_class = (_class2 = class TokenService extends _service.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "store", _descriptor, this);

      _initializerDefineProperty(this, "system", _descriptor2, this);

      _initializerDefineProperty(this, "router", _descriptor3, this);

      _initializerDefineProperty(this, "notifications", _descriptor4, this);

      _defineProperty(this, "aclEnabled", true);

      _defineProperty(this, "tokenNotFound", false);

      _initializerDefineProperty(this, "fetchSelfToken", _descriptor5, this);

      _initializerDefineProperty(this, "selfToken", _descriptor6, this);

      _initializerDefineProperty(this, "fetchSelfTokenPolicies", _descriptor7, this);

      _initializerDefineProperty(this, "selfTokenPolicies", _descriptor8, this);

      _initializerDefineProperty(this, "fetchSelfTokenAndPolicies", _descriptor9, this);

      _initializerDefineProperty(this, "monitorTokenTime", _descriptor10, this);
    }

    get secret() {
      return window.localStorage.nomadTokenSecret;
    }

    set secret(value) {
      if (value == null) {
        window.localStorage.removeItem('nomadTokenSecret');
      } else {
        window.localStorage.nomadTokenSecret = value;
      }
    }

    async exchangeOneTimeToken(oneTimeToken) {
      const TokenAdapter = (0, _application.getOwner)(this).lookup('adapter:token');
      const token = await TokenAdapter.exchangeOneTimeToken(oneTimeToken);
      this.secret = token.secret;
    }

    // All non Ember Data requests should go through authorizedRequest.
    // However, the request that gets regions falls into that category.
    // This authorizedRawRequest is necessary in order to fetch data
    // with the guarantee of a token but without the automatic region
    // param since the region cannot be known at this point.
    authorizedRawRequest(url) {
      let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
      const credentials = 'include';
      const headers = {};
      const token = this.secret;

      if (token) {
        headers['X-Nomad-Token'] = token;
      }

      return (0, _fetch.default)(url, (0, _polyfills.assign)(options, {
        headers,
        credentials
      }));
    }

    authorizedRequest(url, options) {
      if (this.get('system.shouldIncludeRegion')) {
        const region = this.get('system.activeRegion');

        if (region && url.indexOf('region=') === -1) {
          url = addParams(url, {
            region
          });
        }
      }

      return this.authorizedRawRequest(url, options);
    }

    reset() {
      this.fetchSelfToken.cancelAll({
        resetState: true
      });
      this.fetchSelfTokenPolicies.cancelAll({
        resetState: true
      });
      this.fetchSelfTokenAndPolicies.cancelAll({
        resetState: true
      });
      this.monitorTokenTime.cancelAll({
        resetState: true
      });
      window.localStorage.removeItem('nomadOIDCNonce');
      window.localStorage.removeItem('nomadOIDCAuthMethod');
    }

    kickoffTokenTTLMonitoring() {
      this.monitorTokenTime.perform();
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "store", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "system", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, "router", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, "notifications", [_service.inject], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "secret", [_object.computed], Object.getOwnPropertyDescriptor(_class2.prototype, "secret"), _class2.prototype), _descriptor5 = _applyDecoratedDescriptor(_class2.prototype, "fetchSelfToken", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor6 = _applyDecoratedDescriptor(_class2.prototype, "selfToken", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor7 = _applyDecoratedDescriptor(_class2.prototype, "fetchSelfTokenPolicies", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor8 = _applyDecoratedDescriptor(_class2.prototype, "selfTokenPolicies", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor9 = _applyDecoratedDescriptor(_class2.prototype, "fetchSelfTokenAndPolicies", [_dec5], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor10 = _applyDecoratedDescriptor(_class2.prototype, "monitorTokenTime", [_dec6], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class2)) || _class);
  _exports.default = TokenService;

  function addParams(url, params) {
    const paramsStr = _queryString.default.stringify(params);

    const delimiter = url.includes('?') ? '&' : '?';
    return `${url}${delimiter}${paramsStr}`;
  }
});
;define("nomad-ui/services/user-settings", ["exports", "@ember/service", "nomad-ui/utils/properties/local-storage"], function (_exports, _service, _localStorage) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _class, _descriptor, _descriptor2, _descriptor3;

  0; //eaimeta@70e063a35619d71f0,"@ember/service",0,"nomad-ui/utils/properties/local-storage"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  let UserSettingsService = (_dec = (0, _localStorage.default)('nomadPageSize', 25), _dec2 = (0, _localStorage.default)('nomadLogMode', 'stdout'), _dec3 = (0, _localStorage.default)('nomadTopoVizPollingNotice', true), (_class = class UserSettingsService extends _service.default {
    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "pageSize", _descriptor, this);

      _initializerDefineProperty(this, "logMode", _descriptor2, this);

      _initializerDefineProperty(this, "showTopoVizPollingNotice", _descriptor3, this);
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, "pageSize", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, "logMode", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor3 = _applyDecoratedDescriptor(_class.prototype, "showTopoVizPollingNotice", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class));
  _exports.default = UserSettingsService;
});
;define("nomad-ui/services/watch-list", ["exports", "@ember/object", "@ember/object/computed", "ember-copy", "@ember/service"], function (_exports, _object, _computed, _emberCopy, _service) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _class, _descriptor;

  0; //eaimeta@70e063a35619d71f0,"@ember/object",0,"@ember/object/computed",0,"ember-copy",0,"@ember/service"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  let list = {};
  let WatchListService = (_dec = (0, _computed.readOnly)('_list'), (_class = class WatchListService extends _service.default {
    get _list() {
      return (0, _emberCopy.copy)(list, true);
    }

    constructor() {
      super(...arguments);

      _initializerDefineProperty(this, "list", _descriptor, this);

      list = {};
    }

    getIndexFor(url) {
      return list[url] || 1;
    }

    setIndexFor(url, value) {
      list[url] = +value;
    }

  }, (_applyDecoratedDescriptor(_class.prototype, "_list", [_object.computed], Object.getOwnPropertyDescriptor(_class.prototype, "_list"), _class.prototype), _descriptor = _applyDecoratedDescriptor(_class.prototype, "list", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class));
  _exports.default = WatchListService;
});
;define("nomad-ui/svgs", ["exports"], function (_exports) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71feaimeta@70e063a35619d71f

  var _default = {
    "alert-circle-fill": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z\" fill=\"currentColor\"/></svg>",
    "alert-circle-outline": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M11 15h2v2h-2v-2zm0-8h2v6h-2V7zm.99-5C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\" fill=\"currentColor\"/></svg>",
    "alert-triangle": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M19.531 21c1.54 0 2.503-1.669 1.731-3.002L13.731 4.99c-.77-1.33-2.691-1.33-3.462 0L2.738 17.998C1.966 19.33 2.928 21 4.468 21h15.063zM13 18h-2v-2h2v2zm0-4h-2v-4h2v4z\" fill=\"currentColor\"/></svg>",
    "arrow-down": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M11 3v14.17l-3.59-3.58L6 15l6 6 6-6-1.41-1.41L13 17.17V3h-2z\" fill=\"currentColor\"/></svg>",
    "arrow-left": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M21 11H6.83l3.58-3.59L9 6l-6 6 6 6 1.41-1.41L6.83 13H21v-2z\" fill=\"currentColor\"/></svg>",
    "arrow-right": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M3 13h14.17l-3.58 3.59L15 18l6-6-6-6-1.41 1.41L17.17 11H3v2z\" fill=\"currentColor\"/></svg>",
    "arrow-up": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M13 21V6.83l3.59 3.58L18 9l-6-6-6 6 1.41 1.41L11 6.83V21h2z\" fill=\"currentColor\"/></svg>",
    "bolt": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M13 2L6 14h5v8l7-12h-5V2z\" fill=\"currentColor\"/></svg>",
    "boot": "<svg width=\"186\" height=\"186\" viewBox=\"0 0 186 186\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M100.983 63.69l3.303 8.605 20.736-7.96c19.4-7.447 41.024 1.226 50.112 19.447a20.071 20.071 0 0 1 2 3.89l7.168 18.671c3.958 10.312-1.193 21.88-11.505 25.84l-89.623 34.403a20.091 20.091 0 0 1-3.889 1.061l-20.061 7.701a8 8 0 0 1-10.336-4.602L.867 45.646a8 8 0 0 1 4.602-10.335L71.753 9.867a8 8 0 0 1 10.335 4.602L92.14 40.652a2.488 2.488 0 0 0-1.117.82c-3.145 4.07-11.17 7.7-23.989 10.59a2.5 2.5 0 0 0 1.1 4.878c12.89-2.906 21.506-6.598 25.914-11.318l5.014 13.06a2.495 2.495 0 0 0-1.04.79c-3.144 4.07-11.168 7.7-23.988 10.59a2.5 2.5 0 0 0 1.1 4.878c12.828-2.892 21.423-6.562 25.85-11.25z\"/></svg>",
    "box-check-fill": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M19 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z\" fill=\"currentColor\"/></svg>",
    "box-outline": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M19 5v14H5V5h14zm0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z\" fill=\"currentColor\"/></svg>",
    "box": "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" fill=\"none\" viewBox=\"0 0 24 24\"><path fill=\"currentColor\" fill-rule=\"evenodd\" d=\"M13.206.754a2.75 2.75 0 0 0-2.412 0L1.983 5.052A1.75 1.75 0 0 0 1 6.625v9.902a2.75 2.75 0 0 0 1.496 2.448l8.25 4.226a2.75 2.75 0 0 0 2.508 0l8.25-4.226A2.75 2.75 0 0 0 23 16.527V6.625a1.75 1.75 0 0 0-.983-1.573L13.206.754zm-1.754 1.348a1.25 1.25 0 0 1 1.096 0l8.11 3.956L12 10.17 3.343 6.058l8.109-3.956zM2.5 7.318v9.21c0 .468.263.898.68 1.112l8.07 4.133V11.474L2.5 7.318zm10.25 14.455l8.07-4.133a1.25 1.25 0 0 0 .68-1.113v-9.21l-8.75 4.157v10.3z\" clip-rule=\"evenodd\"/></svg>",
    "broadcast": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M2 12a9.975 9.975 0 0 1 3.274-7.398l1.348 1.482a7.987 7.987 0 0 0 .26 12.059L5.598 19.68A9.98 9.98 0 0 1 2 12zm16.726-7.398l-1.348 1.482a7.987 7.987 0 0 1-.26 12.059l1.283 1.538A9.98 9.98 0 0 0 22 12a9.975 9.975 0 0 0-3.274-7.398zM6 12c0-1.759.758-3.341 1.965-4.439l1.346 1.48a3.99 3.99 0 0 0 .13 6.03L8.159 16.61A5.988 5.988 0 0 1 6 12zm10.035-4.439l-1.346 1.48a3.99 3.99 0 0 1-.13 6.03l1.282 1.538A5.988 5.988 0 0 0 18 12a5.985 5.985 0 0 0-1.965-4.439zM10 12c0 1.102.898 2 2 2 1.102 0 2-.898 2-2 0-1.102-.898-2-2-2-1.102 0-2 .898-2 2z\" fill=\"currentColor\"/></svg>",
    "bug": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M20 8h-2.81a5.985 5.985 0 0 0-1.82-1.96L17 4.41 15.59 3l-2.17 2.17C12.96 5.06 12.49 5 12 5c-.49 0-.96.06-1.41.17L8.41 3 7 4.41l1.62 1.63C7.88 6.55 7.26 7.22 6.81 8H4v2h2.09c-.05.33-.09.66-.09 1v1H4v2h2v1c0 .34.04.67.09 1H4v2h2.81c1.04 1.79 2.97 3 5.19 3s4.15-1.21 5.19-3H20v-2h-2.09c.05-.33.09-.66.09-1v-1h2v-2h-2v-1c0-.34-.04-.67-.09-1H20V8zm-6 8h-4v-2h4v2zm0-4h-4v-2h4v2z\" fill=\"currentColor\"/></svg>",
    "calendar": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M16 5h1V2h-1v3zM7 5h1V2H7v3zM4 19c0 .5.5 1 1 1h14c.58-.02 1-.5 1-1V7H4v12zM18 3v3h-3V3H9v3H6V3H5C4 3 3 4 3 5v14c0 1 1 2 2 2h14c1 0 2-1 2-2V5c0-1-1-2-2-2h-1z\" fill=\"currentColor\"/><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M14 19h2v-2h-2v2zm-3 0h2v-2h-2v2zm-3 0h2v-2H8v2zm-3 0h2v-2H5v2zm12-3h2v-2h-2v2zm-3 0h2v-2h-2v2zm-3 0h2v-2h-2v2zm-3 0h2v-2H8v2zm-3 0h2v-2H5v2zm12-3h2v-2h-2v2zm-3 0h2v-2h-2v2zm-3 0h2v-2h-2v2zm-3 0h2v-2H8v2zm-3 0h2v-2H5v2zm12-3h2V8h-2v2zm-3 0h2V8h-2v2zm-3 0h2V8h-2v2zm-3 0h2V8H8v2z\" fill=\"currentColor\"/></svg>",
    "cancel-circle-fill": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z\" fill=\"currentColor\"/></svg>",
    "cancel-circle-outline": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M14.266 8.5L12 10.766 9.734 8.5 8.5 9.734 10.766 12 8.5 14.266 9.734 15.5 12 13.234l2.266 2.266 1.234-1.234L13.234 12 15.5 9.734 14.266 8.5zM12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zM4 12c0-4.41 3.59-8 8-8s8 3.59 8 8-3.59 8-8 8-8-3.59-8-8z\" fill=\"currentColor\"/></svg>",
    "cancel-plain": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z\" fill=\"currentColor\"/></svg>",
    "cancel-square-fill": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M5 3h14c1.1 0 2 .9 2 2v14c0 1.1-.9 2-2 2H5c-1.1 0-2-.9-2-2V5c0-1.1.9-2 2-2zm10.59 14L17 15.59 13.41 12 17 8.41 15.59 7 12 10.59 8.41 7 7 8.41 10.59 12 7 15.59 8.41 17 12 13.41 15.59 17z\" fill=\"currentColor\"/></svg>",
    "cancel-square-outline": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M19 5v14H5V5h14zM5 3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2H5zm9.266 5.5L12 10.766 9.734 8.5 8.5 9.734 10.766 12 8.5 14.266 9.734 15.5 12 13.234l2.266 2.266 1.234-1.234L13.234 12 15.5 9.734 14.266 8.5z\" fill=\"currentColor\"/></svg>",
    "cancel": "<svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M14 1.41L12.59 0 7 5.59 1.41 0 0 1.41 5.59 7 0 12.59 1.41 14 7 8.41 12.59 14 14 12.59 8.41 7z\"/></svg>",
    "caret-down": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M7 10l5 5 5-5H7z\" fill=\"currentColor\"/></svg>",
    "caret-up": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M7 14l5-5 5 5H7z\" fill=\"currentColor\"/></svg>",
    "check-circle-fill": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z\" fill=\"currentColor\"/></svg>",
    "check-circle-outline": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zM4 12c0-4.41 3.59-8 8-8s8 3.59 8 8-3.59 8-8 8-8-3.59-8-8zm4.41-1.41L7 12l4 4 7-7-1.41-1.42L11 13.17l-2.59-2.58z\" fill=\"currentColor\"/></svg>",
    "check-plain": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41L9 16.17z\" fill=\"currentColor\"/></svg>",
    "chevron-down": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M16.59 8.59L12 13.17 7.41 8.59 6 10l6 6 6-6-1.41-1.41z\" fill=\"currentColor\"/></svg>",
    "chevron-left": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M15.705 16.885l-4.58-4.59 4.58-4.59-1.41-1.41-6 6 6 6 1.41-1.41z\" fill=\"currentColor\"/></svg>",
    "chevron-right": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M8.295 7.705l4.58 4.59-4.58 4.59 1.41 1.41 6-6-6-6-1.41 1.41z\" fill=\"currentColor\"/></svg>",
    "chevron-up": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M7.41 16L12 11.42 16.59 16 18 14.59l-6-6-6 6L7.41 16z\" fill=\"currentColor\"/></svg>",
    "clock-fill": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2zm4.2 14.2L11 13V7h1.5v5.2l4.5 2.7-.8 1.3z\" fill=\"currentColor\"/></svg>",
    "clock-outline": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm.5-13H11v6l5.25 3.15.75-1.23-4.5-2.67V7z\" fill=\"currentColor\"/></svg>",
    "clock": "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"8\" height=\"8\" viewBox=\"0 0 8 8\"><path d=\"M4 0C1.8 0 0 1.8 0 4s1.8 4 4 4 4-1.8 4-4-1.8-4-4-4zm0 1c1.66 0 3 1.34 3 3S5.66 7 4 7 1 5.66 1 4s1.34-3 3-3zm-.5 1v2.22l.16.13.5.5.34.38.72-.72-.38-.34-.34-.34V2.02h-1z\"/></svg>",
    "cloud-fail": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M15 12.586L16.414 14l-3 3 3 3L15 21.414l-3-3-3 3L7.586 20l2.999-3-2.75-2.75 1.415-1.414 2.75 2.75 3-3zM8.068 4.94c1.154-1.682 3.535-2.51 5.837-2.086 2.706.5 4.595 2.545 4.816 5.64l.234.067c2.46.754 3.884 2.79 3.5 5.036-.445 2.592-2.083 4.371-5.876 4.371v-2c5.054 0 4.868-5.46.23-6.152.242-2.277-1.278-4.628-3.267-4.995-1.789-.33-3.757.564-4.572 2.164-1.629-.727-2.605-.345-3.442.362-.836.706-.527 2.194-.225 2.823-1.089.915-1.901 2.013-2.152 2.987-.101.395-.091 1.014 0 1.212.428.928 1.016 1.6 4.403 1.6v2c-4.117 0-5.672-.96-6.448-2.874-.652-1.61.137-3.457 1.882-5.118-.544-1.734.01-3.297 1.391-4.267a4.89 4.89 0 0 1 3.689-.77z\" fill=\"currentColor\"/></svg>",
    "code": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z\" fill=\"currentColor\"/></svg>",
    "console": "<svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"><defs><path id=\"b\" d=\"M0 0h72v29H0z\"/><path d=\"M12.667 1.333a2 2 0 0 1 2 2V12a2 2 0 0 1-2 2H3.333a2 2 0 0 1-2-2V3.333a2 2 0 0 1 2-2h9.334zm-.334 4H3.667a1 1 0 0 0-1 1v5.334a1 1 0 0 0 1 1h8.666a1 1 0 0 0 1-1V6.333a1 1 0 0 0-1-1zM5.35 6.667l1.399 1.386.94.953-.643.632-1.696 1.695-.94-.94 1.389-1.39-1.393-1.392.944-.944zM12 10v1.333H8V10h4zM3.333 2.667a.667.667 0 1 0 0 1.333.667.667 0 0 0 0-1.333zm2 0a.667.667 0 1 0 0 1.333.667.667 0 0 0 0-1.333zm2 0a.667.667 0 1 0 0 1.333.667.667 0 0 0 0-1.333z\" id=\"e\"/><filter x=\"-2.8%\" y=\"-6.9%\" width=\"105.6%\" height=\"127.6%\" filterUnits=\"objectBoundingBox\" id=\"a\"><feMorphology radius=\"1\" in=\"SourceAlpha\" result=\"shadowSpreadOuter1\"/><feOffset dy=\"5\" in=\"shadowSpreadOuter1\" result=\"shadowOffsetOuter1\"/><feGaussianBlur stdDeviation=\".5\" in=\"shadowOffsetOuter1\" result=\"shadowBlurOuter1\"/><feColorMatrix values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.12 0\" in=\"shadowBlurOuter1\"/></filter><rect id=\"c\" x=\"0\" y=\"0\" width=\"72\" height=\"29\" rx=\"2\"/></defs><g transform=\"translate(-9 -7)\" fill=\"none\" fill-rule=\"evenodd\"><use fill=\"#000\" filter=\"url(#a)\" xlink:href=\"#b\"/><use fill=\"#FFF\" xlink:href=\"#b\"/><mask id=\"d\" fill=\"#fff\"><use xlink:href=\"#c\"/></mask><rect stroke=\"#BBC4D1\" x=\".5\" y=\".5\" width=\"71\" height=\"28\" rx=\"2\"/><g mask=\"url(#d)\"><g transform=\"translate(8 6.5)\"><mask id=\"f\" fill=\"#fff\"><use xlink:href=\"#e\"/></mask><use fill=\"#000\" fill-rule=\"nonzero\" xlink:href=\"#e\"/><g mask=\"url(#f)\" fill=\"#373A42\"><path d=\"M0 0h16v16H0z\"/><path d=\"M0 0h16v16H0z\"/></g></g></g></g></svg>",
    "copy-action": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M13.82 3C13.4 1.84 12.3 1 11 1c-1.3 0-2.4.84-2.82 2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2h-4.18zM9 13H6v2h3v-2zm-3 6h5v-2H6v2zM6 9v2h6V9H6zm5-6c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zM4 21V5h2v1.007h10V5h2v5.992h2.003V17H18v4H4zm11.99-3v-3H23v-2h-7.01v-3L12 14l3.99 4z\" fill=\"currentColor\"/></svg>",
    "copy-success": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M14.82 3C14.4 1.84 13.3 1 12 1c-1.3 0-2.4.84-2.82 2H5c-1.1 0-2 .9-2 2v16.025c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2h-4.18zM12 3c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm-2 15l-4-4 1.41-1.41L10 15.17l6.59-6.59L18 10l-8 8z\" fill=\"currentColor\"/></svg>",
    "database": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M11.571 3.429c-3.157 0-5.714.642-5.714 1.428 0 .786 2.557 1.429 5.714 1.429 3.158 0 5.715-.643 5.715-1.429S14.729 3.43 11.57 3.43zm0 7.142C6.843 10.571 3 9.286 3 7.714V4.857C3 3.286 6.843 2 11.571 2c4.729 0 8.572 1.286 8.572 2.857v2.857c0 1.572-3.843 2.857-8.572 2.857zm0 5.715C6.843 16.286 3 15 3 13.429V10.57c0-.157.057-.3.129-.442.042-.086.1-.186.171-.272C4.257 11.086 7.586 12 11.571 12c3.986 0 7.315-.914 8.272-2.143.071.086.128.186.171.272.072.142.129.3.129.442v2.858c0 1.571-3.843 2.857-8.572 2.857zm0 5.714C6.843 22 3 20.714 3 19.143v-2.857c0-.243.129-.486.3-.715.957 1.229 4.286 2.143 8.271 2.143 3.986 0 7.315-.914 8.272-2.143.186.229.3.472.3.715v2.857C20.143 20.714 16.3 22 11.57 22z\" fill=\"currentColor\"/></svg>",
    "delay": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M12 18.75A6.75 6.75 0 0 0 18.75 12H21a9 9 0 1 1-9-9v2.25a6.75 6.75 0 0 0 0 13.5z\" fill=\"currentColor\"/><path d=\"M20.753 9.898l-2.188.524a6.678 6.678 0 0 0-.326-1.005l2.078-.862c.18.432.325.88.436 1.343zm-1.078-2.601l-1.917 1.177a6.777 6.777 0 0 0-.624-.857l1.71-1.462c.305.357.584.74.83 1.142zm-1.83-2.141l-1.462 1.71a6.773 6.773 0 0 0-.857-.624l1.177-1.917c.403.247.785.526 1.142.831zm-2.4-1.473l-.862 2.078a6.68 6.68 0 0 0-1.005-.326l.524-2.188c.463.11.911.257 1.343.436zm-.385 10.332l-2.31-1.651V8.25h-1.5v4.886l2.94 2.1.87-1.221z\" fill=\"currentColor\"/></svg>",
    "deny-alt": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M12.947 7l-.884.875 3.537 3.5h-2.248l1.25 1.25h.998l-.502.496.88.88L18 12l-5.053-5zm1.01 9.001l-.88-.88-1.014 1.004.884.875 1.01-.999zm-3.377-3.376l-1.25-1.25H6v1.25h4.58z\" fill=\"currentColor\"/><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M22 12c0-5.523-4.477-10-10-10S2 6.477 2 12s4.477 10 10 10 10-4.477 10-10zM6.956 5.63A8.125 8.125 0 0 1 18.37 17.044L6.956 5.63zM5.63 6.956A8.125 8.125 0 0 0 17.044 18.37l-2.726-2.726-.006.005-.88-.88.006-.005-2.139-2.139h-.011l-1.25-1.25h.011L5.63 6.955z\" fill=\"currentColor\"/></svg>",
    "deny-default": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M22 12c0-5.523-4.477-10-10-10S2 6.477 2 12s4.477 10 10 10 10-4.477 10-10zM6.956 5.63A8.125 8.125 0 0 1 18.37 17.044l-2.72-2.72L18 12l-5.053-5-.884.875 3.537 3.5h-2.9L6.957 5.63zM5.63 6.956A8.125 8.125 0 0 0 17.044 18.37l-2.726-2.726L12.948 17l-.885-.875 1.375-1.36-2.139-2.14H6v-1.25h4.05l-4.42-4.42zm8.32 5.669l.821.82.829-.82h-1.65z\" fill=\"currentColor\"/></svg>",
    "disabled": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8 0-1.85.63-3.55 1.69-4.9L16.9 18.31A7.902 7.902 0 0 1 12 20zm6.31-3.1L7.1 5.69A7.902 7.902 0 0 1 12 4c4.42 0 8 3.58 8 8 0 1.85-.63 3.55-1.69 4.9z\" fill=\"currentColor\"/></svg>",
    "docs": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M18 11h2v9.5c0 .786-.714 1.5-1.5 1.5h-14c-.786 0-1.5-.714-1.5-1.5v-17C3 2.714 3.714 2 4.5 2H13v2H5v16h13v-9zM7 18h9v-2H7v2zm0-3h9v-2H7v2zm0-3h9v-2H7v2zm0-4V6h5v2H7zm10-5.5V1h6v6h-1.5V3.429L18 7l-1-1 3.5-3.5H17z\" fill=\"currentColor\"/></svg>",
    "dot": "<svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><circle cx=\"12\" cy=\"12\" r=\"12\"/></svg>",
    "download": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M19 9h-4V3H9v6H5l7 7 7-7zM5 18v2h14v-2H5zm-2 2h2v-4H3v4zm16 0h2v-4h-2v4z\" fill=\"currentColor\"/></svg>",
    "edit": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M17.23 9.68l1.326-1.324a1.016 1.016 0 0 0 0-1.437l-1.62-1.621-.002-.001a1.015 1.015 0 0 0-1.436 0l-1.325 1.327L17.23 9.68z\" fill=\"currentColor\"/><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M5 18.854v-3.058l8.154-8.153 3.057 3.057-8.153 8.154H5zm2.038-3.058H6.02v2.038h2.038v-1.018h-1.02v-1.02z\" fill=\"currentColor\"/></svg>",
    "envelope-sealed-fill": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M4 4a2 2 0 0 0-2 2l9.486 5.691a1 1 0 0 0 1.028 0L22 6a2 2 0 0 0-2-2H4zm18 4l-4.383 2.63L22 15.5V8z\" fill=\"currentColor\"/><path d=\"M22 18l-5.94-6.436-3.545 2.127a1 1 0 0 1-1.03 0l-3.544-2.127L2 18a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2zM2 15.5l4.383-4.87L2 8v7.5z\" fill=\"currentColor\"/></svg>",
    "envelope-sealed-outline": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M4 4h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2zm0 5.2v6.3l3.682-4.09L4 9.2zm0-2V6h16v1.2l-7.486 4.491a1 1 0 0 1-1.028 0L4 7.2zm16 2l-3.682 2.21L20 15.5V9.2zm0 8.8l-5.228-5.663-2.258 1.354a1 1 0 0 1-1.028 0l-2.258-1.354L4 18h16z\" fill=\"currentColor\"/></svg>",
    "envelope-unsealed--outline": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M2.004 8.002a2 2 0 0 1 1.119-1.668l8.438-4.12a1 1 0 0 1 .878 0l8.438 4.12a2 2 0 0 1 1.119 1.668L22 8v11.882a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V8l.004.002zM4 11.2v6.3l3.682-4.09L4 11.2zM4 20l5.228-5.663 2.258 1.354a1 1 0 0 0 1.028 0l2.258-1.354L20 20H4zm16-2.5v-6.3l-3.682 2.21L20 17.5zm0-8.3l-7.486 4.491a1 1 0 0 1-1.028 0L4 9.2V8l7.553-3.776a1 1 0 0 1 .894 0L20 8v1.2z\" fill=\"currentColor\"/></svg>",
    "envelope-unsealed-fill": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M3.106 6.447a2 2 0 0 0-1.093 1.56l9.473 5.684a1 1 0 0 0 1.028 0l9.473-5.683a2 2 0 0 0-1.093-1.56l-8.447-4.224a1 1 0 0 0-.894 0L3.106 6.447zM22 10l-4.383 2.63L22 17.5V10z\" fill=\"currentColor\"/><path d=\"M22 20l-5.94-6.436-3.545 2.127a1 1 0 0 1-1.03 0l-3.544-2.127L2 20a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2zM2 17.5l4.383-4.87L2 10v7.5z\" fill=\"currentColor\"/></svg>",
    "exit": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M5 19V5h5.944V3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2v-5.98h-2V19H5zm9-16v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z\" fill=\"currentColor\"/></svg>",
    "expand-less": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M5 13l2.3 2.3-2.89 2.87 1.42 1.42L8.7 16.7 11 19v-6H5zm14-2l-2.3-2.3 2.89-2.87-1.42-1.42L15.3 7.3 13 5v6h6z\" fill=\"currentColor\"/></svg>",
    "expand-more": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M14 4l2.3 2.3-2.89 2.87 1.42 1.42L17.7 7.7 20 10V4h-6zm-4 16l-2.3-2.3 2.89-2.87-1.42-1.42L6.3 16.3 4 14v6h6z\" fill=\"currentColor\"/></svg>",
    "file-error": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M19 14v6.571c0 .786-.714 1.429-1.5 1.429h-14c-.786 0-1.5-.714-1.5-1.5v-17C2 2.714 2.714 2 3.5 2H9v1.5H3.5v17h14V14H19zM6 18.5h9V17H6v1.5zm0-3h9V14H6v1.5zm0-3h4V11H6v1.5zm0-3h3V8H6v1.5zM19 1a3 3 0 0 1 3 3v5a3 3 0 0 1-3 3h-5a3 3 0 0 1-3-3V4a3 3 0 0 1 3-3h5zm-.058 2L16.5 5.442 14.057 3 13 4.058 15.443 6.5 13 8.943 14.057 10 16.5 7.558 18.942 10 20 8.943 17.558 6.5 20 4.058 18.942 3z\" fill=\"currentColor\"/></svg>",
    "file-fill": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M14 4l4 4v12H6V4h8zm6 16V7l-5-5H6c-1.25 0-2 .75-2 2v16c0 1.25.75 2 2 2h12c1.25 0 2-.75 2-2zm-4-2H8v-2h8v2zm0-3H8v-2h8v2zm0-3H8v-2h8v2zM8 8h4V6H8v2z\" fill=\"currentColor\"/></svg>",
    "file-outline": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M20 7v13.5c0 .786-.714 1.5-1.5 1.5h-13c-.786 0-1.5-.714-1.5-1.5v-17C4 2.714 4.714 2 5.5 2H15l5 5zm-2 .714h-3.571V4H6v16h12V7.714z\" fill=\"currentColor\"/></svg>",
    "file-success": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M19 14v6.571c0 .786-.714 1.429-1.5 1.429h-14c-.786 0-1.5-.714-1.5-1.5v-17C2 2.714 2.714 2 3.5 2H10L9 3.5H3.5v17h14V14H19zM6 18.5h9V17H6v1.5zm0-3h9V14H6v1.5zm0-3h5V11H6v1.5zm0-3h3V8H6v1.5zM16.5 12a5.5 5.5 0 1 0 0-11 5.5 5.5 0 0 0 0 11zM13 6.662l1.025-1.005 1.884 1.838L19.474 4 20.5 5.012l-4.59 4.5L13 6.662z\" fill=\"currentColor\"/></svg>",
    "filter": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M10 18h4v-2h-4v2zM3 6v2h18V6H3zm3 7h12v-2H6v2z\" fill=\"currentColor\"/></svg>",
    "flag": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M14.4 6L14 4H5v17h2v-7h5.6l.4 2h7V6h-5.6z\" fill=\"currentColor\"/></svg>",
    "folder-fill": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M10 4H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2h-8l-2-2z\" fill=\"currentColor\"/></svg>",
    "folder-outline": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M20 6h-8l-2-2H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm0 12H4V8h16v10z\" fill=\"currentColor\"/></svg>",
    "gateway": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M21.009 19.08C20.7 14.366 19.214 3 12.045 3c-4.068 0-6.306 3.658-7.538 7.684h2.111c.477-1.412 1.073-2.675 1.806-3.652.997-1.33 2.149-2.022 3.62-2.022 1.472 0 2.624.692 3.621 2.022 1.04 1.387 1.807 3.352 2.344 5.5.53 2.12.8 4.265.936 5.898.03.35-.25.65-.602.65H5.746a.602.602 0 0 1-.602-.65c.097-1.164.262-2.588.541-4.077H3.642a44.169 44.169 0 0 0-.561 4.726c-.073 1.109.82 2.01 1.93 2.01h14.066c1.111 0 2.004-.901 1.932-2.01z\" fill=\"currentColor\"/><path d=\"M12.857 13.384H3V11.71h9.857L9.859 8.703l1.18-1.18 5.025 5.024-5.024 5.025-1.181-1.181 2.998-3.006z\" fill=\"currentColor\"/></svg>",
    "gift-fill": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M5.856 6.447c.29.58.643 1.1 1.062 1.553H4a2 2 0 0 0-2 2v2h9V9h2v3h9v-2a2 2 0 0 0-2-2h-2.918a6.624 6.624 0 0 0 1.062-1.553C18.79 5.158 19 3.891 19 3V2h-1c-2.89 0-4.87 1.239-6 3.278C10.87 3.238 8.89 2 6 2H5v1c0 .891.211 2.158.856 3.447zm10.5-.894c.23-.463.396-.96.504-1.464-1.567.263-2.584 1.094-3.216 2.358-.185.37-.327.763-.432 1.163l-.072.3c1.567-.262 2.584-1.093 3.216-2.357zM7.14 4.089c.108.504.273 1.001.504 1.464.632 1.264 1.648 2.095 3.216 2.358l-.072-.301a6.008 6.008 0 0 0-.432-1.163C9.724 5.183 8.708 4.352 7.14 4.09z\" fill=\"currentColor\"/><path d=\"M11 14H3v6c0 1.473.895 2 2 2h6v-8zm2 8v-8h8v6c0 1.473-.895 2-2 2h-6z\" fill=\"currentColor\"/></svg>",
    "gift-outline": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M5.856 6.447c.29.58.643 1.1 1.062 1.553H4a2 2 0 0 0-2 2v4h1v6a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-6h1v-4a2 2 0 0 0-2-2h-2.918a6.624 6.624 0 0 0 1.062-1.553C18.79 5.158 19 3.891 19 3V2h-1c-2.89 0-4.87 1.239-6 3.278C10.87 3.238 8.89 2 6 2H5v1c0 .891.211 2.158.856 3.447zM13 20h6v-6h-6v6zm0-8h7v-2h-7v2zm-2-2H4v2h7v-2zm0 4v6H5v-6h6zm5.356-8.447c.23-.463.396-.96.504-1.464-1.567.263-2.584 1.094-3.216 2.358-.185.37-.327.763-.432 1.163l-.072.3c1.567-.262 2.584-1.093 3.216-2.357zM7.14 4.089c.108.504.273 1.001.504 1.464.632 1.264 1.648 2.095 3.216 2.358l-.072-.301a6.008 6.008 0 0 0-.432-1.163C9.724 5.183 8.708 4.352 7.14 4.09z\" fill=\"currentColor\"/></svg>",
    "git-branch": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M16.286 9.699a1.556 1.556 0 0 1-1.543-1.543c0-.836.707-1.543 1.543-1.543.835 0 1.543.707 1.543 1.543 0 .835-.708 1.543-1.543 1.543zM8.57 19.984a1.556 1.556 0 0 1-1.542-1.543c0-.835.707-1.542 1.542-1.542.836 0 1.543.707 1.543 1.542 0 .836-.707 1.543-1.543 1.543zm0-15.955c.849 0 1.543.707 1.543 1.542 0 .836-.707 1.543-1.543 1.543a1.564 1.564 0 0 1-1.54-1.543c0-.835.707-1.542 1.542-1.542zm10.286 4.114a2.562 2.562 0 0 0-2.571-2.572A2.562 2.562 0 0 0 15 10.354v.386c-.026.669-.296 1.26-.81 1.774-.514.515-1.106.785-1.774.81-1.067.026-1.903.206-2.572.58V7.783A2.563 2.563 0 0 0 8.56 3 2.552 2.552 0 0 0 6 5.571a2.571 2.571 0 0 0 1.286 2.212v8.434C6.527 16.667 6 17.49 6 18.43A2.563 2.563 0 0 0 8.571 21a2.563 2.563 0 0 0 2.572-2.571c0-.682-.257-1.286-.682-1.749.116-.077.618-.526.759-.604.321-.142.72-.219 1.209-.219 1.35-.064 2.507-.578 3.535-1.607 1.029-1.029 1.543-2.546 1.607-3.883h-.025c.784-.463 1.311-1.286 1.311-2.224z\" fill=\"currentColor\"/></svg>",
    "git-commit": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 14.971a2.82 2.82 0 0 1-2.829-2.828A2.82 2.82 0 0 1 12 9.314a2.82 2.82 0 0 1 2.829 2.829A2.82 2.82 0 0 1 12 14.97zm4.963-4.114C16.384 8.646 14.39 7 12 7s-4.384 1.646-4.963 3.857H3v2.572h4.037C7.616 15.64 9.61 17.286 12 17.286s4.384-1.646 4.963-3.857H21v-2.572h-4.037z\" fill=\"currentColor\"/></svg>",
    "git-pull-request": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M7.398 8.04c-.792 0-1.44-.66-1.44-1.44 0-.78.66-1.44 1.44-1.44.78 0 1.44.66 1.44 1.44 0 .78-.66 1.44-1.44 1.44zm1.44 10.56c0 .792-.66 1.44-1.44 1.44-.78 0-1.44-.66-1.44-1.44 0-.781.66-1.44 1.44-1.44.78 0 1.44.659 1.44 1.44zm.96-12c0-1.332-1.068-2.4-2.4-2.4a2.391 2.391 0 0 0-1.2 4.464v7.872A2.39 2.39 0 0 0 7.398 21a2.39 2.39 0 0 0 1.2-4.464V8.664a2.386 2.386 0 0 0 1.2-2.064zm7.2 13.44c-.792 0-1.44-.66-1.44-1.44 0-.781.66-1.44 1.44-1.44.78 0 1.44.659 1.44 1.44 0 .78-.66 1.44-1.44 1.44zm1.2-3.504V9c-.035-.936-.407-1.764-1.128-2.472-.72-.708-1.536-1.092-2.472-1.128h-1.2V3l-3.6 3.6 3.6 3.6V7.8h1.2c.324.024.576.132.829.372.252.24.36.504.372.828v7.536a2.392 2.392 0 0 0 1.2 4.464 2.39 2.39 0 0 0 1.2-4.464z\" fill=\"currentColor\"/></svg>",
    "git-repository": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M20 19V4c0-1-1-2-2-2H6C5 2 4 3 4 4v15c0 1 1 2 2 2h1v3l2-2 2 2v-3h7c1 0 2-1 2-2zM9 5H7v2h2V5zM7 8h2v2H7V8zm0 3h2v2H7v-2zm11 5H6v3h1v-2h4v2h7v-3zM6 4h12v11H6V4z\" fill=\"currentColor\"/></svg>",
    "guide": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M18 11h2v9.5c0 .786-.714 1.5-1.5 1.5h-13c-.786 0-1.5-.714-1.5-1.5V4c0-1.5.5-2 2-2h7l-.975.975L11 4H6v16h12v-9zM8 18h8v-2H8v2zm0-3h8v-2H8v2zm0-3h6v-2H8v2zm13-5c.17.502.42.92.75 1.25.33.33.747.58 1.25.75a3.124 3.124 0 0 0-1.25.75A3.123 3.123 0 0 0 21 11c-.17-.504-.42-.92-.75-1.25-.33-.33-.746-.58-1.25-.75.5-.167.917-.417 1.25-.75.333-.333.583-.75.75-1.25zm-4-7c.406 1.24 1.03 2.28 1.875 3.125.844.844 1.886 1.47 3.125 1.875-1.259.425-2.3 1.05-3.125 1.875C18.05 7.7 17.425 8.741 17 10c-.417-1.25-1.042-2.292-1.875-3.125C14.292 6.042 13.25 5.417 12 5c1.264-.43 2.305-1.055 3.125-1.875C15.945 2.305 16.57 1.264 17 0zm-6 6v2H8V6h3zm6-3c-.167.5-.417.917-.75 1.25-.333.333-.75.583-1.25.75.504.17.92.42 1.25.75.33.33.58.746.75 1.25.165-.498.415-.915.75-1.25A3.124 3.124 0 0 1 19 5a3.16 3.16 0 0 1-1.25-.75c-.33-.33-.58-.748-.75-1.25z\" fill=\"currentColor\"/></svg>",
    "health": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M9.5 8.5l5 10.5 3.5-6h4v-2h-5l-2.5 4.5L9.5 5 6 11H2v2h5l2.5-4.5z\" fill=\"currentColor\"/></svg>",
    "help-circle-fill": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 17h-2v-2h2v2zm2.07-7.75l-.9.92C13.45 12.9 13 13.5 13 15h-2v-.5c0-1.1.45-2.1 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41 0-1.1-.9-2-2-2s-2 .9-2 2H8c0-2.21 1.79-4 4-4s4 1.79 4 4c0 .88-.36 1.68-.93 2.25z\" fill=\"currentColor\"/></svg>",
    "help-circle-outline": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M11 18h2v-2h-2v2zm1-16C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8zm0-14c-2.21 0-4 1.79-4 4h2c0-1.1.9-2 2-2s2 .9 2 2c0 2-3 1.75-3 5h2c0-2.25 3-2.5 3-5 0-2.21-1.79-4-4-4z\" fill=\"currentColor\"/></svg>",
    "history": "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"8\" height=\"8\" viewBox=\"0 0 8 8\"><path d=\"M0 0v4h4V0H0zm5 2v3H2v1h4V2H5zm2 2v3H4v1h4V4H7z\"/></svg>",
    "info-circle-fill": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10S2 17.543 2 12 6.486 2 12 2zm1.429 10.014a1.555 1.555 0 0 0-.443-.985c-.286-.272-.6-.429-.986-.443h-1.429c-.385.028-.685.185-.985.443a1.456 1.456 0 0 0-.443.985h1.428V16.3c.029.386.158.714.443.986.286.285.6.443.986.443h1.429c.385 0 .685-.158.985-.443.286-.272.429-.6.443-.986H13.43V12v.014zM11 7.73a1.345 1.345 0 0 1-.4-1c0-.4.129-.743.4-1 .271-.258.6-.4 1-.4s.743.128 1 .4c.257.271.4.6.4 1s-.129.742-.4 1a1.433 1.433 0 0 1-1 .428c-.4 0-.743-.157-1-.428z\" fill=\"currentColor\"/></svg>",
    "info-circle-outline": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 2c5.514 0 10 4.486 10 10s-4.486 10-10 10S2 17.543 2 12 6.486 2 12 2zm0 1.886c-4.486 0-8.143 3.628-8.143 8.114 0 4.486 3.657 8.143 8.143 8.143 4.486 0 8.143-3.643 8.143-8.143 0-4.5-3.657-8.129-8.143-8.129v.015zm1.429 8.128a1.555 1.555 0 0 0-.443-.985c-.286-.272-.6-.429-.986-.443h-1.429c-.385.028-.685.185-.985.443a1.456 1.456 0 0 0-.443.985h1.428V16.3c.029.386.158.714.443.986.286.285.6.443.986.443h1.429c.385 0 .685-.158.985-.443.286-.272.429-.6.443-.986H13.43V12v.014zM11 8.73a1.345 1.345 0 0 1-.4-1c0-.4.129-.743.4-1 .271-.258.6-.4 1-.4s.743.128 1 .4c.257.271.4.6.4 1s-.129.742-.4 1a1.433 1.433 0 0 1-1 .428c-.4 0-.743-.157-1-.428z\" fill=\"currentColor\"/></svg>",
    "key": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M21 18v3h-2.969L17 20v-2h-2v-2h-2l-4-4 3.052-3L21 18zM10 6L8 4 5.003 5 4 8l2 2 4-4zm-4.217 7.839L1.132 9.188l1.702-6.354 6.354-1.702 4.65 4.65-1.702 6.354-6.353 1.703z\" fill=\"currentColor\"/></svg>",
    "layers": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12.815 18.637l-.101.029c-.169.043-.34.064-.51.064h-.1l-.09-.007a1.74 1.74 0 0 1-.319-.054l-.061-.01-.163-.058c-.108-.043-3.833-1.667-6.675-2.907l-2.559 1.328a.422.422 0 0 0-.184.149.329.329 0 0 0-.044.256v.01a.38.38 0 0 0 .055.117c.006.008.006.018.013.026l.007.007c.018.021.042.038.066.056a.488.488 0 0 0 .078.057c.002 0 .005.004.007.005.128.059 9.629 4.205 9.76 4.258.01.005.02.004.03.007a.51.51 0 0 0 .315.012l.023-.008c.03-.01.062-.015.09-.03l9.319-4.833c.015-.006.023-.019.036-.026a.469.469 0 0 0 .125-.115c.008-.011.02-.018.026-.03.007-.011.006-.023.012-.034a.372.372 0 0 0 .029-.151.323.323 0 0 0-.013-.072.343.343 0 0 0-.03-.076c-.006-.011-.006-.023-.013-.034-.008-.01-.02-.018-.03-.028a.445.445 0 0 0-.134-.106c-.014-.007-.023-.018-.037-.024l-2.479-1.082-6.128 3.178a1.403 1.403 0 0 1-.321.126z\" fill=\"currentColor\"/><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12.819 13.873l-.095.028a2.1 2.1 0 0 1-.531.067h-.073l-.106-.008c-.1-.006-.22-.027-.342-.06l-.056-.01-.145-.05a2798 2798 0 0 1-6.674-2.909l-2.56 1.33a.423.423 0 0 0-.184.148.33.33 0 0 0-.044.257v.01c.011.041.03.079.055.116.006.008.006.017.013.026.002.004.005.005.007.007.018.021.042.039.066.057.025.02.049.041.078.056l.007.005c.128.06 9.629 4.206 9.76 4.26.01.003.02.002.03.006a.506.506 0 0 0 .135.028l.033.001a.542.542 0 0 0 .17-.026c.03-.01.062-.014.09-.03l9.319-4.832c.015-.008.023-.019.036-.027a.414.414 0 0 0 .125-.115c.008-.01.02-.018.026-.03.007-.01.006-.022.012-.034a.362.362 0 0 0 .029-.15.311.311 0 0 0-.013-.072.333.333 0 0 0-.03-.076c-.006-.012-.006-.023-.013-.034-.008-.011-.02-.018-.03-.028a.412.412 0 0 0-.134-.107c-.014-.007-.023-.017-.037-.024l-2.478-1.082-6.129 3.178a1.462 1.462 0 0 1-.317.124z\" fill=\"currentColor\"/><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12.029 2.045c-.018-.008-.036-.01-.053-.015A.45.45 0 0 0 11.79 2a.44.44 0 0 0-.182.04c-.01.005-.023.005-.034.01-.123.064-8.853 4.87-9.338 5.141a.433.433 0 0 0-.184.157.37.37 0 0 0-.044.273v.01c.011.045.03.085.055.124.006.01.006.02.013.029l.007.006c.018.024.042.041.066.06.025.022.049.044.078.06a5453.121 5453.121 0 0 0 9.766 4.528c.011.004.021.004.031.007a.482.482 0 0 0 .315.012l.023-.008c.03-.01.062-.016.09-.033l9.319-5.13c.015-.008.023-.02.036-.029a.464.464 0 0 0 .125-.122c.008-.011.02-.019.026-.032.007-.011.006-.023.012-.035a.435.435 0 0 0 .03-.161.345.345 0 0 0-.013-.076.367.367 0 0 0-.03-.081c-.006-.012-.006-.024-.013-.035-.008-.013-.02-.02-.03-.03a.457.457 0 0 0-.134-.113c-.014-.008-.023-.02-.037-.026l-9.714-4.501z\" fill=\"currentColor\"/></svg>",
    "leader": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 15.074l3.605 2.176-.957-4.1 3.185-2.76-4.194-.356L12 6.167l-1.64 3.867-4.193.356 3.185 2.76-.957 4.1L12 15.074z\" fill=\"currentColor\"/><path d=\"M12 22C6.477 22 2 17.523 2 12h-4c0 7.732 6.268 14 14 14v-4zm10-10c0 5.523-4.477 10-10 10v4c7.732 0 14-6.268 14-14h-4zM12 2c5.523 0 10 4.477 10 10h4c0-7.732-6.268-14-14-14v4zm0-4C4.268-2-2 4.268-2 12h4C2 6.477 6.477 2 12 2v-4z\" fill=\"currentColor\"/></svg>",
    "learn": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M12.409 5.273l8.915 3.958c.46.204.676.681.676 1.108 0 .427-.216.904-.676 1.108l-3.111 1.381v3.767c0 .145-.05.279-.134.385-.157.35-.434.633-.743.858-.377.274-.855.502-1.39.684-1.073.365-2.462.578-3.963.578-1.5 0-2.89-.213-3.962-.578-.536-.182-1.014-.41-1.39-.684-.31-.225-.586-.509-.744-.858a.618.618 0 0 1-.133-.385v-2.824l.029-.945L5.5 12.5c-.38.525-.897 1.436-1.023 2.536a1.122 1.122 0 0 1 .007 1.912 3.343 3.343 0 0 1-.039.813h.028c0 .004.003.028.016.074.015.052.04.119.077.196.074.156.186.333.327.497.3.35.628.533.9.533L5.014 20c-.346 0-.726-.252-1.14-.756-.583.504-1.04.756-1.374.756l-.404-.987c.37 0 .703-.266.938-.812.112-.26.181-.546.207-.806a1.62 1.62 0 0 0-.017-.496 1.121 1.121 0 0 1 .329-1.976c.134-1.173.522-2.041.942-2.668l-1.819-.808C2.216 11.243 2 10.766 2 10.34c0-.427.216-.904.676-1.108l8.915-3.958c.262-.116.556-.116.818 0v-.001zm-.432 3.745l-5.52 2.749L12 14.227l8.758-3.888L12 6.45l-8.758 3.89 2.11.937L11 8.5l.977.518zm4.994 4.362l-4.562 2.025a1.003 1.003 0 0 1-.818 0L7.01 13.371l-.013.429v2.6a.531.531 0 0 1 .008.027c.022.079.107.224.358.407.244.178.6.356 1.059.512.917.313 2.167.512 3.562.512s2.645-.2 3.563-.512c.46-.156.814-.334 1.058-.512.251-.183.336-.328.358-.407a.61.61 0 0 1 .009-.027l-.001-3.02zM17 2.5V1h6v6h-1.5V3.429L18.25 6.75 17 6l3.5-3.5H17z\" fill=\"currentColor\"/></svg>",
    "link": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M20.073 10.015l-2.294 2.294a3.063 3.063 0 0 1-2.25.926c-.897 0-1.661-.323-2.294-.97l-.97.97c.647.633.97 1.401.97 2.305 0 .883-.305 1.63-.915 2.24l-2.272 2.282c-.61.625-1.36.938-2.25.938-.883 0-1.629-.305-2.24-.915l-1.62-1.61C3.312 17.863 3 17.117 3 16.234c0-.882.309-1.632.926-2.25l2.295-2.294a3.063 3.063 0 0 1 2.25-.926c.897 0 1.661.323 2.294.97l.97-.97a3.102 3.102 0 0 1-.97-2.305c0-.883.305-1.63.915-2.24l2.272-2.282c.61-.626 1.36-.938 2.25-.938.883 0 1.629.305 2.24.915l1.62 1.61c.625.611.938 1.357.938 2.24 0 .882-.309 1.632-.927 2.25zm-9.436 4.83l-.204.21a6.67 6.67 0 0 1-.237.238 2.61 2.61 0 0 1-.209.166.886.886 0 0 1-.583.182c-.294 0-.543-.103-.749-.31a1.025 1.025 0 0 1-.308-.75.89.89 0 0 1 .182-.586 2.482 2.482 0 0 1 .401-.448l.21-.205A1.062 1.062 0 0 0 8.346 13c-.301 0-.55.1-.749.298l-2.29 2.299a1.025 1.025 0 0 0-.308.751c0 .287.103.534.308.74l1.619 1.614c.212.199.462.298.748.298.294 0 .543-.103.749-.31l2.268-2.287c.205-.206.308-.456.308-.751 0-.31-.121-.578-.363-.807zm8.055-7.944l-1.619-1.614A1.058 1.058 0 0 0 16.325 5c-.301 0-.55.1-.749.298l-2.268 2.288a1.025 1.025 0 0 0-.308.751c0 .31.121.578.363.807l.204-.21c.114-.118.193-.197.237-.238a2.61 2.61 0 0 1 .209-.166.885.885 0 0 1 .583-.182c.294 0 .543.103.749.31.205.206.308.456.308.75a.89.89 0 0 1-.182.586 2.482 2.482 0 0 1-.401.448l-.21.204c.22.236.485.354.793.354.294 0 .543-.103.749-.31l2.29-2.298c.205-.206.308-.456.308-.751 0-.287-.103-.534-.308-.74z\" fill=\"currentColor\"/></svg>",
    "loading": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" class=\"structure-icon-loading\"><g stroke=\"currentColor\" stroke-width=\"3\"><path class=\"structure-icon-loading-progress\" d=\"M12 5l6 3v8l-6 3-6-3V8l6-3z\"/><path class=\"structure-icon-loading-base\" d=\"M12 5l6 3v8l-6 3-6-3V8l6-3z\"/></g></svg>",
    "lock-closed-fill": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M18 8.5h-1v-2c0-2.76-2.24-5-5-5s-5 2.24-5 5v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2v-10c0-1.1-.9-2-2-2zm-2.9 0H8.9v-2c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1v2z\" fill=\"currentColor\"/></svg>",
    "lock-closed-outline": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M17 8.5h1c1.1 0 2 .9 2 2v10c0 1.1-.9 2-2 2H6c-1.1 0-2-.9-2-2v-10c0-1.1.9-2 2-2h1v-2c0-2.76 2.24-5 5-5s5 2.24 5 5v2zm-8.1-2v2h6.2v-2c0-1.71-1.39-3.1-3.1-3.1-1.71 0-3.1 1.39-3.1 3.1zm9.1 14v-10H6v10h12z\" fill=\"currentColor\"/></svg>",
    "lock-closed": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zm-2.9 0H8.9V6c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1v2z\" fill=\"currentColor\"/></svg>",
    "lock-disabled": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M21 21.78L4.22 5 3 6.22l2.04 2.04C4.42 8.6 4 9.25 4 10v10c0 1.1.9 2 2 2h12c.23 0 .45-.05.66-.12L19.78 23 21 21.78zM8.9 6c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1v2H9.66L20 18.34V10c0-1.1-.9-2-2-2h-1V6c0-2.76-2.24-5-5-5-2.56 0-4.64 1.93-4.94 4.4L8.9 7.24V6z\" fill=\"currentColor\"/></svg>",
    "lock-open-outline": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M22.5 8.5v-2c0-2.76-2.24-5-5-5s-5 2.24-5 5v2h-9c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2v-10c0-1.1-.9-2-2-2h-1.1v-2c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1v2h1.9zm-19 12h12v-10h-12v10z\" fill=\"currentColor\"/></svg>",
    "lock-open": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M18 8.5h-1v-2c0-2.76-2.24-5-5-5s-5 2.24-5 5h1.9c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2v-10c0-1.1-.9-2-2-2zm0 12H6v-10h12v10z\" fill=\"currentColor\"/></svg>",
    "logo-alicloud-color": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M13.488 6.072c0 .131.426 1.745.473 1.783.014.021 1.044.248 2.271.504 1.227.256 2.326.517 2.423.57.132.074.243.18.322.307.12.203.136.423.136 2.774 0 2.352-.015 2.572-.136 2.777a.96.96 0 0 1-.322.306c-.097.051-1.185.307-2.423.57-1.237.263-2.249.487-2.271.51-.047.044-.466 1.65-.473 1.781 0 .082.54.096 2.91.074 3.27-.029 3.307-.036 4.139-.581a3.356 3.356 0 0 0 1.29-1.644c.172-.49.172-.534.172-3.78 0-3.245 0-3.293-.171-3.779a3.339 3.339 0 0 0-1.291-1.642c-.832-.548-.869-.556-4.14-.582-2.37-.036-2.91-.026-2.91.052zm-2.976 11.893c0-.13-.427-1.744-.473-1.782-.015-.022-1.045-.249-2.272-.505-1.227-.255-2.325-.517-2.422-.57a.885.885 0 0 1-.323-.306c-.12-.204-.135-.423-.135-2.775s.015-2.571.135-2.776a.96.96 0 0 1 .323-.307c.097-.05 1.185-.307 2.422-.57 1.237-.263 2.25-.487 2.272-.509.046-.045.466-1.65.473-1.782 0-.081-.54-.096-2.91-.074-3.27.03-3.308.036-4.14.582a3.356 3.356 0 0 0-1.29 1.644C2 8.725 2 8.768 2 12.014s0 3.294.172 3.78a3.34 3.34 0 0 0 1.29 1.642c.832.548.87.555 4.14.581 2.37.037 2.91.027 2.91-.052z\" fill=\"#373C41\"/><path fill=\"#373C41\" d=\"M9.917 11.681h4.167v.812H9.917z\"/></svg>",
    "logo-alicloud-monochrome": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M10.512 17.965c0-.13-.427-1.744-.473-1.782-.015-.022-1.045-.249-2.272-.505-1.227-.255-2.325-.517-2.422-.57a.884.884 0 0 1-.323-.306c-.12-.204-.135-.423-.135-2.775s.014-2.571.135-2.776a.96.96 0 0 1 .323-.307c.097-.051 1.185-.307 2.422-.57 1.237-.263 2.25-.487 2.272-.509.046-.045.466-1.65.473-1.782 0-.081-.54-.096-2.91-.074-3.27.03-3.308.036-4.14.582a3.355 3.355 0 0 0-1.29 1.644C2 8.725 2 8.768 2 12.014s0 3.294.172 3.78a3.34 3.34 0 0 0 1.29 1.642c.832.548.87.555 4.14.581 2.37.037 2.91.027 2.91-.052zm2.976-11.893c0 .131.426 1.745.473 1.783.014.021 1.044.248 2.271.504 1.227.256 2.326.517 2.423.57.132.074.243.18.322.307.12.203.136.422.136 2.774s-.015 2.572-.136 2.777a.96.96 0 0 1-.322.306c-.097.051-1.185.307-2.423.57-1.237.263-2.249.487-2.271.51-.047.044-.466 1.65-.473 1.781 0 .082.54.096 2.91.074 3.27-.029 3.307-.036 4.139-.581a3.356 3.356 0 0 0 1.29-1.644c.172-.49.172-.534.172-3.78 0-3.245 0-3.293-.171-3.779a3.34 3.34 0 0 0-1.291-1.642c-.832-.548-.869-.556-4.14-.582-2.37-.036-2.91-.026-2.91.052zm.595 5.61H9.917v.81h4.166v-.81z\" fill=\"currentColor\"/></svg>",
    "logo-auth0-color": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M19.805 8.562L17.983 3h-5.885l1.82 5.562h5.887zM12.098 3H6.214L4.396 8.562h5.885L12.098 3zM4.396 8.562a8.003 8.003 0 0 0 0 4.975 8.053 8.053 0 0 0 2.942 4.025L9.157 12l-4.76-3.438zm15.406 0L15.038 12l1.818 5.562a8.053 8.053 0 0 0 2.946-4.024c.53-1.616.53-3.358.003-4.976h-.003zm-12.464 9L12.1 21l4.76-3.438-4.76-3.438-4.76 3.438z\" fill=\"#EB5424\"/></svg>",
    "logo-auth0-monochrome": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M19.805 8.562L17.983 3h-5.885l1.82 5.562h5.887zM12.098 3H6.214L4.396 8.562h5.885L12.098 3zM4.396 8.562a8.003 8.003 0 0 0 0 4.975 8.053 8.053 0 0 0 2.942 4.025L9.157 12l-4.76-3.438zm15.406 0L15.038 12l1.818 5.562a8.053 8.053 0 0 0 2.946-4.024c.53-1.616.53-3.358.003-4.976h-.003zm-12.464 9L12.1 21l4.76-3.438-4.76-3.438-4.76 3.438z\" fill=\"currentColor\"/></svg>",
    "logo-aws-color": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M17.775 12.113c.331.08.675.119 1.02.119.337 0 .649-.047.947-.14.284-.085.53-.205.735-.37.205-.16.364-.358.483-.583.113-.225.172-.483.172-.768 0-.345-.099-.656-.304-.927-.206-.272-.55-.484-1.027-.636l-.94-.298c-.351-.113-.596-.238-.729-.364a.625.625 0 0 1-.198-.47c0-.272.106-.464.311-.59.205-.126.503-.185.88-.185.471 0 .895.086 1.272.258.113.053.199.08.252.08.1 0 .152-.073.152-.213v-.31a.356.356 0 0 0-.06-.22.572.572 0 0 0-.198-.165 1.448 1.448 0 0 0-.278-.12 5.14 5.14 0 0 0-.378-.105 6.985 6.985 0 0 0-.43-.073 3.325 3.325 0 0 0-.444-.026c-.291 0-.57.033-.834.112a2.1 2.1 0 0 0-.689.345 1.704 1.704 0 0 0-.477.543 1.476 1.476 0 0 0-.179.735c0 .344.113.669.332.96.218.298.576.523 1.06.675l.96.298c.324.106.55.219.668.345.12.126.18.278.18.463 0 .272-.12.484-.345.63-.225.145-.55.218-.967.218-.265 0-.523-.026-.788-.08a3.606 3.606 0 0 1-.729-.231l-.067-.028c-.039-.016-.073-.03-.098-.038a.376.376 0 0 0-.12-.02c-.099 0-.152.066-.152.205v.338c0 .06.014.126.04.185.026.06.1.126.205.186.172.099.43.185.762.265zM7.728 10.92a2.003 2.003 0 0 1-.072-.59h-.014V8.185c0-.728-.185-1.271-.55-1.629-.37-.357-.946-.536-1.734-.536-.365 0-.709.04-1.033.126a3.8 3.8 0 0 0-.835.298.496.496 0 0 0-.185.139c-.033.046-.047.126-.047.232v.324c0 .14.047.205.14.205a.373.373 0 0 0 .105-.02 1.9 1.9 0 0 0 .232-.086c.232-.092.47-.165.715-.225s.484-.086.716-.086c.51 0 .867.1 1.079.305.205.205.311.556.311 1.06v.483a8.993 8.993 0 0 0-.761-.146 5.244 5.244 0 0 0-.702-.053c-.682 0-1.219.172-1.623.517-.404.344-.602.801-.602 1.364 0 .53.165.954.49 1.271.324.318.768.477 1.324.477.782 0 1.43-.304 1.947-.914.073.153.14.278.205.391.067.106.146.212.239.311.066.06.132.093.199.093.053 0 .112-.02.172-.06l.417-.278c.086-.066.126-.132.126-.198 0-.047-.013-.1-.047-.153a3.547 3.547 0 0 1-.212-.476zm-2.079.298a2.159 2.159 0 0 1-.682.119c-.305 0-.537-.08-.695-.245-.166-.16-.246-.391-.246-.702 0-.331.106-.583.325-.762.219-.179.543-.265.987-.265a5.324 5.324 0 0 1 1.232.153v.278c0 .225-.027.417-.067.576-.04.159-.119.298-.225.424-.179.198-.39.344-.629.424zm4.636.834c-.12 0-.199-.02-.252-.066-.053-.04-.1-.133-.139-.258l-1.556-5.12a1.16 1.16 0 0 1-.06-.265c0-.106.053-.165.16-.165h.648c.126 0 .212.02.258.066.053.04.093.132.133.258l1.112 4.384 1.034-4.384c.033-.132.072-.218.125-.258a.456.456 0 0 1 .265-.066h.53c.126 0 .212.02.265.066.053.04.1.132.126.258l1.046 4.437 1.146-4.437c.04-.132.086-.218.132-.258a.432.432 0 0 1 .259-.066h.616c.105 0 .165.053.165.165a.536.536 0 0 1-.01.09l-.003.016a.949.949 0 0 1-.047.166l-1.596 5.12c-.04.131-.086.218-.139.257a.424.424 0 0 1-.251.067h-.57c-.126 0-.212-.02-.265-.067-.053-.046-.1-.132-.126-.264l-1.026-4.272-1.02 4.265c-.033.132-.073.218-.126.265-.053.046-.146.066-.265.066h-.57z\" fill=\"#252F3E\"/><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M18.404 14.331c.709-.086 2.271-.271 2.55.086.278.351-.312 1.828-.576 2.484-.08.198.092.278.271.125 1.166-.98 1.47-3.026 1.232-3.324-.239-.291-2.285-.543-3.53.331-.192.14-.159.325.053.298zm-6.424 3.583c2.722 0 5.888-.854 8.066-2.464.358-.265.047-.668-.317-.503a19.665 19.665 0 0 1-7.517 1.536c-3.583 0-7.046-.986-9.854-2.615-.245-.146-.43.105-.226.29 2.596 2.345 6.034 3.756 9.848 3.756z\" fill=\"#F90\"/></svg>",
    "logo-aws-monochrome": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M18.825 12.535c-.346 0-.692-.042-1.025-.125-.332-.084-.592-.174-.765-.278a.488.488 0 0 1-.206-.195.51.51 0 0 1-.04-.194v-.355c0-.146.053-.216.153-.216.04 0 .08.007.12.021l.098.04.068.03c.226.104.472.188.732.243.266.056.525.083.791.083.42 0 .745-.076.971-.229a.757.757 0 0 0 .346-.66.694.694 0 0 0-.18-.487c-.119-.132-.345-.25-.671-.361l-.964-.313c-.486-.16-.845-.397-1.065-.71a1.705 1.705 0 0 1-.332-1.008c0-.292.06-.549.18-.771.119-.223.279-.417.478-.57.2-.16.426-.278.692-.362.266-.083.545-.118.838-.118.146 0 .3.007.446.028.153.02.292.048.432.076.133.035.26.07.38.112.119.041.212.083.279.125.093.055.16.11.2.173a.397.397 0 0 1 .059.23v.327c0 .146-.053.222-.153.222a.67.67 0 0 1-.253-.083 2.93 2.93 0 0 0-1.277-.271c-.38 0-.678.062-.885.194-.206.132-.312.334-.312.619a.67.67 0 0 0 .2.494c.132.132.378.264.731.382l.945.313c.479.16.824.382 1.03.667.207.285.307.612.307.973 0 .3-.06.57-.173.807-.12.236-.28.445-.486.612a2.11 2.11 0 0 1-.738.389 3.05 3.05 0 0 1-.951.146zM7.636 10.54c0 .257.027.466.073.619.054.152.12.32.213.5a.312.312 0 0 1 .047.16c0 .07-.04.139-.127.208l-.419.293a.31.31 0 0 1-.173.062c-.066 0-.133-.035-.2-.097a2.146 2.146 0 0 1-.239-.327 5.477 5.477 0 0 1-.206-.41c-.519.64-1.17.96-1.955.96-.56 0-1.005-.168-1.33-.501-.327-.334-.493-.779-.493-1.335 0-.591.2-1.07.605-1.432.406-.362.945-.543 1.63-.543.226 0 .459.021.705.056.246.035.499.09.765.153v-.508c0-.528-.106-.896-.313-1.112-.212-.215-.572-.32-1.084-.32-.233 0-.472.028-.718.09a5.135 5.135 0 0 0-.719.237 1.855 1.855 0 0 1-.232.09.392.392 0 0 1-.107.021c-.093 0-.14-.07-.14-.215v-.34c0-.112.014-.196.047-.244a.501.501 0 0 1 .186-.146 3.71 3.71 0 0 1 .838-.313c.326-.09.672-.132 1.038-.132.792 0 1.37.188 1.743.563.366.375.552.946.552 1.71v2.253h.013zm-2.7 1.057c.22 0 .445-.042.685-.126a1.48 1.48 0 0 0 .632-.445 1.12 1.12 0 0 0 .226-.444c.04-.167.066-.369.066-.605v-.292a5.34 5.34 0 0 0-.612-.119 4.799 4.799 0 0 0-.625-.041c-.446 0-.772.09-.991.278-.22.188-.326.452-.326.8 0 .326.08.57.246.736.16.174.393.258.699.258zm5.088.68c.053.05.133.07.253.07h.572c.12 0 .213-.02.266-.07.053-.048.093-.138.127-.277l1.024-4.477 1.03 4.484c.027.139.074.23.127.278.053.048.14.07.266.07h.572c.114 0 .2-.029.253-.07.053-.042.1-.132.14-.271l1.603-5.374a1.03 1.03 0 0 0 .046-.174l.003-.018a.537.537 0 0 0 .01-.093c0-.119-.06-.174-.165-.174h-.62a.42.42 0 0 0-.258.07c-.047.041-.094.131-.134.27l-1.15 4.658-1.051-4.658c-.027-.132-.074-.229-.127-.27-.053-.05-.14-.07-.266-.07h-.532a.443.443 0 0 0-.266.07c-.053.041-.093.131-.126.27l-1.038 4.603L9.465 6.52c-.04-.132-.08-.229-.133-.27-.046-.05-.133-.07-.259-.07h-.652c-.106 0-.16.062-.16.174 0 .048.02.139.06.278l1.563 5.374c.04.132.087.23.14.27zm10.969 2.552c-.28-.375-1.85-.18-2.561-.09-.213.028-.246-.167-.053-.313 1.25-.918 3.306-.653 3.545-.348.24.313-.066 2.462-1.237 3.49-.18.16-.353.077-.273-.132.266-.688.858-2.238.579-2.607zm-.911 1.085c-2.189 1.69-5.368 2.586-8.102 2.586-3.832 0-7.284-1.48-9.891-3.942-.207-.194-.02-.459.226-.306 2.82 1.71 6.299 2.746 9.898 2.746 2.428 0 5.095-.528 7.55-1.613.365-.173.678.25.319.529z\" fill=\"currentColor\"/></svg>",
    "logo-azure-color": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M11.105 18.43l4.642-.82.043-.01-2.387-2.84a402.878 402.878 0 0 1-2.387-2.853c0-.014 2.465-6.802 2.479-6.826.004-.008 1.682 2.888 4.066 7.02l4.09 7.09.031.054-7.587-.001-7.587-.001 4.597-.812zM2 17.565c0-.004 1.125-1.957 2.5-4.34L7 8.893l2.913-2.445A981.363 981.363 0 0 1 12.836 4a.515.515 0 0 1-.047.118l-3.164 6.785-3.107 6.663-2.259.003c-1.242.002-2.259 0-2.259-.004z\" fill=\"#0089D6\"/></svg>",
    "logo-azure-dev-ops-color": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M20 6.188v10.348l-4.25 3.485-6.588-2.401V20l-3.729-4.877 10.87.85V6.655L20 6.187zm-3.623.52L10.278 3v2.433l-5.6 1.647L3 9.237v4.898l2.401 1.063v-6.28l10.976-2.21z\" fill=\"url(#paint0_linear)\"/><defs><linearGradient id=\"paint0_linear\" x1=\"11.5\" y1=\"19.968\" x2=\"11.5\" y2=\"3.032\" gradientUnits=\"userSpaceOnUse\"><stop stop-color=\"#0078D4\"/><stop offset=\".16\" stop-color=\"#1380DA\"/><stop offset=\".53\" stop-color=\"#3C91E5\"/><stop offset=\".82\" stop-color=\"#559CEC\"/><stop offset=\"1\" stop-color=\"#5EA0EF\"/></linearGradient></defs></svg>",
    "logo-azure-dev-ops-monochrome": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M20 6.188v10.348l-4.25 3.485-6.588-2.401V20l-3.729-4.877 10.87.85V6.655L20 6.187zm-3.623.52L10.278 3v2.433l-5.6 1.647L3 9.237v4.898l2.401 1.063v-6.28l10.976-2.21z\" fill=\"currentColor\"/></svg>",
    "logo-azure-monochrome": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M4.54 13.682C3.143 16.183 2 18.232 2 18.237c0 .004 1.033.006 2.296.004l2.295-.003 3.158-6.993 3.214-7.121A.555.555 0 0 0 13.011 4c-.006.002-1.342 1.159-2.97 2.57L7.08 9.136l-2.54 4.546zm11.429 4.601c-.025.006-2.147.394-4.716.862l-4.672.853h7.71L22 20l-.032-.057-4.155-7.44c-2.423-4.337-4.128-7.377-4.133-7.369-.014.026-2.519 7.15-2.519 7.165 0 .008 1.092 1.355 2.426 2.994l2.426 2.98-.044.01z\" fill=\"currentColor\"/></svg>",
    "logo-bitbucket-color": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M2.175 3.24a.63.63 0 0 1 .48-.22l18.394.003a.63.63 0 0 1 .623.73l-2.656 16.39a.632.632 0 0 1-.622.53H5.534a.858.858 0 0 1-.832-.704L2.032 3.75a.628.628 0 0 1 .143-.509zm7.632 11.502h4.114l.994-5.786H8.71l1.096 5.787z\" fill=\"#2684FF\"/><path d=\"M20.833 8.956H14.93l-.983 5.787H9.806l-4.823 5.733a.856.856 0 0 0 .55.207h12.86a.632.632 0 0 0 .622-.53l1.817-11.197z\" fill=\"url(#paint0_linear)\"/><defs><linearGradient id=\"paint0_linear\" x1=\"17.051\" y1=\"6.958\" x2=\"10.234\" y2=\"16.66\" gradientUnits=\"userSpaceOnUse\"><stop offset=\".18\" stop-color=\"#0052CC\"/><stop offset=\"1\" stop-color=\"#2684FF\"/></linearGradient></defs></svg>",
    "logo-bitbucket-monochrome": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M2.175 3.24a.63.63 0 0 1 .48-.22l18.394.003a.63.63 0 0 1 .623.73l-2.656 16.39a.632.632 0 0 1-.622.53H5.534a.858.858 0 0 1-.832-.704L2.032 3.75a.628.628 0 0 1 .143-.509zm7.632 11.502h4.114l.994-5.786H8.71l1.096 5.787z\" fill=\"currentColor\"/></svg>",
    "logo-f5-color": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M20.253 6.354c-.123.506-.187 1.031-.305 1.568a56.737 56.737 0 0 0-5.24-.406c-.16.502-.31.993-.482 1.53 3.311.204 4.92 1.076 5.875 2.104.928 1.04 1.125 2.19 1.071 3.256-.12 1.734-.884 2.83-1.933 3.642-1.061.8-2.345 1.197-3.373 1.283-1.515.114-3.542-.247-3.973-.511-.26-.59-.516-1.186-.791-1.835-.067-.138-.11-.28.08-.445.295-.282.578-.556.877-.845.132-.13.278-.25.389-.065.407.629.79 1.206 1.172 1.78.434.641 1.096 1.226 2.543 1.128 1.215-.108 2.14-1.028 2.238-2.04.107-1.872-1.788-3.2-6.713-3.625.945-2.853 1.867-5.614 2.603-7.809 1.17.054 2.253.15 3.288.283.765.097 1.476.276 2.19.358A9.978 9.978 0 0 0 11.998 2C6.477 2 2 6.477 2 12a9.953 9.953 0 0 0 1.947 5.926c.423.003.717-.091.749-.274.039-.191.006-.487-.027-.785a45.912 45.912 0 0 1-.196-6.204c-.507.022-.962.045-1.399.07.018-.392.04-.764.07-1.152.432-.041.888-.077 1.39-.12.021-.338.046-.665.075-.996.225-2.025 2.357-3.263 4.134-3.741.788-.192 1.27-.253 1.648-.273.137-.004.284-.01.431-.01.368 0 .742.035.979.196.383.287.761.573 1.164.89.04.055.084.14-.016.287-.185.217-.363.423-.551.646-.108.131-.288.096-.44.055a46.47 46.47 0 0 0-.93-.46c-.56-.25-1.14-.506-1.785-.48-.403.032-.793.444-.833 1.007a84.509 84.509 0 0 0-.125 2.69 142.94 142.94 0 0 1 3.412-.057l-.001.788c-.384.171-.746.345-1.131.52-.794.009-1.55.015-2.31.028-.036 2.266-.002 4.523.1 6.61.02.315.035.634.125.848.109.269.733.476 2.092.553.005.236.012.46.02.689-2.212-.065-4.337-.276-6.04-.583A9.968 9.968 0 0 0 12 22c5.524 0 10-4.477 10-10a9.952 9.952 0 0 0-1.746-5.646z\" fill=\"#E4002B\"/></svg>",
    "logo-f5-monochrome": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M20.253 6.354c-.123.506-.187 1.031-.305 1.568a56.737 56.737 0 0 0-5.24-.406c-.16.502-.31.993-.482 1.53 3.311.204 4.92 1.076 5.875 2.104.928 1.04 1.125 2.19 1.071 3.256-.12 1.734-.884 2.83-1.933 3.642-1.061.8-2.345 1.197-3.373 1.283-1.515.114-3.542-.247-3.973-.511-.26-.59-.516-1.186-.791-1.835-.067-.138-.11-.28.08-.445.295-.282.578-.556.877-.845.132-.13.278-.25.389-.065.407.629.79 1.206 1.172 1.78.434.641 1.096 1.226 2.543 1.128 1.215-.108 2.14-1.028 2.238-2.04.107-1.872-1.788-3.2-6.713-3.625.945-2.853 1.867-5.614 2.603-7.809 1.17.054 2.253.15 3.288.283.765.097 1.476.276 2.19.358A9.978 9.978 0 0 0 11.998 2C6.477 2 2 6.477 2 12a9.953 9.953 0 0 0 1.947 5.926c.423.003.717-.091.749-.274.039-.191.006-.487-.027-.785a45.912 45.912 0 0 1-.196-6.204c-.507.022-.962.045-1.399.07.018-.392.04-.764.07-1.152.432-.041.888-.077 1.39-.12.021-.338.046-.665.075-.996.225-2.025 2.357-3.263 4.134-3.741.788-.192 1.27-.253 1.648-.273.137-.004.284-.01.431-.01.368 0 .742.035.979.196.383.287.761.573 1.164.89.04.055.084.14-.016.287-.185.217-.363.423-.551.646-.108.131-.288.096-.44.055a46.47 46.47 0 0 0-.93-.46c-.56-.25-1.14-.506-1.785-.48-.403.032-.793.444-.833 1.007a84.509 84.509 0 0 0-.125 2.69 142.94 142.94 0 0 1 3.412-.057l-.001.788c-.384.171-.746.345-1.131.52-.794.009-1.55.015-2.31.028-.036 2.266-.002 4.523.1 6.61.02.315.035.634.125.848.109.269.733.476 2.092.553.005.236.012.46.02.689-2.212-.065-4.337-.276-6.04-.583A9.968 9.968 0 0 0 12 22c5.524 0 10-4.477 10-10a9.952 9.952 0 0 0-1.746-5.646z\" fill=\"currentColor\"/></svg>",
    "logo-gcp-color": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M14.61 7.904h.605l1.727-1.728.085-.733a7.764 7.764 0 0 0-12.63 3.788.94.94 0 0 1 .606-.036l3.455-.57s.175-.291.266-.273a4.309 4.309 0 0 1 5.897-.448h-.012z\" fill=\"#EA4335\"/><path d=\"M19.403 9.231a7.782 7.782 0 0 0-2.345-3.782l-2.425 2.424a4.309 4.309 0 0 1 1.582 3.419v.43a2.158 2.158 0 0 1 0 4.315H11.9l-.43.436v2.588l.43.43h4.315a5.612 5.612 0 0 0 3.188-10.26z\" fill=\"#4285F4\"/><path d=\"M7.579 19.467h4.315v-3.454H7.58a2.14 2.14 0 0 1-.891-.194l-.606.188-1.74 1.727-.151.606a5.582 5.582 0 0 0 3.388 1.127z\" fill=\"#34A853\"/><path d=\"M7.579 8.261a5.612 5.612 0 0 0-3.388 10.06l2.503-2.502a2.158 2.158 0 1 1 2.855-2.855l2.503-2.503a5.606 5.606 0 0 0-4.473-2.2z\" fill=\"#FBBC05\"/></svg>",
    "logo-gcp-monochrome": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M14.752 8.406h-.05a4.355 4.355 0 0 0-5.934.449c-.015-.003-.032.002-.05.013 1.34.26 2.554.999 3.399 2.097l-2.52 2.504a2.174 2.174 0 0 0-2.285-1.248 2.165 2.165 0 0 0-1.843 1.833 2.156 2.156 0 0 0 1.255 2.271l-.001.002c.28.127.584.192.892.192h4.343v.03l.006-.005h4.343c1.2 0 2.172-.967 2.172-2.16a2.165 2.165 0 0 0-2.172-2.158v-.43a4.301 4.301 0 0 0-1.555-3.39zM4.212 18.823l-.007.025a5.64 5.64 0 0 0 3.41 1.128h4.325l.024.024h4.343c2.49.02 4.7-1.585 5.438-3.949a5.598 5.598 0 0 0-2.23-6.317 7.78 7.78 0 0 0-2.36-3.784l-.035.035.005-.04a7.849 7.849 0 0 0-7.416-1.617 7.79 7.79 0 0 0-5.296 5.406.948.948 0 0 1 .123-.04 5.595 5.595 0 0 0-.33 9.136l.005-.006z\" fill=\"currentColor\"/></svg>",
    "logo-github-color": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 2C6.478 2 2 6.59 2 12.253c0 4.53 2.865 8.374 6.839 9.73.5.094.683-.223.683-.494 0-.244-.01-1.052-.014-1.909-2.782.62-3.369-1.21-3.369-1.21-.455-1.185-1.11-1.5-1.11-1.5-.907-.636.068-.623.068-.623 1.005.072 1.533 1.056 1.533 1.056.892 1.568 2.34 1.115 2.91.853.09-.663.35-1.115.635-1.371-2.221-.26-4.556-1.139-4.556-5.067 0-1.12.39-2.034 1.03-2.752-.103-.259-.446-1.302.097-2.714 0 0 .84-.275 2.751 1.051A9.363 9.363 0 0 1 12 6.958c.85.004 1.706.118 2.505.345 1.909-1.326 2.748-1.05 2.748-1.05.544 1.411.201 2.454.098 2.713.64.718 1.029 1.632 1.029 2.752 0 3.938-2.34 4.805-4.566 5.059.358.318.678.942.678 1.898 0 1.372-.012 2.476-.012 2.814 0 .273.18.593.687.492 3.971-1.357 6.833-5.2 6.833-9.728C22 6.59 17.523 2 12 2z\" fill=\"#161514\"/></svg>",
    "logo-github-monochrome": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 2C6.478 2 2 6.59 2 12.253c0 4.53 2.865 8.374 6.839 9.73.5.094.683-.223.683-.494 0-.244-.01-1.052-.014-1.909-2.782.62-3.369-1.21-3.369-1.21-.455-1.185-1.11-1.5-1.11-1.5-.907-.636.068-.623.068-.623 1.005.072 1.533 1.056 1.533 1.056.892 1.568 2.34 1.115 2.91.853.09-.663.35-1.115.635-1.371-2.221-.26-4.556-1.139-4.556-5.067 0-1.12.39-2.034 1.03-2.752-.103-.259-.446-1.302.097-2.714 0 0 .84-.275 2.751 1.051A9.363 9.363 0 0 1 12 6.958c.85.004 1.706.118 2.505.345 1.909-1.326 2.748-1.05 2.748-1.05.544 1.411.201 2.454.098 2.713.64.718 1.029 1.632 1.029 2.752 0 3.938-2.34 4.805-4.566 5.059.358.318.678.942.678 1.898 0 1.372-.012 2.476-.012 2.814 0 .273.18.593.687.492 3.971-1.357 6.833-5.2 6.833-9.728C22 6.59 17.523 2 12 2z\" fill=\"currentColor\"/></svg>",
    "logo-gitlab-color": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M21.95 13.292L20.833 9.93l-2.214-6.673a.382.382 0 0 0-.363-.255.382.382 0 0 0-.363.255l-2.214 6.668H8.32L6.106 3.256A.382.382 0 0 0 5.744 3a.382.382 0 0 0-.363.256l-2.21 6.668-1.12 3.368a.736.736 0 0 0 .276.833L12 21l9.671-6.875a.738.738 0 0 0 .28-.833z\" fill=\"#FC6D26\"/><path d=\"M12 20.995l3.678-11.071H8.324L12 20.994z\" fill=\"#E24329\"/><path d=\"M12 20.995L8.32 9.924H3.174L12 20.994z\" fill=\"#FC6D26\"/><path d=\"M3.169 9.927l-1.12 3.364a.736.736 0 0 0 .276.833L12 21 3.169 9.927z\" fill=\"#FCA326\"/><path d=\"M3.17 9.927h5.155L6.107 3.26a.382.382 0 0 0-.364-.256.382.382 0 0 0-.363.256L3.17 9.927z\" fill=\"#E24329\"/><path d=\"M12 20.995l3.678-11.071h5.156L12 20.994z\" fill=\"#FC6D26\"/><path d=\"M20.83 9.927l1.12 3.364a.735.735 0 0 1-.276.833L12 20.994l8.828-11.067h.003z\" fill=\"#FCA326\"/><path d=\"M20.833 9.927H15.68l2.214-6.667a.381.381 0 0 1 .363-.256c.165 0 .311.103.363.256l2.214 6.667z\" fill=\"#E24329\"/></svg>",
    "logo-gitlab-monochrome": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M21.937 13.292l-1.12-3.364-2.213-6.672A.382.382 0 0 0 18.24 3a.382.382 0 0 0-.363.256l-2.215 6.668H8.307L6.092 3.256A.382.382 0 0 0 5.73 3a.382.382 0 0 0-.363.256l-2.21 6.668-1.12 3.368a.736.736 0 0 0 .276.833L11.986 21l9.67-6.875a.738.738 0 0 0 .28-.833z\" fill=\"currentColor\"/></svg>",
    "logo-google-color": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M21 11.713c0-.624-.05-1.252-.159-1.866h-8.66v3.536h4.96a4.25 4.25 0 0 1-1.836 2.79v2.294h2.959c1.737-1.6 2.736-3.96 2.736-6.754z\" fill=\"#4285F4\"/><path d=\"M12.181 20.683c2.477 0 4.565-.813 6.086-2.216l-2.958-2.294c-.823.56-1.886.877-3.124.877-2.396 0-4.426-1.616-5.155-3.789H3.977v2.365a9.183 9.183 0 0 0 8.204 5.057z\" fill=\"#34A853\"/><path d=\"M7.026 13.261a5.5 5.5 0 0 1 0-3.515V7.381h-3.05a9.19 9.19 0 0 0 0 8.245l3.05-2.365z\" fill=\"#FBBC04\"/><path d=\"M12.181 5.954a4.99 4.99 0 0 1 3.523 1.376l2.62-2.62a8.824 8.824 0 0 0-6.143-2.39 9.18 9.18 0 0 0-8.204 5.061l3.05 2.365c.725-2.176 2.76-3.792 5.154-3.792z\" fill=\"#EA4335\"/></svg>",
    "logo-google-monochrome": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M15.704 7.33a4.99 4.99 0 0 0-3.523-1.376c-2.395 0-4.43 1.616-5.154 3.792a5.5 5.5 0 0 0 0 3.515h.003c.729 2.173 2.76 3.789 5.155 3.789 1.236 0 2.298-.316 3.12-.875v-.002a4.25 4.25 0 0 0 1.836-2.79h-4.96V9.847h8.66A10.8 10.8 0 0 1 21 11.713c0 2.792-.998 5.153-2.734 6.752l.001.002c-1.521 1.403-3.61 2.216-6.086 2.216a9.183 9.183 0 0 1-8.204-5.057 9.19 9.19 0 0 1 0-8.245 9.18 9.18 0 0 1 8.204-5.06 8.824 8.824 0 0 1 6.144 2.388L15.704 7.33z\" fill=\"currentColor\"/></svg>",
    "logo-kubernetes-color": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M7.011 21.384c.306.397.759.616 1.238.616l7.508-.014c.479 0 .932-.233 1.238-.616l4.659-5.959a1.69 1.69 0 0 0 .306-1.397l-1.664-7.439a1.612 1.612 0 0 0-.865-1.11l-6.736-3.3A1.517 1.517 0 0 0 12.003 2c-.24 0-.48.055-.692.164L4.575 5.48c-.44.22-.759.617-.865 1.11l-1.664 7.438c-.12.494 0 1 .306 1.398l4.659 5.959zm12.154-8.145h.014c.253.07.408.295.408.464a.474.474 0 0 1-.45.324c-.043 0-.07 0-.113-.014-.014-.014-.028-.014-.042-.014-.014 0-.028-.004-.042-.007a.168.168 0 0 0-.043-.007 1.357 1.357 0 0 1-.253-.099.434.434 0 0 1-.063-.028c-.021-.01-.043-.021-.064-.028h-.014c-.267-.099-.506-.183-.732-.211h-.028a.254.254 0 0 0-.142.047l-.04.023c-.008 0-.011.004-.015.007a.016.016 0 0 1-.014.007l-.169-.028c-.14.436-.338.873-.591 1.267a5.453 5.453 0 0 1-1.858 1.816l.07.169c0 .007-.003.01-.007.014-.003.003-.007.007-.007.014l-.01.043a.31.31 0 0 0-.004.182c.067.2.196.399.34.622l.026.04v.014a.786.786 0 0 0 .042.056c.014.018.028.035.042.056.057.07.113.141.155.226.014.014.028.042.043.07 0 .007.003.01.007.014.003.004.007.007.007.014.056.113.056.24.028.352a.42.42 0 0 1-.211.253.375.375 0 0 1-.17.043.478.478 0 0 1-.422-.268s-.014-.014-.014-.028l-.02-.035a.192.192 0 0 1-.022-.035.9.9 0 0 1-.06-.17l-.024-.084-.043-.127v-.014l-.023-.062a4.334 4.334 0 0 0-.272-.641.26.26 0 0 0-.183-.127c-.008-.008-.012-.012-.016-.013l-.012-.001-.085-.155a6.1 6.1 0 0 1-.732.211 5.11 5.11 0 0 1-1.224.141 5.5 5.5 0 0 1-1.971-.366l-.099.183a.064.064 0 0 1-.015.013l-.013.001a.628.628 0 0 1-.036.017.29.29 0 0 0-.147.11c-.112.174-.18.37-.262.608l-.033.096-.043.126-.025.081c-.015.054-.03.107-.059.173a.307.307 0 0 0-.042.07s-.014.014-.014.028a.506.506 0 0 1-.423.268.375.375 0 0 1-.169-.043c-.21-.098-.295-.366-.183-.605 0 0 .015-.014.015-.028a.306.306 0 0 1 .042-.07l.041-.063c.038-.058.072-.11.114-.163l.042-.056a.783.783 0 0 0 .042-.056v-.014c.155-.24.282-.45.366-.662a.29.29 0 0 0-.028-.225c0-.007-.004-.01-.007-.014-.004-.004-.007-.007-.007-.014l.084-.183a5.706 5.706 0 0 1-.605-.409 5.567 5.567 0 0 1-1.844-2.646l-.197.028c-.007 0-.01-.003-.014-.007-.004-.003-.007-.007-.014-.007l-.01-.006a.292.292 0 0 0-.173-.064h-.028c-.226.028-.465.113-.732.211h-.014c-.022.007-.043.018-.064.028a.504.504 0 0 1-.063.028c-.085.043-.155.07-.253.099a.173.173 0 0 0-.043.007c-.014.003-.028.007-.042.007 0 .014-.014.014-.028.014-.042.014-.07.014-.113.014-.225 0-.408-.127-.45-.324a.462.462 0 0 1 .366-.52c.014-.015.028-.015.042-.015a.177.177 0 0 0 .042-.007.173.173 0 0 1 .043-.007l.036-.005a1.61 1.61 0 0 1 .231-.023c.042-.014.099-.014.14-.014h.015c.295-.028.549-.056.76-.127a.327.327 0 0 0 .155-.154c0-.008.003-.011.007-.014.003-.004.007-.008.007-.015l.183-.056a5.482 5.482 0 0 1 .788-3.716.277.277 0 0 1 .046-.078.836.836 0 0 0 .025-.035l-.141-.126v-.028c0-.07 0-.141-.07-.212-.162-.148-.363-.27-.602-.417l-.032-.019a.573.573 0 0 0-.127-.07 2.12 2.12 0 0 1-.239-.141c-.014-.007-.025-.018-.035-.028a.138.138 0 0 0-.035-.028c-.007 0-.011-.004-.014-.007-.004-.004-.008-.007-.015-.007-.197-.17-.239-.45-.098-.634a.4.4 0 0 1 .324-.155c.112 0 .225.042.31.113 0 .009.005.012.012.016l.015.012a.436.436 0 0 0 .047.038c.01.007.018.012.024.018.07.07.127.127.183.197.029.02.051.045.071.069l.027.03c.197.211.38.394.563.52a.227.227 0 0 0 .127.043c.014 0 .028-.004.042-.007a.177.177 0 0 1 .043-.007h.028l.14.098a5.426 5.426 0 0 1 3.548-1.689l.014-.183.028-.028.016-.016a.262.262 0 0 0 .097-.167c.022-.18 0-.376-.024-.591a14.75 14.75 0 0 1-.019-.169v-.014a.827.827 0 0 1-.013-.07.418.418 0 0 0-.015-.07.818.818 0 0 1-.042-.268V4.82c0-.127.042-.24.127-.324a.452.452 0 0 1 .31-.14c.239 0 .436.21.436.464v.127c-.014.098-.029.183-.043.267a.503.503 0 0 0-.028.141v.014l-.005.056c-.027.26-.05.494-.037.704.012.087.057.13.097.168l.016.015.028.028.014.183a5.621 5.621 0 0 1 2.942 1.169c.197.169.394.338.577.535l.169-.113h.028c.028.014.056.014.084.014a.227.227 0 0 0 .127-.042c.183-.127.366-.296.563-.507a.363.363 0 0 0 .072-.068.511.511 0 0 1 .027-.03c.056-.07.112-.127.183-.198a.136.136 0 0 0 .035-.028c.01-.01.021-.02.035-.028l.028-.028a.523.523 0 0 1 .31-.113.4.4 0 0 1 .324.155c.14.183.098.465-.099.634 0 .008-.005.012-.013.016-.004.003-.01.006-.015.012a.436.436 0 0 1-.047.038 2.111 2.111 0 0 1-.263.16.549.549 0 0 1-.063.034.496.496 0 0 0-.063.035l-.032.02c-.24.146-.44.268-.602.417a.318.318 0 0 0-.07.21v.029l-.14.127c.365.563.633 1.182.787 1.844a5.57 5.57 0 0 1 .099 1.984l.183.057c0 .007.003.01.007.014.003.003.007.007.007.014a.274.274 0 0 0 .155.155c.225.07.464.098.76.126h.014c.056.014.099.014.14.014.075 0 .148.011.231.023l.037.006c.014 0 .028.003.042.007a.178.178 0 0 0 .043.007c0 .014.014.014.028.014zm-7.123-.394l.62-.296.14-.662-.422-.535h-.69l-.422.535.155.662.62.296zm4.293-1.76c.113.479.141.957.099 1.422l-2.154-.62a.382.382 0 0 1-.267-.45.335.335 0 0 1 .084-.155l1.704-1.534c.239.394.422.844.534 1.337zm-3.054-.873l1.844-1.309A4.272 4.272 0 0 0 12.59 7.68l.127 2.294c.014.056.028.113.07.155a.375.375 0 0 0 .493.084zM11.043 7.75l.225-.042.225-.042-.126 2.252a.385.385 0 0 1-.38.366.335.335 0 0 1-.17-.042l-1.871-1.34a4.294 4.294 0 0 1 2.098-1.154zm-1.098 3.49L8.27 9.749a4.532 4.532 0 0 0-.634 2.759l2.182-.634a.28.28 0 0 0 .17-.112.375.375 0 0 0-.043-.521zM7.89 13.563l2.238-.38a.38.38 0 0 1 .394.296.401.401 0 0 1-.014.225l-.859 2.07a4.437 4.437 0 0 1-1.76-2.21zm4.152 2.914c.338 0 .662-.042.986-.112.062-.02.124-.035.185-.05.077-.02.152-.04.223-.063l-1.084-1.957a.599.599 0 0 0-.169-.154c-.155-.085-.338-.029-.45.098l-1.113 2.013c.451.14.93.225 1.422.225zm3.73-2.069a4.467 4.467 0 0 1-1.35 1.365l-.888-2.125a.379.379 0 0 1 .197-.436.449.449 0 0 1 .197-.043l2.253.38a2.83 2.83 0 0 1-.409.859z\" fill=\"#326DE6\"/></svg>",
    "logo-kubernetes-monochrome": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M7.011 21.384c.306.397.759.616 1.238.616l7.508-.014c.479 0 .932-.233 1.238-.616l4.659-5.959a1.69 1.69 0 0 0 .306-1.397l-1.664-7.439a1.612 1.612 0 0 0-.865-1.11l-6.736-3.3A1.517 1.517 0 0 0 12.003 2c-.24 0-.48.055-.692.164L4.575 5.48c-.44.22-.759.617-.865 1.11l-1.664 7.438c-.12.494 0 1 .306 1.398l4.659 5.959zm12.154-8.145h.014c.253.07.408.295.408.464a.474.474 0 0 1-.45.324c-.043 0-.07 0-.113-.014-.014-.014-.028-.014-.042-.014-.014 0-.028-.004-.042-.007a.168.168 0 0 0-.043-.007 1.357 1.357 0 0 1-.253-.099.434.434 0 0 1-.063-.028c-.021-.01-.043-.021-.064-.028h-.014c-.267-.099-.506-.183-.732-.211h-.028a.254.254 0 0 0-.142.047l-.04.023c-.008 0-.011.004-.015.007a.016.016 0 0 1-.014.007l-.169-.028c-.14.436-.338.873-.591 1.267a5.453 5.453 0 0 1-1.858 1.816l.07.169c0 .007-.003.01-.007.014-.003.003-.007.007-.007.014l-.01.043a.31.31 0 0 0-.004.182c.067.2.196.399.34.622l.026.04v.014a.786.786 0 0 0 .042.056c.014.018.028.035.042.056.057.07.113.141.155.226.014.014.028.042.043.07 0 .007.003.01.007.014.003.004.007.007.007.014.056.113.056.24.028.352a.42.42 0 0 1-.211.253.375.375 0 0 1-.17.043.478.478 0 0 1-.422-.268s-.014-.014-.014-.028l-.02-.035a.192.192 0 0 1-.022-.035.9.9 0 0 1-.06-.17l-.024-.084-.043-.127v-.014l-.023-.062a4.334 4.334 0 0 0-.272-.641.26.26 0 0 0-.183-.127c-.008-.008-.012-.012-.016-.013l-.012-.001-.085-.155a6.1 6.1 0 0 1-.732.211 5.11 5.11 0 0 1-1.224.141 5.5 5.5 0 0 1-1.971-.366l-.099.183a.064.064 0 0 1-.015.013l-.013.001a.628.628 0 0 1-.036.017.29.29 0 0 0-.147.11c-.112.174-.18.37-.262.608l-.033.096-.043.126-.025.081c-.015.054-.03.107-.059.173a.307.307 0 0 0-.042.07s-.014.014-.014.028a.506.506 0 0 1-.423.268.375.375 0 0 1-.169-.043c-.21-.098-.295-.366-.183-.605 0 0 .015-.014.015-.028a.306.306 0 0 1 .042-.07l.041-.063c.038-.058.072-.11.114-.163l.042-.056a.783.783 0 0 0 .042-.056v-.014c.155-.24.282-.45.366-.662a.29.29 0 0 0-.028-.225c0-.007-.004-.01-.007-.014-.004-.004-.007-.007-.007-.014l.084-.183a5.706 5.706 0 0 1-.605-.409 5.567 5.567 0 0 1-1.844-2.646l-.197.028c-.007 0-.01-.003-.014-.007-.004-.003-.007-.007-.014-.007l-.01-.006a.292.292 0 0 0-.173-.064h-.028c-.226.028-.465.113-.732.211h-.014c-.022.007-.043.018-.064.028a.504.504 0 0 1-.063.028c-.085.043-.155.07-.253.099a.173.173 0 0 0-.043.007c-.014.003-.028.007-.042.007 0 .014-.014.014-.028.014-.042.014-.07.014-.113.014-.225 0-.408-.127-.45-.324a.462.462 0 0 1 .366-.52c.014-.015.028-.015.042-.015a.177.177 0 0 0 .042-.007.173.173 0 0 1 .043-.007l.036-.005a1.61 1.61 0 0 1 .231-.023c.042-.014.099-.014.14-.014h.015c.295-.028.549-.056.76-.127a.327.327 0 0 0 .155-.154c0-.008.003-.011.007-.014.003-.004.007-.008.007-.015l.183-.056a5.482 5.482 0 0 1 .788-3.716.277.277 0 0 1 .046-.078.836.836 0 0 0 .025-.035l-.141-.126v-.028c0-.07 0-.141-.07-.212-.162-.148-.363-.27-.602-.417l-.032-.019a.573.573 0 0 0-.127-.07 2.12 2.12 0 0 1-.239-.141c-.014-.007-.025-.018-.035-.028a.138.138 0 0 0-.035-.028c-.007 0-.011-.004-.014-.007-.004-.004-.008-.007-.015-.007-.197-.17-.239-.45-.098-.634a.4.4 0 0 1 .324-.155c.112 0 .225.042.31.113 0 .009.005.012.012.016l.015.012a.436.436 0 0 0 .047.038c.01.007.018.012.024.018.07.07.127.127.183.197.029.02.051.045.071.069a3.733 3.733 0 0 0 .59.55.227.227 0 0 0 .127.043.177.177 0 0 0 .042-.007.161.161 0 0 1 .043-.007h.028l.14.098a5.426 5.426 0 0 1 3.548-1.689l.014-.183.028-.028.016-.016a.262.262 0 0 0 .097-.167c.022-.18 0-.376-.024-.591a14.75 14.75 0 0 1-.019-.169v-.014a.827.827 0 0 1-.013-.07.418.418 0 0 0-.015-.07.818.818 0 0 1-.042-.268V4.82c0-.127.042-.24.127-.324a.452.452 0 0 1 .31-.14c.239 0 .436.21.436.464v.127c-.014.098-.029.183-.043.267a.503.503 0 0 0-.028.141v.014l-.005.056c-.027.26-.05.494-.037.704.012.087.057.13.097.168l.016.015.028.028.014.183a5.621 5.621 0 0 1 2.942 1.169c.197.169.394.338.577.535l.169-.113h.028c.028.014.056.014.084.014a.227.227 0 0 0 .127-.042c.183-.127.366-.296.563-.507a.363.363 0 0 0 .072-.068.511.511 0 0 1 .027-.03c.056-.07.112-.127.183-.198a.136.136 0 0 0 .035-.028c.01-.01.021-.02.035-.028l.028-.028a.523.523 0 0 1 .31-.113.4.4 0 0 1 .324.155c.14.183.098.465-.099.634 0 .008-.005.012-.013.016-.004.003-.01.006-.015.012a.436.436 0 0 1-.047.038 2.111 2.111 0 0 1-.263.16.549.549 0 0 1-.063.034.496.496 0 0 0-.063.035l-.032.02c-.24.146-.44.268-.602.417a.318.318 0 0 0-.07.21v.029l-.14.127c.365.563.633 1.182.787 1.844a5.57 5.57 0 0 1 .099 1.984l.183.057c0 .007.003.01.007.014.003.003.007.007.007.014a.274.274 0 0 0 .155.155c.225.07.464.098.76.126h.014c.056.014.099.014.14.014.075 0 .148.011.231.023l.037.006c.014 0 .028.003.042.007a.178.178 0 0 0 .043.007c0 .014.014.014.028.014zm-7.123-.394l.62-.296.14-.662-.422-.535h-.69l-.422.535.155.662.62.296zm4.293-1.76c.113.479.141.957.099 1.422l-2.154-.62a.382.382 0 0 1-.267-.45.335.335 0 0 1 .084-.155l1.704-1.534c.239.394.422.844.534 1.337zm-3.054-.873l1.844-1.309A4.272 4.272 0 0 0 12.59 7.68l.127 2.294c.014.056.028.113.07.155a.375.375 0 0 0 .493.084zm-2.013-2.505l.225-.042-.126 2.252a.385.385 0 0 1-.38.366.335.335 0 0 1-.17-.042L8.946 8.902a4.294 4.294 0 0 1 2.098-1.154l.225-.042zM9.945 11.24L8.27 9.748a4.532 4.532 0 0 0-.634 2.759l2.182-.634a.28.28 0 0 0 .17-.112.375.375 0 0 0-.043-.521zM7.89 13.562l2.238-.38a.38.38 0 0 1 .394.296.401.401 0 0 1-.014.225l-.859 2.07a4.437 4.437 0 0 1-1.76-2.21zm4.152 2.914c.338 0 .662-.042.986-.112.062-.02.124-.035.185-.05.077-.02.152-.04.223-.063l-1.084-1.957a.599.599 0 0 0-.169-.154c-.155-.085-.338-.029-.45.098l-1.113 2.013c.451.14.93.225 1.422.225zm3.73-2.069a4.467 4.467 0 0 1-1.35 1.365l-.888-2.125a.379.379 0 0 1 .197-.436.449.449 0 0 1 .197-.043l2.253.38a2.83 2.83 0 0 1-.409.859z\" fill=\"currentColor\"/></svg>",
    "logo-microsoft-color": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M3 3h8.571v8.571H3V3z\" fill=\"#F35325\"/><path d=\"M12.429 3H21v8.571h-8.571V3z\" fill=\"#81BC06\"/><path d=\"M3 12.429h8.571V21H3v-8.571z\" fill=\"#05A6F0\"/><path d=\"M12.429 12.429H21V21h-8.571v-8.571z\" fill=\"#FFBA08\"/></svg>",
    "logo-microsoft-monochrome": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M3 3h8.571v8.571H3V3zm9.429 0H21v8.571h-8.571V3zM3 12.429h8.571V21H3v-8.571zm9.429 0H21V21h-8.571v-8.571z\" fill=\"currentColor\"/></svg>",
    "logo-okta-color": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M3.019 9.528a3.019 3.019 0 1 0 0 6.037 3.019 3.019 0 0 0 0-6.037zM14.166 7.5c.192 0 .261.144.261.238l.003 1.527c0 .158.128.273.285.273h1.36c.107 0 .226.102.226.285v.956c0 .18-.138.261-.237.261h-1.35a.28.28 0 0 0-.28.29v1.233c0 .027-.004.054-.003.081a1.506 1.506 0 0 0 1.737 1.41.242.242 0 0 1 .28.212l.108 1.011a.254.254 0 0 1-.22.278 3.02 3.02 0 0 1-3.422-2.909V7.733c0-.155.12-.232.248-.232h1.004zm5.654 2.028c.541 0 1.049.144 1.488.394v-.128c0-.155.135-.256.262-.256h1.006c.192 0 .262.162.262.256l.002 2.752v.01c.002 1.15.13 1.455.985 1.455.1 0 .175.1.175.2v1.074c0 .301-.645.28-.767.28-.712-.006-1.168-.293-1.452-.725a3.019 3.019 0 1 1-1.96-5.312zM8.062 7.5c.115 0 .258.065.258.24l.001 3.423c0 .245.3.363.467.183l1.606-1.73c.019-.018.046-.047.12-.068a.428.428 0 0 1 .117-.01h1.233c.252 0 .326.279.21.422l-1.793 1.99c-.293.311-.32.43-.064.737l.117.123 2.256 2.312c.117.143.041.426-.204.426h-1.361a.502.502 0 0 1-.13-.012c-.073-.022-.089-.051-.108-.07-.007-.007-1.258-1.324-2.01-2.094a.266.266 0 0 0-.457.186v1.751c0 .117-.102.23-.258.23h-1.01c-.115 0-.26-.048-.26-.223V7.719c0-.103.085-.219.26-.219h1.01zm-5.043 3.537a1.51 1.51 0 1 1 0 3.02 1.51 1.51 0 0 1 0-3.02zm16.802 0a1.51 1.51 0 1 0 0 3.019 1.51 1.51 0 0 0 0-3.02z\" fill=\"#007DC1\"/></svg>",
    "logo-okta-monochrome": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M3.019 9.528a3.019 3.019 0 1 0 0 6.037 3.019 3.019 0 0 0 0-6.037zM14.166 7.5c.192 0 .261.144.261.238l.003 1.527c0 .158.128.273.285.273h1.36c.107 0 .226.102.226.285v.956c0 .18-.138.261-.237.261h-1.35a.28.28 0 0 0-.28.29v1.233c0 .027-.004.054-.003.081a1.506 1.506 0 0 0 1.737 1.41.242.242 0 0 1 .28.212l.108 1.011a.254.254 0 0 1-.22.278 3.02 3.02 0 0 1-3.422-2.909V7.733c0-.155.12-.232.248-.232h1.004zm5.654 2.028c.541 0 1.049.144 1.488.394v-.128c0-.155.135-.256.262-.256h1.006c.192 0 .262.162.262.256l.002 2.752v.01c.002 1.15.13 1.455.985 1.455.1 0 .175.1.175.2v1.074c0 .301-.645.28-.767.28-.712-.006-1.168-.293-1.452-.725a3.019 3.019 0 1 1-1.96-5.312zM8.062 7.5c.115 0 .258.065.258.24l.001 3.423c0 .245.3.363.467.183l1.606-1.73c.019-.018.046-.047.12-.068a.428.428 0 0 1 .117-.01h1.233c.252 0 .326.279.21.422l-1.793 1.99c-.293.311-.32.43-.064.737l.117.123 2.256 2.312c.117.143.041.426-.204.426h-1.361a.502.502 0 0 1-.13-.012c-.073-.022-.089-.051-.108-.07-.007-.007-1.258-1.324-2.01-2.094a.266.266 0 0 0-.457.186v1.751c0 .117-.102.23-.258.23h-1.01c-.115 0-.26-.048-.26-.223V7.719c0-.103.085-.219.26-.219h1.01zm-5.043 3.537a1.51 1.51 0 1 1 0 3.02 1.51 1.51 0 0 1 0-3.02zm16.802 0a1.51 1.51 0 1 0 0 3.019 1.51 1.51 0 0 0 0-3.02z\" fill=\"currentColor\"/></svg>",
    "logo-oracle-color": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M2 12.316a6.32 6.32 0 0 0 6.326 6.316h7.348A6.32 6.32 0 0 0 22 12.316 6.32 6.32 0 0 0 15.674 6H8.326A6.32 6.32 0 0 0 2 12.316zm17.61 0a4.09 4.09 0 0 1-4.095 4.088H8.488a4.09 4.09 0 0 1-4.094-4.087A4.09 4.09 0 0 1 8.49 8.229h7.026a4.09 4.09 0 0 1 4.094 4.088z\" fill=\"#EA1B22\"/></svg>",
    "logo-oracle-monochrome": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M2 12.316a6.32 6.32 0 0 0 6.326 6.316h7.348A6.32 6.32 0 0 0 22 12.316 6.32 6.32 0 0 0 15.674 6H8.326A6.32 6.32 0 0 0 2 12.316zm17.61 0a4.09 4.09 0 0 1-4.095 4.088H8.488a4.09 4.09 0 0 1-4.094-4.087A4.09 4.09 0 0 1 8.49 8.229h7.026a4.09 4.09 0 0 1 4.094 4.088z\" fill=\"currentColor\"/></svg>",
    "logo-slack-color": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M4.177 16.694a2.085 2.085 0 0 0 2.081-2.081v-2.08H4.177a2.085 2.085 0 0 0-2.08 2.08 2.085 2.085 0 0 0 2.08 2.08zm5.21-4.161a2.085 2.085 0 0 0-2.08 2.08v5.21a2.086 2.086 0 0 0 2.08 2.08 2.086 2.086 0 0 0 2.08-2.08v-5.21a2.085 2.085 0 0 0-2.08-2.08z\" fill=\"#E01E5A\"/><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M7.306 4.178a2.085 2.085 0 0 0 2.081 2.08h2.08V4.177a2.085 2.085 0 0 0-2.08-2.08 2.085 2.085 0 0 0-2.08 2.08zm4.161 5.209a2.086 2.086 0 0 0-2.08-2.08h-5.21a2.085 2.085 0 0 0-2.08 2.08 2.085 2.085 0 0 0 2.08 2.08h5.21a2.086 2.086 0 0 0 2.08-2.08z\" fill=\"#36C5F0\"/><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M14.613 11.467a2.085 2.085 0 0 0 2.08-2.08v-5.21a2.086 2.086 0 0 0-2.08-2.08 2.085 2.085 0 0 0-2.08 2.08v5.21a2.085 2.085 0 0 0 2.08 2.08zm5.21-4.16a2.085 2.085 0 0 0-2.081 2.08v2.08h2.081a2.086 2.086 0 0 0 2.08-2.08 2.086 2.086 0 0 0-2.08-2.08z\" fill=\"#2EB67D\"/><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12.533 14.613a2.085 2.085 0 0 0 2.08 2.08h5.21a2.085 2.085 0 0 0 2.08-2.08 2.086 2.086 0 0 0-2.08-2.08h-5.21a2.085 2.085 0 0 0-2.08 2.08zm4.16 5.21a2.085 2.085 0 0 0-2.08-2.081h-2.08v2.081a2.085 2.085 0 0 0 2.08 2.08 2.085 2.085 0 0 0 2.08-2.08z\" fill=\"#ECB22E\"/></svg>",
    "logo-slack-monochrome": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M6.2 14.639a2.106 2.106 0 0 1-2.1 2.1 2.106 2.106 0 0 1-2.1-2.1 2.106 2.106 0 0 1 2.1-2.1h2.102v2.1h-.001zm1.061 0a2.106 2.106 0 0 1 2.1-2.1 2.106 2.106 0 0 1 2.1 2.1v5.26A2.106 2.106 0 0 1 9.36 22a2.106 2.106 0 0 1-2.101-2.1v-5.261h.001zm2.1-8.438a2.106 2.106 0 0 1-2.1-2.1A2.106 2.106 0 0 1 9.361 2a2.106 2.106 0 0 1 2.1 2.1v2.102h-2.1v-.001zm0 1.06a2.106 2.106 0 0 1 2.1 2.1 2.106 2.106 0 0 1-2.1 2.1h-5.26A2.106 2.106 0 0 1 2 9.36a2.106 2.106 0 0 1 2.1-2.1h5.262zm8.438 2.1a2.106 2.106 0 0 1 2.1-2.1A2.106 2.106 0 0 1 22 9.361a2.106 2.106 0 0 1-2.1 2.1h-2.102v-2.1h.001zm-1.06 0a2.106 2.106 0 0 1-2.1 2.1 2.106 2.106 0 0 1-2.1-2.1v-5.26A2.106 2.106 0 0 1 14.64 2a2.106 2.106 0 0 1 2.1 2.1v5.262zm-2.1 8.438a2.106 2.106 0 0 1 2.1 2.1 2.106 2.106 0 0 1-2.1 2.101 2.106 2.106 0 0 1-2.1-2.1v-2.102h2.1v.001zm0-1.06a2.106 2.106 0 0 1-2.1-2.1 2.106 2.106 0 0 1 2.1-2.1h5.26A2.106 2.106 0 0 1 22 14.64a2.106 2.106 0 0 1-2.1 2.101h-5.261v-.001z\" fill=\"currentColor\"/></svg>",
    "logo-vmware-color": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M4.096 8.663c-.251-.566-.873-.822-1.453-.558-.58.265-.795.927-.532 1.493l2.436 5.437c.383.852.787 1.298 1.545 1.298.81 0 1.163-.486 1.545-1.298l2.147-4.8a.308.308 0 0 1 .306-.202c.183 0 .336.15.336.352v4.645c0 .716.387 1.303 1.131 1.303s1.146-.587 1.146-1.303v-3.801c0-.733.512-1.21 1.21-1.21.697 0 1.16.494 1.16 1.21v3.801c0 .716.389 1.303 1.132 1.303.743 0 1.147-.587 1.147-1.303v-3.801c0-.733.51-1.21 1.208-1.21.696 0 1.162.494 1.162 1.21v3.801c0 .716.388 1.303 1.131 1.303.744 0 1.147-.587 1.147-1.303v-4.326C22 9.114 20.755 8 19.256 8c-1.497 0-2.434 1.063-2.434 1.063-.498-.663-1.185-1.062-2.347-1.062-1.227 0-2.3 1.062-2.3 1.062-.499-.663-1.348-1.062-2.05-1.062-1.087 0-1.95.491-2.477 1.727l-1.556 3.765-1.996-4.83z\" fill=\"#696566\"/></svg>",
    "logo-vmware-monochrome": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M4.096 8.663c-.251-.566-.873-.822-1.453-.558-.58.265-.795.927-.532 1.493l2.436 5.437c.383.852.787 1.298 1.545 1.298.81 0 1.163-.486 1.545-1.298l2.147-4.8a.308.308 0 0 1 .306-.202c.183 0 .336.15.336.352v4.645c0 .716.387 1.303 1.131 1.303s1.146-.587 1.146-1.303v-3.801c0-.733.512-1.21 1.21-1.21.697 0 1.16.494 1.16 1.21v3.801c0 .716.389 1.303 1.132 1.303.743 0 1.147-.587 1.147-1.303v-3.801c0-.733.51-1.21 1.208-1.21.696 0 1.162.494 1.162 1.21v3.801c0 .716.388 1.303 1.131 1.303.744 0 1.147-.587 1.147-1.303v-4.326C22 9.114 20.755 8 19.256 8c-1.497 0-2.434 1.063-2.434 1.063-.498-.663-1.185-1.062-2.347-1.062-1.227 0-2.3 1.062-2.3 1.062-.499-.663-1.348-1.062-2.05-1.062-1.087 0-1.95.491-2.477 1.727l-1.556 3.765-1.996-4.83z\" fill=\"currentColor\"/></svg>",
    "media-pause": "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"8\" height=\"8\" viewBox=\"0 0 8 8\"><path d=\"M1 1v6h2V1H1zm4 0v6h2V1H5z\"/></svg>",
    "media-play": "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"8\" height=\"8\" viewBox=\"0 0 8 8\"><path d=\"M1 1v6l6-3-6-3z\"/></svg>",
    "menu": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M4 18h16v-2H4v2zm0-5h16v-2H4v2zm0-7v2h16V6H4z\" fill=\"currentColor\"/></svg>",
    "mesh": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 22c-.249 0-.496-.01-.74-.027A3 3 0 0 1 6 20.001 9.985 9.985 0 0 1 2 12c0-1.75.45-3.394 1.239-4.825A3 3 0 0 1 7.175 3.24 9.955 9.955 0 0 1 12 2c1.146 0 2.247.193 3.272.547a3 3 0 0 1 4.608 3.295A9.957 9.957 0 0 1 22 12c0 .562-.046 1.113-.135 1.65a3 3 0 0 1-2.628 5.252A9.971 9.971 0 0 1 12 22zm5.563-4.25A7.974 7.974 0 0 1 12 20a2.99 2.99 0 0 0-.787-2.025l2.712-5.085 3.191 2.28a3 3 0 0 0 .447 2.58zM16.55 7.967l-1.676 3.143 3.404 2.432a2.986 2.986 0 0 1 1.659-.541c.04-.328.062-.662.062-1.001 0-1.66-.506-3.202-1.371-4.48a2.986 2.986 0 0 1-2.078.447zM8.883 6.83l4.35 3.107 1.554-2.913a2.99 2.99 0 0 1-.699-2.75A8.01 8.01 0 0 0 12 4a7.971 7.971 0 0 0-3.292.707 2.988 2.988 0 0 1 .175 2.124zm3.401 4.886l-4.563-3.26a2.997 2.997 0 0 1-.15.1l1.814 8.467.064.01 2.835-5.316zm-6.67-2.741l1.815 8.467a3.09 3.09 0 0 0-.69.584A7.981 7.981 0 0 1 4 12c0-1.174.253-2.288.707-3.292.281.134.586.226.908.268zM19 5a2 2 0 1 1-4 0 2 2 0 0 1 4 0zM8 6a2 2 0 1 1-4 0 2 2 0 0 1 4 0zm12 12a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm-9 2a2 2 0 1 1-4 0 2 2 0 0 1 4 0z\" fill=\"currentColor\"/></svg>",
    "message-fill": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM6 9h12v2H6V9zm8 5H6v-2h8v2zm4-6H6V6h12v2z\" fill=\"currentColor\"/></svg>",
    "message-outline": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M20 2H4c-1.1 0-1.99.9-1.99 2L2 22l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zM4 4h16v12H4V4zm14 2H6v2h12V6zm0 3H6v2h12V9zM6 12h8v2H6v-2z\" fill=\"currentColor\"/></svg>",
    "message": "<svg viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M18 0H2C.9 0 .01.9.01 2L0 20l4-4h14c1.1 0 2-.9 2-2V2c0-1.1-.9-2-2-2zM4 7h12v2H4V7zm8 5H4v-2h8v2zm4-6H4V4h12v2z\" fill=\"currentColor\"/></svg>",
    "minus-circle-fill": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm5 11H7v-2h10v2z\" fill=\"currentColor\"/></svg>",
    "minus-circle-outline": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M7 11v2h10v-2H7zm5-9C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z\" fill=\"currentColor\"/></svg>",
    "minus-plain": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M18 13H6v-2h12v2z\" fill=\"currentColor\"/></svg>",
    "minus-square-fill": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z\" fill=\"currentColor\"/></svg>",
    "module": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M15 8l-6 2.588L9.063 16l5.874-2.623L15 8z\" fill=\"currentColor\"/><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M5 8.47L19 2l-.146 13.443L5.146 22 5 8.47zm2 1.06L17 5l-.104 9.41L7.104 19 7 9.53z\" fill=\"currentColor\"/></svg>",
    "more-horizontal": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M6 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm12 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm-6 0c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\" fill=\"currentColor\"/></svg>",
    "more-vertical": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 8c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2zm0 2c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z\" fill=\"currentColor\"/></svg>",
    "network": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M10 4v4h4V4h-4zm3 6h1.5A1.5 1.5 0 0 0 16 8.5v-5A1.5 1.5 0 0 0 14.5 2h-5A1.5 1.5 0 0 0 8 3.5v5A1.5 1.5 0 0 0 9.5 10H11v1H3a1 1 0 1 0 0 2h3v1H4.5A1.5 1.5 0 0 0 3 15.5v5A1.5 1.5 0 0 0 4.5 22h5a1.5 1.5 0 0 0 1.5-1.5v-5A1.5 1.5 0 0 0 9.5 14H8v-1h8v1h-1.5a1.5 1.5 0 0 0-1.5 1.5v5a1.5 1.5 0 0 0 1.5 1.5h5a1.5 1.5 0 0 0 1.5-1.5v-5a1.5 1.5 0 0 0-1.5-1.5H18v-1h3a1 1 0 1 0 0-2h-8v-1zM5 20v-4h4v4H5zm10-4v4h4v-4h-4z\" fill=\"currentColor\"/></svg>",
    "node-init-circle-fill": "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><g fill=\"none\" fill-rule=\"evenodd\"><circle cx=\"10\" cy=\"10\" r=\"10\" fill=\"currentColor\" transform=\"translate(2 2)\"/><path fill=\"#FFF\" d=\"M18 13v4H6v-4h12zM8 14a1 1 0 1 0 0 2 1 1 0 0 0 0-2z\"/><path class=\"blinking\" fill=\"#FFF\" d=\"M18 7v4H6V7h12zM8 8a1 1 0 1 0 0 2 1 1 0 0 0 0-2z\" opacity=\".502\"/></g></svg>",
    "nomad-logo-n": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 59.6 68.1\"><path d=\"M43.2 14.8v22.7L35.3 42l-5.5-3.4-4-2.3v11.4l-8.9 5.6V30.7l3-1.9.4-.2 3.7-2.3 9.8 5.5V20.4z\"/></svg>",
    "notification-disabled": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M20 18.19L5.27 2.99 4 4.26l2.8 2.8v.01c-.52.99-.8 2.16-.8 3.42v5l-2 2v1h13.73l2 2L21 19.22l-1-1.03zm-8 3.31c1.11 0 2-.89 2-2h-4c0 1.11.89 2 2 2zm6-7.32V10.5c0-3.08-1.64-5.64-4.5-6.32V3.5c0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5v.68c-.15.03-.29.08-.42.12-.1.03-.2.07-.3.11h-.01c-.01 0-.01 0-.02.01-.23.09-.46.2-.68.31 0 0-.01 0-.01.01L18 14.18z\" fill=\"currentColor\"/></svg>",
    "notification-fill": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 21.5c1.1 0 2-.9 2-2h-4a2 2 0 0 0 2 2zm6-6v-5c0-3.07-1.64-5.64-4.5-6.32V3.5c0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5v.68C7.63 4.86 6 7.42 6 10.5v5l-2 2v1h16v-1l-2-2z\" fill=\"currentColor\"/></svg>",
    "notification-outline": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 21.5c1.1 0 2-.9 2-2h-4c0 1.1.9 2 2 2zm6-6v-5c0-3.07-1.63-5.64-4.5-6.32V3.5c0-.83-.67-1.5-1.5-1.5s-1.5.67-1.5 1.5v.68C7.64 4.86 6 7.42 6 10.5v5l-2 2v1h16v-1l-2-2zm-2 1H8v-6C8 8.02 9.51 6 12 6s4 2.02 4 4.5v6z\" fill=\"currentColor\"/></svg>",
    "outline": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M19 2c1.05 0 1.918.82 1.994 1.851L21 4v16c0 1.05-.82 1.918-1.851 1.994L19 22H5c-1.05 0-1.918-.82-1.994-1.851L3 20V4c0-1.05.82-1.918 1.851-1.994L5 2h14zm0 2H5v16h14V4zM7.952 15.004a1 1 0 0 1 .998.998 1 1 0 0 1-.998.998 1 1 0 0 1-.998-.998 1 1 0 0 1 .998-.998zM15.944 15v2h-6v-2h6zm-2-4v2h-4v-2h4zm-5.992 0a1 1 0 0 1 .998.998 1 1 0 0 1-.998.998 1 1 0 0 1-.998-.998A1 1 0 0 1 7.952 11zm8.992-4v2h-7V7h7zm-8.992.004a1 1 0 0 1 .998.998A1 1 0 0 1 7.952 9a1 1 0 0 1-.998-.998 1 1 0 0 1 .998-.998z\" fill=\"currentColor\"/></svg>",
    "page-outline": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M19.045 2c1.05 0 1.917.82 1.994 1.851l.006.149v16c0 1.05-.82 1.918-1.852 1.994l-.148.006h-14c-1.05 0-1.918-.82-1.995-1.851L3.045 20V4c0-1.05.82-1.918 1.851-1.994L5.045 2h14zm0 2h-14v16h14V4zM7.997 15.004c.549 0 1.003.45 1.003.998a1 1 0 0 1-2.001 0 1 1 0 0 1 .998-.998zM15.989 15v2h-6v-2h6zM15 11v2h-5v-2h5zm-7.003 0c.549 0 1.003.45 1.003.998a1 1 0 0 1-2.001 0A1 1 0 0 1 7.997 11zM17 7.004L16.989 9H10V7.004h7zm-9.003 0a1 1 0 0 1 .998.998A1 1 0 0 1 7.997 9a1 1 0 0 1-.998-.998 1 1 0 0 1 .998-.998z\" fill=\"currentColor\"/></svg>",
    "partner": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M8.478 8.41l2.556-2.339H8.341L5 8.075H2v6.99h4.572l2.441 2.184c.913.779 1.473.779 2.028.54.61-.262.959-.699.959-.699l.613.517c.587.54 1.537.294 2.027-.192.745-.741.724-1.188.724-1.188l.517.43c.39.233.988-.025 1.187-.228.44-.446.54-.944.064-1.395l-4.124-3.669c-.545-.471-.562-.464-1.008-.094l-.491.445c-1.02.765-2.34.775-3.168-.128a2.25 2.25 0 0 1 .137-3.177z\" fill=\"currentColor\"/><path d=\"M16.29 6.365l-.706-.294H12.9a1 1 0 0 0-.675.263L9.153 9.145l-.005.006-.004.007a1.242 1.242 0 0 0-.066 1.749c.397.434 1.231.55 1.753.084l.007-.003.006-.003 2.497-2.287a.5.5 0 1 1 .675.737l-.816.747 4.797 4.216H22V8.07h-4.003L16.29 6.365z\" fill=\"currentColor\"/></svg>",
    "path": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M20.434 7.946C21.896 7.68 23 6.462 23 5c0-1.657-1.418-3-3.167-3-1.749 0-3.166 1.343-3.166 3 0 1.183.722 2.206 1.772 2.694l-.336 4.374c-.536.11-1.02.349-1.417.68L9.32 9.282A2.88 2.88 0 0 0 9.333 9c0-1.657-1.417-3-3.166-3C4.417 6 3 7.343 3 9c0 1.306.881 2.418 2.111 2.83v4.34C3.881 16.583 3 17.695 3 19c0 1.657 1.418 3 3.167 3 1.749 0 3.166-1.343 3.166-3 0-1.345-.934-2.484-2.222-2.864v-4.272a3.198 3.198 0 0 0 1.338-.784l7.21 3.393a2.861 2.861 0 0 0-.048.527c0 1.657 1.418 3 3.167 3 1.749 0 3.166-1.343 3.166-3 0-1.21-.755-2.251-1.842-2.726l.332-4.328zm-.6-.946C21.081 7 22 6.054 22 5s-.918-2-2.167-2c-1.248 0-2.166.946-2.166 2s.918 2 2.166 2zM6.166 11c1.248 0 2.166-.946 2.166-2s-.918-2-2.166-2C4.918 7 4 7.946 4 9s.918 2 2.167 2z\" fill=\"currentColor\"/></svg>",
    "play-fill": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M2 12C2 6.48 6.48 2 12 2s10 4.48 10 10-4.48 10-10 10S2 17.52 2 12zm15.333 0L9 17V7l8.333 5z\" fill=\"currentColor\"/></svg>",
    "play-outline": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM9 17l8.333-5L9 7v10zm-5-5c0 4.42 3.58 8 8 8s8-3.58 8-8-3.58-8-8-8-8 3.58-8 8z\" fill=\"currentColor\"/></svg>",
    "play-plain": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M8 7v10l8.789-5L8 7z\" fill=\"currentColor\"/></svg>",
    "plus-circle-fill": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm5 11h-4v4h-2v-4H7v-2h4V7h2v4h4v2z\" fill=\"currentColor\"/></svg>",
    "plus-circle-outline": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M13 7h-2v4H7v2h4v4h2v-4h4v-2h-4V7zm-1-5C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z\" fill=\"currentColor\"/></svg>",
    "plus-plain": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\" fill=\"currentColor\"/></svg>",
    "plus-square-fill": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M19 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10h-4v4h-2v-4H7v-2h4V7h2v4h4v2z\" fill=\"currentColor\"/></svg>",
    "provider": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm.97 4.778l2.993-1.728a7.946 7.946 0 0 0-2.993-.992v2.72zm-1.94 1.12v-3.84a7.946 7.946 0 0 0-3.025 1.01v4.576l3.025-1.746zm-4.965 2.866V6.637A7.97 7.97 0 0 0 4 11.957l2.065-1.193zm0 2.24v4.359a7.987 7.987 0 0 1-1.801-3.319l1.801-1.04zm1.94 3.423v-4.543l3.025-1.746v4.543l-3.025 1.746zm4.965-2.866V9.018l3.065-1.77v4.543l-3.065 1.77zm5.005-2.89V6.682a7.99 7.99 0 0 1 1.688 3.015l-1.688.974zm-5.005 5.13l3.065-1.77v4.877c-.92.54-1.958.9-3.065 1.034V15.8zm5.005-2.89v4.407a7.97 7.97 0 0 0 2.021-5.574l-2.02 1.167zm-6.945 4.01l-3.25 1.876a7.948 7.948 0 0 0 3.25 1.145V16.92z\" fill=\"currentColor\"/></svg>",
    "public-default": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 17.93c-3.95-.49-7-3.85-7-7.93 0-.62.08-1.21.21-1.79L9 15v1c0 1.1.9 2 2 2v1.93zm6.9-2.54c-.26-.81-1-1.39-1.9-1.39h-1v-3c0-.55-.45-1-1-1H8v-2h2c.55 0 1-.45 1-1V7h2c1.1 0 2-.9 2-2v-.41c2.93 1.19 5 4.06 5 7.41 0 2.08-.8 3.97-2.1 5.39z\" fill=\"currentColor\"/></svg>",
    "public-locked": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M23 3v-.5a2.5 2.5 0 0 0-5 0V3c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1h5c.55 0 1-.45 1-1V4c0-.55-.45-1-1-1zm-.8 0h-3.4v-.5c0-.94.76-1.7 1.7-1.7s1.7.76 1.7 1.7V3zm-2.28 8c.04.33.08.66.08 1 0 2.08-.8 3.97-2.1 5.39-.26-.81-1-1.39-1.9-1.39h-1v-3c0-.55-.45-1-1-1H8v-2h2c.55 0 1-.45 1-1V7h2c1.1 0 2-.9 2-2V2.46c-.95-.3-1.95-.46-3-.46C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10c0-.34-.02-.67-.05-1h-2.03zM11 19.93c-3.95-.49-7-3.85-7-7.93 0-.62.08-1.21.21-1.79L9 15v1c0 1.1.9 2 2 2v1.93z\" fill=\"currentColor\"/></svg>",
    "queue": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M5 15h16v-2H5v2zm0 5h16v-2H5v2zM21 8H9v2h12V8zM2 4v6l5-3-5-3z\" fill=\"currentColor\"/></svg>",
    "radio-button-checked": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 7c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5zm0-5C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\" fill=\"currentColor\"/></svg>",
    "radio-button-unchecked": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\" fill=\"currentColor\"/></svg>",
    "random": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M18.5 2C20.503 2 22 3.5 22 5.5v13c0 2-1.556 3.5-3.5 3.5h-13c-2 0-3.5-1.5-3.5-3.5v-13C2 3.5 3.5 2 5.5 2h13zm0 2h-13C4.71 4 4 4.714 4 5.5v13c0 .781.706 1.5 1.5 1.5h13c.79 0 1.5-.714 1.5-1.5v-13c0-.781-.706-1.5-1.5-1.5zM12 14a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm4-4a2 2 0 1 0 0-4 2 2 0 0 0 0 4zm-8 8a2 2 0 1 0 0-4 2 2 0 0 0 0 4z\" fill=\"currentColor\"/></svg>",
    "redirect": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M2 19.833C2.89 13.318 6.712 9.65 13.466 8.83V4L22 11.77l-8.534 7.676v-4.849C8.585 14.344 4.763 16.09 2 19.833z\" fill=\"currentColor\"/></svg>",
    "refresh-alert": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M3 12c0 2.21.91 4.2 2.36 5.64L3 20h6v-6l-2.24 2.24A6.003 6.003 0 0 1 5 12a5.99 5.99 0 0 1 4-5.65V4.26C5.55 5.15 3 8.27 3 12zm8 5h2v-2h-2v2zM21 4h-6v6l2.24-2.24A6.003 6.003 0 0 1 19 12a5.99 5.99 0 0 1-4 5.65v2.09c3.45-.89 6-4.01 6-7.74 0-2.21-.91-4.2-2.36-5.64L21 4zm-10 9h2V7h-2v6z\" fill=\"currentColor\"/></svg>",
    "refresh-default": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M17.65 6.35A7.958 7.958 0 0 0 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08A5.99 5.99 0 0 1 12 18c-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4l-2.35 2.35z\" fill=\"currentColor\"/></svg>",
    "remix": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M17 5l4 3-4 3 .01-2H15c-.83 0-1.657 1.361-2.692 2.961C13.345 13.595 14.156 15 15 15h2.01L17 13l4 3-4 3 .01-2H15c-1.565 0-2.694-1.593-3.835-3.358C9.863 15.406 8.232 17 6 17H4.067v-2H6c1.737 0 2.979-1.383 4.09-2.999C8.98 10.384 7.737 9 6 9H4.066V7H6c2.283 0 3.913 1.565 5.195 3.311C12.326 8.565 13.45 7 15 7h2.01L17 5z\" fill=\"currentColor\"/></svg>",
    "ribbon": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M18.652 13.506c.136-.23.345-.417.812-.87.462-.45.643-1.104.474-1.718-.17-.615-.255-.88-.255-1.145s.084-.53.255-1.147a1.743 1.743 0 0 0-.474-1.717c-.467-.454-.676-.641-.813-.872-.134-.229-.197-.5-.367-1.113a1.804 1.804 0 0 0-1.294-1.257c-.637-.166-.915-.227-1.152-.36-.235-.134-.43-.338-.89-.786a1.866 1.866 0 0 0-1.768-.46c-.636.165-.908.248-1.181.247-.273 0-.545-.082-1.179-.247a1.867 1.867 0 0 0-1.767.46c-.465.452-.66.656-.896.788-.237.133-.515.193-1.147.358a1.806 1.806 0 0 0-1.294 1.257c-.17.616-.233.887-.368 1.115-.136.23-.345.416-.812.87a1.743 1.743 0 0 0-.474 1.717c.171.619.256.884.255 1.15 0 .264-.085.528-.255 1.142a1.745 1.745 0 0 0 .474 1.717c.466.453.676.641.812.872.135.229.198.5.368 1.113a1.802 1.802 0 0 0 1.294 1.257C7.904 16.11 8 16.5 8 17v5l4-2.212L16 22v-5c0-.497.095-.89.99-1.122a1.805 1.805 0 0 0 1.294-1.257c.17-.616.233-.887.368-1.115zM9 10a3 3 0 1 1 6 0 3 3 0 0 1-6 0z\" fill=\"currentColor\"/></svg>",
    "run": "<svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\" class=\"structure-icon-run\"><g fill=\"none\" fill-rule=\"evenodd\"><circle cx=\"12\" cy=\"12\" r=\"8\" stroke=\"currentColor\" stroke-width=\"4\"/><circle cx=\"12\" cy=\"12\" r=\"5\" stroke=\"currentColor\" stroke-width=\"2\" class=\"structure-icon-run-progress\"/><circle cx=\"12\" cy=\"12\" r=\"4\" fill=\"currentColor\"/></g></svg>",
    "search": "<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M12.5 11h-.79l-.28-.27A6.471 6.471 0 0 0 13 6.5 6.5 6.5 0 1 0 6.5 13c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L17.49 16l-4.99-5zm-6 0C4.01 11 2 8.99 2 6.5S4.01 2 6.5 2 11 4.01 11 6.5 8.99 11 6.5 11z\"/></svg>",
    "server": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M3.5 4C2.75 4 2 4.75 2 5.5v2C2 8.25 2.75 9 3.5 9h16.975C21.25 9 22 8.25 22 7.5v-2c0-.75-.75-1.5-1.525-1.5H3.5zm16 3.75a1.25 1.25 0 1 0 0-2.5 1.25 1.25 0 0 0 0 2.5zM3.5 10c-.75 0-1.5.75-1.5 1.5v2c0 .75.75 1.5 1.5 1.5h16.975C21.25 15 22 14.25 22 13.5v-2c0-.75-.75-1.5-1.525-1.5H3.5zm16 3.75a1.25 1.25 0 1 0 0-2.5 1.25 1.25 0 0 0 0 2.5zM3.5 16c-.75 0-1.5.75-1.475 1.5L2 19.5c0 .75.75 1.5 1.5 1.5h17c.75 0 1.5-.75 1.5-1.5l.025-2c0-.75-.775-1.5-1.525-1.5h-17zm16.025 3.75a1.25 1.25 0 1 0 0-2.5 1.25 1.25 0 0 0 0 2.5z\" fill=\"currentColor\"/></svg>",
    "settings": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M19.43 12.98c.04-.32.07-.64.07-.98 0-.34-.03-.66-.07-.98l2.11-1.65c.19-.15.24-.42.12-.64l-2-3.46c-.12-.22-.39-.3-.61-.22l-2.49 1c-.52-.4-1.08-.73-1.69-.98l-.38-2.65A.488.488 0 0 0 14 2h-4c-.25 0-.46.18-.49.42l-.38 2.65c-.61.25-1.17.59-1.69.98l-2.49-1c-.23-.09-.49 0-.61.22l-2 3.46c-.13.22-.07.49.12.64l2.11 1.65c-.04.32-.07.65-.07.98 0 .33.03.66.07.98l-2.11 1.65c-.19.15-.24.42-.12.64l2 3.46c.12.22.39.3.61.22l2.49-1c.52.4 1.08.73 1.69.98l.38 2.65c.03.24.24.42.49.42h4c.25 0 .46-.18.49-.42l.38-2.65c.61-.25 1.17-.59 1.69-.98l2.49 1c.23.09.49 0 .61-.22l2-3.46c.12-.22.07-.49-.12-.64l-2.11-1.65zM12 16c-2.206 0-4-1.794-4-4s1.794-4 4-4 4 1.794 4 4-1.794 4-4 4z\" fill=\"currentColor\"/></svg>",
    "sort": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M18 6.5H3V5h15v1.5zm-5 4H3V9h10v1.5zm-10 4h7V13H3v1.5zm4 4H3V17h4v1.5zm8.167-2.404V8.5h1.666v7.596l2.992-3.183L21 14.167 16 19.5l-5-5.333 1.175-1.254 2.992 3.183z\" fill=\"currentColor\"/></svg>",
    "source-file": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M13.714 9.143l3.572 3.571-3.572 3.572-.714-1.4 2.143-2.172L13 10.571l.714-1.428zm-3.571 1.4L8 12.714l2.143 2.143-.714 1.429-3.572-3.572L9.43 9.143l.714 1.4zm8.571 10.028H4.43V3.43h10l4.285 4.285v12.857zM15.143 2H4.429C3.643 2 3 2.643 3 3.429V20.57c0 .787.643 1.43 1.429 1.43h14.285c.786 0 1.429-.643 1.429-1.429V7l-5-5z\" fill=\"currentColor\"/></svg>",
    "star-fill": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.61L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21 12 17.27z\" fill=\"currentColor\"/></svg>",
    "star-outline": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M22 9.24l-7.19-.62L12 2 9.19 8.63 2 9.24l5.46 4.73L5.82 21 12 17.27 18.18 21l-1.63-7.03L22 9.24zM12 15.4l-3.76 2.27 1-4.28-3.32-2.88 4.38-.38L12 6.1l1.71 4.04 4.38.38-3.32 2.88 1 4.28L12 15.4z\" fill=\"currentColor\"/></svg>",
    "sub-left": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M11.42 9.42L7.83 13H18V4h2v11H7.83l3.59 3.58L10 20l-6-6 6-6 1.42 1.42z\" fill=\"currentColor\"/></svg>",
    "sub-right": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M14 20l-1.42-1.42L16.17 15H4V4h2v9h10.17l-3.59-3.58L14 8l6 6-6 6z\" fill=\"currentColor\"/></svg>",
    "support": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M2 12C2 6.477 6.477 2 12 2c5.52.006 9.994 4.48 10 10 0 5.523-4.477 10-10 10S2 17.523 2 12zm17.83-2.588a.208.208 0 0 0 .027-.19 8.375 8.375 0 0 0-5.079-5.079.209.209 0 0 0-.278.197v3.213c0 .074.04.142.102.18.68.416 1.251.988 1.667 1.667a.21.21 0 0 0 .179.1h3.213a.208.208 0 0 0 .17-.088zM12 15.333a3.333 3.333 0 1 1 0-6.666 3.333 3.333 0 0 1 0 6.666zM9.412 4.17a.21.21 0 0 0-.19-.027A8.376 8.376 0 0 0 4.14 9.227a.206.206 0 0 0 .026.19.21.21 0 0 0 .172.083h3.213a.21.21 0 0 0 .181-.102c.416-.68.988-1.25 1.667-1.666a.21.21 0 0 0 .1-.179V4.34a.21.21 0 0 0-.088-.17zM4.143 14.778a.207.207 0 0 1 .196-.278h3.213a.21.21 0 0 1 .179.1c.416.68.987 1.25 1.666 1.667a.21.21 0 0 1 .1.178v3.213a.208.208 0 0 1-.278.196 8.376 8.376 0 0 1-5.076-5.076zm10.446 5.054a.208.208 0 0 0 .19.026 8.376 8.376 0 0 0 5.072-5.077.208.208 0 0 0-.192-.277h-3.214a.21.21 0 0 0-.178.1A5.042 5.042 0 0 1 14.6 16.27a.209.209 0 0 0-.1.178v3.214c0 .067.033.13.088.17z\" fill=\"currentColor\"/></svg>",
    "swap-horizontal": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M6.99 11L3 15l3.99 4v-3H14v-2H6.99v-3zM21 9l-3.99-4v3H10v2h7.01v3L21 9z\" fill=\"currentColor\"/></svg>",
    "swap-vertical": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M16 17.01V10h-2v7.01h-3L15 21l4-3.99h-3zM9 3L5 6.99h3V14h2V6.99h3L9 3z\" fill=\"currentColor\"/></svg>",
    "syncing": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 21c2.21 0 4.2-.91 5.64-2.36L20 21v-6h-6l2.24 2.24A6.003 6.003 0 0 1 12 19a5.99 5.99 0 0 1-5.65-4H4.26c.89 3.45 4.01 6 7.74 6zM4 3v6h6L7.76 6.76A6.003 6.003 0 0 1 12 5a5.99 5.99 0 0 1 5.65 4h2.09c-.89-3.45-4.01-6-7.74-6-2.21 0-4.2.91-5.64 2.36L4 3z\" fill=\"currentColor\"/></svg>",
    "tag": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M8.486 9.902a1.346 1.346 0 1 0 0-2.692 1.346 1.346 0 0 0 0 2.692z\" fill=\"currentColor\"/><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M2.526 12.272a1.795 1.795 0 0 1-.507-1.53l.923-6.285c.115-.784.731-1.4 1.515-1.515l6.285-.923a1.795 1.795 0 0 1 1.53.507l9.202 9.202a1.795 1.795 0 0 1 0 2.538l-7.208 7.208a1.795 1.795 0 0 1-2.538 0l-9.202-9.202zm8.477-8.477l9.202 9.202-7.208 7.208-9.202-9.202.923-6.285 6.285-.923z\" fill=\"currentColor\"/></svg>",
    "tokens": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M10.5 3a7.503 7.503 0 0 1 7.064 4.974 7 7 0 1 1-9.491 9.752l-.099-.162A7.5 7.5 0 0 1 10.5 3zm7.485 7.98a7.502 7.502 0 0 1-7.002 7.005 5 5 0 0 0 7.002-7.005zM10.5 5a5.5 5.5 0 1 0 0 11 5.5 5.5 0 0 0 0-11zm0 3a2.5 2.5 0 1 1 0 5 2.5 2.5 0 0 1 0-5zm0 1a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3z\" fill=\"currentColor\"/></svg>",
    "trash": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M21 4v2H3V4h6l1-1h4l1 1h6zm-4 15V7h2v12c0 1.1-.9 2-2 2H7c-1.1 0-2-.9-2-2V7h2v12h10z\" fill=\"currentColor\"/><path d=\"M9 17h2V7H9v10zm6 0h-2V7h2v10z\" fill=\"currentColor\"/></svg>",
    "tune": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M3 17v2h6v-2H3zM3 5v2h10V5H3zm10 16v-2h8v-2h-8v-2h-2v6h2zM7 9v2H3v2h4v2h2V9H7zm14 4v-2H11v2h10zm-6-4h2V7h4V5h-4V3h-2v6z\" fill=\"currentColor\"/></svg>",
    "unfold-less": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M7.41 18.59L8.83 20 12 16.83 15.17 20l1.41-1.41L12 14l-4.59 4.59zm9.18-13.18L15.17 4 12 7.17 8.83 4 7.41 5.41 12 10l4.59-4.59z\" fill=\"currentColor\"/></svg>",
    "unfold-more": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 5.83L15.17 9l1.41-1.41L12 3 7.41 7.59 8.83 9 12 5.83zm0 12.34L8.83 15l-1.41 1.41L12 21l4.59-4.59L15.17 15 12 18.17z\" fill=\"currentColor\"/></svg>",
    "upload": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M5 10h4v6h6v-6h4l-7-7-7 7zm0 8v2h14v-2H5zm-2 2h2v-4H3v4zm16 0h2v-4h-2v4z\" fill=\"currentColor\"/></svg>",
    "user-add": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M15 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm-9-2V7H4v3H1v2h3v3h2v-3h3v-2H6zm9 4c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z\" fill=\"currentColor\"/></svg>",
    "user-organization": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 7V3H2v18h20V7H12zM6 19H4v-2h2v2zm0-4H4v-2h2v2zm0-4H4V9h2v2zm0-4H4V5h2v2zm4 12H8v-2h2v2zm0-4H8v-2h2v2zm0-4H8V9h2v2zm0-4H8V5h2v2zm10 12h-8v-2h2v-2h-2v-2h2v-2h-2V9h8v10zm-2-8h-2v2h2v-2zm0 4h-2v2h2v-2z\" fill=\"currentColor\"/></svg>",
    "user-plain": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z\" fill=\"currentColor\"/></svg>",
    "user-square-fill": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M3 5v14a2 2 0 0 0 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2H5a2 2 0 0 0-2 2zm12 5c0 1.66-1.34 3-3 3s-3-1.34-3-3 1.34-3 3-3 3 1.34 3 3zm-9 8c0-2 4-3.1 6-3.1s6 1.1 6 3.1v1H6v-1z\" fill=\"currentColor\"/></svg>",
    "user-square-outline": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M19 5v14H5V5h14zM5 3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2H5zm10 7c0 1.66-1.34 3-3 3s-3-1.34-3-3 1.34-3 3-3 3 1.34 3 3zm-9 8c0-2 4-3.1 6-3.1s6 1.1 6 3.1v1H6v-1z\" fill=\"currentColor\"/></svg>",
    "user-team": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M16.5 12c1.38 0 2.49-1.12 2.49-2.5S17.88 7 16.5 7a2.5 2.5 0 0 0 0 5zM9 11c1.66 0 2.99-1.34 2.99-3S10.66 5 9 5C7.34 5 6 6.34 6 8s1.34 3 3 3zm7.5 3c-1.83 0-5.5.92-5.5 2.75V19h11v-2.25c0-1.83-3.67-2.75-5.5-2.75zM9 13c-2.33 0-7 1.17-7 3.5V19h7v-2.25c0-.85.33-2.34 2.37-3.47C10.5 13.1 9.66 13 9 13z\" fill=\"currentColor\"/></svg>",
    "visibility-hide": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7zM2 4.27l2.74 2.74A11.804 11.804 0 0 0 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3 2 4.27zM7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2zm4.31-.78l3.15 3.15.02-.16c0-1.66-1.34-3-3-3l-.17.01z\" fill=\"currentColor\"/></svg>",
    "visibility-show": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z\" fill=\"currentColor\"/></svg>",
    "webhook": "<svg viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M12.278 9.313a2.021 2.021 0 0 1-2.01-.951c-.552-.928-.224-2.115.732-2.65.956-.536 2.179-.218 2.732.71.407.684.346 1.54-.155 2.164l2.354 3.955c2.02-.731 4.352.038 5.466 1.91 1.242 2.087.504 4.76-1.647 5.964a4.608 4.608 0 0 1-3.51.41l.474-1.383c.77.204 1.594.1 2.286-.288 1.434-.804 1.925-2.583 1.098-3.975a3.006 3.006 0 0 0-2.193-1.429 3.059 3.059 0 0 0-2.507.807l-3.12-5.244zm3.367 6.592a2.003 2.003 0 0 1 1.855-1.213c1.104 0 2 .87 2 1.94 0 1.072-.896 1.94-2 1.941-.815 0-1.549-.48-1.855-1.213h-4.707C10.58 19.424 8.728 21 6.5 21 4.016 21 2 19.043 2 16.634a4.29 4.29 0 0 1 1.389-3.153l.997 1.088a2.859 2.859 0 0 0-.886 2.065c0 1.607 1.343 2.91 3 2.91.928 0 1.803-.417 2.371-1.128a2.844 2.844 0 0 0 .534-2.51h6.24zm-7.568-.49c.501.623.562 1.479.155 2.164-.553.927-1.775 1.245-2.732.71-.956-.536-1.284-1.723-.732-2.65a2.022 2.022 0 0 1 2.01-.953l2.354-3.955c-1.664-1.332-2.143-3.676-1.03-5.548C9.345 3.096 12.1 2.38 14.25 3.585a4.37 4.37 0 0 1 2.12 2.744l-1.47.293a2.915 2.915 0 0 0-1.4-1.777c-1.435-.802-3.269-.326-4.098 1.065a2.835 2.835 0 0 0-.179 2.557 2.973 2.973 0 0 0 1.974 1.704l-3.12 5.243z\" fill=\"currentColor\"/></svg>"
  };
  _exports.default = _default;
});
;define("nomad-ui/templates/allocations", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "r3iWl1fi",
    "block": "[[[8,[39,0],null,null,[[\"default\"],[[[[1,\"\\n  \"],[46,[28,[37,2],null,null],null,null,null],[1,\"\\n\"]],[]]]]],[1,\"\\n\"]],[],false,[\"page-layout\",\"component\",\"-outlet\"]]",
    "moduleName": "nomad-ui/templates/allocations.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/allocations/allocation", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "u5EGtq76",
    "block": "[[[42,[28,[37,1],[[28,[37,1],[[30,0,[\"breadcrumbs\"]]],null]],null],null,[[[1,\"  \"],[8,[39,2],null,[[\"@crumb\"],[[30,1]]],null],[1,\"\\n\"]],[1]],null],[46,[28,[37,4],null,null],null,null,null]],[\"crumb\"],false,[\"each\",\"-track-array\",\"breadcrumb\",\"component\",\"-outlet\"]]",
    "moduleName": "nomad-ui/templates/allocations/allocation.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/allocations/allocation/fs", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "IinJ1N9r",
    "block": "[[[1,[28,[35,0],[[30,0,[\"pathWithLeadingSlash\"]],\" -  Allocation \",[30,0,[\"allocation\",\"shortId\"]],\" filesystem\"],null]],[1,\"\\n\"],[8,[39,1],null,[[\"@allocation\"],[[30,0,[\"allocation\"]]]],null],[1,\"\\n\"],[8,[39,2],null,[[\"@model\",\"@path\",\"@stat\",\"@isFile\",\"@directoryEntries\",\"@sortProperty\",\"@sortDescending\"],[[30,0,[\"allocation\"]],[30,0,[\"path\"]],[30,0,[\"stat\"]],[30,0,[\"isFile\"]],[30,0,[\"directoryEntries\"]],[30,0,[\"sortProperty\"]],[30,0,[\"sortDescending\"]]]],null]],[],false,[\"page-title\",\"allocation-subnav\",\"fs/browser\"]]",
    "moduleName": "nomad-ui/templates/allocations/allocation/fs.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/allocations/allocation/index", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "2+RJRlsn",
    "block": "[[[1,[28,[35,0],[\"Allocation \",[30,0,[\"model\",\"name\"]]],null]],[1,\"\\n\"],[8,[39,1],null,[[\"@allocation\"],[[30,0,[\"model\"]]]],null],[1,\"\\n\"],[10,\"section\"],[14,0,\"section\"],[12],[1,\"\\n\"],[41,[30,0,[\"error\"]],[[[1,\"    \"],[10,0],[14,0,\"notification is-danger\"],[12],[1,\"\\n      \"],[10,0],[14,0,\"columns\"],[12],[1,\"\\n        \"],[10,0],[14,0,\"column\"],[12],[1,\"\\n          \"],[10,\"h3\"],[14,0,\"title is-4\"],[12],[1,\"\\n            \"],[1,[30,0,[\"error\",\"title\"]]],[1,\"\\n          \"],[13],[1,\"\\n          \"],[10,2],[12],[1,\"\\n            \"],[1,[30,0,[\"error\",\"description\"]]],[1,\"\\n          \"],[13],[1,\"\\n        \"],[13],[1,\"\\n        \"],[10,0],[14,0,\"column is-centered is-minimum\"],[12],[1,\"\\n          \"],[10,\"button\"],[14,0,\"button is-danger\"],[15,\"onclick\",[28,[37,3],[[30,0],[30,0,[\"onDismiss\"]]],null]],[14,4,\"button\"],[12],[1,\"\\n            Okay\\n          \"],[13],[1,\"\\n        \"],[13],[1,\"\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n\"]],[]],null],[1,\"  \"],[10,\"h1\"],[14,0,\"title with-headroom with-flex\"],[12],[1,\"\\n    \"],[10,0],[12],[1,\"\\n      Allocation\\n      \"],[1,[30,0,[\"model\",\"name\"]]],[1,\"\\n      \"],[10,1],[15,0,[29,[\"bumper-left tag \",[30,0,[\"model\",\"statusClass\"]]]]],[12],[1,\"\\n        \"],[1,[30,0,[\"model\",\"clientStatus\"]]],[1,\"\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n    \"],[10,0],[12],[1,\"\\n\"],[41,[30,0,[\"model\",\"isRunning\"]],[[[1,\"        \"],[10,0],[14,0,\"two-step-button\"],[12],[1,\"\\n          \"],[8,[39,4],null,[[\"@job\",\"@allocation\"],[[30,0,[\"model\",\"job\"]],[30,0,[\"model\"]]]],null],[1,\"\\n        \"],[13],[1,\"\\n        \"],[8,[39,5],null,[[\"@alignRight\",\"@idleText\",\"@cancelText\",\"@confirmText\",\"@confirmationMessage\",\"@awaitingConfirmation\",\"@disabled\",\"@onConfirm\"],[true,\"Stop Alloc\",\"Cancel Stop\",\"Yes, Stop Alloc\",\"Are you sure? This will reschedule the allocation on a different client.\",[30,0,[\"stopAllocation\",\"isRunning\"]],[28,[37,6],[[30,0,[\"stopAllocation\",\"isRunning\"]],[30,0,[\"restartAllocation\",\"isRunning\"]]],null],[28,[37,7],[[30,0,[\"stopAllocation\"]]],null]]],null],[1,\"\\n        \"],[8,[39,5],null,[[\"@alignRight\",\"@idleText\",\"@cancelText\",\"@confirmText\",\"@confirmationMessage\",\"@awaitingConfirmation\",\"@disabled\",\"@onConfirm\"],[true,\"Restart Alloc\",\"Cancel Restart\",\"Yes, Restart Alloc\",\"Are you sure? This will restart the tasks that are currently running in-place.\",[30,0,[\"restartAllocation\",\"isRunning\"]],[28,[37,6],[[30,0,[\"stopAllocation\",\"isRunning\"]],[30,0,[\"restartAllocation\",\"isRunning\"]]],null],[28,[37,7],[[30,0,[\"restartAllocation\"]]],null]]],null],[1,\"\\n        \"],[8,[39,5],null,[[\"@alignRight\",\"@idleText\",\"@cancelText\",\"@confirmText\",\"@confirmationMessage\",\"@awaitingConfirmation\",\"@disabled\",\"@onConfirm\"],[true,\"Restart All Tasks\",\"Cancel Restart\",\"Yes, Restart All Tasks\",\"Are you sure? This will restart all tasks in-place.\",[30,0,[\"restartAllocation\",\"isRunning\"]],[28,[37,6],[[30,0,[\"stopAllocation\",\"isRunning\"]],[30,0,[\"restartAllocation\",\"isRunning\"]]],null],[28,[37,7],[[30,0,[\"restartAll\"]]],null]]],null],[1,\"\\n\"]],[]],null],[1,\"    \"],[13],[1,\"\\n  \"],[13],[1,\"\\n  \"],[10,1],[14,0,\"tag is-hollow is-small is-alone no-text-transform\"],[12],[1,\"\\n    \"],[1,[30,0,[\"model\",\"id\"]]],[1,\"\\n    \"],[8,[39,8],null,[[\"@clipboardText\"],[[30,0,[\"model\",\"id\"]]]],null],[1,\"\\n  \"],[13],[1,\"\\n  \"],[10,0],[14,0,\"boxed-section is-small\"],[12],[1,\"\\n    \"],[10,0],[14,0,\"boxed-section-body inline-definitions\"],[12],[1,\"\\n      \"],[10,1],[14,0,\"label\"],[12],[1,\"\\n        Allocation Details\\n      \"],[13],[1,\"\\n      \"],[10,1],[14,0,\"pair job-link\"],[12],[1,\"\\n        \"],[10,1],[14,0,\"term\"],[12],[1,\"\\n          Job\\n        \"],[13],[1,\"\\n        \"],[8,[39,9],null,[[\"@route\",\"@model\"],[\"jobs.job\",[28,[37,10],[[30,0,[\"model\",\"job\",\"id\"]]],null]]],[[\"default\"],[[[[1,\"\\n          \"],[1,[30,0,[\"model\",\"job\",\"name\"]]],[1,\"\\n        \"]],[]]]]],[1,\"\\n      \"],[13],[1,\"\\n      \"],[10,1],[14,0,\"pair node-link\"],[12],[1,\"\\n        \"],[10,1],[14,0,\"term\"],[12],[1,\"\\n          Client\\n        \"],[13],[1,\"\\n        \"],[8,[39,11],null,[[\"@text\"],[[30,0,[\"model\",\"node\",\"name\"]]]],[[\"default\"],[[[[1,\"\\n          \"],[8,[39,9],null,[[\"@route\",\"@model\"],[\"clients.client\",[30,0,[\"model\",\"node\"]]]],[[\"default\"],[[[[1,\"\\n            \"],[1,[30,0,[\"model\",\"node\",\"shortId\"]]],[1,\"\\n          \"]],[]]]]],[1,\"\\n        \"]],[]]]]],[1,\"\\n      \"],[13],[1,\"\\n      \"],[10,1],[14,0,\"pair\"],[12],[1,\"\\n        \"],[10,1],[14,0,\"term\"],[12],[1,\"\\n          Namespace\\n        \"],[13],[1,\"\\n        \"],[10,1],[12],[1,\"\\n          \"],[1,[30,0,[\"model\",\"job\",\"namespace\",\"name\"]]],[1,\"\\n        \"],[13],[1,\"\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n  \"],[13],[1,\"\\n  \"],[10,0],[14,0,\"boxed-section\"],[12],[1,\"\\n    \"],[10,0],[14,0,\"boxed-section-head is-hollow\"],[12],[1,\"\\n      Resource Utilization\\n    \"],[13],[1,\"\\n    \"],[10,0],[14,0,\"boxed-section-body\"],[12],[1,\"\\n\"],[41,[30,0,[\"model\",\"isRunning\"]],[[[1,\"        \"],[10,0],[14,0,\"columns\"],[12],[1,\"\\n          \"],[10,0],[14,0,\"column\"],[12],[1,\"\\n            \"],[8,[39,12],null,[[\"@allocation\",\"@metric\"],[[30,0,[\"model\"]],\"cpu\"]],null],[1,\"\\n          \"],[13],[1,\"\\n          \"],[10,0],[14,0,\"column\"],[12],[1,\"\\n            \"],[8,[39,12],null,[[\"@allocation\",\"@metric\"],[[30,0,[\"model\"]],\"memory\"]],null],[1,\"\\n          \"],[13],[1,\"\\n        \"],[13],[1,\"\\n\"]],[]],[[[1,\"        \"],[10,0],[14,0,\"empty-message\"],[12],[1,\"\\n          \"],[10,\"h3\"],[14,0,\"empty-message-headline\"],[12],[1,\"\\n            Allocation isn't running\\n          \"],[13],[1,\"\\n          \"],[10,2],[14,0,\"empty-message-body\"],[12],[1,\"\\n            Only running allocations utilize\\n            resources.\\n          \"],[13],[1,\"\\n        \"],[13],[1,\"\\n\"]],[]]],[1,\"    \"],[13],[1,\"\\n  \"],[13],[1,\"\\n  \"],[8,[39,13],null,[[\"@taskStates\"],[[30,0,[\"model\",\"states\"]]]],null],[1,\"\\n  \"],[10,0],[14,0,\"boxed-section\"],[12],[1,\"\\n    \"],[10,0],[14,0,\"boxed-section-head\"],[12],[1,\"\\n      Tasks\\n    \"],[13],[1,\"\\n    \"],[10,0],[15,0,[29,[\"boxed-section-body \",[52,[30,0,[\"sortedStates\",\"length\"]],\"is-full-bleed\"]]]],[12],[1,\"\\n\"],[41,[30,0,[\"sortedStates\",\"length\"]],[[[1,\"        \"],[8,[39,14],null,[[\"@source\",\"@sortProperty\",\"@sortDescending\",\"@class\"],[[30,0,[\"sortedStates\"]],[30,0,[\"sortProperty\"]],[30,0,[\"sortDescending\"]],\"is-striped\"]],[[\"default\"],[[[[1,\"\\n          \"],[8,[30,1,[\"head\"]],null,null,[[\"default\"],[[[[1,\"\\n            \"],[10,\"th\"],[14,0,\"is-narrow\"],[12],[13],[1,\"\\n            \"],[8,[30,1,[\"sort-by\"]],null,[[\"@prop\"],[\"name\"]],[[\"default\"],[[[[1,\"\\n              Name\\n            \"]],[]]]]],[1,\"\\n            \"],[8,[30,1,[\"sort-by\"]],null,[[\"@prop\"],[\"state\"]],[[\"default\"],[[[[1,\"\\n              State\\n            \"]],[]]]]],[1,\"\\n            \"],[10,\"th\"],[12],[1,\"\\n              Last Event\\n            \"],[13],[1,\"\\n            \"],[8,[30,1,[\"sort-by\"]],null,[[\"@prop\"],[\"events.lastObject.time\"]],[[\"default\"],[[[[1,\"\\n              Time\\n            \"]],[]]]]],[1,\"\\n            \"],[10,\"th\"],[12],[1,\"\\n              Volumes\\n            \"],[13],[1,\"\\n            \"],[10,\"th\"],[12],[1,\"\\n              CPU\\n            \"],[13],[1,\"\\n            \"],[10,\"th\"],[12],[1,\"\\n              Memory\\n            \"],[13],[1,\"\\n          \"]],[]]]]],[1,\"\\n          \"],[8,[30,1,[\"body\"]],null,null,[[\"default\"],[[[[1,\"\\n            \"],[8,[39,15],[[4,[38,16],null,[[\"enumerated\",\"action\"],[true,[28,[37,3],[[30,0],\"taskClick\",[30,2,[\"model\",\"allocation\"]],[30,2,[\"model\"]]],null]]]]],[[\"@task\",\"@onClick\"],[[30,2,[\"model\"]],[28,[37,3],[[30,0],\"taskClick\",[30,2,[\"model\",\"allocation\"]],[30,2,[\"model\"]]],null]]],null],[1,\"\\n          \"]],[2]]]]],[1,\"\\n        \"]],[1]]]]],[1,\"\\n\"]],[]],[[[1,\"        \"],[10,0],[14,0,\"empty-message\"],[12],[1,\"\\n          \"],[10,\"h3\"],[14,0,\"empty-message-headline\"],[12],[1,\"\\n            No Tasks\\n          \"],[13],[1,\"\\n          \"],[10,2],[14,0,\"empty-message-body\"],[12],[1,\"\\n            Allocations will not have tasks until they are in a running state.\\n          \"],[13],[1,\"\\n        \"],[13],[1,\"\\n\"]],[]]],[1,\"    \"],[13],[1,\"\\n  \"],[13],[1,\"\\n\"],[41,[30,0,[\"ports\",\"length\"]],[[[1,\"    \"],[10,0],[14,0,\"boxed-section\"],[12],[1,\"\\n      \"],[10,0],[14,0,\"boxed-section-head\"],[12],[1,\"\\n        Ports\\n      \"],[13],[1,\"\\n      \"],[10,0],[14,0,\"boxed-section-body is-full-bleed\"],[12],[1,\"\\n        \"],[8,[39,14],null,[[\"@source\"],[[30,0,[\"ports\"]]]],[[\"default\"],[[[[1,\"\\n          \"],[8,[30,3,[\"head\"]],null,null,[[\"default\"],[[[[1,\"\\n            \"],[10,\"th\"],[12],[1,\"\\n              Name\\n            \"],[13],[1,\"\\n            \"],[10,\"th\"],[12],[1,\"\\n              Host Address\\n            \"],[13],[1,\"\\n            \"],[10,\"th\"],[12],[1,\"\\n              Mapped Port\\n            \"],[13],[1,\"\\n          \"]],[]]]]],[1,\"\\n          \"],[8,[30,3,[\"body\"]],null,null,[[\"default\"],[[[[1,\"\\n            \"],[10,\"tr\"],[12],[1,\"\\n              \"],[10,\"td\"],[12],[1,\"\\n                \"],[1,[30,4,[\"model\",\"label\"]]],[1,\"\\n              \"],[13],[1,\"\\n              \"],[10,\"td\"],[12],[1,\"\\n                \"],[10,3],[15,6,[29,[\"http://\",[30,4,[\"model\",\"hostIp\"]],\":\",[30,4,[\"model\",\"value\"]]]]],[14,\"target\",\"_blank\"],[14,\"rel\",\"noopener noreferrer\"],[12],[1,\"\\n                  \"],[1,[30,4,[\"model\",\"hostIp\"]]],[1,\":\"],[1,[30,4,[\"model\",\"value\"]]],[1,\"\\n                \"],[13],[1,\"\\n              \"],[13],[1,\"\\n              \"],[10,\"td\"],[12],[1,\"\\n                \"],[1,[30,4,[\"model\",\"to\"]]],[1,\"\\n              \"],[13],[1,\"\\n            \"],[13],[1,\"\\n          \"]],[4]]]]],[1,\"\\n        \"]],[3]]]]],[1,\"\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n\"]],[]],null],[41,[30,0,[\"services\",\"length\"]],[[[1,\"    \"],[10,0],[14,0,\"boxed-section\"],[12],[1,\"\\n      \"],[10,0],[14,0,\"boxed-section-head\"],[12],[1,\"\\n        Services\\n      \"],[13],[1,\"\\n      \"],[10,0],[14,0,\"boxed-section-body is-full-bleed\"],[12],[1,\"\\n        \"],[8,[39,14],[[24,0,\"allocation-services-table\"]],[[\"@source\"],[[30,0,[\"servicesWithHealthChecks\"]]]],[[\"default\"],[[[[1,\"\\n          \"],[8,[30,5,[\"head\"]],null,null,[[\"default\"],[[[[1,\"\\n            \"],[10,\"th\"],[14,0,\"is-narrow\"],[12],[13],[1,\"\\n            \"],[10,\"th\"],[12],[1,\"\\n              Name\\n            \"],[13],[1,\"\\n            \"],[10,\"th\"],[12],[1,\"\\n              Port\\n            \"],[13],[1,\"\\n            \"],[10,\"td\"],[12],[1,\"\\n              Tags\\n            \"],[13],[1,\"\\n            \"],[10,\"td\"],[12],[1,\"\\n              Health Check Status\\n            \"],[13],[1,\"\\n          \"]],[]]]]],[1,\"\\n          \"],[8,[30,5,[\"body\"]],null,null,[[\"default\"],[[[[1,\"\\n            \"],[11,\"tr\"],[16,0,[29,[\"is-interactive \",[52,[28,[37,17],[[30,0,[\"activeService\"]],[30,6,[\"model\"]]],null],\"is-active\"]]]],[4,[38,18],[\"click\",[28,[37,19],[[30,0,[\"handleServiceClick\"]],[30,6,[\"model\"]]],null]],null],[4,[38,16],null,[[\"enumerated\",\"action\"],[true,[28,[37,19],[[30,0,[\"handleServiceClick\"]],[30,6,[\"model\"]]],null]]]],[12],[1,\"\\n              \"],[10,\"td\"],[14,0,\"is-narrow\"],[12],[1,\"\\n\"],[41,[28,[37,17],[[30,6,[\"model\",\"provider\"]],\"nomad\"],null],[[[1,\"                  \"],[8,[39,20],null,[[\"@name\"],[\"nomad-color\"]],null],[1,\"\\n\"]],[]],[[[1,\"                  \"],[8,[39,20],null,[[\"@name\"],[\"consul-color\"]],null],[1,\"\\n\"],[41,[30,6,[\"model\",\"connect\"]],[[[1,\"                    \"],[8,[39,20],null,[[\"@name\",\"@color\"],[\"mesh\",\"#444444\"]],null],[1,\"\\n\"]],[]],null]],[]]],[1,\"              \"],[13],[1,\"\\n              \"],[10,\"td\"],[14,0,\"is-long-text\"],[12],[1,\"\\n                \"],[1,[30,6,[\"model\",\"name\"]]],[1,\"\\n              \"],[13],[1,\"\\n              \"],[10,\"td\"],[12],[1,\"\\n                \"],[1,[30,6,[\"model\",\"portLabel\"]]],[1,\"\\n              \"],[13],[1,\"\\n              \"],[10,\"td\"],[14,0,\"is-long-text\"],[12],[1,\"\\n\"],[42,[28,[37,22],[[28,[37,22],[[30,6,[\"model\",\"tags\"]]],null]],null],null,[[[1,\"                  \"],[10,1],[14,0,\"tag is-service\"],[12],[1,[30,7]],[13],[1,\"\\n\"]],[7]],null],[42,[28,[37,22],[[28,[37,22],[[30,6,[\"model\",\"canary_tags\"]]],null]],null],null,[[[1,\"                  \"],[10,1],[14,0,\"tag canary is-service\"],[12],[1,[30,8]],[13],[1,\"\\n\"]],[8]],null],[1,\"              \"],[13],[1,\"\\n              \"],[10,\"td\"],[14,0,\"is-2\"],[12],[1,\"\\n\"],[41,[28,[37,17],[[30,6,[\"model\",\"provider\"]],\"nomad\"],null],[[[1,\"                  \"],[10,0],[14,0,\"inline-chart\"],[12],[1,\"\\n                    \"],[8,[39,23],null,[[\"@isNarrow\",\"@status\"],[true,[30,6,[\"model\",\"mostRecentCheckStatus\"]]]],null],[1,\"\\n                  \"],[13],[1,\"\\n\"]],[]],null],[1,\"              \"],[13],[1,\"\\n            \"],[13],[1,\"\\n          \"]],[6]]]]],[1,\"\\n        \"]],[5]]]]],[1,\"\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n\"]],[]],null],[41,[30,0,[\"model\",\"hasRescheduleEvents\"]],[[[1,\"    \"],[10,0],[14,0,\"boxed-section\"],[12],[1,\"\\n      \"],[10,0],[14,0,\"boxed-section-head is-hollow\"],[12],[1,\"\\n        Reschedule Events\\n      \"],[13],[1,\"\\n      \"],[10,0],[14,0,\"boxed-section-body\"],[12],[1,\"\\n        \"],[8,[39,24],null,[[\"@allocation\"],[[30,0,[\"model\"]]]],null],[1,\"\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n\"]],[]],null],[41,[30,0,[\"model\",\"wasPreempted\"]],[[[1,\"    \"],[10,0],[14,0,\"boxed-section is-warning\"],[12],[1,\"\\n      \"],[10,0],[14,0,\"boxed-section-head\"],[12],[1,\"\\n        Preempted By\\n      \"],[13],[1,\"\\n      \"],[10,0],[14,0,\"boxed-section-body\"],[12],[1,\"\\n\"],[41,[30,0,[\"preempter\"]],[[[1,\"          \"],[10,0],[14,0,\"boxed-section is-small\"],[12],[1,\"\\n            \"],[10,0],[14,0,\"boxed-section-body inline-definitions\"],[12],[1,\"\\n              \"],[10,1],[14,0,\"pair\"],[12],[1,\"\\n                \"],[10,1],[15,0,[29,[\"tag \",[30,0,[\"preempter\",\"statusClass\"]]]]],[12],[1,\"\\n                  \"],[1,[30,0,[\"preempter\",\"clientStatus\"]]],[1,\"\\n                \"],[13],[1,\"\\n              \"],[13],[1,\"\\n              \"],[10,1],[14,0,\"pair\"],[12],[1,\"\\n                \"],[10,1],[14,0,\"term\"],[12],[1,\"\\n                  \"],[1,[30,0,[\"preempter\",\"name\"]]],[1,\"\\n                \"],[13],[1,\"\\n                \"],[8,[39,9],null,[[\"@route\",\"@model\"],[\"allocations.allocation\",[30,0,[\"preempter\"]]]],[[\"default\"],[[[[1,\"\\n                  \"],[1,[30,0,[\"preempter\",\"shortId\"]]],[1,\"\\n                \"]],[]]]]],[1,\"\\n              \"],[13],[1,\"\\n              \"],[10,1],[14,0,\"pair job-link\"],[12],[1,\"\\n                \"],[10,1],[14,0,\"term\"],[12],[1,\"\\n                  Job\\n                \"],[13],[1,\"\\n                \"],[8,[39,9],null,[[\"@route\",\"@model\"],[\"jobs.job\",[30,0,[\"preempter\",\"job\"]]]],[[\"default\"],[[[[1,\"\\n                  \"],[1,[30,0,[\"preempter\",\"job\",\"name\"]]],[1,\"\\n                \"]],[]]]]],[1,\"\\n              \"],[13],[1,\"\\n              \"],[10,1],[14,0,\"pair job-priority\"],[12],[1,\"\\n                \"],[10,1],[14,0,\"term\"],[12],[1,\"\\n                  Priority\\n                \"],[13],[1,\"\\n                \"],[10,1],[12],[1,\"\\n                  \"],[1,[30,0,[\"preempter\",\"job\",\"priority\"]]],[1,\"\\n                \"],[13],[1,\"\\n              \"],[13],[1,\"\\n              \"],[10,1],[14,0,\"pair node-link\"],[12],[1,\"\\n                \"],[10,1],[14,0,\"term\"],[12],[1,\"\\n                  Client\\n                \"],[13],[1,\"\\n                \"],[8,[39,9],null,[[\"@route\",\"@model\"],[\"clients.client\",[30,0,[\"preempter\",\"node\"]]]],[[\"default\"],[[[[1,\"\\n                  \"],[1,[30,0,[\"preempter\",\"node\",\"shortId\"]]],[1,\"\\n                \"]],[]]]]],[1,\"\\n              \"],[13],[1,\"\\n              \"],[10,1],[14,0,\"pair\"],[12],[1,\"\\n                \"],[10,1],[14,0,\"term\"],[12],[1,\"\\n                  Reserved CPU\\n                \"],[13],[1,\"\\n                \"],[10,1],[12],[1,\"\\n                  \"],[1,[28,[35,25],[[30,0,[\"preempter\",\"resources\",\"cpu\"]]],null]],[1,\"\\n                \"],[13],[1,\"\\n              \"],[13],[1,\"\\n              \"],[10,1],[14,0,\"pair\"],[12],[1,\"\\n                \"],[10,1],[14,0,\"term\"],[12],[1,\"\\n                  Reserved Memory\\n                \"],[13],[1,\"\\n                \"],[10,1],[12],[1,\"\\n                  \"],[1,[28,[35,26],[[30,0,[\"preempter\",\"resources\",\"memory\"]]],[[\"start\"],[\"MiB\"]]]],[1,\"\\n                \"],[13],[1,\"\\n              \"],[13],[1,\"\\n            \"],[13],[1,\"\\n          \"],[13],[1,\"\\n\"]],[]],[[[1,\"          \"],[10,0],[14,0,\"empty-message\"],[12],[1,\"\\n            \"],[10,\"h3\"],[14,0,\"empty-message-headline\"],[12],[1,\"\\n              Allocation is gone\\n            \"],[13],[1,\"\\n            \"],[10,2],[14,0,\"empty-message-body\"],[12],[1,\"\\n              This allocation has been stopped and\\n              garbage collected.\\n            \"],[13],[1,\"\\n          \"],[13],[1,\"\\n\"]],[]]],[1,\"      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n\"]],[]],null],[41,[28,[37,27],[[30,0,[\"model\",\"preemptedAllocations\",\"isFulfilled\"]],[30,0,[\"model\",\"preemptedAllocations\",\"length\"]]],null],[[[1,\"    \"],[10,0],[14,0,\"boxed-section\"],[12],[1,\"\\n      \"],[10,0],[14,0,\"boxed-section-head\"],[12],[1,\"\\n        Preempted Allocations\\n      \"],[13],[1,\"\\n      \"],[10,0],[14,0,\"boxed-section-body\"],[12],[1,\"\\n        \"],[8,[39,14],null,[[\"@source\",\"@class\"],[[30,0,[\"model\",\"preemptedAllocations\"]],\"allocations is-isolated\"]],[[\"default\"],[[[[1,\"\\n          \"],[8,[30,9,[\"head\"]],null,null,[[\"default\"],[[[[1,\"\\n            \"],[10,\"th\"],[14,0,\"is-narrow\"],[12],[13],[1,\"\\n            \"],[10,\"th\"],[12],[1,\"\\n              ID\\n            \"],[13],[1,\"\\n            \"],[10,\"th\"],[12],[1,\"\\n              Task Group\\n            \"],[13],[1,\"\\n            \"],[10,\"th\"],[12],[1,\"\\n              Created\\n            \"],[13],[1,\"\\n            \"],[10,\"th\"],[12],[1,\"\\n              Modified\\n            \"],[13],[1,\"\\n            \"],[10,\"th\"],[12],[1,\"\\n              Status\\n            \"],[13],[1,\"\\n            \"],[10,\"th\"],[12],[1,\"\\n              Version\\n            \"],[13],[1,\"\\n            \"],[10,\"th\"],[12],[1,\"\\n              Node\\n            \"],[13],[1,\"\\n            \"],[10,\"th\"],[12],[1,\"\\n              CPU\\n            \"],[13],[1,\"\\n            \"],[10,\"th\"],[12],[1,\"\\n              Memory\\n            \"],[13],[1,\"\\n          \"]],[]]]]],[1,\"\\n          \"],[8,[30,9,[\"body\"]],null,null,[[\"default\"],[[[[1,\"\\n            \"],[8,[39,28],null,[[\"@allocation\",\"@context\"],[[30,10,[\"model\"]],\"job\"]],null],[1,\"\\n          \"]],[10]]]]],[1,\"\\n        \"]],[9]]]]],[1,\"\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n\"]],[]],null],[1,\"  \"],[8,[39,29],null,[[\"@service\",\"@allocation\",\"@fns\"],[[30,0,[\"activeService\"]],[30,0,[\"model\"]],[28,[37,30],null,[[\"closeSidebar\"],[[30,0,[\"closeSidebar\"]]]]]]],null],[1,\"\\n\"],[13]],[\"t\",\"row\",\"t\",\"row\",\"t\",\"row\",\"tag\",\"tag\",\"t\",\"row\"],false,[\"page-title\",\"allocation-subnav\",\"if\",\"action\",\"exec/open-button\",\"two-step-button\",\"or\",\"perform\",\"copy-button\",\"link-to\",\"format-job-id\",\"tooltip\",\"primary-metric/allocation\",\"lifecycle-chart\",\"list-table\",\"task-row\",\"keyboard-shortcut\",\"eq\",\"on\",\"fn\",\"flight-icon\",\"each\",\"-track-array\",\"service-status-bar\",\"reschedule-event-timeline\",\"format-scheduled-hertz\",\"format-scheduled-bytes\",\"and\",\"allocation-row\",\"allocation-service-sidebar\",\"hash\"]]",
    "moduleName": "nomad-ui/templates/allocations/allocation/index.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/allocations/allocation/task", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "IAqCvEgH",
    "block": "[[[8,[39,0],null,[[\"@crumb\"],[[30,0,[\"breadcrumb\"]]]],null],[46,[28,[37,2],null,null],null,null,null]],[],false,[\"breadcrumb\",\"component\",\"-outlet\"]]",
    "moduleName": "nomad-ui/templates/allocations/allocation/task.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/allocations/allocation/task/fs", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "gmSS1SIH",
    "block": "[[[1,[28,[35,0],[[30,0,[\"pathWithLeadingSlash\"]],\" -  Task \",[30,0,[\"taskState\",\"name\"]],\" filesystem\"],null]],[1,\"\\n\"],[8,[39,1],null,[[\"@task\"],[[30,0,[\"taskState\"]]]],null],[1,\"\\n\"],[8,[39,2],null,[[\"@model\",\"@path\",\"@stat\",\"@isFile\",\"@directoryEntries\",\"@sortProperty\",\"@sortDescending\"],[[30,0,[\"taskState\"]],[30,0,[\"path\"]],[30,0,[\"stat\"]],[30,0,[\"isFile\"]],[30,0,[\"directoryEntries\"]],[30,0,[\"sortProperty\"]],[30,0,[\"sortDescending\"]]]],null]],[],false,[\"page-title\",\"task-subnav\",\"fs/browser\"]]",
    "moduleName": "nomad-ui/templates/allocations/allocation/task/fs.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/allocations/allocation/task/index", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "csFkd5qC",
    "block": "[[[1,[28,[35,0],[\"Task \",[30,0,[\"model\",\"name\"]]],null]],[1,\"\\n\"],[8,[39,1],null,[[\"@task\"],[[30,0,[\"model\"]]]],null],[1,\"\\n\"],[10,\"section\"],[14,0,\"section\"],[12],[1,\"\\n\"],[41,[30,0,[\"error\"]],[[[1,\"    \"],[10,0],[14,0,\"notification is-danger\"],[12],[1,\"\\n      \"],[10,0],[14,0,\"columns\"],[12],[1,\"\\n        \"],[10,0],[14,0,\"column\"],[12],[1,\"\\n          \"],[10,\"h3\"],[14,0,\"title is-4\"],[12],[1,\"\\n            \"],[1,[30,0,[\"error\",\"title\"]]],[1,\"\\n          \"],[13],[1,\"\\n          \"],[10,2],[12],[1,\"\\n            \"],[1,[30,0,[\"error\",\"description\"]]],[1,\"\\n          \"],[13],[1,\"\\n        \"],[13],[1,\"\\n        \"],[10,0],[14,0,\"column is-centered is-minimum\"],[12],[1,\"\\n          \"],[10,\"button\"],[14,0,\"button is-danger\"],[15,\"onclick\",[28,[37,3],[[30,0],[30,0,[\"onDismiss\"]]],null]],[14,4,\"button\"],[12],[1,\"\\n            Okay\\n          \"],[13],[1,\"\\n        \"],[13],[1,\"\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n\"]],[]],null],[1,\"  \"],[10,\"h1\"],[14,0,\"title with-flex\"],[12],[1,\"\\n    \"],[10,0],[12],[1,\"\\n      \"],[1,[30,0,[\"model\",\"name\"]]],[1,\"\\n\"],[41,[30,0,[\"model\",\"isConnectProxy\"]],[[[1,\"        \"],[8,[39,4],null,[[\"@class\"],[\"bumper-left\"]],null],[1,\"\\n\"]],[]],null],[1,\"      \"],[10,1],[15,0,[29,[[52,[51,[30,0,[\"model\",\"isConnectProxy\"]]],\"bumper-left\"],\"\\n           tag\\n          \",[30,0,[\"model\",\"stateClass\"]]]]],[12],[1,\"\\n        \"],[1,[30,0,[\"model\",\"state\"]]],[1,\"\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n    \"],[10,0],[12],[1,\"\\n\"],[41,[30,0,[\"model\",\"isRunning\"]],[[[1,\"        \"],[10,0],[14,0,\"two-step-button\"],[12],[1,\"\\n          \"],[8,[39,6],null,[[\"@job\",\"@taskGroup\",\"@allocation\",\"@task\"],[[30,0,[\"model\",\"task\",\"taskGroup\",\"job\"]],[30,0,[\"model\",\"task\",\"taskGroup\"]],[30,0,[\"model\",\"allocation\"]],[30,0,[\"model\",\"task\"]]]],null],[1,\"\\n        \"],[13],[1,\"\\n        \"],[8,[39,7],null,[[\"@alignRight\",\"@idleText\",\"@cancelText\",\"@confirmText\",\"@confirmationMessage\",\"@awaitingConfirmation\",\"@disabled\",\"@onConfirm\"],[true,\"Restart Task\",\"Cancel\",\"Yes, Restart Task\",\"Are you sure? This will restart the task in-place.\",[30,0,[\"restartTask\",\"isRunning\"]],[30,0,[\"restartTask\",\"isRunning\"]],[28,[37,8],[[30,0,[\"restartTask\"]]],null]]],null],[1,\"\\n\"]],[]],null],[1,\"    \"],[13],[1,\"\\n  \"],[13],[1,\"\\n  \"],[10,0],[14,0,\"boxed-section is-small\"],[12],[1,\"\\n    \"],[10,0],[14,0,\"boxed-section-body inline-definitions\"],[12],[1,\"\\n      \"],[10,1],[14,0,\"label\"],[12],[1,\"\\n        Task Details\\n      \"],[13],[1,\"\\n      \"],[10,1],[14,0,\"pair\"],[12],[1,\"\\n        \"],[10,1],[14,0,\"term\"],[12],[1,\"\\n          Started At\\n        \"],[13],[1,\"\\n        \"],[1,[28,[35,9],[[30,0,[\"model\",\"startedAt\"]]],null]],[1,\"\\n      \"],[13],[1,\"\\n\"],[41,[30,0,[\"model\",\"finishedAt\"]],[[[1,\"        \"],[10,1],[14,0,\"pair\"],[12],[1,\"\\n          \"],[10,1],[14,0,\"term\"],[12],[1,\"\\n            Finished At\\n          \"],[13],[1,\"\\n          \"],[1,[28,[35,9],[[30,0,[\"model\",\"finishedAt\"]]],null]],[1,\"\\n        \"],[13],[1,\"\\n\"]],[]],null],[1,\"      \"],[10,1],[14,0,\"pair\"],[12],[1,\"\\n        \"],[10,1],[14,0,\"term\"],[12],[1,\"\\n          Driver\\n        \"],[13],[1,\"\\n        \"],[1,[30,0,[\"model\",\"task\",\"driver\"]]],[1,\"\\n      \"],[13],[1,\"\\n      \"],[10,1],[14,0,\"pair\"],[12],[1,\"\\n        \"],[10,1],[14,0,\"term\"],[12],[1,\"\\n          Lifecycle\\n        \"],[13],[1,\"\\n        \"],[10,1],[12],[1,\"\\n          \"],[1,[30,0,[\"model\",\"task\",\"lifecycleName\"]]],[1,\"\\n        \"],[13],[1,\"\\n      \"],[13],[1,\"\\n      \"],[10,1],[14,0,\"pair\"],[12],[1,\"\\n        \"],[10,1],[14,0,\"term\"],[12],[1,\"\\n          Namespace\\n        \"],[13],[1,\"\\n        \"],[10,1],[12],[1,\"\\n          \"],[1,[30,0,[\"model\",\"allocation\",\"job\",\"namespace\",\"name\"]]],[1,\"\\n        \"],[13],[1,\"\\n      \"],[13],[1,\"\\n\\n\"],[41,[28,[37,10],[[28,[37,11],[\"list variables\"],null],[30,0,[\"model\",\"task\",\"pathLinkedVariable\"]]],null],[[[1,\"        \"],[10,1],[14,0,\"pair\"],[12],[1,\"\\n          \"],[8,[39,12],null,[[\"@route\",\"@model\"],[\"variables.variable\",[30,0,[\"model\",\"task\",\"pathLinkedVariable\",\"id\"]]]],[[\"default\"],[[[[1,\"Variables\"]],[]]]]],[1,\"\\n        \"],[13],[1,\"\\n\"]],[]],null],[1,\"\\n    \"],[13],[1,\"\\n  \"],[13],[1,\"\\n  \"],[10,0],[14,0,\"boxed-section\"],[12],[1,\"\\n    \"],[10,0],[14,0,\"boxed-section-head is-hollow\"],[12],[1,\"\\n      Resource Utilization\\n    \"],[13],[1,\"\\n    \"],[10,0],[14,0,\"boxed-section-body\"],[12],[1,\"\\n\"],[41,[30,0,[\"model\",\"isRunning\"]],[[[1,\"        \"],[10,0],[14,0,\"columns\"],[12],[1,\"\\n          \"],[10,0],[14,0,\"column\"],[12],[1,\"\\n            \"],[8,[39,13],null,[[\"@taskState\",\"@metric\"],[[30,0,[\"model\"]],\"cpu\"]],null],[1,\"\\n          \"],[13],[1,\"\\n          \"],[10,0],[14,0,\"column\"],[12],[1,\"\\n            \"],[8,[39,13],null,[[\"@taskState\",\"@metric\"],[[30,0,[\"model\"]],\"memory\"]],null],[1,\"\\n          \"],[13],[1,\"\\n        \"],[13],[1,\"\\n\"]],[]],[[[1,\"        \"],[10,0],[14,0,\"empty-message\"],[12],[1,\"\\n          \"],[10,\"h3\"],[14,0,\"empty-message-headline\"],[12],[1,\"\\n            Task isn't running\\n          \"],[13],[1,\"\\n          \"],[10,2],[14,0,\"empty-message-body\"],[12],[1,\"\\n            Only running tasks utilize resources.\\n          \"],[13],[1,\"\\n        \"],[13],[1,\"\\n\"]],[]]],[1,\"    \"],[13],[1,\"\\n  \"],[13],[1,\"\\n\"],[41,[30,0,[\"model\",\"task\",\"volumeMounts\",\"length\"]],[[[1,\"    \"],[10,0],[14,0,\"boxed-section\"],[12],[1,\"\\n      \"],[10,0],[14,0,\"boxed-section-head\"],[12],[1,\"\\n        Volumes\\n      \"],[13],[1,\"\\n      \"],[10,0],[14,0,\"boxed-section-body is-full-bleed\"],[12],[1,\"\\n        \"],[8,[39,14],null,[[\"@source\"],[[30,0,[\"model\",\"task\",\"volumeMounts\"]]]],[[\"default\"],[[[[1,\"\\n          \"],[8,[30,1,[\"head\"]],null,null,[[\"default\"],[[[[1,\"\\n            \"],[10,\"th\"],[12],[1,\"\\n              Name\\n            \"],[13],[1,\"\\n            \"],[10,\"th\"],[12],[1,\"\\n              Destination\\n            \"],[13],[1,\"\\n            \"],[10,\"th\"],[12],[1,\"\\n              Permissions\\n            \"],[13],[1,\"\\n            \"],[10,\"th\"],[12],[1,\"\\n              Client Source\\n            \"],[13],[1,\"\\n          \"]],[]]]]],[1,\"\\n          \"],[8,[30,1,[\"body\"]],null,null,[[\"default\"],[[[[1,\"\\n            \"],[10,\"tr\"],[12],[1,\"\\n              \"],[10,\"td\"],[12],[1,\"\\n                \"],[1,[30,2,[\"model\",\"volume\"]]],[1,\"\\n              \"],[13],[1,\"\\n              \"],[10,\"td\"],[12],[1,\"\\n                \"],[10,\"code\"],[12],[1,\"\\n                  \"],[1,[30,2,[\"model\",\"destination\"]]],[1,\"\\n                \"],[13],[1,\"\\n              \"],[13],[1,\"\\n              \"],[10,\"td\"],[12],[1,\"\\n                \"],[1,[52,[30,2,[\"model\",\"readOnly\"]],\"Read\",\"Read/Write\"]],[1,\"\\n              \"],[13],[1,\"\\n              \"],[10,\"td\"],[12],[1,\"\\n\"],[41,[30,2,[\"model\",\"isCSI\"]],[[[1,\"                  \"],[8,[39,12],null,[[\"@route\",\"@model\"],[\"csi.volumes.volume\",[28,[37,15],[[28,[37,16],null,[[\"source\",\"isPerAlloc\",\"volumeExtension\"],[[30,2,[\"model\",\"source\"]],[30,2,[\"model\",\"volumeDeclaration\",\"perAlloc\"]],[30,0,[\"model\",\"allocation\",\"volumeExtension\"]]]]],\"@\",[30,2,[\"model\",\"namespace\",\"id\"]]],null]]],[[\"default\"],[[[[1,\"\\n                  \"],[1,[28,[35,16],null,[[\"source\",\"isPerAlloc\",\"volumeExtension\"],[[30,2,[\"model\",\"source\"]],[30,2,[\"model\",\"volumeDeclaration\",\"perAlloc\"]],[30,0,[\"model\",\"allocation\",\"volumeExtension\"]]]]]],[1,\"\\n                  \"]],[]]]]],[1,\"\\n\"]],[]],[[[1,\"                  \"],[1,[30,2,[\"model\",\"source\"]]],[1,\"\\n\"]],[]]],[1,\"              \"],[13],[1,\"\\n            \"],[13],[1,\"\\n          \"]],[2]]]]],[1,\"\\n        \"]],[1]]]]],[1,\"\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n\"]],[]],null],[1,\"  \"],[10,0],[14,0,\"boxed-section\"],[12],[1,\"\\n    \"],[10,0],[14,0,\"boxed-section-head\"],[12],[1,\"\\n      Recent Events\\n    \"],[13],[1,\"\\n    \"],[10,0],[14,0,\"boxed-section-body is-full-bleed\"],[12],[1,\"\\n      \"],[8,[39,14],null,[[\"@source\",\"@class\"],[[28,[37,17],[[30,0,[\"model\",\"events\"]]],null],\"is-striped\"]],[[\"default\"],[[[[1,\"\\n        \"],[8,[30,3,[\"head\"]],null,null,[[\"default\"],[[[[1,\"\\n          \"],[10,\"th\"],[14,0,\"is-3\"],[12],[1,\"\\n            Time\\n          \"],[13],[1,\"\\n          \"],[10,\"th\"],[14,0,\"is-1\"],[12],[1,\"\\n            Type\\n          \"],[13],[1,\"\\n          \"],[10,\"th\"],[12],[1,\"\\n            Description\\n          \"],[13],[1,\"\\n        \"]],[]]]]],[1,\"\\n        \"],[8,[30,3,[\"body\"]],null,null,[[\"default\"],[[[[1,\"\\n          \"],[10,\"tr\"],[12],[1,\"\\n            \"],[10,\"td\"],[12],[1,\"\\n              \"],[1,[28,[35,9],[[30,4,[\"model\",\"time\"]]],null]],[1,\"\\n            \"],[13],[1,\"\\n            \"],[10,\"td\"],[12],[1,\"\\n              \"],[1,[30,4,[\"model\",\"type\"]]],[1,\"\\n            \"],[13],[1,\"\\n            \"],[10,\"td\"],[12],[1,\"\\n\"],[41,[30,4,[\"model\",\"message\"]],[[[1,\"                \"],[1,[30,4,[\"model\",\"message\"]]],[1,\"\\n\"]],[]],[[[1,\"                \"],[10,\"em\"],[12],[1,\"\\n                  No message\\n                \"],[13],[1,\"\\n\"]],[]]],[1,\"            \"],[13],[1,\"\\n          \"],[13],[1,\"\\n        \"]],[4]]]]],[1,\"\\n      \"]],[3]]]]],[1,\"\\n    \"],[13],[1,\"\\n  \"],[13],[1,\"\\n\"],[13]],[\"t\",\"row\",\"t\",\"row\"],false,[\"page-title\",\"task-subnav\",\"if\",\"action\",\"proxy-tag\",\"unless\",\"exec/open-button\",\"two-step-button\",\"perform\",\"format-ts\",\"and\",\"can\",\"link-to\",\"primary-metric/task\",\"list-table\",\"concat\",\"format-volume-name\",\"reverse\"]]",
    "moduleName": "nomad-ui/templates/allocations/allocation/task/index.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/allocations/allocation/task/logs", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "st6Msd6T",
    "block": "[[[1,[28,[35,0],[\"Task \",[30,0,[\"model\",\"name\"]],\" logs\"],null]],[1,\"\\n\"],[8,[39,1],null,[[\"@task\"],[[30,0,[\"model\"]]]],null],[1,\"\\n\"],[10,\"section\"],[14,0,\"section is-full-width\"],[12],[1,\"\\n  \"],[8,[39,2],null,[[\"@allocation\",\"@task\"],[[30,0,[\"model\",\"allocation\"]],[30,0,[\"model\",\"name\"]]]],null],[1,\"\\n\"],[13],[1,\"\\n\"]],[],false,[\"page-title\",\"task-subnav\",\"task-log\"]]",
    "moduleName": "nomad-ui/templates/allocations/allocation/task/logs.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/application", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "WwgUTaZw",
    "block": "[[[1,[28,[35,0],[[52,[30,0,[\"system\",\"shouldShowRegions\"]],[28,[37,2],[[30,0,[\"system\",\"activeRegion\"]],\" - \"],null]],[52,[30,0,[\"system\",\"agent\",\"config\",\"UI\",\"Label\",\"Text\"]],[28,[37,2],[[30,0,[\"system\",\"agent\",\"config\",\"UI\",\"Label\",\"Text\"]],\" - \"],null]],\"Nomad\"],[[\"separator\"],[\" - \"]]]],[1,\"\\n\"],[8,[39,3],null,null,null],[1,\"\\n\\n\"],[10,\"section\"],[14,0,\"notifications\"],[12],[1,\"\\n\"],[42,[28,[37,5],[[28,[37,5],[[30,0,[\"notifications\",\"queue\"]]],null]],null],null,[[[1,\"  \"],[8,[39,6],null,[[\"@flash\"],[[30,1]]],[[\"default\"],[[[[1,\"\\n    \"],[8,[39,7],null,[[\"@color\",\"@onDismiss\"],[[28,[37,8],[[30,3,[\"color\"]],\"neutral\"],null],[28,[37,9],[[28,[37,10],[[30,0],[30,4]],null],[28,[37,10],[[30,0],[28,[37,11],[[30,3,[\"customCloseAction\"]]],null]],null]],null]]],[[\"default\"],[[[[1,\"\\n\"],[41,[30,3,[\"title\"]],[[[1,\"        \"],[8,[30,5,[\"Title\"]],null,null,[[\"default\"],[[[[1,[30,3,[\"title\"]]]],[]]]]],[1,\"\\n\"]],[]],null],[41,[30,3,[\"message\"]],[[[1,\"        \"],[8,[30,5,[\"Description\"]],null,null,[[\"default\"],[[[[1,[30,3,[\"message\"]]]],[]]]]],[1,\"\\n\"]],[]],null],[41,[30,3,[\"customAction\"]],[[[1,\"        \"],[8,[30,5,[\"Button\"]],[[4,[38,12],[\"click\",[28,[37,10],[[30,0],[30,3,[\"customAction\",\"action\"]]],null]],null]],[[\"@text\",\"@color\"],[[30,3,[\"customAction\",\"label\"]],\"secondary\"]],null],[1,\"\\n\"]],[]],null],[1,\"    \"]],[5]]]]],[1,\"\\n  \"]],[2,3,4]]]]],[1,\"\\n\"]],[1]],null],[13],[1,\"\\n\\n\"],[8,[39,13],null,null,null],[1,\"\\n\\n\"],[8,[39,14],null,[[\"@name\"],[\"log-sidebar-portal\"]],null],[1,\"\\n\\n\"],[41,[30,0,[\"error\"]],[[[1,\"  \"],[10,0],[14,0,\"error-container\"],[12],[1,\"\\n    \"],[10,0],[14,0,\"error-message\"],[12],[1,\"\\n\"],[41,[30,0,[\"isNoLeader\"]],[[[1,\"        \"],[10,\"h1\"],[14,0,\"title is-spaced\"],[12],[1,\"No Cluster Leader\"],[13],[1,\"\\n        \"],[10,2],[14,0,\"subtitle\"],[12],[1,\"\\n          The cluster has no leader.\\n          \"],[10,3],[14,6,\"https://developer.hashicorp.com/nomad/tutorials/manage-clusters/outage-recovery\"],[12],[1,\"\\n            Read about Outage Recovery.\"],[13],[1,\"\\n        \"],[13],[1,\"\\n\"]],[]],[[[41,[30,0,[\"isOTTExchange\"]],[[[1,\"        \"],[10,\"h1\"],[14,0,\"title is-spaced\"],[12],[1,\"Token Exchange Error\"],[13],[1,\"\\n        \"],[10,2],[14,0,\"subtitle\"],[12],[1,\"\\n          Failed to exchange the one-time token.\\n        \"],[13],[1,\"\\n\"]],[]],[[[41,[30,0,[\"is500\"]],[[[1,\"        \"],[10,\"h1\"],[14,0,\"title is-spaced\"],[12],[1,\"Server Error\"],[13],[1,\"\\n        \"],[10,2],[14,0,\"subtitle\"],[12],[1,\"A server error prevented\\n          data from being sent to the client.\"],[13],[1,\"\\n\"]],[]],[[[41,[30,0,[\"is404\"]],[[[1,\"        \"],[10,\"h1\"],[14,0,\"title is-spaced\"],[12],[1,\"Not Found\"],[13],[1,\"\\n        \"],[10,2],[14,0,\"subtitle\"],[12],[1,\"What you're looking for\\n          couldn't be found. It either doesn't exist or you are not authorized\\n          to see it.\"],[13],[1,\"\\n\"]],[]],[[[41,[30,0,[\"is403\"]],[[[1,\"        \"],[10,\"h1\"],[14,0,\"title is-spaced\"],[12],[1,\"Not Authorized\"],[13],[1,\"\\n\"],[41,[30,0,[\"token\",\"secret\"]],[[[1,\"          \"],[10,2],[14,0,\"subtitle\"],[12],[1,\"Your\\n            \"],[8,[39,15],null,[[\"@route\"],[\"settings.tokens\"]],[[\"default\"],[[[[1,\"ACL token\"]],[]]]]],[1,\"\\n            does not provide the required permissions. Contact your\\n            administrator if this is an error.\"],[13],[1,\"\\n\"]],[]],[[[1,\"          \"],[10,2],[14,0,\"subtitle\"],[12],[1,\"Provide an\\n            \"],[8,[39,15],null,[[\"@route\"],[\"settings.tokens\"]],[[\"default\"],[[[[1,\"ACL token\"]],[]]]]],[1,\"\\n            with requisite permissions to view this.\"],[13],[1,\"\\n\"]],[]]]],[]],[[[1,\"        \"],[10,\"h1\"],[14,0,\"title is-spaced\"],[12],[1,\"Error\"],[13],[1,\"\\n        \"],[10,2],[14,0,\"subtitle\"],[12],[1,\"Something went wrong.\"],[13],[1,\"\\n      \"]],[]]]],[]]]],[]]]],[]]]],[]]],[41,[28,[37,16],[[30,0,[\"config\",\"environment\"]],\"development\"],null],[[[1,\"        \"],[10,\"pre\"],[14,0,\"error-stack-trace\"],[12],[10,\"code\"],[12],[1,[30,0,[\"errorStr\"]]],[13],[13],[1,\"\\n\"]],[]],null],[1,\"    \"],[13],[1,\"\\n    \"],[10,0],[14,0,\"error-links\"],[12],[1,\"\\n      \"],[8,[39,15],[[24,0,\"button is-white\"]],[[\"@route\"],[\"jobs\"]],[[\"default\"],[[[[1,\"Go\\n        to Jobs\"]],[]]]]],[1,\"\\n      \"],[8,[39,15],[[24,0,\"button is-white\"]],[[\"@route\"],[\"clients\"]],[[\"default\"],[[[[1,\"Go to Clients\"]],[]]]]],[1,\"\\n      \"],[8,[39,15],[[24,0,\"button is-white\"]],[[\"@route\"],[\"settings.tokens\"]],[[\"default\"],[[[[1,\"Go to Sign In\"]],[]]]]],[1,\"\\n    \"],[13],[1,\"\\n  \"],[13],[1,\"\\n\"]],[]],[[[1,\"  \"],[46,[28,[37,18],null,null],null,null,null],[1,\"\\n\"]],[]]]],[\"flash\",\"component\",\"flash\",\"close\",\"T\"],false,[\"page-title\",\"if\",\"concat\",\"svg-patterns\",\"each\",\"-track-array\",\"flash-message\",\"hds/toast\",\"or\",\"queue\",\"action\",\"optional\",\"on\",\"keyboard-shortcuts-modal\",\"portal-target\",\"link-to\",\"eq\",\"component\",\"-outlet\"]]",
    "moduleName": "nomad-ui/templates/application.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/clients", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "BWEpAKyC",
    "block": "[[[8,[39,0],null,[[\"@crumb\"],[[28,[37,1],null,[[\"label\",\"args\"],[\"Clients\",[28,[37,2],[\"clients.index\"],null]]]]]],null],[1,\"\\n\"],[8,[39,3],null,null,[[\"default\"],[[[[1,\"\\n  \"],[46,[28,[37,5],null,null],null,null,null],[1,\"\\n\"]],[]]]]]],[],false,[\"breadcrumb\",\"hash\",\"array\",\"page-layout\",\"component\",\"-outlet\"]]",
    "moduleName": "nomad-ui/templates/clients.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/clients/client", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "CjCB0K8h",
    "block": "[[[8,[39,0],null,[[\"@crumb\"],[[30,0,[\"breadcrumb\"]]]],null],[46,[28,[37,2],null,null],null,null,null]],[],false,[\"breadcrumb\",\"component\",\"-outlet\"]]",
    "moduleName": "nomad-ui/templates/clients/client.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/clients/client/index", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "l5rXd0OL",
    "block": "[[[1,[28,[35,0],[\"Client \",[28,[37,1],[[30,0,[\"model\",\"name\"]],[30,0,[\"model\",\"shortId\"]]],null]],null]],[1,\"\\n\"],[8,[39,2],null,[[\"@client\"],[[30,0,[\"model\"]]]],null],[1,\"\\n\"],[10,\"section\"],[14,0,\"section\"],[12],[1,\"\\n\"],[41,[30,0,[\"eligibilityError\"]],[[[1,\"    \"],[10,0],[14,0,\"columns\"],[12],[1,\"\\n      \"],[10,0],[14,0,\"column\"],[12],[1,\"\\n        \"],[10,0],[14,0,\"notification is-danger\"],[12],[1,\"\\n          \"],[10,\"h3\"],[14,0,\"title is-4\"],[12],[1,\"\\n            Eligibility Error\\n          \"],[13],[1,\"\\n          \"],[10,2],[12],[1,\"\\n            \"],[1,[30,0,[\"eligibilityError\"]]],[1,\"\\n          \"],[13],[1,\"\\n        \"],[13],[1,\"\\n      \"],[13],[1,\"\\n      \"],[10,0],[14,0,\"column is-centered is-minimum\"],[12],[1,\"\\n        \"],[10,\"button\"],[14,0,\"button is-danger\"],[15,\"onclick\",[28,[37,4],[[30,0],[28,[37,5],[[30,0,[\"eligibilityError\"]]],null],\"\"],null]],[14,4,\"button\"],[12],[1,\"\\n          Okay\\n        \"],[13],[1,\"\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n\"]],[]],null],[41,[30,0,[\"stopDrainError\"]],[[[1,\"    \"],[10,0],[14,0,\"columns\"],[12],[1,\"\\n      \"],[10,0],[14,0,\"column\"],[12],[1,\"\\n        \"],[10,0],[14,0,\"notification is-danger\"],[12],[1,\"\\n          \"],[10,\"h3\"],[14,0,\"title is-4\"],[12],[1,\"\\n            Stop Drain Error\\n          \"],[13],[1,\"\\n          \"],[10,2],[12],[1,\"\\n            \"],[1,[30,0,[\"stopDrainError\"]]],[1,\"\\n          \"],[13],[1,\"\\n        \"],[13],[1,\"\\n      \"],[13],[1,\"\\n      \"],[10,0],[14,0,\"column is-centered is-minimum\"],[12],[1,\"\\n        \"],[10,\"button\"],[14,0,\"button is-danger\"],[15,\"onclick\",[28,[37,4],[[30,0],[28,[37,5],[[30,0,[\"stopDrainError\"]]],null],\"\"],null]],[14,4,\"button\"],[12],[1,\"\\n          Okay\\n        \"],[13],[1,\"\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n\"]],[]],null],[41,[30,0,[\"drainError\"]],[[[1,\"    \"],[10,0],[14,0,\"columns\"],[12],[1,\"\\n      \"],[10,0],[14,0,\"column\"],[12],[1,\"\\n        \"],[10,0],[14,0,\"notification is-danger\"],[12],[1,\"\\n          \"],[10,\"h3\"],[14,0,\"title is-4\"],[12],[1,\"\\n            Drain Error\\n          \"],[13],[1,\"\\n          \"],[10,2],[12],[1,\"\\n            \"],[1,[30,0,[\"drainError\"]]],[1,\"\\n          \"],[13],[1,\"\\n        \"],[13],[1,\"\\n      \"],[13],[1,\"\\n      \"],[10,0],[14,0,\"column is-centered is-minimum\"],[12],[1,\"\\n        \"],[10,\"button\"],[14,0,\"button is-danger\"],[15,\"onclick\",[28,[37,4],[[30,0],[28,[37,5],[[30,0,[\"drainError\"]]],null],\"\"],null]],[14,4,\"button\"],[12],[1,\"\\n          Okay\\n        \"],[13],[1,\"\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n\"]],[]],null],[41,[30,0,[\"showDrainStoppedNotification\"]],[[[1,\"    \"],[10,0],[14,0,\"notification is-info\"],[12],[1,\"\\n      \"],[10,0],[14,0,\"columns\"],[12],[1,\"\\n        \"],[10,0],[14,0,\"column\"],[12],[1,\"\\n          \"],[10,\"h3\"],[14,0,\"title is-4\"],[12],[1,\"\\n            Drain Stopped\\n          \"],[13],[1,\"\\n          \"],[10,2],[12],[1,\"\\n            The drain has been stopped and the node has been set to ineligible.\\n          \"],[13],[1,\"\\n        \"],[13],[1,\"\\n        \"],[10,0],[14,0,\"column is-centered is-minimum\"],[12],[1,\"\\n          \"],[10,\"button\"],[14,0,\"button is-info\"],[15,\"onclick\",[28,[37,4],[[30,0],[28,[37,5],[[30,0,[\"showDrainStoppedNotification\"]]],null],false],null]],[14,4,\"button\"],[12],[1,\"\\n            Okay\\n          \"],[13],[1,\"\\n        \"],[13],[1,\"\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n\"]],[]],null],[41,[30,0,[\"showDrainUpdateNotification\"]],[[[1,\"    \"],[10,0],[14,0,\"notification is-info\"],[12],[1,\"\\n      \"],[10,0],[14,0,\"columns\"],[12],[1,\"\\n        \"],[10,0],[14,0,\"column\"],[12],[1,\"\\n          \"],[10,\"h3\"],[14,0,\"title is-4\"],[12],[1,\"\\n            Drain Updated\\n          \"],[13],[1,\"\\n          \"],[10,2],[12],[1,\"\\n            The new drain specification has been applied.\\n          \"],[13],[1,\"\\n        \"],[13],[1,\"\\n        \"],[10,0],[14,0,\"column is-centered is-minimum\"],[12],[1,\"\\n          \"],[10,\"button\"],[14,0,\"button is-info\"],[15,\"onclick\",[28,[37,4],[[30,0],[28,[37,5],[[30,0,[\"showDrainUpdateNotification\"]]],null],false],null]],[14,4,\"button\"],[12],[1,\"\\n            Okay\\n          \"],[13],[1,\"\\n        \"],[13],[1,\"\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n\"]],[]],null],[41,[30,0,[\"showDrainNotification\"]],[[[1,\"    \"],[10,0],[14,0,\"notification is-info\"],[12],[1,\"\\n      \"],[10,0],[14,0,\"columns\"],[12],[1,\"\\n        \"],[10,0],[14,0,\"column\"],[12],[1,\"\\n          \"],[10,\"h3\"],[14,0,\"title is-4\"],[12],[1,\"\\n            Drain Complete\\n          \"],[13],[1,\"\\n          \"],[10,2],[12],[1,\"\\n            Allocations have been drained and the node has been set to ineligible.\\n          \"],[13],[1,\"\\n        \"],[13],[1,\"\\n        \"],[10,0],[14,0,\"column is-centered is-minimum\"],[12],[1,\"\\n          \"],[10,\"button\"],[14,0,\"button is-info\"],[15,\"onclick\",[28,[37,4],[[30,0],[28,[37,5],[[30,0,[\"showDrainNotification\"]]],null],false],null]],[14,4,\"button\"],[12],[1,\"\\n            Okay\\n          \"],[13],[1,\"\\n        \"],[13],[1,\"\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n\"]],[]],null],[1,\"  \"],[10,0],[14,0,\"toolbar\"],[12],[1,\"\\n    \"],[10,0],[14,0,\"toolbar-item is-top-aligned is-minimum\"],[12],[1,\"\\n      \"],[10,1],[14,0,\"title\"],[12],[1,\"\\n        \"],[10,1],[15,0,[29,[\"node-status-light \",[30,0,[\"model\",\"compositeStatus\"]]]]],[12],[1,\"\\n          \"],[1,[28,[35,6],[[30,0,[\"model\",\"compositeStatusIcon\"]]],null]],[1,\"\\n        \"],[13],[1,\"\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n    \"],[10,0],[14,0,\"toolbar-item\"],[12],[1,\"\\n      \"],[10,\"h1\"],[14,0,\"title with-subheading\"],[12],[1,\"\\n        \"],[1,[28,[35,1],[[30,0,[\"model\",\"name\"]],[30,0,[\"model\",\"shortId\"]]],null]],[1,\"\\n      \"],[13],[1,\"\\n      \"],[10,2],[12],[1,\"\\n        \"],[10,\"label\"],[14,0,\"is-interactive\"],[12],[1,\"\\n          \"],[8,[39,7],null,[[\"@isActive\",\"@isDisabled\",\"@onToggle\"],[[30,0,[\"model\",\"isEligible\"]],[28,[37,1],[[30,0,[\"setEligibility\",\"isRunning\"]],[30,0,[\"model\",\"isDraining\"]],[28,[37,8],[\"write client\"],null]],null],[28,[37,9],[[30,0,[\"setEligibility\"]],[28,[37,10],[[30,0,[\"model\",\"isEligible\"]]],null]],null]]],[[\"default\"],[[[[1,\"\\n            Eligible\\n          \"]],[]]]]],[1,\"\\n          \"],[10,1],[14,0,\"tooltip\"],[14,\"aria-label\",\"Only eligible clients can receive allocations\"],[12],[1,\"\\n            \"],[1,[28,[35,6],[\"info-circle-outline\"],[[\"class\"],[\"is-faded\"]]]],[1,\"\\n          \"],[13],[1,\"\\n        \"],[13],[1,\"\\n        \"],[10,1],[14,0,\"tag is-hollow is-small no-text-transform\"],[12],[1,\"\\n          \"],[1,[30,0,[\"model\",\"id\"]]],[1,\"\\n          \"],[8,[39,11],null,[[\"@clipboardText\",\"@compact\",\"@inset\"],[[30,0,[\"model\",\"id\"]],true,true]],null],[1,\"\\n        \"],[13],[1,\"\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n    \"],[10,0],[14,0,\"toolbar-item is-right-aligned is-top-aligned\"],[12],[1,\"\\n\"],[41,[30,0,[\"model\",\"isDraining\"]],[[[1,\"        \"],[8,[39,12],null,[[\"@idleText\",\"@cancelText\",\"@confirmText\",\"@confirmationMessage\",\"@awaitingConfirmation\",\"@onConfirm\"],[\"Stop Drain\",\"Cancel\",\"Yes, Stop Drain\",\"Are you sure you want to stop this drain?\",[30,0,[\"stopDrain\",\"isRunning\"]],[28,[37,9],[[30,0,[\"stopDrain\"]]],null]]],null],[1,\"\\n\"]],[]],null],[1,\"    \"],[13],[1,\"\\n    \"],[10,0],[14,0,\"toolbar-item is-right-aligned is-top-aligned\"],[12],[1,\"\\n      \"],[8,[39,13],null,[[\"@client\",\"@isDisabled\",\"@onDrain\",\"@onError\"],[[30,0,[\"model\"]],[28,[37,8],[\"write client\"],null],[28,[37,4],[[30,0],\"drainNotify\"],null],[28,[37,4],[[30,0],\"setDrainError\"],null]]],null],[1,\"\\n    \"],[13],[1,\"\\n  \"],[13],[1,\"\\n  \"],[10,0],[14,0,\"boxed-section is-small\"],[12],[1,\"\\n    \"],[10,0],[14,0,\"boxed-section-body inline-definitions\"],[12],[1,\"\\n      \"],[10,1],[14,0,\"label\"],[12],[1,\"\\n        Client Details\\n      \"],[13],[1,\"\\n      \"],[10,1],[14,0,\"pair\"],[12],[1,\"\\n        \"],[10,1],[14,0,\"term\"],[12],[1,\"\\n          Status\\n        \"],[13],[1,\"\\n        \"],[10,1],[15,0,[29,[\"status-text node-\",[30,0,[\"model\",\"status\"]]]]],[12],[1,\"\\n          \"],[1,[30,0,[\"model\",\"status\"]]],[1,\"\\n        \"],[13],[1,\"\\n      \"],[13],[1,\"\\n      \"],[10,1],[14,0,\"pair\"],[12],[1,\"\\n        \"],[10,1],[14,0,\"term\"],[12],[1,\"\\n          Address\\n        \"],[13],[1,\"\\n        \"],[1,[30,0,[\"model\",\"httpAddr\"]]],[1,\"\\n      \"],[13],[1,\"\\n      \"],[10,1],[14,0,\"pair\"],[12],[1,\"\\n        \"],[10,1],[14,0,\"term\"],[12],[1,\"\\n          Datacenter\\n        \"],[13],[1,\"\\n        \"],[1,[30,0,[\"model\",\"datacenter\"]]],[1,\"\\n      \"],[13],[1,\"\\n      \"],[10,1],[14,0,\"pair\"],[12],[1,\"\\n        \"],[10,1],[14,0,\"term\"],[12],[1,\"\\n          Node Pool\\n        \"],[13],[1,\"\\n        \"],[41,[30,0,[\"model\",\"nodePool\"]],[[[1,[30,0,[\"model\",\"nodePool\"]]]],[]],[[[1,\"-\"]],[]]],[1,\"\\n      \"],[13],[1,\"\\n\"],[41,[30,0,[\"model\",\"nodeClass\"]],[[[1,\"        \"],[10,1],[14,0,\"pair\"],[12],[1,\"\\n          \"],[10,1],[14,0,\"term\"],[12],[1,\"\\n            Class\\n          \"],[13],[1,\"\\n          \"],[1,[30,0,[\"model\",\"nodeClass\"]]],[1,\"\\n        \"],[13],[1,\"\\n\"]],[]],null],[1,\"      \"],[10,1],[14,0,\"pair\"],[12],[1,\"\\n        \"],[10,1],[14,0,\"term\"],[12],[1,\"\\n          Drivers\\n        \"],[13],[1,\"\\n\"],[41,[30,0,[\"model\",\"unhealthyDrivers\",\"length\"]],[[[1,\"          \"],[1,[28,[35,6],[\"alert-triangle\"],[[\"class\"],[\"is-text is-warning\"]]]],[1,\"\\n          \"],[1,[30,0,[\"model\",\"unhealthyDrivers\",\"length\"]]],[1,\"\\n          of\\n          \"],[1,[30,0,[\"model\",\"detectedDrivers\",\"length\"]]],[1,\"\\n          \"],[1,[28,[35,14],[\"driver\",[30,0,[\"model\",\"detectedDrivers\",\"length\"]]],null]],[1,\"\\n          unhealthy\\n\"]],[]],[[[1,\"          All healthy\\n\"]],[]]],[1,\"      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n  \"],[13],[1,\"\\n\"],[41,[30,0,[\"model\",\"drainStrategy\"]],[[[1,\"    \"],[10,0],[14,0,\"boxed-section is-info\"],[12],[1,\"\\n      \"],[10,0],[14,0,\"boxed-section-head\"],[12],[1,\"\\n        \"],[10,0],[14,0,\"boxed-section-row\"],[12],[1,\"\\n          Drain Strategy\\n        \"],[13],[1,\"\\n        \"],[10,0],[14,0,\"boxed-section-row\"],[12],[1,\"\\n          \"],[10,0],[14,0,\"inline-definitions is-small\"],[12],[1,\"\\n\"],[41,[51,[30,0,[\"model\",\"drainStrategy\",\"hasNoDeadline\"]]],[[[1,\"              \"],[10,1],[14,0,\"pair\"],[12],[1,\"\\n                \"],[10,1],[14,0,\"term\"],[12],[1,\"\\n                  Duration\\n                \"],[13],[1,\"\\n\"],[41,[30,0,[\"model\",\"drainStrategy\",\"isForced\"]],[[[1,\"                  \"],[10,1],[12],[1,\"\\n                    --\\n                  \"],[13],[1,\"\\n\"]],[]],[[[1,\"                  \"],[10,1],[14,0,\"tooltip\"],[15,\"aria-label\",[28,[37,16],[[30,0,[\"model\",\"drainStrategy\",\"deadline\"]]],null]],[12],[1,\"\\n                    \"],[1,[28,[35,16],[[30,0,[\"model\",\"drainStrategy\",\"deadline\"]]],null]],[1,\"\\n                  \"],[13],[1,\"\\n\"]],[]]],[1,\"              \"],[13],[1,\"\\n\"]],[]],null],[1,\"            \"],[10,1],[14,0,\"pair\"],[12],[1,\"\\n              \"],[10,1],[14,0,\"term\"],[12],[1,\"\\n                \"],[1,[52,[30,0,[\"model\",\"drainStrategy\",\"hasNoDeadline\"]],\"Deadline\",\"Remaining\"]],[1,\"\\n              \"],[13],[1,\"\\n\"],[41,[30,0,[\"model\",\"drainStrategy\",\"hasNoDeadline\"]],[[[1,\"                \"],[10,1],[12],[1,\"\\n                  No deadline\\n                \"],[13],[1,\"\\n\"]],[]],[[[41,[30,0,[\"model\",\"drainStrategy\",\"isForced\"]],[[[1,\"                \"],[10,1],[12],[1,\"\\n                  --\\n                \"],[13],[1,\"\\n\"]],[]],[[[1,\"                \"],[10,1],[14,0,\"tooltip\"],[15,\"aria-label\",[28,[37,17],[[30,0,[\"model\",\"drainStrategy\",\"forceDeadline\"]]],null]],[12],[1,\"\\n                  \"],[1,[28,[35,18],[[30,0,[\"model\",\"drainStrategy\",\"forceDeadline\"]]],[[\"interval\",\"hideAffix\"],[1000,true]]]],[1,\"\\n                \"],[13],[1,\"\\n              \"]],[]]]],[]]],[1,\"            \"],[13],[1,\"\\n            \"],[10,1],[14,0,\"pair\"],[12],[1,\"\\n              \"],[10,1],[14,0,\"term\"],[12],[1,\"\\n                Force Drain\\n              \"],[13],[1,\"\\n\"],[41,[30,0,[\"model\",\"drainStrategy\",\"isForced\"]],[[[1,\"                \"],[1,[28,[35,6],[\"alert-triangle\"],[[\"class\"],[\"is-text is-warning\"]]]],[1,\"Yes\\n\"]],[]],[[[1,\"                No\\n\"]],[]]],[1,\"            \"],[13],[1,\"\\n            \"],[10,1],[14,0,\"pair\"],[12],[1,\"\\n              \"],[10,1],[14,0,\"term\"],[12],[1,\"\\n                Drain System Jobs\\n              \"],[13],[1,\"\\n              \"],[1,[52,[30,0,[\"model\",\"drainStrategy\",\"ignoreSystemJobs\"]],\"No\",\"Yes\"]],[1,\"\\n            \"],[13],[1,\"\\n          \"],[13],[1,\"\\n\"],[41,[51,[30,0,[\"model\",\"drainStrategy\",\"isForced\"]]],[[[1,\"            \"],[10,0],[14,0,\"pull-right\"],[12],[1,\"\\n              \"],[8,[39,12],null,[[\"@alignRight\",\"@classes\",\"@idleText\",\"@cancelText\",\"@confirmText\",\"@confirmationMessage\",\"@awaitingConfirmation\",\"@onConfirm\"],[true,[28,[37,19],null,[[\"idleButton\",\"confirmationMessage\",\"cancelButton\",\"confirmButton\"],[\"is-warning\",\"inherit-color\",\"is-danger is-important\",\"is-warning\"]]],\"Force Drain\",\"Cancel\",\"Yes, Force Drain\",\"Are you sure you want to force drain?\",[30,0,[\"forceDrain\",\"isRunning\"]],[28,[37,9],[[30,0,[\"forceDrain\"]]],null]]],null],[1,\"\\n            \"],[13],[1,\"\\n\"]],[]],null],[1,\"        \"],[13],[1,\"\\n      \"],[13],[1,\"\\n      \"],[10,0],[14,0,\"boxed-section-body\"],[12],[1,\"\\n        \"],[10,0],[14,0,\"columns\"],[12],[1,\"\\n          \"],[10,0],[14,0,\"column nowrap is-minimum\"],[12],[1,\"\\n            \"],[10,0],[14,0,\"metric-group\"],[12],[1,\"\\n              \"],[10,0],[14,0,\"metric is-primary\"],[12],[1,\"\\n                \"],[10,\"h3\"],[14,0,\"label\"],[12],[1,\"\\n                  Complete\\n                \"],[13],[1,\"\\n                \"],[10,2],[14,0,\"value\"],[12],[1,\"\\n                  \"],[1,[30,0,[\"model\",\"completeAllocations\",\"length\"]]],[1,\"\\n                \"],[13],[1,\"\\n              \"],[13],[1,\"\\n            \"],[13],[1,\"\\n            \"],[10,0],[14,0,\"metric-group\"],[12],[1,\"\\n              \"],[10,0],[14,0,\"metric\"],[12],[1,\"\\n                \"],[10,\"h3\"],[14,0,\"label\"],[12],[1,\"\\n                  Migrating\\n                \"],[13],[1,\"\\n                \"],[10,2],[14,0,\"value\"],[12],[1,\"\\n                  \"],[1,[30,0,[\"model\",\"migratingAllocations\",\"length\"]]],[1,\"\\n                \"],[13],[1,\"\\n              \"],[13],[1,\"\\n            \"],[13],[1,\"\\n            \"],[10,0],[14,0,\"metric-group\"],[12],[1,\"\\n              \"],[10,0],[14,0,\"metric\"],[12],[1,\"\\n                \"],[10,\"h3\"],[14,0,\"label\"],[12],[1,\"\\n                  Remaining\\n                \"],[13],[1,\"\\n                \"],[10,2],[14,0,\"value\"],[12],[1,\"\\n                  \"],[1,[30,0,[\"model\",\"runningAllocations\",\"length\"]]],[1,\"\\n                \"],[13],[1,\"\\n              \"],[13],[1,\"\\n            \"],[13],[1,\"\\n          \"],[13],[1,\"\\n          \"],[10,0],[14,0,\"column\"],[12],[1,\"\\n            \"],[10,\"h3\"],[14,0,\"title is-4\"],[12],[1,\"\\n              Status\\n            \"],[13],[1,\"\\n\"],[41,[30,0,[\"model\",\"lastMigrateTime\"]],[[[1,\"              \"],[10,2],[12],[1,\"\\n                \"],[1,[28,[35,20],[[30,0,[\"model\",\"lastMigrateTime\"]]],[[\"interval\",\"hideAffix\"],[1000,true]]]],[1,\"\\n                since an allocation was successfully migrated.\\n              \"],[13],[1,\"\\n\"]],[]],[[[1,\"              \"],[10,2],[12],[1,\"\\n                No allocations migrated.\\n              \"],[13],[1,\"\\n\"]],[]]],[1,\"          \"],[13],[1,\"\\n        \"],[13],[1,\"\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n\"]],[]],null],[1,\"  \"],[10,0],[14,0,\"boxed-section\"],[12],[1,\"\\n    \"],[10,0],[14,0,\"boxed-section-head is-hollow\"],[12],[1,\"\\n      Host Resource Utilization\\n      \"],[10,1],[14,0,\"tooltip multiline pad-left\"],[14,\"aria-label\",\"All allocation and system processes aggregated\"],[12],[1,\"\\n        \"],[1,[28,[35,6],[\"info-circle-outline\"],[[\"class\"],[\"is-faded\"]]]],[1,\"\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n    \"],[10,0],[14,0,\"boxed-section-body\"],[12],[1,\"\\n      \"],[10,0],[14,0,\"columns\"],[12],[1,\"\\n        \"],[10,0],[14,0,\"column\"],[12],[1,\"\\n          \"],[8,[39,21],null,[[\"@node\",\"@metric\"],[[30,0,[\"model\"]],\"cpu\"]],null],[1,\"\\n        \"],[13],[1,\"\\n        \"],[10,0],[14,0,\"column\"],[12],[1,\"\\n          \"],[8,[39,21],null,[[\"@node\",\"@metric\"],[[30,0,[\"model\"]],\"memory\"]],null],[1,\"\\n        \"],[13],[1,\"\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n  \"],[13],[1,\"\\n  \"],[10,0],[14,0,\"boxed-section\"],[12],[1,\"\\n    \"],[10,0],[14,0,\"boxed-section-head\"],[12],[1,\"\\n      \"],[10,0],[12],[1,\"\\n        Allocations\\n        \"],[10,\"button\"],[14,\"role\",\"button\"],[14,0,\"badge is-white\"],[15,\"onclick\",[28,[37,4],[[30,0],\"setPreemptionFilter\",false],null]],[14,4,\"button\"],[12],[1,\"\\n          \"],[1,[30,0,[\"model\",\"allocations\",\"length\"]]],[1,\"\\n        \"],[13],[1,\"\\n\"],[41,[30,0,[\"preemptions\",\"length\"]],[[[1,\"          \"],[10,\"button\"],[14,\"role\",\"button\"],[14,0,\"badge is-warning\"],[15,\"onclick\",[28,[37,4],[[30,0],\"setPreemptionFilter\",true],null]],[14,4,\"button\"],[12],[1,\"\\n            \"],[1,[30,0,[\"preemptions\",\"length\"]]],[1,\"\\n            \"],[1,[28,[35,14],[\"preemption\",[30,0,[\"preemptions\",\"length\"]]],null]],[1,\"\\n          \"],[13],[1,\"\\n\"]],[]],null],[1,\"      \"],[13],[1,\"\\n      \"],[10,0],[14,0,\"pull-right is-subsection\"],[12],[1,\"\\n        \"],[8,[39,22],null,[[\"@label\",\"@options\",\"@selection\",\"@onSelect\"],[\"Namespace\",[30,0,[\"optionsNamespace\"]],[30,0,[\"selectionNamespace\"]],[28,[37,4],[[30,0],[30,0,[\"setFacetQueryParam\"]],\"qpNamespace\"],null]]],null],[1,\"\\n        \"],[8,[39,22],null,[[\"@label\",\"@options\",\"@selection\",\"@onSelect\"],[\"Job\",[30,0,[\"optionsJob\"]],[30,0,[\"selectionJob\"]],[28,[37,4],[[30,0],[30,0,[\"setFacetQueryParam\"]],\"qpJob\"],null]]],null],[1,\"\\n        \"],[8,[39,22],null,[[\"@label\",\"@options\",\"@selection\",\"@onSelect\"],[\"Status\",[30,0,[\"optionsAllocationStatus\"]],[30,0,[\"selectionStatus\"]],[28,[37,4],[[30,0],[30,0,[\"setFacetQueryParam\"]],\"qpStatus\"],null]]],null],[1,\"\\n        \"],[8,[39,23],null,[[\"@searchTerm\",\"@onChange\",\"@placeholder\",\"@inputClass\",\"@class\"],[[28,[37,5],[[30,0,[\"searchTerm\"]]],null],[28,[37,4],[[30,0],[30,0,[\"resetPagination\"]]],null],\"Search allocations...\",\"is-compact\",\"is-padded\"]],null],[1,\"\\n\\n        \"],[10,1],[14,0,\"is-padded is-one-line\"],[12],[1,\"\\n          \"],[8,[39,7],[[24,\"title\",\"Show tasks of allocations\"]],[[\"@isActive\",\"@onToggle\"],[[30,0,[\"showSubTasks\"]],[30,0,[\"toggleShowSubTasks\"]]]],[[\"default\"],[[[[1,\"\\n            Show Tasks\\n          \"]],[]]]]],[1,\"\\n        \"],[13],[1,\"\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n    \"],[10,0],[15,0,[29,[\"boxed-section-body\\n        \",[52,[30,0,[\"sortedAllocations\",\"length\"]],\"is-full-bleed\"]]]],[12],[1,\"\\n\"],[41,[30,0,[\"sortedAllocations\",\"length\"]],[[[1,\"        \"],[8,[39,24],null,[[\"@source\",\"@size\",\"@page\"],[[30,0,[\"sortedAllocations\"]],[30,0,[\"pageSize\"]],[30,0,[\"currentPage\"]]]],[[\"default\"],[[[[1,\"\\n          \"],[8,[39,25],null,[[\"@source\",\"@sortProperty\",\"@sortDescending\",\"@class\"],[[30,1,[\"list\"]],[30,0,[\"sortProperty\"]],[30,0,[\"sortDescending\"]],[29,[\"with-foot \",[52,[30,0,[\"showSubTasks\"]],\"with-collapsed-borders\"]]]]],[[\"default\"],[[[[1,\"\\n            \"],[8,[30,2,[\"head\"]],null,null,[[\"default\"],[[[[1,\"\\n              \"],[10,\"th\"],[14,0,\"is-narrow\"],[12],[13],[1,\"\\n              \"],[8,[30,2,[\"sort-by\"]],null,[[\"@prop\"],[\"shortId\"]],[[\"default\"],[[[[1,\"\\n                ID\\n              \"]],[]]]]],[1,\"\\n              \"],[8,[30,2,[\"sort-by\"]],null,[[\"@prop\",\"@title\"],[\"createIndex\",\"Create Index\"]],[[\"default\"],[[[[1,\"\\n                Created\\n              \"]],[]]]]],[1,\"\\n              \"],[8,[30,2,[\"sort-by\"]],null,[[\"@prop\",\"@title\"],[\"modifyIndex\",\"Modify Index\"]],[[\"default\"],[[[[1,\"\\n                Modified\\n              \"]],[]]]]],[1,\"\\n              \"],[8,[30,2,[\"sort-by\"]],null,[[\"@prop\"],[\"statusIndex\"]],[[\"default\"],[[[[1,\"\\n                Status\\n              \"]],[]]]]],[1,\"\\n              \"],[8,[30,2,[\"sort-by\"]],null,[[\"@prop\"],[\"job.name\"]],[[\"default\"],[[[[1,\"\\n                Job\\n              \"]],[]]]]],[1,\"\\n              \"],[8,[30,2,[\"sort-by\"]],null,[[\"@prop\"],[\"jobVersion\"]],[[\"default\"],[[[[1,\"\\n                Version\\n              \"]],[]]]]],[1,\"\\n              \"],[10,\"th\"],[12],[1,\"\\n                Volume\\n              \"],[13],[1,\"\\n              \"],[10,\"th\"],[12],[1,\"\\n                CPU\\n              \"],[13],[1,\"\\n              \"],[10,\"th\"],[12],[1,\"\\n                Memory\\n              \"],[13],[1,\"\\n            \"]],[]]]]],[1,\"\\n            \"],[8,[30,2,[\"body\"]],null,null,[[\"default\"],[[[[1,\"\\n              \"],[8,[39,26],[[4,[38,27],null,[[\"enumerated\",\"action\"],[true,[28,[37,4],[[30,0],\"gotoAllocation\",[30,3,[\"model\"]]],null]]]]],[[\"@allocation\",\"@context\",\"@onClick\"],[[30,3,[\"model\"]],\"node\",[28,[37,4],[[30,0],\"gotoAllocation\",[30,3,[\"model\"]]],null]]],null],[1,\"\\n\"],[41,[30,0,[\"showSubTasks\"]],[[[42,[28,[37,29],[[28,[37,29],[[30,3,[\"model\",\"states\"]]],null]],null],null,[[[1,\"                  \"],[8,[39,30],null,[[\"@namespan\",\"@taskState\",\"@active\",\"@onSetActiveTask\"],[\"8\",[30,4],[28,[37,31],[[30,0,[\"activeTask\"]],[28,[37,32],[[30,4,[\"allocation\",\"id\"]],\"-\",[30,4,[\"name\"]]],null]],null],[28,[37,4],[[30,0],\"setActiveTaskQueryParam\"],null]]],null],[1,\"\\n\"]],[4]],null]],[]],null],[1,\"            \"]],[3]]]]],[1,\"\\n          \"]],[2]]]]],[1,\"\\n          \"],[10,0],[14,0,\"table-foot\"],[12],[1,\"\\n            \"],[10,\"nav\"],[14,0,\"pagination\"],[12],[1,\"\\n              \"],[10,0],[14,0,\"pagination-numbers\"],[12],[1,\"\\n                \"],[1,[30,1,[\"startsAt\"]]],[1,\"\\n                –\\n                \"],[1,[30,1,[\"endsAt\"]]],[1,\"\\n                of\\n                \"],[1,[30,0,[\"sortedAllocations\",\"length\"]]],[1,\"\\n              \"],[13],[1,\"\\n              \"],[8,[30,1,[\"prev\"]],null,[[\"@class\"],[\"pagination-previous\"]],[[\"default\"],[[[[1,\"\\n                <\\n              \"]],[]]]]],[1,\"\\n              \"],[8,[30,1,[\"next\"]],null,[[\"@class\"],[\"pagination-next\"]],[[\"default\"],[[[[1,\"\\n                >\\n              \"]],[]]]]],[1,\"\\n              \"],[10,\"ul\"],[14,0,\"pagination-list\"],[12],[13],[1,\"\\n            \"],[13],[1,\"\\n          \"],[13],[1,\"\\n        \"]],[1]]]]],[1,\"\\n\"]],[]],[[[1,\"        \"],[10,0],[14,0,\"empty-message\"],[12],[1,\"\\n\"],[41,[28,[37,31],[[30,0,[\"visibleAllocations\",\"length\"]],0],null],[[[1,\"            \"],[10,\"h3\"],[14,0,\"empty-message-headline\"],[12],[1,\"\\n              No Allocations\\n            \"],[13],[1,\"\\n            \"],[10,2],[14,0,\"empty-message-body\"],[12],[1,\"\\n              The node doesn't have any allocations.\\n            \"],[13],[1,\"\\n\"]],[]],[[[41,[30,0,[\"searchTerm\"]],[[[1,\"            \"],[10,\"h3\"],[14,0,\"empty-message-headline\"],[12],[1,\"\\n              No Matches\\n            \"],[13],[1,\"\\n            \"],[10,2],[14,0,\"empty-message-body\"],[12],[1,\"\\n              No allocations match the term\\n              \"],[10,\"strong\"],[12],[1,\"\\n                \"],[1,[30,0,[\"searchTerm\"]]],[1,\"\\n              \"],[13],[1,\"\\n            \"],[13],[1,\"\\n\"]],[]],[[[41,[28,[37,31],[[30,0,[\"sortedAllocations\",\"length\"]],0],null],[[[1,\"            \"],[10,\"h3\"],[14,0,\"empty-message-headline\"],[12],[1,\"\\n              No Matches\\n            \"],[13],[1,\"\\n            \"],[10,2],[14,0,\"empty-message-body\"],[12],[1,\"\\n              No allocations match your current filter selection.\\n            \"],[13],[1,\"\\n          \"]],[]],null]],[]]]],[]]],[1,\"        \"],[13],[1,\"\\n\"]],[]]],[1,\"    \"],[13],[1,\"\\n  \"],[13],[1,\"\\n  \"],[10,0],[14,0,\"boxed-section\"],[12],[1,\"\\n    \"],[10,0],[14,0,\"boxed-section-head\"],[12],[1,\"\\n      Client Events\\n    \"],[13],[1,\"\\n    \"],[10,0],[14,0,\"boxed-section-body is-full-bleed\"],[12],[1,\"\\n      \"],[8,[39,25],null,[[\"@source\",\"@class\"],[[30,0,[\"sortedEvents\"]],\"is-striped\"]],[[\"default\"],[[[[1,\"\\n        \"],[8,[30,5,[\"head\"]],null,null,[[\"default\"],[[[[1,\"\\n          \"],[10,\"th\"],[14,0,\"is-2\"],[12],[1,\"\\n            Time\\n          \"],[13],[1,\"\\n          \"],[10,\"th\"],[14,0,\"is-2\"],[12],[1,\"\\n            Subsystem\\n          \"],[13],[1,\"\\n          \"],[10,\"th\"],[12],[1,\"\\n            Message\\n          \"],[13],[1,\"\\n        \"]],[]]]]],[1,\"\\n        \"],[8,[30,5,[\"body\"]],null,null,[[\"default\"],[[[[1,\"\\n          \"],[10,\"tr\"],[12],[1,\"\\n            \"],[10,\"td\"],[12],[1,\"\\n              \"],[1,[28,[35,17],[[30,6,[\"model\",\"time\"]]],null]],[1,\"\\n            \"],[13],[1,\"\\n            \"],[10,\"td\"],[12],[1,\"\\n              \"],[1,[30,6,[\"model\",\"subsystem\"]]],[1,\"\\n            \"],[13],[1,\"\\n            \"],[10,\"td\"],[12],[1,\"\\n\"],[41,[30,6,[\"model\",\"message\"]],[[[41,[30,6,[\"model\",\"driver\"]],[[[1,\"                  \"],[10,1],[14,0,\"badge is-secondary is-small\"],[12],[1,\"\\n                    \"],[1,[30,6,[\"model\",\"driver\"]]],[1,\"\\n                  \"],[13],[1,\"\\n\"]],[]],null],[1,\"                \"],[1,[30,6,[\"model\",\"message\"]]],[1,\"\\n\"]],[]],[[[1,\"                \"],[10,\"em\"],[12],[1,\"\\n                  No message\\n                \"],[13],[1,\"\\n\"]],[]]],[1,\"            \"],[13],[1,\"\\n          \"],[13],[1,\"\\n        \"]],[6]]]]],[1,\"\\n      \"]],[5]]]]],[1,\"\\n    \"],[13],[1,\"\\n  \"],[13],[1,\"\\n\"],[41,[30,0,[\"sortedHostVolumes\",\"length\"]],[[[1,\"    \"],[10,0],[14,0,\"boxed-section\"],[12],[1,\"\\n      \"],[10,0],[14,0,\"boxed-section-head\"],[12],[1,\"\\n        Host Volumes\\n      \"],[13],[1,\"\\n      \"],[10,0],[14,0,\"boxed-section-body is-full-bleed\"],[12],[1,\"\\n        \"],[8,[39,25],null,[[\"@source\",\"@class\"],[[30,0,[\"sortedHostVolumes\"]],\"is-striped\"]],[[\"default\"],[[[[1,\"\\n          \"],[8,[30,7,[\"head\"]],null,null,[[\"default\"],[[[[1,\"\\n            \"],[10,\"th\"],[12],[1,\"\\n              Name\\n            \"],[13],[1,\"\\n            \"],[10,\"th\"],[12],[1,\"\\n              Source\\n            \"],[13],[1,\"\\n            \"],[10,\"th\"],[12],[1,\"\\n              Permissions\\n            \"],[13],[1,\"\\n          \"]],[]]]]],[1,\"\\n          \"],[8,[30,7,[\"body\"]],null,null,[[\"default\"],[[[[1,\"\\n            \"],[10,\"tr\"],[12],[1,\"\\n              \"],[10,\"td\"],[12],[1,\"\\n                \"],[1,[30,8,[\"model\",\"name\"]]],[1,\"\\n              \"],[13],[1,\"\\n              \"],[10,\"td\"],[12],[1,\"\\n                \"],[10,\"code\"],[12],[1,\"\\n                  \"],[1,[30,8,[\"model\",\"path\"]]],[1,\"\\n                \"],[13],[1,\"\\n              \"],[13],[1,\"\\n              \"],[10,\"td\"],[12],[1,\"\\n                \"],[1,[52,[30,8,[\"model\",\"readOnly\"]],\"Read\",\"Read/Write\"]],[1,\"\\n              \"],[13],[1,\"\\n            \"],[13],[1,\"\\n          \"]],[8]]]]],[1,\"\\n        \"]],[7]]]]],[1,\"\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n\"]],[]],null],[1,\"  \"],[10,0],[14,0,\"boxed-section\"],[12],[1,\"\\n    \"],[10,0],[14,0,\"boxed-section-head\"],[12],[1,\"\\n      Driver Status\\n    \"],[13],[1,\"\\n    \"],[10,0],[14,0,\"boxed-section-body\"],[12],[1,\"\\n      \"],[8,[39,33],null,[[\"@source\",\"@key\"],[[30,0,[\"sortedDrivers\"]],\"name\"]],[[\"default\"],[[[[1,\"\\n        \"],[8,[30,9,[\"head\"]],null,[[\"@buttonLabel\",\"@buttonType\",\"@isExpandable\"],[\"details\",\"client-detail\",[30,9,[\"item\",\"detected\"]]]],[[\"default\"],[[[[1,\"\\n          \"],[10,0],[15,0,[29,[\"columns inline-definitions\\n              \",[52,[51,[30,9,[\"item\",\"detected\"]]],\"is-faded\"]]]],[12],[1,\"\\n            \"],[10,0],[14,0,\"column is-1\"],[12],[1,\"\\n              \"],[10,1],[12],[1,\"\\n                \"],[1,[30,9,[\"item\",\"name\"]]],[1,\"\\n              \"],[13],[1,\"\\n            \"],[13],[1,\"\\n            \"],[10,0],[14,0,\"column is-2\"],[12],[1,\"\\n\"],[41,[30,9,[\"item\",\"detected\"]],[[[1,\"                \"],[10,1],[12],[1,\"\\n                  \"],[10,1],[15,0,[29,[\"color-swatch \",[30,9,[\"item\",\"healthClass\"]]]]],[12],[13],[1,\"\\n                  \"],[1,[52,[30,9,[\"item\",\"healthy\"]],\"Healthy\",\"Unhealthy\"]],[1,\"\\n                \"],[13],[1,\"\\n\"]],[]],null],[1,\"            \"],[13],[1,\"\\n            \"],[10,0],[14,0,\"column\"],[12],[1,\"\\n              \"],[10,1],[14,0,\"pair\"],[12],[1,\"\\n                \"],[10,1],[14,0,\"term\"],[12],[1,\"\\n                  Detected\\n                \"],[13],[1,\"\\n                \"],[10,1],[12],[1,\"\\n                  \"],[1,[52,[30,9,[\"item\",\"detected\"]],\"Yes\",\"No\"]],[1,\"\\n                \"],[13],[1,\"\\n              \"],[13],[1,\"\\n              \"],[10,1],[14,0,\"is-pulled-right\"],[12],[1,\"\\n                \"],[10,1],[14,0,\"pair\"],[12],[1,\"\\n                  \"],[10,1],[14,0,\"term\"],[12],[1,\"\\n                    Last Updated\\n                  \"],[13],[1,\"\\n                  \"],[10,1],[14,0,\"tooltip\"],[15,\"aria-label\",[29,[[28,[37,17],[[30,9,[\"item\",\"updateTime\"]]],null]]]],[12],[1,\"\\n                    \"],[1,[28,[35,18],[[30,9,[\"item\",\"updateTime\"]]],[[\"interval\"],[1000]]]],[1,\"\\n                  \"],[13],[1,\"\\n                \"],[13],[1,\"\\n              \"],[13],[1,\"\\n            \"],[13],[1,\"\\n          \"],[13],[1,\"\\n        \"]],[]]]]],[1,\"\\n        \"],[8,[30,9,[\"body\"]],null,null,[[\"default\"],[[[[1,\"\\n          \"],[10,2],[14,0,\"message\"],[12],[1,\"\\n            \"],[1,[30,9,[\"item\",\"healthDescription\"]]],[1,\"\\n          \"],[13],[1,\"\\n          \"],[10,0],[14,0,\"boxed-section\"],[12],[1,\"\\n            \"],[10,0],[14,0,\"boxed-section-head\"],[12],[1,\"\\n              \"],[1,[28,[35,34],[[30,9,[\"item\",\"name\"]]],null]],[1,\"\\n              Attributes\\n            \"],[13],[1,\"\\n\"],[41,[30,9,[\"item\",\"attributes\",\"structured\"]],[[[1,\"              \"],[10,0],[14,0,\"boxed-section-body is-full-bleed\"],[12],[1,\"\\n                \"],[8,[39,35],null,[[\"@attributePairs\",\"@class\"],[[30,9,[\"item\",\"attributesShort\"]],\"attributes-table\"]],null],[1,\"\\n              \"],[13],[1,\"\\n\"]],[]],[[[1,\"              \"],[10,0],[14,0,\"boxed-section-body\"],[12],[1,\"\\n                \"],[10,0],[14,0,\"empty-message\"],[12],[1,\"\\n                  \"],[10,\"h3\"],[14,0,\"empty-message-headline\"],[12],[1,\"\\n                    No Driver Attributes\\n                  \"],[13],[1,\"\\n                \"],[13],[1,\"\\n              \"],[13],[1,\"\\n\"]],[]]],[1,\"          \"],[13],[1,\"\\n        \"]],[]]]]],[1,\"\\n      \"]],[9]]]]],[1,\"\\n    \"],[13],[1,\"\\n  \"],[13],[1,\"\\n  \"],[10,0],[14,0,\"boxed-section\"],[12],[1,\"\\n    \"],[10,0],[14,0,\"boxed-section-head\"],[12],[1,\"\\n      Attributes\\n    \"],[13],[1,\"\\n    \"],[10,0],[14,0,\"boxed-section-body is-full-bleed\"],[12],[1,\"\\n      \"],[8,[39,35],null,[[\"@attributePairs\",\"@class\",\"@copyable\"],[[30,0,[\"model\",\"attributes\",\"structured\"]],\"attributes-table\",true]],null],[1,\"\\n    \"],[13],[1,\"\\n  \"],[13],[1,\"\\n  \"],[10,0],[14,0,\"boxed-section\"],[12],[1,\"\\n    \"],[10,0],[14,0,\"boxed-section-head\"],[12],[1,\"\\n      Meta\\n    \"],[13],[1,\"\\n\"],[41,[30,0,[\"hasMeta\"]],[[[1,\"      \"],[10,0],[14,0,\"boxed-section-body is-full-bleed\"],[12],[1,\"\\n        \"],[8,[39,35],null,[[\"@attributePairs\",\"@editable\",\"@onKVSave\",\"@onKVEdit\",\"@class\"],[[30,0,[\"model\",\"meta\",\"structured\"]],[28,[37,36],[\"write client\"],null],[30,0,[\"addDynamicMetaData\"]],[30,0,[\"validateMetadata\"]],\"attributes-table\"]],null],[1,\"\\n      \"],[13],[1,\"\\n\"]],[]],[[[1,\"      \"],[10,0],[14,0,\"boxed-section-body\"],[12],[1,\"\\n        \"],[10,0],[14,0,\"empty-message\"],[12],[1,\"\\n          \"],[10,\"h3\"],[14,0,\"empty-message-headline\"],[12],[1,\"\\n            No Meta Attributes\\n          \"],[13],[1,\"\\n          \"],[10,2],[14,0,\"empty-message-body\"],[12],[1,\"\\n            This client is configured with no meta attributes.\\n          \"],[13],[1,\"\\n        \"],[13],[1,\"\\n      \"],[13],[1,\"\\n\"]],[]]],[41,[28,[37,36],[\"write client\"],null],[[[41,[30,0,[\"editingMetadata\"]],[[[1,\"        \"],[10,0],[14,0,\"add-dynamic-metadata\"],[12],[1,\"\\n          \"],[10,\"h3\"],[14,0,\"title is-6\"],[12],[1,\"Add Dynamic Metadata\"],[13],[1,\"\\n          \"],[8,[39,37],null,[[\"@kv\",\"@onEdit\"],[[30,0,[\"newMetaData\"]],[30,0,[\"validateMetadata\"]]]],[[\"default\"],[[[[1,\"\\n            \"],[11,\"button\"],[16,\"disabled\",[28,[37,1],[[28,[37,10],[[30,0,[\"newMetaData\",\"key\"]]],null],[28,[37,10],[[30,0,[\"newMetaData\",\"value\"]]],null]],null]],[24,0,\"button is-primary\"],[24,4,\"submit\"],[4,[38,38],[\"click\",[28,[37,39],[[28,[37,4],[[30,0],[30,0,[\"addDynamicMetaData\"]],[30,0,[\"newMetaData\"]]],null],[30,0,[\"resetNewMetaData\"]],[28,[37,4],[[30,0],[28,[37,5],[[30,0,[\"editingMetadata\"]]],null],false],null]],null]],null],[12],[1,\"\\n              Add \"],[1,[30,0,[\"newMetaData\",\"key\"]]],[1,\" to node metadata\\n            \"],[13],[1,\"\\n\\n            \"],[11,\"button\"],[24,0,\"button is-secondary\"],[24,4,\"button\"],[4,[38,38],[\"click\",[28,[37,39],[[30,0,[\"resetNewMetaData\"]],[28,[37,4],[[30,0],[28,[37,5],[[30,0,[\"editingMetadata\"]]],null],false],null]],null]],null],[12],[1,\"\\n              Cancel\\n            \"],[13],[1,\"\\n\\n          \"]],[]]]]],[1,\"\\n        \"],[13],[1,\"\\n\"]],[]],[[[1,\"        \"],[10,0],[14,0,\"add-dynamic-metadata\"],[12],[1,\"\\n          \"],[11,\"button\"],[24,0,\"button is-primary\"],[24,4,\"button\"],[4,[38,38],[\"click\",[28,[37,4],[[30,0],[28,[37,5],[[30,0,[\"editingMetadata\"]]],null],true],null]],null],[4,[38,27],null,[[\"label\",\"pattern\",\"action\"],[\"Add Dynamic Node Metadata\",[28,[37,40],[\"m\",\"e\",\"t\",\"a\"],null],[28,[37,4],[[30,0],[28,[37,5],[[30,0,[\"editingMetadata\"]]],null],true],null]]]],[12],[1,\"\\n            Add new Dynamic Metadata\\n          \"],[13],[1,\"\\n        \"],[13],[1,\"\\n\"]],[]]]],[]],null],[1,\"  \"],[13],[1,\"\\n\"],[13]],[\"p\",\"t\",\"row\",\"task\",\"t\",\"row\",\"t\",\"row\",\"a\"],false,[\"page-title\",\"or\",\"client-subnav\",\"if\",\"action\",\"mut\",\"x-icon\",\"toggle\",\"cannot\",\"perform\",\"not\",\"copy-button\",\"two-step-button\",\"drain-popover\",\"pluralize\",\"unless\",\"format-duration\",\"format-ts\",\"moment-from-now\",\"hash\",\"moment-to-now\",\"primary-metric/node\",\"multi-select-dropdown\",\"search-box\",\"list-pagination\",\"list-table\",\"allocation-row\",\"keyboard-shortcut\",\"each\",\"-track-array\",\"task-sub-row\",\"eq\",\"concat\",\"list-accordion\",\"capitalize\",\"attributes-table\",\"can\",\"metadata-editor\",\"on\",\"queue\",\"array\"]]",
    "moduleName": "nomad-ui/templates/clients/client/index.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/clients/client/monitor", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "/lNTvbOU",
    "block": "[[[1,[28,[35,0],[\"Client \",[28,[37,1],[[30,0,[\"model\",\"name\"]],[30,0,[\"model\",\"shortId\"]]],null]],null]],[1,\"\\n\"],[8,[39,2],null,[[\"@client\"],[[30,0,[\"model\"]]]],null],[1,\"\\n\"],[10,\"section\"],[14,0,\"section is-full-width\"],[12],[1,\"\\n\"],[41,[28,[37,4],[\"read agent\"],null],[[[1,\"    \"],[8,[39,5],null,[[\"@level\",\"@client\",\"@onLevelChange\"],[[30,0,[\"level\"]],[30,0,[\"model\"]],[28,[37,6],[[30,0],[28,[37,7],[[30,0,[\"level\"]]],null]],null]]],null],[1,\"\\n\"]],[]],[[[1,\"    \"],[8,[39,8],null,[[\"@permission\"],[\"agent:read\"]],null],[1,\"\\n\"]],[]]],[13],[1,\"\\n\"]],[],false,[\"page-title\",\"or\",\"client-subnav\",\"if\",\"can\",\"agent-monitor\",\"action\",\"mut\",\"forbidden-message\"]]",
    "moduleName": "nomad-ui/templates/clients/client/monitor.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/clients/index", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "5KUd+WZt",
    "block": "[[[1,[28,[35,0],[\"Clients\"],null]],[1,\"\\n\"],[10,\"section\"],[14,0,\"section\"],[12],[1,\"\\n\"],[41,[30,0,[\"isForbidden\"]],[[[1,\"    \"],[8,[39,2],null,null,null],[1,\"\\n\"]],[]],[[[1,\"    \"],[10,0],[14,0,\"toolbar\"],[12],[1,\"\\n      \"],[10,0],[14,0,\"toolbar-item\"],[12],[1,\"\\n\"],[41,[30,0,[\"nodes\",\"length\"]],[[[1,\"          \"],[8,[39,3],null,[[\"@searchTerm\",\"@onChange\",\"@placeholder\"],[[28,[37,4],[[30,0,[\"searchTerm\"]]],null],[28,[37,5],[[30,0],[30,0,[\"resetPagination\"]]],null],\"Search clients...\"]],null],[1,\"\\n\"]],[]],null],[1,\"      \"],[13],[1,\"\\n      \"],[10,0],[14,0,\"toolbar-item is-right-aligned is-mobile-full-width\"],[12],[1,\"\\n        \"],[10,0],[14,0,\"button-bar\"],[12],[1,\"\\n          \"],[8,[39,6],null,[[\"@label\",\"@options\",\"@selection\",\"@onSelect\"],[\"State\",[30,0,[\"optionsState\"]],[30,0,[\"selectionState\"]],[28,[37,5],[[30,0],[30,0,[\"setFacetQueryParam\"]],\"qpState\"],null]]],null],[1,\"\\n          \"],[8,[39,6],null,[[\"@label\",\"@options\",\"@selection\",\"@onSelect\"],[\"Node Pool\",[30,0,[\"optionsNodePool\"]],[30,0,[\"selectionNodePool\"]],[28,[37,5],[[30,0],[30,0,[\"setFacetQueryParam\"]],\"qpNodePool\"],null]]],null],[1,\"\\n          \"],[8,[39,6],null,[[\"@label\",\"@options\",\"@selection\",\"@onSelect\"],[\"Class\",[30,0,[\"optionsClass\"]],[30,0,[\"selectionClass\"]],[28,[37,5],[[30,0],[30,0,[\"setFacetQueryParam\"]],\"qpClass\"],null]]],null],[1,\"\\n          \"],[8,[39,6],null,[[\"@label\",\"@options\",\"@selection\",\"@onSelect\"],[\"Datacenter\",[30,0,[\"optionsDatacenter\"]],[30,0,[\"selectionDatacenter\"]],[28,[37,5],[[30,0],[30,0,[\"setFacetQueryParam\"]],\"qpDatacenter\"],null]]],null],[1,\"\\n          \"],[8,[39,6],null,[[\"@label\",\"@options\",\"@selection\",\"@onSelect\"],[\"Version\",[30,0,[\"optionsVersion\"]],[30,0,[\"selectionVersion\"]],[28,[37,5],[[30,0],[30,0,[\"setFacetQueryParam\"]],\"qpVersion\"],null]]],null],[1,\"\\n          \"],[8,[39,6],null,[[\"@label\",\"@options\",\"@selection\",\"@onSelect\"],[\"Volume\",[30,0,[\"optionsVolume\"]],[30,0,[\"selectionVolume\"]],[28,[37,5],[[30,0],[30,0,[\"setFacetQueryParam\"]],\"qpVolume\"],null]]],null],[1,\"\\n        \"],[13],[1,\"\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n\"],[41,[30,0,[\"sortedNodes\"]],[[[1,\"      \"],[8,[39,7],null,[[\"@source\",\"@size\",\"@page\"],[[30,0,[\"sortedNodes\"]],[30,0,[\"pageSize\"]],[30,0,[\"currentPage\"]]]],[[\"default\"],[[[[1,\"\\n        \"],[8,[39,8],null,[[\"@source\",\"@sortProperty\",\"@sortDescending\",\"@class\"],[[30,1,[\"list\"]],[30,0,[\"sortProperty\"]],[30,0,[\"sortDescending\"]],\"with-foot\"]],[[\"default\"],[[[[1,\"\\n          \"],[8,[30,2,[\"head\"]],null,null,[[\"default\"],[[[[1,\"\\n            \"],[10,\"th\"],[14,0,\"is-narrow\"],[12],[13],[1,\"\\n            \"],[8,[30,2,[\"sort-by\"]],null,[[\"@prop\"],[\"id\"]],[[\"default\"],[[[[1,\"ID\"]],[]]]]],[1,\"\\n            \"],[8,[30,2,[\"sort-by\"]],null,[[\"@class\",\"@prop\"],[\"is-200px is-truncatable\",\"name\"]],[[\"default\"],[[[[1,\"Name\"]],[]]]]],[1,\"\\n            \"],[8,[30,2,[\"sort-by\"]],null,[[\"@prop\"],[\"compositeStatus\"]],[[\"default\"],[[[[1,\"State\"]],[]]]]],[1,\"\\n            \"],[10,\"th\"],[14,0,\"is-200px is-truncatable\"],[12],[1,\"Address\"],[13],[1,\"\\n            \"],[8,[30,2,[\"sort-by\"]],null,[[\"@prop\"],[\"nodePool\"]],[[\"default\"],[[[[1,\"Node Pool\"]],[]]]]],[1,\"\\n            \"],[8,[30,2,[\"sort-by\"]],null,[[\"@prop\"],[\"datacenter\"]],[[\"default\"],[[[[1,\"Datacenter\"]],[]]]]],[1,\"\\n            \"],[8,[30,2,[\"sort-by\"]],null,[[\"@prop\"],[\"version\"]],[[\"default\"],[[[[1,\"Version\"]],[]]]]],[1,\"\\n            \"],[10,\"th\"],[12],[1,\"# Volumes\"],[13],[1,\"\\n            \"],[10,\"th\"],[12],[1,\"# Allocs\"],[13],[1,\"\\n          \"]],[]]]]],[1,\"\\n          \"],[8,[30,2,[\"body\"]],null,null,[[\"default\"],[[[[1,\"\\n            \"],[8,[39,9],[[4,[38,10],null,[[\"enumerated\",\"action\"],[true,[28,[37,5],[[30,0],\"gotoNode\",[30,3,[\"model\"]]],null]]]]],[[\"@node\",\"@onClick\"],[[30,3,[\"model\"]],[28,[37,5],[[30,0],\"gotoNode\",[30,3,[\"model\"]]],null]]],null],[1,\"\\n          \"]],[3]]]]],[1,\"\\n        \"]],[2]]]]],[1,\"\\n        \"],[10,0],[14,0,\"table-foot\"],[12],[1,\"\\n          \"],[8,[39,11],null,[[\"@onChange\"],[[28,[37,5],[[30,0],[30,0,[\"resetPagination\"]]],null]]],null],[1,\"\\n          \"],[10,\"nav\"],[14,0,\"pagination\"],[12],[1,\"\\n            \"],[10,0],[14,0,\"pagination-numbers\"],[12],[1,\"\\n              \"],[1,[30,1,[\"startsAt\"]]],[1,\"–\"],[1,[30,1,[\"endsAt\"]]],[1,\"\\n              of\\n              \"],[1,[30,0,[\"sortedNodes\",\"length\"]]],[1,\"\\n            \"],[13],[1,\"\\n            \"],[8,[30,1,[\"prev\"]],null,[[\"@class\"],[\"pagination-previous\"]],[[\"default\"],[[[[1,[28,[35,12],[\"chevron-left\"],null]]],[]]]]],[1,\"\\n            \"],[8,[30,1,[\"next\"]],null,[[\"@class\"],[\"pagination-next\"]],[[\"default\"],[[[[1,[28,[35,12],[\"chevron-right\"],null]]],[]]]]],[1,\"\\n            \"],[10,\"ul\"],[14,0,\"pagination-list\"],[12],[13],[1,\"\\n          \"],[13],[1,\"\\n        \"],[13],[1,\"\\n      \"]],[1]]]]],[1,\"\\n\"]],[]],[[[1,\"      \"],[10,0],[14,0,\"empty-message\"],[12],[1,\"\\n\"],[41,[28,[37,13],[[30,0,[\"nodes\",\"length\"]],0],null],[[[1,\"          \"],[10,\"h3\"],[14,0,\"empty-message-headline\"],[12],[1,\"No Clients\"],[13],[1,\"\\n          \"],[10,2],[14,0,\"empty-message-body\"],[12],[1,\"\\n            The cluster currently has no client nodes.\\n          \"],[13],[1,\"\\n\"]],[]],[[[41,[28,[37,13],[[30,0,[\"filteredNodes\",\"length\"]],0],null],[[[1,\"          \"],[10,\"h3\"],[14,0,\"empty-message-headline\"],[12],[1,\"No Matches\"],[13],[1,\"\\n          \"],[10,2],[14,0,\"empty-message-body\"],[12],[1,\"\\n            No clients match your current filter selection.\\n          \"],[13],[1,\"\\n\"]],[]],[[[41,[30,0,[\"searchTerm\"]],[[[1,\"          \"],[10,\"h3\"],[14,0,\"empty-message-headline\"],[12],[1,\"No Matches\"],[13],[1,\"\\n          \"],[10,2],[14,0,\"empty-message-body\"],[12],[1,\"No clients match the term\\n            \"],[10,\"strong\"],[12],[1,[30,0,[\"searchTerm\"]]],[13],[13],[1,\"\\n        \"]],[]],null]],[]]]],[]]],[1,\"      \"],[13],[1,\"\\n\"]],[]]]],[]]],[13],[1,\"\\n\"]],[\"p\",\"t\",\"row\"],false,[\"page-title\",\"if\",\"forbidden-message\",\"search-box\",\"mut\",\"action\",\"multi-select-dropdown\",\"list-pagination\",\"list-table\",\"client-node-row\",\"keyboard-shortcut\",\"page-size-select\",\"x-icon\",\"eq\"]]",
    "moduleName": "nomad-ui/templates/clients/index.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/clients/loading", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "ALuLBXTW",
    "block": "[[[10,\"section\"],[14,0,\"section has-text-centered\"],[12],[8,[39,0],null,null,null],[13],[1,\"\\n\"]],[],false,[\"loading-spinner\"]]",
    "moduleName": "nomad-ui/templates/clients/loading.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/agent-monitor", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "ry608R0R",
    "block": "[[[10,0],[14,0,\"boxed-section\"],[12],[1,\"\\n  \"],[10,0],[14,0,\"boxed-section-head\"],[12],[1,\"\\n    \"],[8,[39,0],null,[[\"@tagName\",\"@triggerClass\",\"@options\",\"@selected\",\"@searchEnabled\",\"@onChange\"],[\"div\",\"is-compact pull-left\",[30,0,[\"levels\"]],[30,0,[\"level\"]],false,[28,[37,1],[[30,0],[30,0,[\"setLevel\"]]],null]]],[[\"default\"],[[[[1,\"\\n      \"],[10,1],[14,0,\"ember-power-select-prefix\"],[12],[1,\"Level: \"],[13],[1,[28,[35,2],[[30,1]],null]],[1,\"\\n    \"]],[1]]]]],[1,\"\\n    \"],[11,\"button\"],[24,0,\"button is-white is-compact pull-right\"],[16,\"title\",[29,[[52,[30,0,[\"logger\",\"isStreaming\"]],\"Stop\",\"Start\"],\" log streaming\"]]],[24,4,\"button\"],[4,[38,1],[[30,0],[30,0,[\"toggleStream\"]]],null],[12],[1,\"\\n      \"],[1,[28,[35,4],[[52,[30,0,[\"logger\",\"isStreaming\"]],\"media-pause\",\"media-play\"]],[[\"class\"],[\"is-text\"]]]],[1,\"\\n    \"],[13],[1,\"\\n  \"],[13],[1,\"\\n  \"],[10,0],[14,0,\"boxed-section-body is-dark is-full-bleed\"],[12],[1,\"\\n    \"],[8,[39,5],null,[[\"@logger\",\"@isStreaming\"],[[30,0,[\"logger\"]],[30,0,[\"isStreaming\"]]]],null],[1,\"\\n  \"],[13],[1,\"\\n\"],[13],[1,\"\\n\"]],[\"level\"],false,[\"power-select\",\"action\",\"capitalize\",\"if\",\"x-icon\",\"streaming-file\"]]",
    "moduleName": "nomad-ui/templates/components/agent-monitor.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/allocation-row", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "nmuOYIEu",
    "block": "[[[10,\"td\"],[14,0,\"is-narrow\"],[12],[1,\"\\n\"],[41,[30,0,[\"allocation\",\"unhealthyDrivers\",\"length\"]],[[[1,\"    \"],[10,1],[14,0,\"tooltip text-center\"],[14,\"role\",\"tooltip\"],[14,\"aria-label\",\"Allocation depends on unhealthy drivers\"],[12],[1,\"\\n      \"],[1,[28,[35,1],[\"alert-triangle\"],[[\"class\"],[\"is-warning\"]]]],[1,\"\\n    \"],[13],[1,\"\\n\"]],[]],null],[41,[30,0,[\"allocation\",\"nextAllocation\"]],[[[1,\"    \"],[10,1],[14,0,\"tooltip text-center\"],[14,\"role\",\"tooltip\"],[14,\"aria-label\",\"Allocation was rescheduled\"],[12],[1,\"\\n      \"],[1,[28,[35,1],[\"history\"],[[\"class\"],[\"is-faded\"]]]],[1,\"\\n    \"],[13],[1,\"\\n\"]],[]],null],[41,[30,0,[\"allocation\",\"wasPreempted\"]],[[[1,\"    \"],[10,1],[14,0,\"tooltip text-center\"],[14,\"role\",\"tooltip\"],[14,\"aria-label\",\"Allocation was preempted\"],[12],[1,\"\\n      \"],[1,[28,[35,1],[\"boot\"],[[\"class\"],[\"is-faded\"]]]],[1,\"\\n    \"],[13],[1,\"\\n\"]],[]],null],[13],[1,\"\\n\"],[10,\"td\"],[12],[1,\"\\n  \"],[8,[39,2],[[24,0,\"is-primary\"]],[[\"@route\",\"@model\"],[\"allocations.allocation\",[30,0,[\"allocation\",\"id\"]]]],[[\"default\"],[[[[1,\"\\n    \"],[1,[30,0,[\"allocation\",\"shortId\"]]],[1,\"\\n  \"]],[]]]]],[1,\"\\n\"],[13],[1,\"\\n\"],[41,[28,[37,3],[[30,0,[\"context\"]],\"job\"],null],[[[1,\"  \"],[10,\"td\"],[12],[1,\"\\n    \"],[8,[39,2],null,[[\"@route\",\"@models\"],[\"jobs.job.task-group\",[28,[37,4],[[28,[37,5],[[30,0,[\"allocation\",\"job\",\"id\"]]],null],[30,0,[\"allocation\",\"taskGroupName\"]]],null]]],[[\"default\"],[[[[1,\"\\n      \"],[1,[30,0,[\"allocation\",\"taskGroupName\"]]],[1,\"\\n    \"]],[]]]]],[1,\"\\n  \"],[13],[1,\"\\n\"]],[]],null],[10,\"td\"],[12],[1,\"\\n  \"],[1,[28,[35,6],[[30,0,[\"allocation\",\"createTime\"]]],null]],[1,\"\\n\"],[13],[1,\"\\n\"],[10,\"td\"],[12],[1,\"\\n  \"],[10,1],[14,0,\"tooltip\"],[15,\"aria-label\",[29,[[28,[37,6],[[30,0,[\"allocation\",\"modifyTime\"]]],null]]]],[12],[1,\"\\n    \"],[1,[28,[35,7],[[30,0,[\"allocation\",\"modifyTime\"]]],null]],[1,\"\\n  \"],[13],[1,\"\\n\"],[13],[1,\"\\n\"],[10,\"td\"],[14,0,\"is-one-line\"],[12],[1,\"\\n  \"],[10,1],[15,0,[29,[\"color-swatch \",[30,0,[\"allocation\",\"clientStatus\"]]]]],[12],[13],[1,\"\\n  \"],[1,[30,0,[\"allocation\",\"clientStatus\"]]],[1,\"\\n\"],[13],[1,\"\\n\"],[41,[28,[37,3],[[30,0,[\"context\"]],\"volume\"],null],[[[1,\"  \"],[10,\"td\"],[12],[1,\"\\n    \"],[8,[39,8],null,[[\"@text\"],[[30,0,[\"allocation\",\"node\",\"name\"]]]],[[\"default\"],[[[[1,\"\\n      \"],[8,[39,2],null,[[\"@route\",\"@model\"],[\"clients.client\",[30,0,[\"allocation\",\"node\"]]]],[[\"default\"],[[[[1,\"\\n        \"],[1,[30,0,[\"allocation\",\"node\",\"shortId\"]]],[1,\"\\n      \"]],[]]]]],[1,\"\\n    \"]],[]]]]],[1,\"\\n  \"],[13],[1,\"\\n\"]],[]],null],[41,[28,[37,9],[[28,[37,3],[[30,0,[\"context\"]],\"taskGroup\"],null],[28,[37,3],[[30,0,[\"context\"]],\"job\"],null]],null],[[[1,\"  \"],[10,\"td\"],[12],[1,\"\\n    \"],[1,[30,0,[\"allocation\",\"jobVersion\"]]],[1,\"\\n  \"],[13],[1,\"\\n  \"],[10,\"td\"],[12],[1,\"\\n    \"],[8,[39,8],null,[[\"@text\"],[[30,0,[\"allocation\",\"node\",\"name\"]]]],[[\"default\"],[[[[1,\"\\n      \"],[8,[39,2],null,[[\"@route\",\"@model\"],[\"clients.client\",[30,0,[\"allocation\",\"node\"]]]],[[\"default\"],[[[[1,\"\\n        \"],[1,[30,0,[\"allocation\",\"node\",\"shortId\"]]],[1,\"\\n      \"]],[]]]]],[1,\"\\n    \"]],[]]]]],[1,\"\\n  \"],[13],[1,\"\\n\"]],[]],[[[41,[28,[37,9],[[28,[37,3],[[30,0,[\"context\"]],\"node\"],null],[28,[37,3],[[30,0,[\"context\"]],\"volume\"],null]],null],[[[1,\"  \"],[10,\"td\"],[12],[1,\"\\n\"],[41,[28,[37,9],[[30,0,[\"allocation\",\"job\",\"isPending\"]],[30,0,[\"allocation\",\"job\",\"isReloading\"]]],null],[[[1,\"      ...\\n\"]],[]],[[[1,\"      \"],[8,[39,2],null,[[\"@route\",\"@model\"],[\"jobs.job\",[28,[37,5],[[30,0,[\"allocation\",\"job\",\"id\"]]],null]]],[[\"default\"],[[[[1,\"\\n        \"],[1,[30,0,[\"allocation\",\"job\",\"name\"]]],[1,\"\\n      \"]],[]]]]],[1,\"\\n      \"],[10,1],[14,0,\"is-faded\"],[12],[1,\"\\n        /\\n        \"],[1,[30,0,[\"allocation\",\"taskGroup\",\"name\"]]],[1,\"\\n      \"],[13],[1,\"\\n\"]],[]]],[1,\"  \"],[13],[1,\"\\n  \"],[10,\"td\"],[14,0,\"is-1\"],[12],[1,\"\\n    \"],[1,[30,0,[\"allocation\",\"jobVersion\"]]],[1,\"\\n  \"],[13],[1,\"\\n\"]],[]],null]],[]]],[41,[28,[37,10],[[28,[37,3],[[30,0,[\"context\"]],\"volume\"],null]],null],[[[1,\"  \"],[10,\"td\"],[12],[1,\"\\n    \"],[1,[52,[30,0,[\"allocation\",\"taskGroup\",\"volumes\",\"length\"]],\"Yes\"]],[1,\"\\n  \"],[13],[1,\"\\n\"]],[]],null],[10,\"td\"],[14,0,\"is-1 has-text-centered\"],[12],[1,\"\\n  \"],[8,[39,11],null,[[\"@metric\",\"@allocation\",\"@statsTracker\",\"@isLoading\",\"@error\"],[\"cpu\",[30,0,[\"allocation\"]],[30,0,[\"stats\"]],[30,0,[\"fetchStats\",\"isRunning\"]],[30,0,[\"statsError\"]]]],null],[1,\"\\n\"],[13],[1,\"\\n\"],[10,\"td\"],[14,0,\"is-1 has-text-centered\"],[12],[1,\"\\n  \"],[8,[39,11],null,[[\"@metric\",\"@allocation\",\"@statsTracker\",\"@isLoading\",\"@error\"],[\"memory\",[30,0,[\"allocation\"]],[30,0,[\"stats\"]],[30,0,[\"fetchStats\",\"isRunning\"]],[30,0,[\"statsError\"]]]],null],[1,\"\\n\"],[13]],[],false,[\"if\",\"x-icon\",\"link-to\",\"eq\",\"array\",\"format-job-id\",\"format-month-ts\",\"moment-from-now\",\"tooltip\",\"or\",\"not\",\"allocation-stat\"]]",
    "moduleName": "nomad-ui/templates/components/allocation-row.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/allocation-stat", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "6CXvK1Ml",
    "block": "[[[41,[30,0,[\"allocation\",\"isRunning\"]],[[[41,[28,[37,1],[[28,[37,2],[[30,0,[\"stat\"]]],null],[30,0,[\"isLoading\"]]],null],[[[1,\"    …\\n\"]],[]],[[[41,[30,0,[\"error\"]],[[[1,\"    \"],[10,1],[14,0,\"tooltip is-small text-center\"],[14,\"role\",\"tooltip\"],[14,\"aria-label\",\"Couldn't collect stats\"],[12],[1,\"\\n      \"],[1,[28,[35,3],[\"alert-triangle\"],[[\"class\"],[\"is-warning\"]]]],[1,\"\\n    \"],[13],[1,\"\\n\"]],[]],[[[1,\"    \"],[10,0],[14,0,\"inline-chart tooltip\"],[14,\"role\",\"tooltip\"],[15,\"aria-label\",[29,[[30,0,[\"formattedStat\"]],\" / \",[30,0,[\"formattedReserved\"]]]]],[12],[1,\"\\n      \"],[10,\"progress\"],[15,0,[29,[\"progress is-small \",[30,0,[\"statClass\"]]]]],[15,2,[29,[[30,0,[\"stat\",\"percent\"]]]]],[14,\"max\",\"1\"],[12],[1,\"\\n        \"],[1,[30,0,[\"stat\",\"percent\"]]],[1,\"\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n  \"]],[]]]],[]]]],[]],null]],[],false,[\"if\",\"and\",\"not\",\"x-icon\"]]",
    "moduleName": "nomad-ui/templates/components/allocation-stat.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/allocation-subnav", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "pq3d/m9q",
    "block": "[[[11,0],[24,0,\"tabs is-subnav\"],[4,[38,0],[[30,0,[\"keyboard\",\"registerNav\"]]],[[\"type\"],[\"subnav\"]]],[4,[38,1],[[30,0,[\"keyboard\",\"unregisterSubnav\"]]],null],[12],[1,\"\\n  \"],[10,\"ul\"],[12],[1,\"\\n    \"],[10,\"li\"],[12],[8,[39,2],null,[[\"@route\",\"@model\",\"@activeClass\"],[\"allocations.allocation.index\",[30,0,[\"allocation\"]],\"is-active\"]],[[\"default\"],[[[[1,\"Overview\"]],[]]]]],[13],[1,\"\\n    \"],[10,\"li\"],[12],[8,[39,2],[[16,0,[52,[30,0,[\"filesLinkActive\"]],\"is-active\"]]],[[\"@route\",\"@model\"],[\"allocations.allocation.fs-root\",[30,0,[\"allocation\"]]]],[[\"default\"],[[[[1,\"Files\"]],[]]]]],[13],[1,\"\\n  \"],[13],[1,\"\\n\"],[13],[1,\"\\n\"]],[],false,[\"did-insert\",\"will-destroy\",\"link-to\",\"if\"]]",
    "moduleName": "nomad-ui/templates/components/allocation-subnav.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/app-breadcrumbs", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "c6kgadjk",
    "block": "[[[8,[39,0],null,null,[[\"default\"],[[[[1,\"\\n\"],[42,[28,[37,2],[[28,[37,2],[[30,1]],null]],null],null,[[[44,[[30,2,[\"args\",\"crumb\"]]],[[[1,\"      \"],[46,[28,[37,5],[\"breadcrumbs/\",[28,[37,6],[[30,4,[\"type\"]],\"default\"],null]],null],null,[[\"crumb\",\"isOneCrumbUp\"],[[30,4],[28,[37,7],[[30,0],[30,0,[\"isOneCrumbUp\"]],[30,3],[30,1,[\"length\"]]],null]]],null],[1,\"\\n\"]],[4]]]],[2,3]],null]],[1]]]]]],[\"breadcrumbs\",\"crumb\",\"iter\",\"c\"],false,[\"breadcrumbs\",\"each\",\"-track-array\",\"let\",\"component\",\"concat\",\"or\",\"action\"]]",
    "moduleName": "nomad-ui/templates/components/app-breadcrumbs.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/attributes-section", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "bwvN3zp7",
    "block": "[[[42,[28,[37,1],[[30,0,[\"attributes\"]]],null],null,[[[41,[28,[37,3],[[30,1]],null],[[[1,\"    \"],[10,\"tr\"],[12],[1,\"\\n      \"],[10,\"td\"],[14,0,\"is-subheading\"],[14,\"colspan\",\"2\"],[12],[1,\"\\n        \"],[41,[30,0,[\"prefix\"]],[[[10,1],[14,0,\"is-faded\"],[12],[1,[30,0,[\"prefix\"]]],[1,\".\"],[13]],[]],null],[1,[30,2]],[1,\"\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n    \"],[8,[39,4],null,[[\"@prefix\",\"@attributes\",\"@key\",\"@value\",\"@editable\",\"@onKVSave\",\"@copyable\"],[[52,[30,0,[\"prefix\"]],[28,[37,5],[[30,0,[\"prefix\"]],\".\",[30,2]],null],[30,2]],[30,1],[30,2],[30,1],[30,3],[30,4],[30,5]]],null],[1,\"\\n\"]],[]],[[[1,\"    \"],[8,[39,6],null,[[\"@prefix\",\"@key\",\"@value\",\"@editable\",\"@onKVSave\",\"@copyable\"],[[30,0,[\"prefix\"]],[30,2],[30,1],[30,3],[30,4],[30,5]]],null],[1,\"\\n\"]],[]]]],[1,2]],null]],[\"value\",\"key\",\"@editable\",\"@onKVSave\",\"@copyable\"],false,[\"each\",\"-each-in\",\"if\",\"is-object\",\"attributes-section\",\"concat\",\"metadata-kv\"]]",
    "moduleName": "nomad-ui/templates/components/attributes-section.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/attributes-table", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "lzuF8fE6",
    "block": "[[[11,\"table\"],[24,0,\"table is-striped is-fixed is-compact is-darkened no-mobile-condense\"],[17,1],[12],[1,\"\\n  \"],[10,\"thead\"],[12],[1,\"\\n    \"],[10,\"tr\"],[12],[1,\"\\n      \"],[10,\"th\"],[14,0,\"is-one-third\"],[12],[1,\"Name\"],[13],[1,\"\\n      \"],[10,\"th\"],[12],[1,\"Value\"],[13],[1,\"\\n    \"],[13],[1,\"\\n  \"],[13],[1,\"\\n  \"],[10,\"tbody\"],[12],[1,\"\\n    \"],[8,[39,0],null,[[\"@attributes\",\"@editable\",\"@onKVEdit\",\"@onKVSave\",\"@copyable\"],[[30,2],[30,3],[30,4],[30,5],[30,6]]],null],[1,\"\\n  \"],[13],[1,\"\\n\"],[13],[1,\"\\n\"]],[\"&attrs\",\"@attributePairs\",\"@editable\",\"@onKVEdit\",\"@onKVSave\",\"@copyable\"],false,[\"attributes-section\"]]",
    "moduleName": "nomad-ui/templates/components/attributes-table.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/basic-dropdown-content", ["exports", "ember-basic-dropdown/templates/components/basic-dropdown-content"], function (_exports, _basicDropdownContent) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _basicDropdownContent.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-basic-dropdown/templates/components/basic-dropdown-content"eaimeta@70e063a35619d71f
});
;define("nomad-ui/templates/components/basic-dropdown-trigger", ["exports", "ember-basic-dropdown/templates/components/basic-dropdown-trigger"], function (_exports, _basicDropdownTrigger) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _basicDropdownTrigger.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-basic-dropdown/templates/components/basic-dropdown-trigger"eaimeta@70e063a35619d71f
});
;define("nomad-ui/templates/components/basic-dropdown", ["exports", "ember-basic-dropdown/templates/components/basic-dropdown"], function (_exports, _basicDropdown) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _basicDropdown.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-basic-dropdown/templates/components/basic-dropdown"eaimeta@70e063a35619d71f
});
;define("nomad-ui/templates/components/client-node-row", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "7XG+WwFM",
    "block": "[[[10,\"td\"],[14,0,\"is-narrow\"],[12],[1,\"\\n\"],[41,[30,0,[\"node\",\"unhealthyDrivers\",\"length\"]],[[[1,\"    \"],[10,1],[14,0,\"tooltip text-center\"],[14,\"role\",\"tooltip\"],[14,\"aria-label\",\"Client has unhealthy drivers\"],[12],[1,\"\\n      \"],[1,[28,[35,1],[\"alert-triangle\"],[[\"class\"],[\"is-warning\"]]]],[1,\"\\n    \"],[13],[1,\"\\n\"]],[]],null],[13],[1,\"\\n\"],[10,\"td\"],[12],[8,[39,2],[[24,0,\"is-primary\"]],[[\"@route\",\"@model\"],[\"clients.client\",[30,0,[\"node\",\"id\"]]]],[[\"default\"],[[[[1,[30,0,[\"node\",\"shortId\"]]]],[]]]]],[13],[1,\"\\n\"],[10,\"td\"],[14,0,\"is-200px is-truncatable\"],[15,\"title\",[29,[[30,0,[\"node\",\"name\"]]]]],[12],[1,[30,0,[\"node\",\"name\"]]],[13],[1,\"\\n\"],[10,\"td\"],[12],[1,\"\\n  \"],[10,1],[14,0,\"tooltip\"],[15,\"aria-label\",[29,[[30,0,[\"node\",\"status\"]],\" / \",[52,[30,0,[\"node\",\"isDraining\"]],\"draining\",\"not draining\"],\" / \",[52,[30,0,[\"node\",\"isEligible\"]],\"eligible\",\"not eligible\"]]]],[12],[1,\"\\n    \"],[10,1],[15,0,[29,[[30,0,[\"compositeStatusClass\"]]]]],[12],[1,[30,0,[\"node\",\"compositeStatus\"]]],[13],[1,\"\\n  \"],[13],[1,\"\\n\"],[13],[1,\"\\n\"],[10,\"td\"],[14,0,\"is-200px is-truncatable\"],[12],[1,[30,0,[\"node\",\"httpAddr\"]]],[13],[1,\"\\n\"],[10,\"td\"],[15,\"title\",[29,[[30,0,[\"node\",\"nodePool\"]]]]],[12],[1,\"\\n  \"],[41,[30,0,[\"node\",\"nodePool\"]],[[[1,[30,0,[\"node\",\"nodePool\"]]]],[]],[[[1,\"-\"]],[]]],[1,\"\\n\"],[13],[1,\"\\n\"],[10,\"td\"],[12],[1,[30,0,[\"node\",\"datacenter\"]]],[13],[1,\"\\n\"],[10,\"td\"],[12],[1,[30,0,[\"node\",\"version\"]]],[13],[1,\"\\n\"],[10,\"td\"],[12],[1,[52,[30,0,[\"node\",\"hostVolumes\",\"length\"]],[30,0,[\"node\",\"hostVolumes\",\"length\"]]]],[13],[1,\"\\n\"],[10,\"td\"],[12],[1,\"\\n\"],[41,[30,0,[\"node\",\"allocations\",\"isPending\"]],[[[1,\"    ...\\n\"]],[]],[[[1,\"    \"],[1,[30,0,[\"node\",\"runningAllocations\",\"length\"]]],[1,\"\\n\"]],[]]],[13],[1,\"\\n\"]],[],false,[\"if\",\"x-icon\",\"link-to\"]]",
    "moduleName": "nomad-ui/templates/components/client-node-row.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/client-subnav", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "RpLwiWHS",
    "block": "[[[11,0],[24,0,\"tabs is-subnav\"],[4,[38,0],[[30,0,[\"keyboard\",\"registerNav\"]]],[[\"type\"],[\"subnav\"]]],[4,[38,1],[[30,0,[\"keyboard\",\"unregisterSubnav\"]]],null],[12],[1,\"\\n  \"],[10,\"ul\"],[12],[1,\"\\n    \"],[10,\"li\"],[12],[8,[39,2],null,[[\"@route\",\"@model\",\"@activeClass\"],[\"clients.client.index\",[30,0,[\"client\"]],\"is-active\"]],[[\"default\"],[[[[1,\"Overview\"]],[]]]]],[13],[1,\"\\n    \"],[10,\"li\"],[12],[8,[39,2],null,[[\"@route\",\"@model\",\"@activeClass\"],[\"clients.client.monitor\",[30,0,[\"client\"]],\"is-active\"]],[[\"default\"],[[[[1,\"Monitor\"]],[]]]]],[13],[1,\"\\n  \"],[13],[1,\"\\n\"],[13],[1,\"\\n\"]],[],false,[\"did-insert\",\"will-destroy\",\"link-to\"]]",
    "moduleName": "nomad-ui/templates/components/client-subnav.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/copy-button", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "kqMNBrgo",
    "block": "[[[10,0],[15,0,[29,[\"copy-button \",[52,[30,1],\"inset\"]]]],[12],[1,\"\\n\"],[41,[28,[37,1],[[30,0,[\"state\"]],\"success\"],null],[[[1,\"  \"],[10,0],[15,0,[29,[\"button is-small is-static \",[52,[30,2],\"is-compact\"],\" \",[52,[51,[30,3]],\"is-borderless\"]]]],[12],[1,\"\\n\"],[41,[30,1],[[[1,\"      \"],[10,1],[14,\"aria-label\",\"Copied!\"],[12],[1,[28,[35,3],[\"copy-success\"],null]],[13],[1,\"\\n\"]],[]],[[[1,\"      \"],[10,1],[14,0,\"tooltip text-center always-active\"],[14,\"role\",\"tooltip\"],[14,\"aria-label\",\"Copied!\"],[12],[1,\"\\n        \"],[1,[28,[35,3],[\"copy-success\"],null]],[1,\"\\n      \"],[13],[1,\"\\n\"]],[]]],[1,\"    \"],[18,4,null],[1,\"\\n  \"],[13],[1,\"\\n\"]],[]],[[[41,[28,[37,1],[[30,0,[\"state\"]],\"error\"],null],[[[1,\"  \"],[10,0],[15,0,[29,[\"button is-small is-static \",[52,[30,2],\"is-compact\"],\" \",[52,[51,[30,3]],\"is-borderless\"]]]],[12],[1,\"\\n\"],[41,[30,1],[[[1,\"      \"],[10,1],[14,\"aria-label\",\"Error copying\"],[12],[1,[28,[35,3],[\"alert-triangle\"],null]],[13],[1,\"\\n\"]],[]],[[[1,\"      \"],[10,1],[14,0,\"tooltip text-center\"],[14,\"role\",\"tooltip\"],[14,\"aria-label\",\"Error copying\"],[12],[1,\"\\n        \"],[1,[28,[35,3],[\"alert-triangle\"],null]],[1,\"\\n      \"],[13],[1,\"\\n\"]],[]]],[1,\"    \"],[18,4,null],[1,\"\\n  \"],[13],[1,\"\\n\"]],[]],[[[1,\"  \"],[8,[39,5],[[24,\"title\",\"Copy\"],[16,0,[29,[\"button is-small \",[52,[30,2],\"is-compact\"],\" \",[52,[51,[30,3]],\"is-borderless\"],\" \",[52,[30,1],\"is-inset\"]]]]],[[\"@text\",\"@onSuccess\",\"@onError\"],[[30,0,[\"text\"]],[28,[37,6],[[30,0,[\"indicateSuccess\"]]],null],[28,[37,7],[[30,0],[28,[37,8],[[30,0,[\"state\"]]],null],\"error\"],null]]],[[\"default\"],[[[[1,\"\\n    \"],[1,[28,[35,3],[\"copy-action\"],null]],[1,\"\\n    \"],[18,4,null],[1,\"\\n  \"]],[]]]]],[1,\"\\n\"]],[]]]],[]]],[13]],[\"@inset\",\"@compact\",\"@border\",\"&default\"],false,[\"if\",\"eq\",\"unless\",\"x-icon\",\"yield\",\"addon-copy-button\",\"perform\",\"action\",\"mut\"]]",
    "moduleName": "nomad-ui/templates/components/copy-button.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/distribution-bar", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "/0eaUuqh",
    "block": "[[[10,\"svg\"],[12],[1,\"\\n  \"],[10,\"defs\"],[12],[1,\"\\n    \"],[10,\"clipPath\"],[12],[1,\"\\n      \"],[10,\"rect\"],[14,0,\"mask\"],[14,\"x\",\"0\"],[14,\"y\",\"0\"],[14,\"width\",\"100%\"],[14,\"height\",\"100%\"],[14,\"rx\",\"2px\"],[14,\"ry\",\"2px\"],[12],[13],[1,\"\\n    \"],[13],[1,\"\\n  \"],[13],[1,\"\\n  \"],[10,\"g\"],[14,0,\"bars\"],[12],[13],[1,\"\\n\"],[13],[1,\"\\n\"],[41,[48,[30,3]],[[[1,\"  \"],[18,3,[[28,[37,3],null,[[\"data\",\"activeDatum\"],[[30,0,[\"_data\"]],[30,0,[\"activeDatum\"]]]]]]],[1,\"\\n\"]],[]],[[[1,\"  \"],[10,0],[15,0,[29,[\"chart-tooltip with-active-datum\\n      \",[52,[30,0,[\"isActive\"]],\"active\",\"inactive\"]]]],[15,5,[30,0,[\"tooltipStyle\"]]],[12],[1,\"\\n    \"],[10,\"ol\"],[12],[1,\"\\n\"],[42,[28,[37,5],[[28,[37,5],[[30,0,[\"_data\"]]],null]],null],null,[[[1,\"        \"],[10,\"li\"],[15,0,[29,[[52,[28,[37,6],[[30,1,[\"label\"]],[30,0,[\"activeDatum\",\"label\"]]],null],\"is-active\"]]]],[12],[1,\"\\n          \"],[10,1],[15,0,[29,[\"label \",[52,[28,[37,6],[[30,1,[\"value\"]],0],null],\"is-empty\"]]]],[12],[1,\"\\n            \"],[10,1],[15,0,[29,[\"color-swatch\\n                \",[52,[30,1,[\"className\"]],[30,1,[\"className\"]],[28,[37,7],[\"swatch-\",[30,2]],null]]]]],[12],[13],[1,\"\\n            \"],[1,[30,1,[\"label\"]]],[1,\"\\n          \"],[13],[1,\"\\n          \"],[10,1],[14,0,\"value\"],[12],[1,[30,1,[\"value\"]]],[13],[1,\"\\n        \"],[13],[1,\"\\n\"]],[1,2]],null],[1,\"    \"],[13],[1,\"\\n  \"],[13],[1,\"\\n\"]],[]]]],[\"datum\",\"index\",\"&default\"],false,[\"if\",\"has-block\",\"yield\",\"hash\",\"each\",\"-track-array\",\"eq\",\"concat\"]]",
    "moduleName": "nomad-ui/templates/components/distribution-bar.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/drain-popover", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "2+evcUet",
    "block": "[[[8,[39,0],null,[[\"@isDisabled\",\"@label\",\"@tooltip\",\"@triggerClass\"],[[30,0,[\"isDisabled\"]],[52,[30,0,[\"client\",\"isDraining\"]],\"Update Drain\",\"Drain\"],[52,[30,0,[\"isDisabled\"]],\"Not allowed to drain clients\"],[28,[37,2],[\"is-small \",[52,[30,0,[\"drain\",\"isRunning\"]],\"is-loading \"],[52,[30,0,[\"isDisabled\"]],\"tooltip is-right-aligned\"]],null]]],[[\"default\"],[[[[1,\"\\n  \"],[10,\"form\"],[15,\"onsubmit\",[28,[37,3],[[30,0],[28,[37,4],[[28,[37,3],[[30,0],[30,0,[\"preventDefault\"]]],null],[28,[37,5],[[30,0,[\"drain\"]],[30,1,[\"actions\",\"close\"]]],null]],null]],null]],[14,0,\"form is-small\"],[12],[1,\"\\n    \"],[10,\"h4\"],[14,0,\"group-heading\"],[12],[1,\"Drain Options\"],[13],[1,\"\\n    \"],[10,0],[14,0,\"field\"],[12],[1,\"\\n      \"],[10,\"label\"],[14,0,\"label is-interactive\"],[12],[1,\"\\n        \"],[8,[39,6],null,[[\"@isActive\",\"@onToggle\"],[[30,0,[\"deadlineEnabled\"]],[28,[37,3],[[30,0],[28,[37,7],[[30,0,[\"deadlineEnabled\"]]],null]],[[\"value\"],[\"target.checked\"]]]]],[[\"default\"],[[[[1,\"\\n          Deadline\\n        \"]],[]]]]],[1,\"\\n        \"],[10,1],[14,0,\"tooltip multiline\"],[14,\"aria-label\",\"The amount of time a drain must complete within.\"],[12],[1,\"\\n          \"],[1,[28,[35,8],[\"info-circle-outline\"],[[\"class\"],[\"is-faded\"]]]],[1,\"\\n        \"],[13],[1,\"\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n\"],[41,[30,0,[\"deadlineEnabled\"]],[[[1,\"      \"],[10,0],[14,0,\"field is-sub-field\"],[12],[1,\"\\n        \"],[8,[39,9],null,[[\"@tagName\",\"@options\",\"@selected\",\"@onChange\"],[\"div\",[30,0,[\"durationQuickOptions\"]],[30,0,[\"selectedDurationQuickOption\"]],[28,[37,3],[[30,0],[28,[37,7],[[30,0,[\"selectedDurationQuickOption\"]]],null]],null]]],[[\"default\"],[[[[1,\"\\n          \"],[1,[30,2,[\"label\"]]],[1,\"\\n        \"]],[2]]]]],[1,\"\\n      \"],[13],[1,\"\\n\"],[41,[30,0,[\"durationIsCustom\"]],[[[1,\"        \"],[10,0],[14,0,\"field is-sub-field\"],[12],[1,\"\\n          \"],[10,\"label\"],[14,0,\"label\"],[12],[1,\"Deadline\"],[13],[1,\"\\n          \"],[10,\"input\"],[15,0,[29,[\"input \",[52,[30,0,[\"parseError\"]],\"is-danger\"]]]],[14,\"placeholder\",\"1h30m\"],[15,2,[52,[28,[37,10],[[30,0,[\"customDuration\"]],0],null],\"\",[30,0,[\"customDuration\"]]]],[15,\"oninput\",[28,[37,3],[[30,0],[28,[37,4],[[28,[37,3],[[30,0],[28,[37,7],[[30,0,[\"parseError\"]]],null],\"\"],null],[28,[37,3],[[30,0],[28,[37,7],[[30,0,[\"customDuration\"]]],null]],[[\"value\"],[\"target.value\"]]]],null]],null]],[14,4,\"text\"],[12],[13],[1,\"\\n\"],[41,[30,0,[\"parseError\"]],[[[1,\"            \"],[10,\"em\"],[14,0,\"help is-danger\"],[12],[1,[30,0,[\"parseError\"]]],[13],[1,\"\\n\"]],[]],null],[1,\"        \"],[13],[1,\"\\n\"]],[]],null]],[]],null],[1,\"    \"],[10,0],[14,0,\"field\"],[12],[1,\"\\n      \"],[10,\"label\"],[14,0,\"label is-interactive\"],[12],[1,\"\\n        \"],[8,[39,6],null,[[\"@isActive\",\"@onToggle\"],[[30,0,[\"forceDrain\"]],[28,[37,3],[[30,0],[28,[37,7],[[30,0,[\"forceDrain\"]]],null]],[[\"value\"],[\"target.checked\"]]]]],[[\"default\"],[[[[1,\"\\n          Force Drain\\n        \"]],[]]]]],[1,\"\\n        \"],[10,1],[14,0,\"tooltip multiline\"],[14,\"aria-label\",\"Immediately remove allocations from the client.\"],[12],[1,\"\\n          \"],[1,[28,[35,8],[\"info-circle-outline\"],[[\"class\"],[\"is-faded\"]]]],[1,\"\\n        \"],[13],[1,\"\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n    \"],[10,0],[14,0,\"field\"],[12],[1,\"\\n      \"],[10,\"label\"],[14,0,\"label is-interactive\"],[12],[1,\"\\n        \"],[8,[39,6],null,[[\"@isActive\",\"@onToggle\"],[[30,0,[\"drainSystemJobs\"]],[28,[37,3],[[30,0],[28,[37,7],[[30,0,[\"drainSystemJobs\"]]],null]],[[\"value\"],[\"target.checked\"]]]]],[[\"default\"],[[[[1,\"\\n          Drain System Jobs\\n        \"]],[]]]]],[1,\"\\n        \"],[10,1],[14,0,\"tooltip multiline\"],[14,\"aria-label\",\"Stop allocations for system jobs.\"],[12],[1,\"\\n          \"],[1,[28,[35,8],[\"info-circle-outline\"],[[\"class\"],[\"is-faded\"]]]],[1,\"\\n        \"],[13],[1,\"\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n    \"],[10,0],[14,0,\"popover-actions\"],[12],[1,\"\\n      \"],[10,\"button\"],[14,0,\"popover-action is-primary\"],[15,\"onclick\",[28,[37,5],[[30,0,[\"drain\"]],[30,1,[\"actions\",\"close\"]]],null]],[14,4,\"button\"],[12],[1,\"\\n        Drain\\n      \"],[13],[1,\"\\n      \"],[10,\"button\"],[14,0,\"popover-action\"],[15,\"onclick\",[28,[37,3],[[30,0],[30,1,[\"actions\",\"close\"]]],null]],[14,4,\"button\"],[12],[1,\"Cancel\"],[13],[1,\"\\n    \"],[13],[1,\"\\n  \"],[13],[1,\"\\n\"]],[1]]]]],[1,\"\\n\"]],[\"m\",\"opt\"],false,[\"popover-menu\",\"if\",\"concat\",\"action\",\"queue\",\"perform\",\"toggle\",\"mut\",\"x-icon\",\"power-select\",\"eq\"]]",
    "moduleName": "nomad-ui/templates/components/drain-popover.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/evaluation-sidebar/evaluation-actor", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "T0S2Q9UU",
    "block": "[[[8,[39,0],null,null,[[\"default\"],[[[[1,\"\\n  \"],[11,0],[16,0,[29,[\"related-evaluation\\n      \",[52,[28,[37,2],[[30,2,[\"id\"]],[30,3]],null],\"is-active\"]]]],[16,\"data-eval\",[30,2,[\"id\"]]],[17,4],[4,[38,3],[[28,[37,4],[[30,1,[\"fns\",\"registerActor\"]],[30,2]],null]],null],[4,[38,5],[[28,[37,4],[[30,1,[\"fns\",\"deregisterActor\"]],[30,2]],null]],null],[12],[1,\"\\n\"],[41,[28,[37,2],[[30,2,[\"id\"]],[30,3]],null],[[[1,\"      \"],[10,1],[12],[1,\"\\n        \"],[1,[30,2,[\"shortId\"]]],[1,\"\\n      \"],[13],[1,\"\\n\"]],[]],[[[1,\"      \"],[11,3],[4,[38,6],[\"click\",[30,5]],null],[12],[1,\"\\n        \"],[1,[30,2,[\"shortId\"]]],[1,\"\\n      \"],[13],[1,\"\\n\"]],[]]],[1,\"    \"],[10,1],[12],[1,\"\\n      \"],[8,[39,7],null,[[\"@status\"],[[30,2,[\"status\"]]]],null],[1,\"\\n    \"],[13],[1,\"\\n  \"],[13],[1,\"\\n\"]],[1]]]]]],[\"actors\",\"@eval\",\"@activeEvaluationID\",\"&attrs\",\"@onClick\"],false,[\"providers/actors-relationships\",\"if\",\"eq\",\"did-insert\",\"fn\",\"will-destroy\",\"on\",\"status-cell\"]]",
    "moduleName": "nomad-ui/templates/components/evaluation-sidebar/evaluation-actor.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/exec-terminal", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "QgDdVYo6",
    "block": "[[[10,0],[14,0,\"terminal\"],[12],[13]],[],false,[]]",
    "moduleName": "nomad-ui/templates/components/exec-terminal.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/exec/open-button", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "Jpa+yXNP",
    "block": "[[[44,[[28,[37,1],[\"exec allocation\"],[[\"namespace\"],[[30,0,[\"job\",\"namespace\"]]]]]],[[[1,\"  \"],[11,\"button\"],[16,0,[29,[\"button exec-button is-outline is-small \",[52,[30,1],\"tooltip\"]]]],[16,\"disabled\",[52,[30,1],\"disabled\"]],[16,\"aria-label\",[52,[30,1],\"You don’t have permission to exec\"]],[24,4,\"button\"],[4,[38,3],[[30,0],\"open\"],null],[4,[38,4],null,[[\"label\",\"pattern\",\"action\"],[\"Exec\",[28,[37,5],[\"e\",\"x\",\"e\",\"c\"],null],[28,[37,3],[[30,0],\"open\"],null]]]],[12],[1,\"\\n    \"],[1,[28,[35,6],[\"console\"],null]],[1,\"\\n    \"],[10,1],[12],[1,\"Exec\"],[13],[1,\"\\n  \"],[13],[1,\"\\n\"]],[1]]],[1,\"\\n\"]],[\"cannotExec\"],false,[\"let\",\"cannot\",\"if\",\"action\",\"keyboard-shortcut\",\"array\",\"x-icon\"]]",
    "moduleName": "nomad-ui/templates/components/exec/open-button.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/exec/task-contents", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "O53zgt8k",
    "block": "[[[10,0],[14,0,\"border-and-label\"],[12],[1,\"\\n  \"],[10,0],[14,0,\"border\"],[12],[13],[1,\"\\n  \"],[10,0],[14,0,\"task-label\"],[12],[1,[30,0,[\"task\",\"name\"]]],[13],[1,\"\\n\"],[41,[30,0,[\"active\"]],[[[1,\"    \"],[10,\"svg\"],[14,\"width\",\"20\"],[14,\"height\",\"20\"],[14,0,\"is-active\"],[12],[1,\"\\n      \"],[10,\"circle\"],[14,\"cx\",\"10\"],[14,\"cy\",\"10\"],[14,\"r\",\"6\"],[12],[13],[1,\"\\n    \"],[13],[1,\"\\n\"]],[]],null],[13],[1,\"\\n\"],[41,[30,0,[\"shouldOpenInNewWindow\"]],[[[1,\"  \"],[10,1],[14,0,\"tooltip\"],[14,\"aria-label\",\"Open in a new window\"],[12],[1,\"\\n    \"],[1,[28,[35,1],[\"exit\"],[[\"class\"],[\"show-on-hover\"]]]],[1,\"\\n  \"],[13],[1,\"\\n\"]],[]],[[[1,\"  \"],[1,[28,[35,1],[\"exit\"],null]],[1,\"\\n\"]],[]]]],[],false,[\"if\",\"x-icon\"]]",
    "moduleName": "nomad-ui/templates/components/exec/task-contents.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/exec/task-group-parent", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "bklQkPEm",
    "block": "[[[11,\"button\"],[16,0,[29,[\"toggle-button \",[52,[30,0,[\"hasPendingAllocations\"]],\"is-loading\"]]]],[24,4,\"button\"],[4,[38,1],[[30,0],\"toggleOpen\"],null],[12],[1,\"\\n  \"],[1,[28,[35,2],[[52,[30,0,[\"isOpen\"]],\"chevron-down\",\"chevron-right\"]],null]],[1,\"\\n  \"],[1,[30,0,[\"taskGroup\",\"name\"]]],[1,\"\\n\"],[13],[1,\"\\n\"],[41,[30,0,[\"isOpen\"]],[[[1,\"  \"],[10,\"ul\"],[14,0,\"task-list\"],[12],[1,\"\\n\"],[42,[28,[37,4],[[28,[37,4],[[30,0,[\"sortedTasks\"]]],null]],null],null,[[[41,[30,0,[\"shouldOpenInNewWindow\"]],[[[1,\"        \"],[11,3],[24,6,\"#\"],[24,0,\"task-item\"],[4,[38,5],[\"click\",[28,[37,1],[[30,0],\"openInNewWindow\",[30,0,[\"taskGroup\",\"job\"]],[30,0,[\"taskGroup\"]],[30,1]],null]],null],[12],[1,\"\\n          \"],[8,[39,6],null,[[\"@task\",\"@active\",\"@shouldOpenInNewWindow\"],[[30,1],[28,[37,7],[[30,0,[\"currentRouteIsThisTaskGroup\"]],[28,[37,8],[[30,1,[\"name\"]],[30,0,[\"activeTaskName\"]]],null]],null],[30,0,[\"shouldOpenInNewWindow\"]]]],null],[1,\"\\n        \"],[13],[1,\"\\n\"]],[]],[[[1,\"        \"],[8,[39,9],[[24,0,\"task-item\"]],[[\"@route\",\"@models\"],[\"exec.task-group.task\",[28,[37,10],[[30,0,[\"taskGroup\",\"job\",\"plainId\"]],[30,0,[\"taskGroup\",\"name\"]],[30,1,[\"name\"]]],null]]],[[\"default\"],[[[[1,\"\\n          \"],[8,[39,6],null,[[\"@task\",\"@active\",\"@shouldOpenInNewWindow\"],[[30,1],[28,[37,7],[[30,0,[\"currentRouteIsThisTaskGroup\"]],[28,[37,8],[[30,1,[\"name\"]],[30,0,[\"activeTaskName\"]]],null]],null],[30,0,[\"shouldOpenInNewWindow\"]]]],null],[1,\"\\n        \"]],[]]]]],[1,\"\\n\"]],[]]]],[1]],null],[1,\"  \"],[13],[1,\"\\n\"]],[]],null]],[\"task\"],false,[\"if\",\"action\",\"x-icon\",\"each\",\"-track-array\",\"on\",\"exec/task-contents\",\"and\",\"eq\",\"link-to\",\"array\"]]",
    "moduleName": "nomad-ui/templates/components/exec/task-group-parent.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/flex-masonry", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "jyuivo/j",
    "block": "[[[11,0],[16,0,[29,[\"flex-masonry \",[52,[30,1],\"with-spacing\"],\" flex-masonry-columns-\",[30,2]]]],[4,[38,1],[[30,0,[\"captureElement\"]]],null],[4,[38,1],[[30,0,[\"reflow\"]]],null],[4,[38,2],[[30,0,[\"reflow\"]],[30,2]],null],[4,[38,3],[[30,0,[\"reflow\"]]],null],[12],[1,\"\\n\"],[42,[28,[37,5],[[28,[37,5],[[30,3]],null]],null],null,[[[1,\"    \"],[10,0],[14,0,\"flex-masonry-item\"],[12],[1,\"\\n      \"],[18,5,[[30,4],[28,[37,7],[[30,0],[30,0,[\"reflow\"]]],null]]],[1,\"\\n    \"],[13],[1,\"\\n\"]],[4]],null],[13],[1,\"\\n\"]],[\"@withSpacing\",\"@columns\",\"@items\",\"item\",\"&default\"],false,[\"if\",\"did-insert\",\"did-update\",\"window-resize\",\"each\",\"-track-array\",\"yield\",\"action\"]]",
    "moduleName": "nomad-ui/templates/components/flex-masonry.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/forbidden-message", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "WoFNGAGQ",
    "block": "[[[10,0],[14,0,\"empty-message\"],[12],[1,\"\\n  \"],[10,\"h3\"],[14,0,\"empty-message-headline\"],[12],[1,\"Not Authorized\"],[13],[1,\"\\n  \"],[10,2],[14,0,\"empty-message-body\"],[12],[1,\"\\n\"],[41,[30,0,[\"token\",\"secret\"]],[[[1,\"      You currently lack the\\n\"],[41,[30,0,[\"permission\"]],[[[1,\"        \"],[10,\"code\"],[12],[1,[30,0,[\"permission\"]]],[13],[1,\"\\n\"]],[]],[[[1,\"        required\\n\"]],[]]],[1,\"      \"],[8,[39,1],null,[[\"@route\"],[\"settings.tokens\"]],[[\"default\"],[[[[1,\"permission\"]],[]]]]],[1,\" for this resource.\"],[10,\"br\"],[12],[13],[1,\" Contact your administrator if this is an error.\\n\"]],[]],[[[41,[30,0,[\"authMethods\"]],[[[1,\"        Sign in with\\n\"],[42,[28,[37,3],[[28,[37,3],[[30,0,[\"authMethods\"]]],null]],null],null,[[[1,\"          \"],[8,[39,1],null,[[\"@route\"],[\"settings.tokens\"]],[[\"default\"],[[[[1,[30,1,[\"name\"]]]],[]]]]],[1,\", \\n\"]],[1]],null],[1,\"        or\\n\"]],[]],null],[1,\"\\n      \"],[1,[28,[35,4],[\"provide\",[28,[37,5],[[30,0,[\"authMethods\",\"length\"]]],null]],null]],[1,\" a \"],[8,[39,1],null,[[\"@route\"],[\"settings.tokens\"]],[[\"default\"],[[[[1,\"token\"]],[]]]]],[1,\" with the\\n\"],[41,[30,0,[\"permission\"]],[[[1,\"        \"],[10,\"code\"],[12],[1,[30,0,[\"permission\"]]],[13],[1,\"\\n\"]],[]],[[[1,\"        requisite\\n\"]],[]]],[1,\"      permission to view this.\\n\"]],[]]],[1,\"  \"],[13],[1,\"\\n\\n\"],[41,[51,[30,0,[\"token\",\"secret\"]]],[[[1,\"    \"],[10,2],[14,0,\"empty-message-body\"],[12],[1,\"\\n      If you have signed in via the Nomad CLI, authenticate with:\\n      \"],[10,0],[14,0,\"terminal-container\"],[12],[1,\"\\n        \"],[10,\"pre\"],[14,0,\"terminal\"],[12],[10,1],[14,0,\"prompt\"],[12],[1,\"$\"],[13],[1,\" nomad ui -authenticate\"],[13],[1,\"\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n\"]],[]],null],[13],[1,\"\\n\"]],[\"authMethod\"],false,[\"if\",\"link-to\",\"each\",\"-track-array\",\"conditionally-capitalize\",\"not\",\"unless\"]]",
    "moduleName": "nomad-ui/templates/components/forbidden-message.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/fs/breadcrumbs", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "nhwLWQB/",
    "block": "[[[10,\"ul\"],[12],[1,\"\\n  \"],[10,\"li\"],[15,0,[52,[30,0,[\"breadcrumbs\"]],\"\",\"is-active\"]],[12],[1,\"\\n    \"],[8,[39,1],null,[[\"@allocation\",\"@taskState\"],[[30,0,[\"allocation\"]],[30,0,[\"taskState\"]]]],[[\"default\"],[[[[1,\"\\n      \"],[1,[52,[30,0,[\"taskState\"]],[30,0,[\"taskState\",\"name\"]],[30,0,[\"allocation\",\"shortId\"]]]],[1,\"\\n    \"]],[]]]]],[1,\"\\n  \"],[13],[1,\"\\n\"],[42,[28,[37,3],[[28,[37,3],[[30,0,[\"breadcrumbs\"]]],null]],null],null,[[[1,\"    \"],[10,\"li\"],[15,0,[52,[30,1,[\"isLast\"]],\"is-active\"]],[12],[1,\"\\n      \"],[8,[39,1],null,[[\"@allocation\",\"@taskState\",\"@path\"],[[30,0,[\"allocation\"]],[30,0,[\"taskState\"]],[30,1,[\"path\"]]]],[[\"default\"],[[[[1,\"\\n        \"],[1,[30,1,[\"name\"]]],[1,\"\\n      \"]],[]]]]],[1,\"\\n    \"],[13],[1,\"\\n\"]],[1]],null],[13],[1,\"\\n\"]],[\"breadcrumb\"],false,[\"if\",\"fs/link\",\"each\",\"-track-array\"]]",
    "moduleName": "nomad-ui/templates/components/fs/breadcrumbs.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/fs/browser", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "ZikZzEPH",
    "block": "[[[10,\"section\"],[15,0,[29,[\"section is-closer \",[52,[30,0,[\"isFile\"]],\"is-full-width\"]]]],[12],[1,\"\\n\"],[41,[30,0,[\"isFile\"]],[[[1,\"    \"],[8,[39,1],null,[[\"@allocation\",\"@taskState\",\"@file\",\"@stat\",\"@class\"],[[30,0,[\"allocation\"]],[30,0,[\"taskState\"]],[30,0,[\"path\"]],[30,0,[\"stat\"]],\"fs-explorer\"]],[[\"default\"],[[[[1,\"\\n      \"],[8,[39,2],null,[[\"@allocation\",\"@taskState\",\"@path\"],[[30,0,[\"allocation\"]],[30,0,[\"taskState\"]],[30,0,[\"path\"]]]],null],[1,\"\\n    \"]],[]]]]],[1,\"\\n\"]],[]],[[[1,\"    \"],[10,0],[14,0,\"fs-explorer boxed-section\"],[12],[1,\"\\n      \"],[10,0],[14,0,\"boxed-section-head\"],[12],[1,\"\\n        \"],[8,[39,2],null,[[\"@allocation\",\"@taskState\",\"@path\"],[[30,0,[\"allocation\"]],[30,0,[\"taskState\"]],[30,0,[\"path\"]]]],null],[1,\"\\n      \"],[13],[1,\"\\n\"],[41,[30,0,[\"directoryEntries\"]],[[[1,\"        \"],[8,[39,3],null,[[\"@source\",\"@sortProperty\",\"@sortDescending\",\"@class\"],[[30,0,[\"sortedDirectoryEntries\"]],[30,0,[\"sortProperty\"]],[30,0,[\"sortDescending\"]],\"boxed-section-body is-full-bleed is-compact\"]],[[\"default\"],[[[[1,\"\\n          \"],[8,[30,1,[\"head\"]],null,null,[[\"default\"],[[[[1,\"\\n            \"],[8,[30,1,[\"sort-by\"]],null,[[\"@prop\",\"@class\"],[\"Name\",\"is-two-thirds\"]],[[\"default\"],[[[[1,\"Name\"]],[]]]]],[1,\"\\n            \"],[8,[30,1,[\"sort-by\"]],null,[[\"@prop\",\"@class\"],[\"Size\",\"has-text-right\"]],[[\"default\"],[[[[1,\"File Size\"]],[]]]]],[1,\"\\n            \"],[8,[30,1,[\"sort-by\"]],null,[[\"@prop\",\"@class\"],[\"ModTime\",\"has-text-right\"]],[[\"default\"],[[[[1,\"Last Modified\"]],[]]]]],[1,\"\\n          \"]],[]]]]],[1,\"\\n          \"],[8,[30,1,[\"body\"]],null,null,[[\"default\"],[[[[1,\"\\n            \"],[8,[39,4],null,[[\"@path\",\"@allocation\",\"@taskState\",\"@entry\"],[[30,0,[\"path\"]],[30,0,[\"allocation\"]],[30,0,[\"taskState\"]],[30,2,[\"model\"]]]],null],[1,\"\\n          \"]],[2]]]]],[1,\"\\n        \"]],[1]]]]],[1,\"\\n\"]],[]],[[[1,\"        \"],[10,0],[14,0,\"boxed-section-body\"],[12],[1,\"\\n          \"],[10,0],[14,0,\"empty-message\"],[12],[1,\"\\n            \"],[10,\"h3\"],[14,0,\"empty-message-headline\"],[12],[1,\"No Files\"],[13],[1,\"\\n            \"],[10,2],[14,0,\"empty-message-body\"],[12],[1,\"\\n              Directory is currently empty.\\n            \"],[13],[1,\"\\n          \"],[13],[1,\"\\n        \"],[13],[1,\"\\n\"]],[]]],[1,\"    \"],[13],[1,\"\\n\"]],[]]],[13],[1,\"\\n\"]],[\"t\",\"row\"],false,[\"if\",\"fs/file\",\"fs/breadcrumbs\",\"list-table\",\"fs/directory-entry\"]]",
    "moduleName": "nomad-ui/templates/components/fs/browser.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/fs/directory-entry", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "TFpDDw/B",
    "block": "[[[10,\"tr\"],[12],[1,\"\\n  \"],[10,\"td\"],[12],[1,\"\\n    \"],[8,[39,0],null,[[\"@allocation\",\"@taskState\",\"@path\"],[[30,0,[\"allocation\"]],[30,0,[\"taskState\"]],[30,0,[\"pathToEntry\"]]]],[[\"default\"],[[[[1,\"\\n\"],[41,[30,0,[\"entry\",\"IsDir\"]],[[[1,\"        \"],[1,[28,[35,2],[\"folder-outline\"],null]],[1,\"\\n\"]],[]],[[[1,\"        \"],[1,[28,[35,2],[\"file-outline\"],null]],[1,\"\\n\"]],[]]],[1,\"\\n      \"],[10,1],[14,0,\"name\"],[12],[1,[30,0,[\"entry\",\"Name\"]]],[13],[1,\"\\n    \"]],[]]]]],[1,\"\\n  \"],[13],[1,\"\\n  \"],[10,\"td\"],[14,0,\"has-text-right\"],[12],[41,[51,[30,0,[\"entry\",\"IsDir\"]]],[[[1,[28,[35,4],[[30,0,[\"entry\",\"Size\"]]],null]]],[]],null],[13],[1,\"\\n  \"],[10,\"td\"],[14,0,\"has-text-right\"],[15,\"title\",[28,[37,5],[[30,0,[\"entry\",\"ModTime\"]]],null]],[12],[1,[28,[35,6],[[30,0,[\"entry\",\"ModTime\"]]],[[\"interval\"],[1000]]]],[13],[1,\"\\n\"],[13],[1,\"\\n\"]],[],false,[\"fs/link\",\"if\",\"x-icon\",\"unless\",\"format-bytes\",\"format-ts\",\"moment-from\"]]",
    "moduleName": "nomad-ui/templates/components/fs/directory-entry.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/fs/file", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "FQMQzZzh",
    "block": "[[[41,[30,0,[\"noConnection\"]],[[[1,\"  \"],[10,0],[14,0,\"notification is-error\"],[12],[1,\"\\n    \"],[10,\"h3\"],[14,0,\"title is-4\"],[12],[1,\"Cannot fetch file\"],[13],[1,\"\\n    \"],[10,2],[12],[1,\"The files for this \"],[1,[52,[30,0,[\"task\"]],\"task\",\"allocation\"]],[1,\" are inaccessible. Check the condition of the client the allocation is on.\"],[13],[1,\"\\n  \"],[13],[1,\"\\n\"]],[]],null],[10,0],[14,0,\"boxed-section-head\"],[12],[1,\"\\n  \"],[18,1,null],[1,\"\\n  \"],[10,1],[14,0,\"pull-right\"],[12],[1,\"\\n\\n\"],[41,[51,[30,0,[\"fileTypeIsUnknown\"]]],[[[1,\"      \"],[10,\"button\"],[14,0,\"button is-white is-compact\"],[15,\"onclick\",[28,[37,3],[[30,0],\"downloadFile\"],null]],[14,4,\"button\"],[12],[1,\"View Raw File\"],[13],[1,\"\\n\"]],[]],null],[41,[28,[37,4],[[30,0,[\"isLarge\"]],[30,0,[\"isStreamable\"]]],null],[[[1,\"      \"],[10,\"button\"],[14,0,\"button is-white is-compact\"],[15,\"onclick\",[28,[37,3],[[30,0],\"gotoHead\"],null]],[14,4,\"button\"],[12],[1,\"Head\"],[13],[1,\"\\n      \"],[10,\"button\"],[14,0,\"button is-white is-compact\"],[15,\"onclick\",[28,[37,3],[[30,0],\"gotoTail\"],null]],[14,4,\"button\"],[12],[1,\"Tail\"],[13],[1,\"\\n\"]],[]],null],[41,[30,0,[\"isStreamable\"]],[[[1,\"      \"],[10,\"button\"],[14,0,\"button is-white is-compact\"],[15,\"onclick\",[28,[37,3],[[30,0],\"toggleStream\"],null]],[15,\"title\",[29,[[52,[30,0,[\"logger\",\"isStreaming\"]],\"Pause\",\"Start\"],\" streaming\"]]],[14,4,\"button\"],[12],[1,\"\\n        \"],[1,[28,[35,5],[[52,[30,0,[\"logger\",\"isStreaming\"]],\"media-pause\",\"media-play\"]],[[\"class\"],[\"is-text\"]]]],[1,\"\\n      \"],[13],[1,\"\\n\"]],[]],null],[1,\"  \"],[13],[1,\"\\n\"],[13],[1,\"\\n\"],[10,0],[15,0,[29,[\"boxed-section-body \",[52,[28,[37,6],[[30,0,[\"fileComponent\"]],\"stream\"],null],\"is-dark is-full-bleed\"]]]],[12],[1,\"\\n\"],[41,[28,[37,6],[[30,0,[\"fileComponent\"]],\"stream\"],null],[[[1,\"    \"],[8,[39,7],null,[[\"@logger\",\"@mode\",\"@isStreaming\"],[[30,0,[\"logger\"]],[30,0,[\"mode\"]],[30,0,[\"isStreaming\"]]]],null],[1,\"\\n\"]],[]],[[[41,[28,[37,6],[[30,0,[\"fileComponent\"]],\"image\"],null],[[[1,\"    \"],[8,[39,8],null,[[\"@src\",\"@alt\",\"@size\"],[[30,0,[\"catUrl\"]],[30,0,[\"stat\",\"Name\"]],[30,0,[\"stat\",\"Size\"]]]],null],[1,\"\\n\"]],[]],[[[1,\"    \"],[10,0],[14,0,\"empty-message is-hollow\"],[12],[1,\"\\n      \"],[10,\"h3\"],[14,0,\"empty-message-headline\"],[12],[1,\"Unsupported File Type\"],[13],[1,\"\\n      \"],[10,2],[14,0,\"empty-message-body message\"],[12],[1,\"The Nomad UI could not render this file, but you can still view the file directly.\"],[13],[1,\"\\n      \"],[10,2],[14,0,\"empty-message-body\"],[12],[1,\"\\n        \"],[10,\"button\"],[14,0,\"button is-light\"],[15,\"onclick\",[28,[37,3],[[30,0],\"downloadFile\"],null]],[14,4,\"button\"],[12],[1,\"View Raw File\"],[13],[1,\"\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n  \"]],[]]]],[]]],[13],[1,\"\\n\"]],[\"&default\"],false,[\"if\",\"yield\",\"unless\",\"action\",\"and\",\"x-icon\",\"eq\",\"streaming-file\",\"image-file\"]]",
    "moduleName": "nomad-ui/templates/components/fs/file.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/fs/link", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "CJqS4Fq0",
    "block": "[[[41,[30,0,[\"taskState\"]],[[[41,[30,0,[\"path\"]],[[[1,\"    \"],[8,[39,1],null,[[\"@route\",\"@models\",\"@activeClass\"],[\"allocations.allocation.task.fs\",[28,[37,2],[[30,0,[\"allocation\"]],[30,0,[\"taskState\"]],[30,0,[\"path\"]]],null],\"is-active\"]],[[\"default\"],[[[[1,\"\\n      \"],[18,1,null],[1,\"\\n    \"]],[]]]]],[1,\"\\n\"]],[]],[[[1,\"    \"],[8,[39,1],null,[[\"@route\",\"@models\",\"@activeClass\"],[\"allocations.allocation.task.fs-root\",[28,[37,2],[[30,0,[\"allocation\"]],[30,0,[\"taskState\"]]],null],\"is-active\"]],[[\"default\"],[[[[1,\"\\n      \"],[18,1,null],[1,\"\\n    \"]],[]]]]],[1,\"\\n\"]],[]]]],[]],[[[41,[30,0,[\"path\"]],[[[1,\"    \"],[8,[39,1],null,[[\"@route\",\"@models\",\"@activeClass\"],[\"allocations.allocation.fs\",[28,[37,2],[[30,0,[\"allocation\"]],[30,0,[\"path\"]]],null],\"is-active\"]],[[\"default\"],[[[[1,\"\\n      \"],[18,1,null],[1,\"\\n    \"]],[]]]]],[1,\"\\n\"]],[]],[[[1,\"    \"],[8,[39,1],null,[[\"@route\",\"@model\",\"@activeClass\"],[\"allocations.allocation.fs-root\",[30,0,[\"allocation\"]],\"is-active\"]],[[\"default\"],[[[[1,\"\\n      \"],[18,1,null],[1,\"\\n    \"]],[]]]]],[1,\"\\n\"]],[]]]],[]]]],[\"&default\"],false,[\"if\",\"link-to\",\"array\",\"yield\"]]",
    "moduleName": "nomad-ui/templates/components/fs/link.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/gauge-chart", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "26eJOn9U",
    "block": "[[[10,\"svg\"],[14,\"role\",\"img\"],[15,\"height\",[30,0,[\"height\"]]],[14,\"title\",\"gauge chart\"],[12],[1,\"\\n  \"],[10,\"defs\"],[12],[1,\"\\n    \"],[10,\"linearGradient\"],[14,\"x1\",\"0\"],[14,\"x2\",\"1\"],[14,\"y1\",\"0\"],[14,\"y2\",\"0\"],[15,0,[29,[[30,0,[\"chartClass\"]]]]],[15,1,[29,[[30,0,[\"fillId\"]]]]],[12],[1,\"\\n      \"],[10,\"stop\"],[14,0,\"start\"],[14,\"offset\",\"0%\"],[12],[13],[1,\"\\n      \"],[10,\"stop\"],[14,0,\"end\"],[14,\"offset\",\"100%\"],[12],[13],[1,\"\\n    \"],[13],[1,\"\\n    \"],[10,\"clipPath\"],[15,1,[29,[[30,0,[\"maskId\"]]]]],[12],[1,\"\\n      \"],[10,\"path\"],[14,0,\"fill\"],[15,\"d\",[29,[[30,0,[\"valueArc\"]]]]],[12],[13],[1,\"\\n    \"],[13],[1,\"\\n  \"],[13],[1,\"\\n  \"],[10,\"g\"],[15,0,[29,[\"canvas \",[30,0,[\"chartClass\"]]]]],[12],[1,\"\\n    \"],[10,\"path\"],[14,0,\"background\"],[15,\"d\",[29,[[30,0,[\"backgroundArc\"]]]]],[12],[13],[1,\"\\n    \"],[10,\"rect\"],[14,0,\"area\"],[14,\"x\",\"0\"],[14,\"y\",\"0\"],[14,\"width\",\"100%\"],[14,\"height\",\"100%\"],[15,\"fill\",[29,[\"url(#\",[30,0,[\"fillId\"]],\")\"]]],[15,\"clip-path\",[29,[\"url(#\",[30,0,[\"maskId\"]],\")\"]]],[12],[13],[1,\"\\n  \"],[13],[1,\"\\n\"],[13],[1,\"\\n\"],[10,0],[14,0,\"metric\"],[12],[1,\"\\n  \"],[10,\"h3\"],[14,0,\"label\"],[12],[1,[30,0,[\"label\"]]],[13],[1,\"\\n  \"],[10,2],[14,0,\"value\"],[12],[1,[28,[35,0],[[30,0,[\"value\"]]],[[\"total\",\"complement\"],[[30,0,[\"total\"]],[30,0,[\"complement\"]]]]]],[13],[1,\"\\n\"],[13],[1,\"\\n\"]],[],false,[\"format-percentage\"]]",
    "moduleName": "nomad-ui/templates/components/gauge-chart.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/global-header", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "GCVW6FTD",
    "block": "[[[10,\"nav\"],[14,0,\"navbar is-primary\"],[14,\"title\",\"navigation\"],[12],[1,\"\\n  \"],[10,0],[14,0,\"navbar-brand\"],[12],[1,\"\\n    \"],[10,1],[14,0,\"gutter-toggle\"],[14,\"aria-label\",\"menu\"],[15,\"onclick\",[28,[37,0],[[30,0],[30,0,[\"onHamburgerClick\"]]],null]],[12],[1,\"\\n      \"],[8,[39,1],null,null,null],[1,\"\\n    \"],[13],[1,\"\\n    \"],[8,[39,2],[[24,0,\"navbar-item is-logo\"],[24,\"aria-label\",\"Home\"]],[[\"@route\"],[\"jobs\"]],[[\"default\"],[[[[1,\"\\n      \"],[8,[39,3],null,null,null],[1,\"\\n    \"]],[]]]]],[1,\"\\n\"],[41,[30,0,[\"system\",\"agent\",\"config\",\"UI\",\"Label\",\"Text\"]],[[[1,\"      \"],[10,0],[14,0,\"custom-label\"],[15,5,[30,0,[\"labelStyles\"]]],[12],[1,\"\\n        \"],[1,[30,0,[\"system\",\"agent\",\"config\",\"UI\",\"Label\",\"Text\"]]],[1,\"\\n      \"],[13],[1,\"\\n\"]],[]],null],[1,\"  \"],[13],[1,\"\\n\"],[41,[30,0,[\"system\",\"fuzzySearchEnabled\"]],[[[41,[51,[28,[37,6],[\"isMobile\"],null]],[[[1,\"      \"],[8,[39,7],null,null,null],[1,\"\\n\"]],[]],null]],[]],null],[1,\"  \"],[10,0],[14,0,\"navbar-end\"],[12],[1,\"\\n\"],[41,[30,0,[\"config\",\"APP\",\"showStorybookLink\"]],[[[1,\"      \"],[10,3],[14,6,\"/storybook/\"],[14,\"target\",\"_blank\"],[14,\"rel\",\"noopener noreferrer\"],[14,0,\"navbar-item\"],[12],[1,\"\\n        Storybook\\n      \"],[13],[1,\"\\n\"]],[]],null],[41,[30,0,[\"system\",\"agent\",\"config\",\"UI\",\"Consul\",\"BaseUIURL\"]],[[[1,\"      \"],[10,3],[15,6,[30,0,[\"system\",\"agent\",\"config\",\"UI\",\"Consul\",\"BaseUIURL\"]]],[14,\"target\",\"_blank\"],[14,\"rel\",\"noopener noreferrer\"],[14,0,\"navbar-item\"],[12],[1,\"\\n        Consul\\n      \"],[13],[1,\"\\n\"]],[]],null],[41,[30,0,[\"system\",\"agent\",\"config\",\"UI\",\"Vault\",\"BaseUIURL\"]],[[[1,\"      \"],[10,3],[15,6,[30,0,[\"system\",\"agent\",\"config\",\"UI\",\"Vault\",\"BaseUIURL\"]]],[14,\"target\",\"_blank\"],[14,\"rel\",\"noopener noreferrer\"],[14,0,\"navbar-item\"],[12],[1,\"\\n        Vault\\n      \"],[13],[1,\"\\n\"]],[]],null],[1,\"    \"],[10,3],[14,6,\"https://nomadproject.io/docs\"],[14,\"target\",\"_blank\"],[14,\"rel\",\"noopener noreferrer\"],[14,0,\"navbar-item\"],[12],[1,\"\\n      Documentation\\n    \"],[13],[1,\"\\n\"],[41,[30,0,[\"shouldShowProfileNav\"]],[[[1,\"      \"],[8,[39,8],null,null,null],[1,\"\\n\"]],[]],null],[1,\"  \"],[13],[1,\"\\n\"],[13],[1,\"\\n\"],[10,0],[14,0,\"navbar is-secondary\"],[12],[1,\"\\n  \"],[10,0],[14,0,\"navbar-item is-gutter\"],[12],[1,\"\\n    \"],[8,[39,9],null,[[\"@decoration\"],[\"is-outlined\"]],null],[1,\"\\n  \"],[13],[1,\"\\n  \"],[10,\"nav\"],[14,0,\"breadcrumb is-large\"],[14,\"title\",\"breadcrumb navigation\"],[12],[1,\"\\n    \"],[10,\"ul\"],[12],[1,\"\\n      \"],[18,1,null],[1,\"\\n    \"],[13],[1,\"\\n  \"],[13],[1,\"\\n\"],[13]],[\"&default\"],false,[\"action\",\"hamburger-menu\",\"link-to\",\"nomad-logo\",\"if\",\"unless\",\"media\",\"global-search/control\",\"profile-navbar-item\",\"region-switcher\",\"yield\"]]",
    "moduleName": "nomad-ui/templates/components/global-header.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/global-search/control", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "A/ae5Hp7",
    "block": "[[[8,[39,0],null,[[\"@tagName\",\"@searchEnabled\",\"@search\",\"@onInput\",\"@onChange\",\"@onFocus\",\"@onClose\",\"@dropdownClass\",\"@calculatePosition\",\"@searchMessageComponent\",\"@triggerComponent\",\"@registerAPI\"],[\"div\",true,[28,[37,1],[[30,0,[\"search\"]]],null],[28,[37,2],[[30,0],\"ensureMinimumLength\"],null],[28,[37,2],[[30,0],\"selectOption\"],null],[28,[37,2],[[30,0],\"openOnClickOrTab\"],null],[28,[37,2],[[30,0],\"onCloseEvent\"],null],\"global-search-dropdown\",[30,0,[\"calculatePosition\"]],\"global-search/message\",\"global-search/trigger\",[28,[37,2],[[30,0],\"storeSelect\"],null]]],[[\"default\"],[[[[1,\"\\n    \"],[1,[30,1,[\"label\"]]],[1,\"\\n  \"]],[1]]]]],[1,\"\\n\"]],[\"option\"],false,[\"power-select\",\"perform\",\"action\"]]",
    "moduleName": "nomad-ui/templates/components/global-search/control.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/global-search/message", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "PqpQKwR3",
    "block": "[[],[],false,[]]",
    "moduleName": "nomad-ui/templates/components/global-search/message.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/global-search/trigger", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "F27I4AxW",
    "block": "[[[1,[28,[35,0],[\"search\"],[[\"class\"],[\"is-small\"]]]],[1,\"\\n\"],[41,[51,[30,0,[\"select\",\"isOpen\"]]],[[[1,\"  \"],[10,1],[14,0,\"placeholder\"],[12],[1,\"Jump to\"],[13],[1,\"\\n\"]],[]],null],[41,[28,[37,3],[[28,[37,4],[[30,0,[\"select\",\"isActive\"]],[30,0,[\"select\",\"isOpen\"]]],null]],null],[[[1,\"  \"],[10,1],[14,0,\"shortcut\"],[14,\"title\",\"Type '/' to search\"],[12],[1,\"/\"],[13],[1,\"\\n\"]],[]],null]],[],false,[\"x-icon\",\"unless\",\"if\",\"not\",\"or\"]]",
    "moduleName": "nomad-ui/templates/components/global-search/trigger.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/gutter-menu", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "S1A7okDW",
    "block": "[[[11,0],[16,0,[29,[\"page-column is-left \",[52,[30,0,[\"isOpen\"]],\"is-open\"]]]],[4,[38,1],[[30,0,[\"keyboard\",\"registerNav\"]]],[[\"type\"],[\"main\"]]],[12],[1,\"\\n  \"],[10,0],[15,0,[29,[\"gutter \",[52,[30,0,[\"isOpen\"]],\"is-open\"]]]],[12],[1,\"\\n    \"],[10,\"header\"],[15,0,[29,[\"collapsed-menu \",[52,[30,0,[\"isOpen\"]],\"is-open\"]]]],[12],[1,\"\\n      \"],[10,1],[14,0,\"gutter-toggle\"],[14,\"aria-label\",\"menu\"],[15,\"onclick\",[28,[37,2],[[30,0],[30,0,[\"onHamburgerClick\"]]],null]],[12],[1,\"\\n        \"],[8,[39,3],null,null,null],[1,\"\\n      \"],[13],[1,\"\\n      \"],[10,1],[14,0,\"logo-container\"],[12],[1,\"\\n        \"],[8,[39,4],null,null,null],[1,\"\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n    \"],[10,\"aside\"],[14,0,\"menu\"],[12],[1,\"\\n\"],[41,[30,0,[\"system\",\"shouldShowRegions\"]],[[[1,\"        \"],[10,0],[14,0,\"collapsed-only\"],[12],[1,\"\\n          \"],[10,2],[14,0,\"menu-label\"],[12],[1,\"\\n            Region\\n            \"],[1,[52,[30,0,[\"system\",\"shouldShowNamespaces\"]],\"& Namespace\"]],[1,\"\\n          \"],[13],[1,\"\\n          \"],[10,\"ul\"],[14,0,\"menu-list\"],[12],[1,\"\\n            \"],[10,\"li\"],[12],[1,\"\\n              \"],[10,0],[14,0,\"menu-item is-wide\"],[12],[1,\"\\n                \"],[8,[39,5],null,null,null],[1,\"\\n              \"],[13],[1,\"\\n            \"],[13],[1,\"\\n          \"],[13],[1,\"\\n        \"],[13],[1,\"\\n\"]],[]],null],[1,\"      \"],[10,\"ul\"],[14,0,\"menu-list\"],[12],[1,\"\\n        \"],[11,\"li\"],[4,[38,6],null,[[\"menuLevel\",\"pattern\"],[true,[28,[37,7],[\"g\",\"j\"],null]]]],[12],[1,\"\\n          \"],[8,[39,8],null,[[\"@route\",\"@activeClass\"],[\"jobs\",\"is-active\"]],[[\"default\"],[[[[1,\"\\n            Jobs\\n          \"]],[]]]]],[1,\"\\n        \"],[13],[1,\"\\n\"],[41,[28,[37,9],[\"accept recommendation\"],null],[[[1,\"          \"],[11,\"li\"],[4,[38,6],null,[[\"menuLevel\",\"pattern\",\"action\"],[true,[28,[37,7],[\"g\",\"o\"],null],[28,[37,2],[[30,0],[30,0,[\"transitionTo\"]],\"optimize\"],null]]]],[12],[1,\"\\n            \"],[8,[39,8],null,[[\"@route\",\"@activeClass\"],[\"optimize\",\"is-active\"]],[[\"default\"],[[[[1,\"\\n              Optimize\\n            \"]],[]]]]],[1,\"\\n          \"],[13],[1,\"\\n\"]],[]],null],[1,\"        \"],[11,\"li\"],[4,[38,6],null,[[\"menuLevel\",\"pattern\"],[true,[28,[37,7],[\"g\",\"r\"],null]]]],[12],[1,\"\\n          \"],[8,[39,8],null,[[\"@route\",\"@activeClass\"],[\"csi\",\"is-active\"]],[[\"default\"],[[[[1,\"\\n            Storage\\n          \"]],[]]]]],[1,\"\\n        \"],[13],[1,\"\\n\"],[41,[28,[37,9],[\"list variables\"],null],[[[1,\"        \"],[11,\"li\"],[4,[38,6],null,[[\"menuLevel\",\"pattern\"],[true,[28,[37,7],[\"g\",\"v\"],null]]]],[12],[1,\"\\n          \"],[8,[39,8],null,[[\"@route\",\"@activeClass\"],[\"variables\",\"is-active\"]],[[\"default\"],[[[[1,\"\\n            Variables\\n          \"]],[]]]]],[1,\"\\n        \"],[13],[1,\"\\n\"]],[]],null],[1,\"      \"],[13],[1,\"\\n      \"],[10,2],[14,0,\"menu-label\"],[12],[1,\"\\n        Cluster\\n      \"],[13],[1,\"\\n      \"],[10,\"ul\"],[14,0,\"menu-list\"],[12],[1,\"\\n        \"],[11,\"li\"],[4,[38,6],null,[[\"menuLevel\",\"pattern\"],[true,[28,[37,7],[\"g\",\"c\"],null]]]],[12],[1,\"\\n          \"],[8,[39,8],null,[[\"@route\",\"@activeClass\"],[\"clients\",\"is-active\"]],[[\"default\"],[[[[1,\"\\n            Clients\\n          \"]],[]]]]],[1,\"\\n        \"],[13],[1,\"\\n        \"],[11,\"li\"],[4,[38,6],null,[[\"menuLevel\",\"pattern\"],[true,[28,[37,7],[\"g\",\"s\"],null]]]],[12],[1,\"\\n          \"],[8,[39,8],null,[[\"@route\",\"@activeClass\"],[\"servers\",\"is-active\"]],[[\"default\"],[[[[1,\"\\n            Servers\\n          \"]],[]]]]],[1,\"\\n        \"],[13],[1,\"\\n        \"],[11,\"li\"],[4,[38,6],null,[[\"menuLevel\",\"pattern\"],[true,[28,[37,7],[\"g\",\"t\"],null]]]],[12],[1,\"\\n          \"],[8,[39,8],null,[[\"@route\",\"@activeClass\"],[\"topology\",\"is-active\"]],[[\"default\"],[[[[1,\"\\n            Topology\\n          \"]],[]]]]],[1,\"\\n        \"],[13],[1,\"\\n      \"],[13],[1,\"\\n      \"],[10,2],[14,0,\"menu-label\"],[12],[1,\"\\n        Operations\\n      \"],[13],[1,\"\\n      \"],[10,\"ul\"],[14,0,\"menu-list\"],[12],[1,\"\\n        \"],[11,\"li\"],[4,[38,6],null,[[\"menuLevel\",\"pattern\"],[true,[28,[37,7],[\"g\",\"e\"],null]]]],[12],[1,\"\\n          \"],[8,[39,8],null,[[\"@route\",\"@activeClass\"],[\"evaluations\",\"is-active\"]],[[\"default\"],[[[[1,\"\\n            Evaluations\\n          \"]],[]]]]],[1,\"\\n        \"],[13],[1,\"\\n\"],[41,[28,[37,9],[\"list policies\"],null],[[[1,\"          \"],[11,\"li\"],[4,[38,6],null,[[\"menuLevel\",\"pattern\",\"action\"],[true,[28,[37,7],[\"g\",\"l\"],null],[28,[37,2],[[30,0],[30,0,[\"transitionTo\"]],\"policies\"],null]]]],[12],[1,\"\\n            \"],[8,[39,8],null,[[\"@route\",\"@activeClass\"],[\"policies\",\"is-active\"]],[[\"default\"],[[[[1,\"\\n              Policies\\n            \"]],[]]]]],[1,\"\\n          \"],[13],[1,\"\\n\"]],[]],null],[1,\"      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n\"],[41,[30,0,[\"system\",\"agent\",\"version\"]],[[[1,\"      \"],[10,\"footer\"],[14,0,\"gutter-footer\"],[12],[1,\"\\n        \"],[10,1],[14,0,\"is-faded\"],[12],[1,\"\\n          v\"],[1,[30,0,[\"system\",\"agent\",\"version\"]]],[1,\"\\n        \"],[13],[1,\"\\n      \"],[13],[1,\"\\n\"]],[]],null],[1,\"  \"],[13],[1,\"\\n\"],[13],[1,\"\\n\"],[10,0],[14,0,\"page-column is-right\"],[12],[1,\"\\n  \"],[18,1,null],[1,\"\\n\"],[13],[1,\"\\n\"],[10,0],[15,0,[29,[\"gutter-backdrop \",[52,[30,0,[\"isOpen\"]],\"is-open\"]]]],[15,\"onclick\",[28,[37,2],[[30,0],[30,0,[\"onHamburgerClick\"]]],null]],[12],[13],[1,\"\\n\"]],[\"&default\"],false,[\"if\",\"did-insert\",\"action\",\"hamburger-menu\",\"nomad-logo\",\"region-switcher\",\"keyboard-shortcut\",\"array\",\"link-to\",\"can\",\"yield\"]]",
    "moduleName": "nomad-ui/templates/components/gutter-menu.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/hamburger-menu", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "kKTxI3m1",
    "block": "[[[10,\"svg\"],[14,0,\"hamburger-menu\"],[14,\"viewBox\",\"0 0 100 100\"],[14,\"xmlns\",\"http://www.w3.org/2000/svg\",\"http://www.w3.org/2000/xmlns/\"],[12],[1,\"\\n  \"],[10,\"rect\"],[14,\"x\",\"0\"],[14,\"y\",\"0\"],[14,\"width\",\"100\"],[14,\"height\",\"16\"],[12],[13],[1,\"\\n  \"],[10,\"rect\"],[14,\"x\",\"0\"],[14,\"y\",\"42\"],[14,\"width\",\"100\"],[14,\"height\",\"16\"],[12],[13],[1,\"\\n  \"],[10,\"rect\"],[14,\"x\",\"0\"],[14,\"y\",\"84\"],[14,\"width\",\"100\"],[14,\"height\",\"16\"],[12],[13],[1,\"\\n\"],[13],[1,\"\\n\"]],[],false,[]]",
    "moduleName": "nomad-ui/templates/components/hamburger-menu.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/image-file", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "+9k8txBV",
    "block": "[[[10,3],[15,6,[30,0,[\"src\"]]],[14,\"target\",\"_blank\"],[14,\"rel\",\"noopener noreferrer\"],[14,0,\"image-file-image\"],[12],[1,\"\\n  \"],[10,\"img\"],[15,\"src\",[30,0,[\"src\"]]],[15,\"alt\",[28,[37,0],[[30,0,[\"alt\"]],[30,0,[\"fileName\"]]],null]],[15,\"title\",[30,0,[\"fileName\"]]],[15,\"onload\",[28,[37,1],[[30,0],[30,0,[\"updateImageMeta\"]]],null]],[12],[13],[1,\"\\n\"],[13],[1,\"\\n\"],[10,\"figcaption\"],[14,0,\"image-file-caption\"],[12],[1,\"\\n  \"],[10,1],[14,0,\"image-file-caption-primary\"],[12],[1,\"\\n    \"],[10,\"strong\"],[12],[1,[30,0,[\"fileName\"]]],[13],[1,\"\\n\"],[41,[28,[37,3],[[30,0,[\"width\"]],[30,0,[\"height\"]]],null],[[[1,\"      \"],[10,1],[12],[1,\"(\"],[1,[30,0,[\"width\"]]],[1,\"px × \"],[1,[30,0,[\"height\"]]],[1,\"px\"],[41,[30,0,[\"size\"]],[[[1,\", \"],[1,[28,[35,4],[[30,0,[\"size\"]]],null]]],[]],null],[1,\")\"],[13],[1,\"\\n\"]],[]],null],[1,\"  \"],[13],[1,\"\\n\"],[13]],[],false,[\"or\",\"action\",\"if\",\"and\",\"format-bytes\"]]",
    "moduleName": "nomad-ui/templates/components/image-file.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/job-client-status-row", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "PMY4REIx",
    "block": "[[[11,\"tr\"],[24,0,\"job-client-status-row is-interactive\"],[4,[38,0],[\"click\",[28,[37,1],[[30,1],[30,0,[\"row\",\"node\"]]],null]],null],[12],[1,\"\\n  \"],[10,\"td\"],[12],[1,\"\\n    \"],[8,[39,2],[[24,0,\"is-primary\"]],[[\"@route\",\"@model\"],[\"allocations.allocation\",[30,0,[\"allocation\"]]]],[[\"default\"],[[[[1,\"\\n      \"],[1,[30,0,[\"row\",\"node\",\"shortId\"]]],[1,\"\\n    \"]],[]]]]],[1,\"\\n  \"],[13],[1,\"\\n  \"],[10,\"td\"],[14,0,\"is-200px is-truncatable\"],[12],[1,\"\\n    \"],[1,[30,0,[\"row\",\"node\",\"name\"]]],[1,\"\\n  \"],[13],[1,\"\\n  \"],[10,\"td\"],[12],[1,\"\\n\"],[41,[30,0,[\"row\",\"createTime\"]],[[[1,\"      \"],[10,1],[14,0,\"tooltip\"],[14,\"role\",\"tooltip\"],[15,\"aria-label\",[29,[[28,[37,4],[[30,0,[\"row\",\"createTime\"]]],null]]]],[12],[1,\"\\n        \"],[1,[28,[35,5],[[30,0,[\"row\",\"createTime\"]]],null]],[1,\"\\n      \"],[13],[1,\"\\n\"]],[]],[[[1,\"      -\\n\"]],[]]],[1,\"  \"],[13],[1,\"\\n  \"],[10,\"td\"],[12],[1,\"\\n\"],[41,[30,0,[\"row\",\"modifyTime\"]],[[[1,\"      \"],[10,1],[14,0,\"tooltip\"],[14,\"role\",\"tooltip\"],[15,\"aria-label\",[29,[[28,[37,4],[[30,0,[\"row\",\"modifyTime\"]]],null]]]],[12],[1,\"\\n        \"],[1,[28,[35,5],[[30,0,[\"row\",\"modifyTime\"]]],null]],[1,\"\\n      \"],[13],[1,\"\\n\"]],[]],[[[1,\"      -\\n\"]],[]]],[1,\"  \"],[13],[1,\"\\n  \"],[10,\"td\"],[14,0,\"is-one-line\"],[12],[1,\"\\n    \"],[10,1],[15,0,[29,[\"color-swatch \",[30,0,[\"jobStatusClass\"]]]]],[12],[13],[1,\"\\n    \"],[1,[30,0,[\"humanizedJobStatus\"]]],[1,\"\\n  \"],[13],[1,\"\\n  \"],[10,\"td\"],[14,0,\"allocation-summary is-one-line\"],[12],[1,\"\\n\"],[41,[30,0,[\"shouldDisplayAllocationSummary\"]],[[[1,\"      \"],[10,0],[14,0,\"inline-chart\"],[12],[1,\"\\n        \"],[8,[39,6],null,[[\"@allocationContainer\",\"@isNarrow\"],[[30,0,[\"allocationContainer\"]],true]],null],[1,\"\\n      \"],[13],[1,\"\\n\"]],[]],[[[1,\"      \"],[10,0],[14,0,\"is-faded\"],[12],[1,[30,0,[\"allocationSummaryPlaceholder\"]]],[13],[1,\"\\n\"]],[]]],[1,\"  \"],[13],[1,\"\\n\"],[13]],[\"@onClick\"],false,[\"on\",\"fn\",\"link-to\",\"if\",\"format-month-ts\",\"moment-from-now\",\"allocation-status-bar\"]]",
    "moduleName": "nomad-ui/templates/components/job-client-status-row.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/job-deployment-details", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "HG540Jdc",
    "block": "[[[18,2,[[28,[37,1],null,[[\"metrics\",\"taskGroups\",\"allocations\"],[[50,\"job-deployment/deployment-metrics\",0,null,[[\"deployment\"],[[30,1]]]],[50,\"job-deployment/task-groups\",0,null,[[\"deployment\"],[[30,1]]]],[50,\"job-deployment/deployment-allocations\",0,null,[[\"deployment\"],[[30,1]]]]]]]]],[1,\"\\n\"]],[\"@deployment\",\"&default\"],false,[\"yield\",\"hash\",\"component\"]]",
    "moduleName": "nomad-ui/templates/components/job-deployment-details.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/job-deployment", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "F5EymOe5",
    "block": "[[[10,0],[14,0,\"boxed-section-head is-light inline-definitions\"],[12],[1,\"\\n  \"],[10,1],[12],[1,[30,0,[\"deployment\",\"shortId\"]]],[13],[1,\"\\n  \"],[10,1],[15,0,[29,[\"bumper-left tag \",[30,0,[\"deployment\",\"statusClass\"]]]]],[12],[1,[30,0,[\"deployment\",\"status\"]]],[13],[1,\"\\n\"],[41,[30,0,[\"deployment\",\"requiresPromotion\"]],[[[1,\"    \"],[10,1],[14,0,\"bumper-left badge is-warning is-hollow\"],[12],[1,\"Requires Promotion\"],[13],[1,\"\\n\"]],[]],null],[1,\"  \"],[10,1],[14,0,\"pull-right\"],[12],[1,\"\\n    \"],[10,1],[14,0,\"pair is-faded\"],[12],[1,\"\\n      \"],[10,1],[14,0,\"term\"],[12],[1,\"Version\"],[13],[1,\"\\n      \"],[10,1],[14,0,\"has-emphasis\"],[12],[1,\"#\"],[1,[30,0,[\"deployment\",\"version\",\"number\"]]],[13],[1,\"\\n      \"],[10,1],[12],[1,\"|\\n        \"],[10,1],[14,0,\"tooltip\"],[15,\"aria-label\",[29,[[28,[37,1],[[30,0,[\"deployment\",\"version\",\"submitTime\"]]],null]]]],[12],[1,\"\\n          \"],[1,[28,[35,2],[[30,0,[\"deployment\",\"version\",\"submitTime\"]]],null]],[1,\"\\n        \"],[13],[1,\"\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n    \"],[11,\"button\"],[24,0,\"button is-light is-compact pull-right\"],[24,4,\"button\"],[4,[38,3],[[30,0],[28,[37,4],[\"isOpen\",[30,0]],null]],null],[12],[1,\"details\"],[13],[1,\"\\n \"],[13],[1,\"\\n\"],[13],[1,\"\\n\"],[41,[30,0,[\"isOpen\"]],[[[1,\"  \"],[10,0],[14,0,\"boxed-section-body\"],[12],[1,\"\\n    \"],[8,[39,5],null,[[\"@deployment\"],[[30,0,[\"deployment\"]]]],[[\"default\"],[[[[1,\"\\n      \"],[8,[30,1,[\"metrics\"]],null,null,null],[1,\"\\n      \"],[8,[30,1,[\"taskGroups\"]],null,null,null],[1,\"\\n      \"],[8,[30,1,[\"allocations\"]],null,null,null],[1,\"\\n    \"]],[1]]]]],[1,\"\\n  \"],[13],[1,\"\\n\"]],[]],null]],[\"d\"],false,[\"if\",\"format-ts\",\"moment-from-now\",\"action\",\"toggle\",\"job-deployment-details\"]]",
    "moduleName": "nomad-ui/templates/components/job-deployment.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/job-deployment/deployment-allocations", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "4sd5+K2d",
    "block": "[[[10,0],[14,0,\"boxed-section\"],[12],[1,\"\\n  \"],[10,0],[14,0,\"boxed-section-head\"],[12],[1,\"\\n    Allocations\\n  \"],[13],[1,\"\\n  \"],[10,0],[15,0,[29,[\"boxed-section-body \",[52,[30,0,[\"job\",\"allocations\",\"length\"]],\"is-full-bleed\"]]]],[12],[1,\"\\n\"],[41,[30,1,[\"allocations\",\"length\"]],[[[1,\"      \"],[8,[39,1],null,[[\"@source\",\"@class\"],[[30,1,[\"allocations\"]],\"allocations\"]],[[\"default\"],[[[[1,\"\\n        \"],[8,[30,2,[\"head\"]],null,null,[[\"default\"],[[[[1,\"\\n          \"],[10,\"th\"],[14,0,\"is-narrow\"],[12],[13],[1,\"\\n          \"],[10,\"th\"],[12],[1,\"ID\"],[13],[1,\"\\n          \"],[10,\"th\"],[12],[1,\"Task Group\"],[13],[1,\"\\n          \"],[10,\"th\"],[12],[1,\"Created\"],[13],[1,\"\\n          \"],[10,\"th\"],[12],[1,\"Modified\"],[13],[1,\"\\n          \"],[10,\"th\"],[12],[1,\"Status\"],[13],[1,\"\\n          \"],[10,\"th\"],[12],[1,\"Version\"],[13],[1,\"\\n          \"],[10,\"th\"],[12],[1,\"Node\"],[13],[1,\"\\n          \"],[10,\"th\"],[12],[1,\"Volume\"],[13],[1,\"\\n          \"],[10,\"th\"],[12],[1,\"CPU\"],[13],[1,\"\\n          \"],[10,\"th\"],[12],[1,\"Memory\"],[13],[1,\"\\n        \"]],[]]]]],[1,\"\\n        \"],[8,[30,2,[\"body\"]],null,null,[[\"default\"],[[[[1,\"\\n          \"],[8,[39,2],null,[[\"@allocation\",\"@context\"],[[30,3,[\"model\"]],\"job\"]],null],[1,\"\\n        \"]],[3]]]]],[1,\"\\n      \"]],[2]]]]],[1,\"\\n\"]],[]],[[[1,\"        \"],[10,0],[14,0,\"empty-message\"],[12],[1,\"\\n          \"],[10,\"h3\"],[14,0,\"empty-message-headline\"],[12],[1,\"\\n            No Allocations\\n          \"],[13],[1,\"\\n          \"],[10,2],[14,0,\"empty-message-body\"],[12],[1,\"\\n            No allocations have been placed.\\n          \"],[13],[1,\"\\n        \"],[13],[1,\"\\n\"]],[]]],[1,\"  \"],[13],[1,\"\\n\"],[13],[1,\"\\n\"]],[\"@deployment\",\"t\",\"row\"],false,[\"if\",\"list-table\",\"allocation-row\"]]",
    "moduleName": "nomad-ui/templates/components/job-deployment/deployment-allocations.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/job-deployment/deployment-metrics", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "WACLgDSw",
    "block": "[[[10,0],[14,0,\"columns deployment-metrics\"],[12],[1,\"\\n  \"],[10,0],[14,0,\"column nowrap\"],[12],[1,\"\\n    \"],[10,0],[14,0,\"metric-group\"],[12],[1,\"\\n      \"],[10,0],[15,0,[29,[\"metric \",[52,[28,[37,1],[[30,0,[\"deployment\",\"placedCanaries\"]],[30,0,[\"deployment\",\"desiredCanaries\"]]],null],\"is-primary\"],\" \",[52,[28,[37,1],[[30,0,[\"deployment\",\"desiredCanaries\"]],0],null],\"is-faded\"]]]],[12],[1,\"\\n        \"],[10,\"h3\"],[14,0,\"label\"],[12],[1,\"Canaries\"],[13],[1,\"\\n        \"],[10,2],[14,0,\"value\"],[12],[1,[30,0,[\"deployment\",\"placedCanaries\"]]],[1,\" / \"],[1,[30,0,[\"deployment\",\"desiredCanaries\"]]],[13],[1,\"\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n\\n    \"],[10,0],[14,0,\"metric-group\"],[12],[1,\"\\n      \"],[10,0],[14,0,\"metric\"],[12],[1,\"\\n        \"],[10,\"h3\"],[14,0,\"label\"],[12],[1,\"Placed\"],[13],[1,\"\\n        \"],[10,2],[14,0,\"value\"],[12],[1,[30,0,[\"deployment\",\"placedAllocs\"]]],[13],[1,\"\\n      \"],[13],[1,\"\\n      \"],[10,0],[14,0,\"metric\"],[12],[1,\"\\n        \"],[10,\"h3\"],[14,0,\"label\"],[12],[1,\"Desired\"],[13],[1,\"\\n        \"],[10,2],[14,0,\"value\"],[12],[1,[30,0,[\"deployment\",\"desiredTotal\"]]],[13],[1,\"\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n\\n    \"],[10,0],[14,0,\"metric-group\"],[12],[1,\"\\n      \"],[10,0],[15,0,[29,[\"metric \",[52,[28,[37,2],[[30,0,[\"deployment\",\"healthyAllocs\"]],0],null],\"is-primary\",\"is-faded\"]]]],[12],[1,\"\\n        \"],[10,\"h3\"],[14,0,\"label\"],[12],[1,\"Healthy\"],[13],[1,\"\\n        \"],[10,2],[14,0,\"value\"],[12],[1,[30,0,[\"deployment\",\"healthyAllocs\"]]],[13],[1,\"\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n\\n    \"],[10,0],[14,0,\"metric-group\"],[12],[1,\"\\n      \"],[10,0],[15,0,[29,[\"metric \",[52,[28,[37,2],[[30,0,[\"deployment\",\"unhealthyAllocs\"]],0],null],\"is-danger\",\"is-faded\"]]]],[12],[1,\"\\n        \"],[10,\"h3\"],[14,0,\"label\"],[12],[1,\"Unhealthy\"],[13],[1,\"\\n        \"],[10,2],[14,0,\"value\"],[12],[1,[30,0,[\"deployment\",\"unhealthyAllocs\"]]],[13],[1,\"\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n  \"],[13],[1,\"\\n  \"],[10,0],[14,0,\"column\"],[12],[1,\"\\n    \"],[10,0],[15,0,[29,[\"notification \",[30,0,[\"deployment\",\"statusClass\"]]]]],[12],[1,\"\\n      \"],[1,[30,0,[\"deployment\",\"statusDescription\"]]],[1,\"\\n    \"],[13],[1,\"\\n  \"],[13],[1,\"\\n\"],[13],[1,\"\\n\"]],[],false,[\"if\",\"eq\",\"gt\"]]",
    "moduleName": "nomad-ui/templates/components/job-deployment/deployment-metrics.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/job-deployment/task-groups", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "YqPy/0ra",
    "block": "[[[10,0],[14,0,\"boxed-section\"],[12],[1,\"\\n  \"],[10,0],[14,0,\"boxed-section-head\"],[12],[1,\"\\n    Task Groups\\n  \"],[13],[1,\"\\n  \"],[10,0],[14,0,\"boxed-section-body is-full-bleed\"],[12],[1,\"\\n    \"],[8,[39,0],null,[[\"@source\",\"@class\"],[[30,1,[\"taskGroupSummaries\"]],\"task-groups\"]],[[\"default\"],[[[[1,\"\\n      \"],[8,[30,2,[\"head\"]],null,null,[[\"default\"],[[[[1,\"\\n        \"],[10,\"th\"],[12],[1,\"Name\"],[13],[1,\"\\n        \"],[10,\"th\"],[12],[1,\"Needs Promotion?\"],[13],[1,\"\\n        \"],[10,\"th\"],[12],[1,\"Auto Revert?\"],[13],[1,\"\\n        \"],[10,\"th\"],[12],[1,\"Canaries\"],[13],[1,\"\\n        \"],[10,\"th\"],[12],[1,\"Allocs\"],[13],[1,\"\\n        \"],[10,\"th\"],[12],[1,\"Healthy Allocs\"],[13],[1,\"\\n        \"],[10,\"th\"],[12],[1,\"Unhealthy Allocs\"],[13],[1,\"\\n        \"],[10,\"th\"],[12],[1,\"Progress Deadline\"],[13],[1,\"\\n      \"]],[]]]]],[1,\"\\n      \"],[8,[30,2,[\"body\"]],null,null,[[\"default\"],[[[[1,\"\\n        \"],[10,\"tr\"],[12],[1,\"\\n          \"],[10,\"td\"],[12],[1,[30,3,[\"model\",\"name\"]]],[13],[1,\"\\n          \"],[10,\"td\"],[12],[1,\"\\n\"],[41,[30,3,[\"model\",\"requiresPromotion\"]],[[[1,\"              \"],[1,[52,[30,3,[\"model\",\"promoted\"]],\"No\",\"Yes\"]],[1,\"\\n\"]],[]],[[[1,\"              N/A\\n\"]],[]]],[1,\"          \"],[13],[1,\"\\n          \"],[10,\"td\"],[12],[1,[52,[30,3,[\"model\",\"autoRevert\"]],\"Yes\",\"No\"]],[13],[1,\"\\n          \"],[10,\"td\"],[12],[1,[28,[35,2],[[30,3,[\"model\",\"placedCanaries\"]],0],null]],[1,\" / \"],[1,[30,3,[\"model\",\"desiredCanaries\"]]],[13],[1,\"\\n          \"],[10,\"td\"],[12],[1,[30,3,[\"model\",\"placedAllocs\"]]],[1,\" / \"],[1,[30,3,[\"model\",\"desiredTotal\"]]],[13],[1,\"\\n          \"],[10,\"td\"],[12],[1,[30,3,[\"model\",\"healthyAllocs\"]]],[13],[1,\"\\n          \"],[10,\"td\"],[12],[1,[30,3,[\"model\",\"unhealthyAllocs\"]]],[13],[1,\"\\n          \"],[10,\"td\"],[12],[1,\"\\n            \"],[10,1],[14,0,\"nowrap\"],[12],[1,[28,[35,3],[[30,3,[\"model\",\"requireProgressBy\"]]],null]],[13],[1,\"\\n          \"],[13],[1,\"\\n        \"],[13],[1,\"\\n      \"]],[3]]]]],[1,\"\\n    \"]],[2]]]]],[1,\"\\n  \"],[13],[1,\"\\n\"],[13],[1,\"\\n\\n\"]],[\"@deployment\",\"t\",\"row\"],false,[\"list-table\",\"if\",\"or\",\"format-ts\"]]",
    "moduleName": "nomad-ui/templates/components/job-deployment/task-groups.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/job-deployments-stream", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "saaCam8p",
    "block": "[[[42,[28,[37,1],[[28,[37,1],[[30,0,[\"annotatedDeployments\"]]],null]],null],\"deployment.id\",[[[41,[30,1,[\"meta\",\"showDate\"]],[[[1,\"    \"],[10,\"li\"],[14,0,\"timeline-note\"],[12],[1,\"\\n\"],[41,[30,1,[\"deployment\",\"version\",\"submitTime\"]],[[[1,\"        \"],[1,[28,[35,3],[[30,1,[\"deployment\",\"version\",\"submitTime\"]]],null]],[1,\"\\n\"]],[]],[[[1,\"        Unknown time\\n\"]],[]]],[1,\"    \"],[13],[1,\"\\n\"]],[]],null],[1,\"  \"],[10,\"li\"],[14,0,\"timeline-object\"],[12],[1,\"\\n    \"],[8,[39,4],null,[[\"@deployment\"],[[30,1,[\"deployment\"]]]],null],[1,\"\\n  \"],[13],[1,\"\\n\"]],[1]],null]],[\"record\"],false,[\"each\",\"-track-array\",\"if\",\"format-date\",\"job-deployment\"]]",
    "moduleName": "nomad-ui/templates/components/job-deployments-stream.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/job-diff-fields-and-objects", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "943qBVU6",
    "block": "[[[10,0],[14,0,\"diff-section-table\"],[12],[1,\"\\n\"],[42,[28,[37,1],[[28,[37,1],[[30,0,[\"fields\"]]],null]],null],null,[[[1,\"    \"],[10,0],[15,0,[29,[\"diff-section-table-row \",[28,[37,2],[\"diff-section-label is-\",[28,[37,3],[[30,1,[\"Type\"]]],null]],null]]]],[12],[1,\"\\n      \"],[10,1],[14,0,\"diff-section-table-cell\"],[12],[1,\"\\n        \"],[10,1],[15,0,[29,[\"marker \",[28,[37,2],[\"is-\",[28,[37,3],[[30,1,[\"Type\"]]],null]],null]]]],[12],[1,\"\\n\"],[41,[28,[37,5],[[28,[37,3],[[30,1,[\"Type\"]]],null],\"added\"],null],[[[1,\"            +\\n\"]],[]],[[[41,[28,[37,5],[[28,[37,3],[[30,1,[\"Type\"]]],null],\"deleted\"],null],[[[1,\"            -\\n\"]],[]],[[[41,[28,[37,5],[[28,[37,3],[[30,1,[\"Type\"]]],null],\"edited\"],null],[[[1,\"            +/-\\n          \"]],[]],null]],[]]]],[]]],[1,\"        \"],[13],[1,\"\\n        \"],[1,[30,1,[\"Name\"]]],[1,\":\\n      \"],[13],[1,\"\\n\"],[41,[28,[37,5],[[28,[37,3],[[30,1,[\"Type\"]]],null],\"added\"],null],[[[1,\"        \"],[10,1],[14,0,\"diff-section-table-cell diff-section-change\"],[12],[1,\"\\\"\"],[1,[30,1,[\"New\"]]],[1,\"\\\"\"],[13],[1,\"\\n\"]],[]],[[[41,[28,[37,5],[[28,[37,3],[[30,1,[\"Type\"]]],null],\"deleted\"],null],[[[1,\"        \"],[10,1],[14,0,\"diff-section-table-cell diff-section-change\"],[12],[1,\"\\\"\"],[1,[30,1,[\"Old\"]]],[1,\"\\\"\"],[13],[1,\"\\n\"]],[]],[[[41,[28,[37,5],[[28,[37,3],[[30,1,[\"Type\"]]],null],\"edited\"],null],[[[1,\"        \"],[10,1],[14,0,\"diff-section-table-cell diff-section-change\"],[12],[1,\"\\\"\"],[1,[30,1,[\"Old\"]]],[1,\"\\\" => \\\"\"],[1,[30,1,[\"New\"]]],[1,\"\\\"\"],[13],[1,\"\\n\"]],[]],[[[1,\"        \"],[10,1],[14,0,\"diff-section-table-cell\"],[12],[1,\"\\\"\"],[1,[30,1,[\"New\"]]],[1,\"\\\"\"],[13],[1,\"\\n      \"]],[]]]],[]]]],[]]],[1,\"    \"],[13],[1,\"\\n\"]],[1]],null],[13],[1,\"\\n\\n\"],[42,[28,[37,1],[[28,[37,1],[[30,0,[\"objects\"]]],null]],null],null,[[[1,\"  \"],[10,0],[15,0,[29,[[28,[37,2],[\"diff-section-label is-\",[28,[37,3],[[30,2,[\"Type\"]]],null]],null]]]],[12],[1,\"\\n    \"],[10,1],[15,0,[29,[\"marker \",[28,[37,2],[\"is-\",[28,[37,3],[[30,2,[\"Type\"]]],null]],null]]]],[12],[1,\"\\n\"],[41,[28,[37,5],[[28,[37,3],[[30,2,[\"Type\"]]],null],\"added\"],null],[[[1,\"        +\\n\"]],[]],[[[41,[28,[37,5],[[28,[37,3],[[30,2,[\"Type\"]]],null],\"deleted\"],null],[[[1,\"        -\\n\"]],[]],[[[41,[28,[37,5],[[28,[37,3],[[30,2,[\"Type\"]]],null],\"edited\"],null],[[[1,\"        +/-\\n      \"]],[]],null]],[]]]],[]]],[1,\"    \"],[13],[1,\"\\n    \"],[1,[30,2,[\"Name\"]]],[1,\" {\\n      \"],[10,0],[14,0,\"diff-section-label\"],[12],[1,\"\\n        \"],[8,[39,6],null,[[\"@fields\",\"@objects\"],[[30,2,[\"Fields\"]],[30,2,[\"Objects\"]]]],null],[1,\"\\n      \"],[13],[1,\"\\n    }\\n  \"],[13],[1,\"\\n\"]],[2]],null]],[\"field\",\"object\"],false,[\"each\",\"-track-array\",\"concat\",\"lowercase\",\"if\",\"eq\",\"job-diff-fields-and-objects\"]]",
    "moduleName": "nomad-ui/templates/components/job-diff-fields-and-objects.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/job-diff", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "rzmTVYia",
    "block": "[[[10,0],[15,0,[29,[[52,[30,0,[\"diff\",\"Type\"]],[28,[37,1],[\"diff-section-label is-\",[28,[37,2],[[30,0,[\"diff\",\"Type\"]]],null]],null]]]]],[12],[1,\"\\n  \"],[10,1],[15,0,[29,[\"marker \",[28,[37,1],[\"is-\",[28,[37,2],[[30,0,[\"diff\",\"Type\"]]],null]],null]]]],[12],[1,\"\\n\"],[41,[28,[37,3],[[28,[37,2],[[30,0,[\"diff\",\"Type\"]]],null],\"added\"],null],[[[1,\"      +\\n\"]],[]],[[[41,[28,[37,3],[[28,[37,2],[[30,0,[\"diff\",\"Type\"]]],null],\"deleted\"],null],[[[1,\"      -\\n\"]],[]],[[[41,[28,[37,3],[[28,[37,2],[[30,0,[\"diff\",\"Type\"]]],null],\"edited\"],null],[[[1,\"      +/-\\n    \"]],[]],null]],[]]]],[]]],[1,\"  \"],[13],[1,\"\\n  \"],[10,1],[14,0,\"diff-section-bold\"],[12],[1,\"Job: \\\"\"],[1,[30,0,[\"diff\",\"ID\"]]],[1,\"\\\"\"],[13],[1,\"\\n\"],[13],[1,\"\\n\\n\"],[41,[28,[37,4],[[30,0,[\"verbose\"]],[28,[37,3],[[28,[37,2],[[30,0,[\"diff\",\"Type\"]]],null],\"edited\"],null]],null],[[[1,\"  \"],[10,0],[14,0,\"diff-section-label\"],[12],[1,\"\\n    \"],[8,[39,5],null,[[\"@fields\",\"@objects\"],[[30,0,[\"diff\",\"Fields\"]],[30,0,[\"diff\",\"Objects\"]]]],null],[1,\"\\n  \"],[13],[1,\"\\n\"]],[]],null],[1,\"\\n\"],[42,[28,[37,7],[[28,[37,7],[[30,0,[\"diff\",\"TaskGroups\"]]],null]],null],null,[[[1,\"  \"],[10,0],[15,0,[29,[[52,[30,1,[\"Type\"]],[28,[37,1],[\"diff-section-label is-\",[28,[37,2],[[30,1,[\"Type\"]]],null]],null]]]]],[12],[1,\"\\n    \"],[10,1],[15,0,[29,[\"marker \",[28,[37,1],[\"is-\",[28,[37,2],[[30,1,[\"Type\"]]],null]],null]]]],[12],[1,\"\\n\"],[41,[28,[37,3],[[28,[37,2],[[30,1,[\"Type\"]]],null],\"added\"],null],[[[1,\"        +\\n\"]],[]],[[[41,[28,[37,3],[[28,[37,2],[[30,1,[\"Type\"]]],null],\"deleted\"],null],[[[1,\"        -\\n\"]],[]],[[[41,[28,[37,3],[[28,[37,2],[[30,1,[\"Type\"]]],null],\"edited\"],null],[[[1,\"        +/-\\n      \"]],[]],null]],[]]]],[]]],[1,\"    \"],[13],[1,\"\\n    \"],[10,1],[14,0,\"diff-section-bold\"],[12],[1,\"Task Group: \\\"\"],[1,[30,1,[\"Name\"]]],[1,\"\\\"\"],[13],[1,\"\\n\"],[41,[30,1,[\"Updates\"]],[[[1,\"      (\"],[42,[28,[37,8],[[30,1,[\"Updates\"]]],null],null,[[[1,\"\\n        \"],[10,1],[15,0,[29,[\"job-diff-update-count \",[28,[37,9],[[30,3]],null]]]],[12],[1,[30,2]],[1,\"\\n          \"],[1,[30,3]],[13],[1,\"\\n      \"]],[2,3]],null],[1,\")\\n\"]],[]],null],[1,\"\\n\"],[41,[28,[37,4],[[28,[37,3],[[28,[37,2],[[30,1,[\"Type\"]]],null],\"edited\"],null],[30,0,[\"verbose\"]]],null],[[[1,\"      \"],[10,0],[14,0,\"diff-section-label\"],[12],[1,\"\\n        \"],[8,[39,5],null,[[\"@fields\",\"@objects\"],[[30,1,[\"Fields\"]],[30,1,[\"Objects\"]]]],null],[1,\"\\n      \"],[13],[1,\"\\n\"]],[]],null],[1,\"\\n\"],[42,[28,[37,7],[[28,[37,7],[[30,1,[\"Tasks\"]]],null]],null],null,[[[1,\"      \"],[10,0],[15,0,[29,[[52,[30,4,[\"Type\"]],[28,[37,1],[\"diff-section-label is-\",[28,[37,2],[[30,4,[\"Type\"]]],null]],null]]]]],[12],[1,\"\\n        \"],[10,1],[15,0,[29,[\"marker \",[28,[37,1],[\"is-\",[28,[37,2],[[30,4,[\"Type\"]]],null]],null]]]],[12],[1,\"\\n\"],[41,[28,[37,3],[[28,[37,2],[[30,4,[\"Type\"]]],null],\"added\"],null],[[[1,\"            +\\n\"]],[]],[[[41,[28,[37,3],[[28,[37,2],[[30,4,[\"Type\"]]],null],\"deleted\"],null],[[[1,\"            -\\n\"]],[]],[[[41,[28,[37,3],[[28,[37,2],[[30,4,[\"Type\"]]],null],\"edited\"],null],[[[1,\"            +/-\\n          \"]],[]],null]],[]]]],[]]],[1,\"        \"],[13],[1,\"\\n        Task: \\\"\"],[1,[30,4,[\"Name\"]]],[1,\"\\\"\\n\"],[41,[30,4,[\"Annotations\"]],[[[1,\"          (\"],[42,[28,[37,7],[[28,[37,7],[[30,4,[\"Annotations\"]]],null]],null],null,[[[1,\"\\n            \"],[10,1],[15,0,[29,[[28,[37,9],[[30,5]],null]]]],[12],[1,[30,5]],[13],[1,\"\\n            \"],[41,[51,[28,[37,3],[[30,6],[28,[37,11],[[30,4,[\"Annotations\",\"length\"]]],null]],null]],[[[1,\",\"]],[]],null],[1,\"\\n          \"]],[5,6]],null],[1,\")\\n\"]],[]],null],[41,[28,[37,4],[[30,0,[\"verbose\"]],[28,[37,3],[[28,[37,2],[[30,4,[\"Type\"]]],null],\"edited\"],null]],null],[[[1,\"          \"],[8,[39,5],null,[[\"@fields\",\"@objects\"],[[30,4,[\"Fields\"]],[30,4,[\"Objects\"]]]],null],[1,\"\\n\"]],[]],null],[1,\"      \"],[13],[1,\"\\n\"]],[4]],null],[1,\"  \"],[13],[1,\"\\n\"]],[1]],null]],[\"group\",\"count\",\"updateType\",\"task\",\"annotation\",\"index\"],false,[\"if\",\"concat\",\"lowercase\",\"eq\",\"or\",\"job-diff-fields-and-objects\",\"each\",\"-track-array\",\"-each-in\",\"css-class\",\"unless\",\"dec\"]]",
    "moduleName": "nomad-ui/templates/components/job-diff.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/job-dispatch", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "7fjFu3d1",
    "block": "[[[41,[30,0,[\"errors\"]],[[[1,\"  \"],[10,0],[14,0,\"notification is-danger\"],[12],[1,\"\\n    \"],[10,\"h3\"],[14,0,\"title is-4\"],[12],[1,\"Dispatch Error\"],[13],[1,\"\\n    \"],[10,\"ul\"],[12],[1,\"\\n\"],[42,[28,[37,2],[[28,[37,2],[[30,0,[\"errors\"]]],null]],null],null,[[[1,\"        \"],[10,\"li\"],[12],[1,[30,1]],[13],[1,\"\\n\"]],[1]],null],[1,\"    \"],[13],[1,\"\\n  \"],[13],[1,\"\\n\"]],[]],null],[1,\"\\n\"],[10,\"form\"],[14,\"action\",\"#\"],[14,\"onsubmit\",\"return false\"],[12],[1,\"\\n  \"],[10,\"h1\"],[14,0,\"title\"],[12],[1,\"Dispatch an instance of '\"],[1,[30,2,[\"name\"]]],[1,\"'\"],[13],[1,\"\\n\\n\"],[42,[28,[37,2],[[28,[37,2],[[30,0,[\"metaFields\"]]],null]],null],null,[[[1,\"    \"],[10,0],[14,0,\"columns\"],[12],[1,\"\\n        \"],[10,0],[14,0,\"column is-6\"],[12],[1,\"\\n          \"],[10,0],[14,0,\"field\"],[12],[1,\"\\n            \"],[10,\"label\"],[15,0,[29,[\"label \",[52,[30,3,[\"error\"]],\"has-text-danger\"]]]],[15,\"for\",[29,[[30,3,[\"name\"]]]]],[12],[1,\"\\n              \"],[1,[30,3,[\"title\"]]],[1,\" \"],[41,[30,3,[\"required\"]],[[[1,\"*\"]],[]],null],[1,\"\\n            \"],[13],[1,\"\\n            \"],[10,0],[14,0,\"control\"],[12],[1,\"\\n              \"],[10,\"input\"],[15,1,[29,[[30,3,[\"name\"]]]]],[15,0,[29,[\"input \",[52,[30,3,[\"error\"]],\"is-danger\"]]]],[15,2,[30,3,[\"value\"]]],[15,\"oninput\",[28,[37,3],[[30,0],[28,[37,4],[[30,3,[\"value\"]]],null]],[[\"value\"],[\"target.value\"]]]],[15,\"required\",[30,3,[\"required\"]]],[14,4,\"text\"],[12],[13],[1,\"\\n\\n              \"],[10,2],[15,0,[29,[\"help \",[52,[30,3,[\"error\"]],\"has-text-danger\"]]]],[12],[1,\"\\n                \"],[41,[30,3,[\"required\"]],[[[1,\"Required\"]],[]],[[[1,\"Optional\"]],[]]],[1,\"\\n                Meta Param\\n                \"],[10,1],[14,0,\"badge is-light is-faded\"],[12],[1,\"\\n                  \"],[10,\"code\"],[12],[1,[30,3,[\"name\"]]],[13],[1,\"\\n                \"],[13],[1,\"\\n              \"],[13],[1,\"\\n            \"],[13],[1,\"\\n          \"],[13],[1,\"\\n        \"],[13],[1,\"\\n    \"],[13],[1,\"\\n\"]],[3]],null],[1,\"\\n  \"],[10,0],[15,0,[29,[\"boxed-section \",[52,[30,0,[\"payloadHasError\"]],\"is-danger\"]]]],[12],[1,\"\\n    \"],[10,0],[14,0,\"boxed-section-head\"],[12],[1,\"\\n      Payload \"],[41,[30,0,[\"payloadRequired\"]],[[[1,\"*\"]],[]],null],[1,\"\\n    \"],[13],[1,\"\\n\"],[41,[30,0,[\"hasPayload\"]],[[[1,\"      \"],[10,0],[14,0,\"boxed-section-body is-full-bleed\"],[12],[1,\"\\n        \"],[11,0],[4,[38,5],null,[[\"theme\",\"onUpdate\",\"mode\",\"screenReaderLabel\"],[\"hashi\",[28,[37,3],[[30,0],[28,[37,4],[[30,0,[\"payload\"]]],null]],null],\"javascript\",\"Payload definition\"]]],[12],[13],[1,\"\\n      \"],[13],[1,\"\\n\"]],[]],[[[1,\"      \"],[10,0],[14,0,\"boxed-section-body\"],[12],[1,\"\\n        \"],[10,0],[14,0,\"empty-message\"],[12],[1,\"\\n          \"],[10,\"h3\"],[14,0,\"empty-message-headline\"],[12],[1,\"Payload Disabled\"],[13],[1,\"\\n          \"],[10,2],[14,0,\"empty-message-body\"],[12],[1,\"Payload is disabled for this job.\"],[13],[1,\"\\n        \"],[13],[1,\"\\n      \"],[13],[1,\"\\n\"]],[]]],[1,\"  \"],[13],[1,\"\\n\\n  \"],[10,0],[12],[1,\"\\n    \"],[10,\"button\"],[14,0,\"button is-primary\"],[15,\"onclick\",[28,[37,3],[[30,0],\"dispatch\"],null]],[14,4,\"button\"],[12],[1,\"Dispatch\"],[13],[1,\"\\n    \"],[10,\"button\"],[14,0,\"button is-white\"],[15,\"onclick\",[28,[37,3],[[30,0],\"cancel\"],null]],[14,4,\"button\"],[12],[1,\"Cancel\"],[13],[1,\"\\n  \"],[13],[1,\"\\n\"],[13],[1,\"\\n\"]],[\"error\",\"@job\",\"meta\"],false,[\"if\",\"each\",\"-track-array\",\"action\",\"mut\",\"code-mirror\"]]",
    "moduleName": "nomad-ui/templates/components/job-dispatch.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/job-editor", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "hrhQ3Ofy",
    "block": "[[[10,0],[12],[1,\"\\n  \"],[8,[39,0],null,[[\"@data\",\"@fns\"],[[28,[37,1],[[28,[37,2],null,[[\"error\",\"stage\"],[[30,0,[\"error\"]],[30,0,[\"stage\"]]]]],[30,0,[\"data\"]]],null],[30,0,[\"fns\"]]]],null],[1,\"\\n\\n\"],[41,[28,[37,4],[[30,1],\"new\"],null],[[[1,\"      \"],[10,\"header\"],[14,0,\"run-job-header\"],[12],[1,\"\\n        \"],[10,\"h1\"],[14,0,\"title is-3\"],[12],[1,\"Run a job\"],[13],[1,\"\\n        \"],[10,2],[12],[1,\"\\n          Paste or author HCL or JSON to submit to your cluster, or select from a list of templates. A plan will be requested before the job is submitted. You can also attach a job spec by uploading a job file or dragging & dropping a file to the editor.\\n        \"],[13],[1,\"\\n\\n\"],[41,[28,[37,5],[\"write variable\"],[[\"path\",\"namespace\"],[\"*\",\"*\"]]],[[[1,\"          \"],[8,[39,6],null,null,[[\"default\"],[[[[1,\"\\n            \"],[10,\"label\"],[14,0,\"job-spec-upload hds-button hds-button--color-secondary hds-button--size-medium\"],[12],[1,\"\\n              \"],[10,0],[14,0,\"hds-button__text\"],[12],[1,\"Upload file\"],[13],[1,\"\\n              \"],[10,\"input\"],[15,\"onchange\",[28,[37,7],[[30,0],[30,0,[\"uploadJobSpec\"]]],null]],[14,\"accept\",\".hcl,.json,.nomad\"],[14,4,\"file\"],[12],[13],[1,\"\\n            \"],[13],[1,\"\\n            \"],[8,[39,8],null,[[\"@text\",\"@color\",\"@route\"],[\"Choose from template\",\"secondary\",\"jobs.run.templates\"]],null],[1,\"\\n          \"]],[]]]]],[1,\"\\n\"]],[]],null],[1,\"\\n      \"],[13],[1,\"\\n\"]],[]],null],[1,\"    \"],[1,[28,[35,9],[[30,0,[\"setDefinitionOnModel\"]],[30,0,[\"definition\"]]],null]],[1,\"\\n    \"],[46,[28,[37,11],[\"job-editor/\",[30,0,[\"stage\"]]],null],null,[[\"data\",\"fns\"],[[30,0,[\"data\"]],[30,0,[\"fns\"]]]],null],[1,\"\\n\"],[13],[1,\"\\n\"]],[\"@context\"],false,[\"job-editor/alert\",\"merge\",\"hash\",\"if\",\"eq\",\"can\",\"hds/button-set\",\"action\",\"hds/button\",\"did-update\",\"component\",\"concat\"]]",
    "moduleName": "nomad-ui/templates/components/job-editor.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/job-editor/alert", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "rvpv5B/b",
    "block": "[[[10,0],[14,0,\"job-editor-alerts\"],[12],[1,\"\\n\"],[41,[30,1,[\"error\"]],[[[1,\"      \"],[8,[39,1],null,[[\"@type\",\"@color\"],[\"inline\",\"critical\"]],[[\"default\"],[[[[1,\"\\n          \"],[8,[30,2,[\"Title\"]],null,null,[[\"default\"],[[[[1,[28,[35,2],[[30,1,[\"error\",\"type\"]],true],null]]],[]]]]],[1,\"\\n          \"],[8,[30,2,[\"Description\"]],null,null,[[\"default\"],[[[[1,[30,1,[\"error\",\"message\"]]]],[]]]]],[1,\"\\n      \"]],[2]]]]],[1,\"\\n\"]],[]],null],[41,[28,[37,3],[[28,[37,4],[[30,1,[\"stage\"]],\"read\"],null],[30,1,[\"hasVariables\"]],[28,[37,4],[[30,1,[\"view\"]],\"job-spec\"],null]],null],[[[41,[30,0,[\"shouldShowAlert\"]],[[[1,\"        \"],[8,[39,1],null,[[\"@type\",\"@onDismiss\"],[\"inline\",[30,0,[\"dismissAlert\"]]]],[[\"default\"],[[[[1,\"\\n          \"],[8,[30,3,[\"Title\"]],null,null,[[\"default\"],[[[[1,\"HCL Variables values may be incomplete\"]],[]]]]],[1,\"\\n          \"],[8,[30,3,[\"Description\"]],null,null,[[\"default\"],[[[[1,\"Nomad cannot ensure that all variable values provided below match those provided on job submit. Ensure the proper values are provided before re-submitting the job.\"]],[]]]]],[1,\"\\n        \"]],[3]]]]],[1,\"\\n\"]],[]],null]],[]],null],[41,[28,[37,3],[[28,[37,4],[[30,1,[\"stage\"]],\"edit\"],null],[28,[37,4],[[30,1,[\"view\"]],\"full-definition\"],null]],null],[[[1,\"        \"],[8,[39,1],null,[[\"@type\",\"@color\"],[\"inline\",\"warning\"]],[[\"default\"],[[[[1,\"\\n          \"],[8,[30,4,[\"Title\"]],null,null,[[\"default\"],[[[[1,\"Edit JSON\"]],[]]]]],[1,\"\\n          \"],[8,[30,4,[\"Description\"]],null,null,[[\"default\"],[[[[1,\"If you edit the JSON formation in the full definition, you will no longer be able to see job spec in HCL.\"]],[]]]]],[1,\"\\n        \"]],[4]]]]],[1,\"\\n\"]],[]],null],[41,[28,[37,3],[[28,[37,4],[[30,1,[\"stage\"]],\"review\"],null],[30,1,[\"shouldShowPlanMessage\"]]],null],[[[1,\"      \"],[8,[39,1],null,[[\"@type\",\"@onDismiss\"],[\"inline\",[30,5,[\"onDismissPlanMessage\"]]]],[[\"default\"],[[[[1,\"\\n          \"],[8,[30,6,[\"Title\"]],null,null,[[\"default\"],[[[[1,\"Job Plan\"]],[]]]]],[1,\"\\n          \"],[8,[30,6,[\"Description\"]],null,null,[[\"default\"],[[[[1,\"This is the impact running this job will have on your cluster\"]],[]]]]],[1,\"\\n      \"]],[6]]]]],[1,\"\\n\"]],[]],null],[1,\"  \"],[13],[1,\"\\n  \"]],[\"@data\",\"A\",\"A\",\"A\",\"@fns\",\"A\"],false,[\"if\",\"hds/alert\",\"conditionally-capitalize\",\"and\",\"eq\"]]",
    "moduleName": "nomad-ui/templates/components/job-editor/alert.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/job-editor/edit", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "subh7RTk",
    "block": "[[[10,0],[14,0,\"boxed-section\"],[12],[1,\"\\n  \"],[10,0],[14,0,\"boxed-section-head\"],[12],[1,\"\\n    Job Definition\\n\"],[41,[30,1,[\"cancelable\"]],[[[1,\"    \"],[10,0],[14,0,\"pull-right\"],[14,5,\"display: flex\"],[12],[1,\"\\n      \"],[10,1],[14,0,\"header-toggle\"],[12],[1,\"\\n        \"],[8,[39,1],[[16,\"checked\",[30,1,[\"shouldWrap\"]]],[4,[38,2],null,[[\"label\",\"action\",\"pattern\",\"menuLevel\"],[\"Toggle word wrap\",[28,[37,3],[[30,0],[30,2,[\"onToggleWrap\"]]],null],[28,[37,4],[\"w\",\"w\"],null],true]]],[4,[38,5],[\"change\",[30,2,[\"onToggleWrap\"]]],null]],null,[[\"default\"],[[[[1,\"\\n          \"],[8,[30,3,[\"Label\"]],null,null,[[\"default\"],[[[[1,\"Word Wrap\"]],[]]]]],[1,\"\\n        \"]],[3]]]]],[1,\"\\n      \"],[13],[1,\"\\n      \"],[8,[39,6],null,[[\"@condition\",\"@isFullText\",\"@text\"],[[52,[51,[30,1,[\"hasSpecification\"]]],true,false],true,\"A jobspec file was not submitted when this job was run. You can still view and edit the expanded JSON format.\"]],[[\"default\"],[[[[1,\"\\n        \"],[10,0],[15,0,[29,[\"job-definition-select\\n            \",[52,[51,[30,1,[\"hasSpecification\"]]],\" disabled\"]]]],[12],[1,\"\\n          \"],[11,\"button\"],[16,0,[29,[\"button is-small is-borderless\\n              \",[52,[28,[37,8],[[30,1,[\"view\"]],\"job-spec\"],null],\"is-active\"]]]],[24,4,\"button\"],[4,[38,5],[\"click\",[28,[37,9],[[30,2,[\"onSelect\"]],\"job-spec\"],null]],null],[12],[1,\"\\n            Job Spec\\n          \"],[13],[1,\"\\n          \"],[11,\"button\"],[16,0,[29,[\"button is-small is-borderless\\n              \",[52,[28,[37,8],[[30,1,[\"view\"]],\"full-definition\"],null],\"is-active\"]]]],[24,4,\"button\"],[4,[38,5],[\"click\",[28,[37,9],[[30,2,[\"onSelect\"]],\"full-definition\"],null]],null],[12],[1,\"\\n            Full Definition\\n          \"],[13],[1,\"\\n        \"],[13],[1,\"\\n      \"]],[]]]]],[1,\"\\n        \"],[10,\"button\"],[14,0,\"button is-light is-compact pull-right\"],[15,\"onclick\",[30,2,[\"onCancel\"]]],[14,4,\"button\"],[12],[1,\"\\n          Cancel\\n        \"],[13],[1,\"\\n    \"],[13],[1,\"\\n\"]],[]],null],[1,\"  \"],[13],[1,\"\\n  \"],[10,0],[14,0,\"boxed-section-body is-full-bleed\"],[12],[1,\"\\n    \"],[11,0],[4,[38,10],null,[[\"screenReaderLabel\",\"content\",\"theme\",\"onUpdate\",\"mode\",\"lineWrapping\"],[\"Job definition\",[30,1,[\"job\",\"_newDefinition\"]],\"hashi\",[30,2,[\"onUpdate\"]],[52,[28,[37,8],[[30,1,[\"format\"]],\"json\"],null],\"javascript\",\"ruby\"],[30,1,[\"shouldWrap\"]]]]],[12],[13],[1,\"\\n  \"],[13],[1,\"\\n\"],[41,[28,[37,8],[[30,1,[\"view\"]],\"job-spec\"],null],[[[1,\"    \"],[10,0],[14,0,\"boxed-section\"],[14,5,\"margin-top: 10px\"],[12],[1,\"\\n      \"],[10,0],[14,0,\"boxed-section-head\"],[12],[1,\"\\n        Edit HCL Variable Values\\n      \"],[13],[1,\"\\n      \"],[10,0],[14,0,\"boxed-section-body is-full-bleed\"],[12],[1,\"\\n        \"],[11,0],[24,0,\"json-viewer is-variable-editor\"],[4,[38,10],null,[[\"autofocus\",\"screenReaderLabel\",\"content\",\"theme\",\"onUpdate\",\"type\",\"mode\",\"lineWrapping\"],[false,\"HLC Variables for Job Spec\",[30,1,[\"job\",\"_newDefinitionVariables\"]],\"hashi\",[30,2,[\"onUpdate\"]],\"hclVariables\",\"ruby\",[30,1,[\"shouldWrap\"]]]]],[12],[13],[1,\"\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n\"]],[]],null],[13],[1,\"\\n\"],[8,[39,11],[[24,0,\"is-associative buttonset sticky pull-left\"]],null,[[\"default\"],[[[[1,\"\\n  \"],[8,[39,12],[[16,\"disabled\",[28,[37,13],[[30,2,[\"onPlan\",\"isRunning\"]],[28,[37,14],[[30,1,[\"job\",\"_newDefinition\"]]],null]],null]],[4,[38,5],[\"click\",[28,[37,15],[[30,2,[\"onPlan\"]]],null]],null]],[[\"@text\"],[\"Plan\"]],null],[1,\"\\n\"],[41,[30,1,[\"job\",\"isNew\"]],[[[1,\"    \"],[8,[39,12],[[4,[38,5],[\"click\",[30,2,[\"onSaveAs\"]]],null]],[[\"@text\",\"@color\",\"@route\"],[\"Save as template\",\"secondary\",\"jobs.run.templates.new\"]],null],[1,\"\\n\"]],[]],null],[1,\"  \"],[8,[39,12],[[4,[38,5],[\"click\",[30,2,[\"onSaveFile\"]]],null]],[[\"@text\",\"@color\"],[\"Save as .nomad.hcl\",\"secondary\"]],null],[1,\"\\n\"]],[]]]]],[1,\"\\n\"]],[\"@data\",\"@fns\",\"F\"],false,[\"if\",\"hds/form/toggle/field\",\"keyboard-shortcut\",\"action\",\"array\",\"on\",\"tooltip\",\"unless\",\"eq\",\"fn\",\"code-mirror\",\"hds/button-set\",\"hds/button\",\"or\",\"not\",\"perform\"]]",
    "moduleName": "nomad-ui/templates/components/job-editor/edit.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/job-editor/read", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "whrQZE15",
    "block": "[[[10,0],[14,0,\"boxed-section\"],[12],[1,\"\\n    \"],[10,0],[14,0,\"boxed-section-head\"],[12],[1,\"\\n    Job Definition\\n    \"],[10,0],[14,0,\"pull-right\"],[14,5,\"display: flex\"],[12],[1,\"\\n        \"],[10,1],[14,0,\"header-toggle\"],[12],[1,\"\\n          \"],[8,[39,0],[[16,\"checked\",[30,1,[\"shouldWrap\"]]],[4,[38,1],null,[[\"label\",\"action\",\"pattern\",\"menuLevel\"],[\"Toggle word wrap\",[28,[37,2],[[30,0],[30,2,[\"onToggleWrap\"]]],null],[28,[37,3],[\"w\",\"w\"],null],true]]],[4,[38,4],[\"change\",[30,2,[\"onToggleWrap\"]]],null]],null,[[\"default\"],[[[[1,\"\\n            \"],[8,[30,3,[\"Label\"]],null,null,[[\"default\"],[[[[1,\"Word Wrap\"]],[]]]]],[1,\"\\n          \"]],[3]]]]],[1,\"\\n        \"],[13],[1,\"\\n\\n        \"],[8,[39,5],null,[[\"@condition\",\"@isFullText\",\"@text\"],[[52,[51,[30,1,[\"hasSpecification\"]]],true,false],true,\"A jobspec file was not submitted when this job was run. You can still view and edit the expanded JSON format.\"]],[[\"default\"],[[[[1,\"\\n            \"],[10,0],[15,0,[29,[\"job-definition-select \",[52,[51,[30,1,[\"hasSpecification\"]]],\" disabled\"]]]],[12],[1,\"\\n                \"],[11,\"button\"],[16,0,[29,[\"button is-small is-borderless \",[52,[28,[37,8],[[30,1,[\"view\"]],\"job-spec\"],null],\"is-active\"]]]],[24,4,\"button\"],[4,[38,4],[\"click\",[28,[37,9],[[30,2,[\"onSelect\"]],\"job-spec\"],null]],null],[12],[1,\"\\n                    Job Spec\\n                \"],[13],[1,\"\\n                \"],[11,\"button\"],[16,0,[29,[\"button is-small is-borderless \",[52,[28,[37,8],[[30,1,[\"view\"]],\"full-definition\"],null],\"is-active\"]]]],[24,4,\"button\"],[4,[38,4],[\"click\",[28,[37,9],[[30,2,[\"onSelect\"]],\"full-definition\"],null]],null],[12],[1,\"\\n                    Full Definition\\n                \"],[13],[1,\"\\n            \"],[13],[1,\"        \\n        \"]],[]]]]],[1,\"\\n\\n        \"],[11,\"button\"],[24,0,\"button is-light is-compact\"],[24,4,\"button\"],[4,[38,4],[\"click\",[30,2,[\"onEdit\"]]],null],[12],[1,\"\\n            Edit\\n        \"],[13],[1,\"\\n\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n    \"],[10,0],[14,0,\"boxed-section-body is-full-bleed\"],[12],[1,\"\\n\"],[41,[28,[37,8],[[30,1,[\"view\"]],\"job-spec\"],null],[[[1,\"        \"],[11,0],[4,[38,10],null,[[\"content\",\"mode\",\"readOnly\",\"screenReaderLabel\",\"theme\",\"lineWrapping\"],[[30,1,[\"definition\"]],[52,[28,[37,8],[[30,1,[\"format\"]],\"json\"],null],\"javascript\",\"ruby\"],true,\"Job specification\",\"hashi-read-only\",[30,1,[\"shouldWrap\"]]]]],[12],[13],[1,\"\\n\"]],[]],[[[1,\"        \"],[11,0],[4,[38,10],null,[[\"content\",\"theme\",\"readOnly\",\"screenReaderLabel\",\"lineWrapping\"],[[30,1,[\"definition\"]],\"hashi-read-only\",true,\"JSON Viewer\",[30,1,[\"shouldWrap\"]]]]],[12],[13],[1,\"\\n\"]],[]]],[1,\"    \"],[13],[1,\"\\n\"],[41,[28,[37,11],[[28,[37,8],[[30,1,[\"view\"]],\"job-spec\"],null],[30,1,[\"hasVariables\"]]],null],[[[1,\"    \"],[10,0],[14,0,\"boxed-section\"],[14,5,\"margin-top: 10px\"],[12],[1,\"\\n        \"],[10,0],[14,0,\"boxed-section-head\"],[12],[1,\"\\n            HCL Variable Values\\n        \"],[13],[1,\"\\n        \"],[10,0],[14,0,\"boxed-section-body is-full-bleed\"],[12],[1,\"\\n            \"],[11,0],[24,0,\"json-viewer is-variable-editor\"],[4,[38,10],null,[[\"screenReaderLabel\",\"content\",\"mode\",\"theme\",\"readOnly\",\"lineWrapping\"],[\"HLC Variables for Job Spec\",[30,1,[\"job\",\"_newDefinitionVariables\"]],\"ruby\",\"hashi-read-only\",true,[30,1,[\"shouldWrap\"]]]]],[12],[13],[1,\"\\n        \"],[13],[1,\"\\n    \"],[13],[1,\"\\n\"]],[]],null],[13]],[\"@data\",\"@fns\",\"F\"],false,[\"hds/form/toggle/field\",\"keyboard-shortcut\",\"action\",\"array\",\"on\",\"tooltip\",\"unless\",\"if\",\"eq\",\"fn\",\"code-mirror\",\"and\"]]",
    "moduleName": "nomad-ui/templates/components/job-editor/read.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/job-editor/review", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "kvEMouqD",
    "block": "[[[10,0],[14,0,\"boxed-section\"],[12],[1,\"\\n    \"],[10,0],[14,0,\"boxed-section-head\"],[12],[1,\"Job Plan\"],[13],[1,\"\\n    \"],[10,0],[14,0,\"boxed-section-body is-dark\"],[12],[1,\"\\n    \"],[8,[39,0],null,[[\"@diff\",\"@verbose\"],[[30,1,[\"planOutput\",\"diff\"]],false]],null],[1,\"\\n    \"],[13],[1,\"\\n\"],[13],[1,\"\\n\"],[10,0],[15,0,[29,[\"boxed-section\\n    \",[52,[30,1,[\"planOutput\",\"failedTGAllocs\"]],\"is-warning\",\"is-primary\"]]]],[12],[1,\"\\n    \"],[10,0],[14,0,\"boxed-section-head\"],[12],[1,\"Scheduler dry-run\"],[13],[1,\"\\n    \"],[10,0],[14,0,\"boxed-section-body\"],[12],[1,\"\\n\"],[41,[30,1,[\"planOutput\",\"failedTGAllocs\"]],[[[42,[28,[37,3],[[28,[37,3],[[30,1,[\"planOutput\",\"failedTGAllocs\"]]],null]],null],null,[[[1,\"        \"],[8,[39,4],null,[[\"@failedTGAlloc\"],[[30,2]]],null],[1,\"\\n\"]],[2]],null]],[]],[[[1,\"        All tasks successfully allocated.\\n\"]],[]]],[1,\"    \"],[13],[1,\"\\n\"],[13],[1,\"\\n\"],[41,[28,[37,5],[[30,1,[\"planOutput\",\"preemptions\",\"isFulfilled\"]],[30,1,[\"planOutput\",\"preemptions\",\"length\"]]],null],[[[1,\"    \"],[10,0],[14,0,\"boxed-section is-warning\"],[12],[1,\"\\n    \"],[10,0],[14,0,\"boxed-section-head\"],[12],[1,\"\\n        Preemptions (if you choose to run this job, these allocations will be\\n        stopped)\\n    \"],[13],[1,\"\\n    \"],[10,0],[14,0,\"boxed-section-body\"],[12],[1,\"\\n        \"],[8,[39,6],null,[[\"@source\",\"@class\"],[[30,1,[\"planOutput\",\"preemptions\"]],\"allocations is-isolated\"]],[[\"default\"],[[[[1,\"\\n        \"],[8,[30,3,[\"head\"]],null,null,[[\"default\"],[[[[1,\"\\n            \"],[10,\"th\"],[14,0,\"is-narrow\"],[12],[13],[1,\"\\n            \"],[10,\"th\"],[12],[1,\"ID\"],[13],[1,\"\\n            \"],[10,\"th\"],[12],[1,\"Task Group\"],[13],[1,\"\\n            \"],[10,\"th\"],[12],[1,\"Created\"],[13],[1,\"\\n            \"],[10,\"th\"],[12],[1,\"Modified\"],[13],[1,\"\\n            \"],[10,\"th\"],[12],[1,\"Status\"],[13],[1,\"\\n            \"],[10,\"th\"],[12],[1,\"Version\"],[13],[1,\"\\n            \"],[10,\"th\"],[12],[1,\"Node\"],[13],[1,\"\\n            \"],[10,\"th\"],[12],[1,\"Volume\"],[13],[1,\"\\n            \"],[10,\"th\"],[12],[1,\"CPU\"],[13],[1,\"\\n            \"],[10,\"th\"],[12],[1,\"Memory\"],[13],[1,\"\\n        \"]],[]]]]],[1,\"\\n        \"],[8,[30,3,[\"body\"]],null,null,[[\"default\"],[[[[1,\"\\n            \"],[8,[39,7],null,[[\"@allocation\",\"@context\"],[[30,4,[\"model\"]],\"job\"]],null],[1,\"\\n        \"]],[4]]]]],[1,\"\\n        \"]],[3]]]]],[1,\"\\n    \"],[13],[1,\"\\n    \"],[13],[1,\"\\n\"]],[]],null],[8,[39,8],[[24,0,\"is-associative\"]],null,[[\"default\"],[[[[1,\"\\n    \"],[8,[39,9],[[16,\"disabled\",[30,5,[\"onSubmit\",\"isRunning\"]]],[4,[38,10],[\"click\",[28,[37,11],[[30,5,[\"onSubmit\"]]],null]],null]],[[\"@text\"],[\"Run\"]],null],[1,\"\\n    \"],[8,[39,9],[[16,\"disabled\",[30,5,[\"onSubmit\",\"isRunning\"]]],[4,[38,10],[\"click\",[30,5,[\"onReset\"]]],null]],[[\"@color\",\"@text\"],[\"secondary\",\"Cancel\"]],null],[1,\"\\n\"]],[]]]]],[1,\"\\n\"]],[\"@data\",\"placementFailure\",\"t\",\"row\",\"@fns\"],false,[\"job-diff\",\"if\",\"each\",\"-track-array\",\"placement-failure\",\"and\",\"list-table\",\"allocation-row\",\"hds/button-set\",\"hds/button\",\"on\",\"perform\"]]",
    "moduleName": "nomad-ui/templates/components/job-editor/review.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/job-page", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "V1cFvk7d",
    "block": "[[[18,4,[[28,[37,1],null,[[\"data\",\"fns\",\"ui\"],[[28,[37,1],null,null],[28,[37,1],null,[[\"setError\"],[[30,0,[\"setError\"]]]]],[28,[37,1],null,[[\"Body\",\"Error\",\"Title\",\"StatsBox\",\"Summary\",\"PlacementFailures\",\"TaskGroups\",\"RecentAllocations\",\"Meta\",\"DasRecommendations\",\"Children\",\"StatusPanel\"],[[50,\"job-page/parts/body\",0,null,[[\"job\"],[[30,1]]]],[50,\"job-page/parts/error\",0,null,[[\"errorMessage\",\"onDismiss\"],[[30,0,[\"errorMessage\"]],[30,0,[\"clearErrorMessage\"]]]]],[50,\"job-page/parts/title\",0,null,[[\"job\",\"handleError\"],[[30,1],[30,0,[\"handleError\"]]]]],[50,\"job-page/parts/stats-box\",0,null,[[\"job\"],[[30,1]]]],[50,\"job-page/parts/summary\",0,null,[[\"job\"],[[30,1]]]],[50,\"job-page/parts/placement-failures\",0,null,[[\"job\"],[[30,1]]]],[50,\"job-page/parts/task-groups\",0,null,[[\"job\"],[[30,1]]]],[50,\"job-page/parts/recent-allocations\",0,null,[[\"job\",\"activeTask\",\"setActiveTaskQueryParam\"],[[30,1],[30,2],[30,3]]]],[50,\"job-page/parts/meta\",0,null,[[\"job\"],[[30,1]]]],[50,\"job-page/parts/das-recommendations\",0,null,[[\"job\"],[[30,1]]]],[50,\"job-page/parts/children\",0,null,[[\"job\"],[[30,1]]]],[50,\"job-status/panel\",0,null,[[\"job\",\"handleError\"],[[30,1],[30,0,[\"handleError\"]]]]]]]]]]]]]],[\"@job\",\"@activeTask\",\"@setActiveTaskQueryParam\",\"&default\"],false,[\"yield\",\"hash\",\"component\"]]",
    "moduleName": "nomad-ui/templates/components/job-page.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/job-page/batch", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "ClcEFgHG",
    "block": "[[[8,[39,0],null,[[\"@job\"],[[30,1]]],[[\"default\"],[[[[1,\"\\n  \"],[8,[30,2,[\"ui\",\"Body\"]],null,null,[[\"default\"],[[[[1,\"\\n    \"],[8,[30,2,[\"ui\",\"Error\"]],null,null,null],[1,\"\\n    \"],[8,[30,2,[\"ui\",\"Title\"]],null,null,null],[1,\"\\n    \"],[8,[30,2,[\"ui\",\"StatsBox\"]],null,null,null],[1,\"\\n    \"],[8,[30,2,[\"ui\",\"PlacementFailures\"]],null,null,null],[1,\"\\n    \"],[8,[30,2,[\"ui\",\"StatusPanel\"]],null,[[\"@statusMode\",\"@setStatusMode\"],[[30,3],[30,4]]],null],[1,\"\\n    \"],[8,[30,2,[\"ui\",\"TaskGroups\"]],null,[[\"@sortProperty\",\"@sortDescending\"],[[30,5],[30,6]]],null],[1,\"\\n    \"],[8,[30,2,[\"ui\",\"RecentAllocations\"]],null,[[\"@activeTask\",\"@setActiveTaskQueryParam\"],[[30,7],[30,8]]],null],[1,\"\\n    \"],[8,[30,2,[\"ui\",\"Meta\"]],null,null,null],[1,\"\\n  \"]],[]]]]],[1,\"\\n\"]],[2]]]]]],[\"@job\",\"jobPage\",\"@statusMode\",\"@setStatusMode\",\"@sortProperty\",\"@sortDescending\",\"@activeTask\",\"@setActiveTaskQueryParam\"],false,[\"job-page\"]]",
    "moduleName": "nomad-ui/templates/components/job-page/batch.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/job-page/parameterized-child", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "SUNT78VJ",
    "block": "[[[8,[39,0],null,[[\"@job\"],[[30,1]]],[[\"default\"],[[[[1,\"\\n  \"],[8,[30,2,[\"ui\",\"Body\"]],null,null,[[\"default\"],[[[[1,\"\\n    \"],[8,[30,2,[\"ui\",\"Error\"]],null,null,null],[1,\"\\n    \"],[8,[30,2,[\"ui\",\"Title\"]],null,[[\"@title\"],[[30,1,[\"trimmedName\"]]]],null],[1,\"\\n    \"],[8,[30,2,[\"ui\",\"StatsBox\"]],null,null,[[\"before-namespace\"],[[[[1,\"\\n        \"],[10,1],[14,0,\"pair\"],[12],[1,\"\\n          \"],[10,1],[14,0,\"term\"],[12],[1,\"\\n            Parent\\n          \"],[13],[1,\"\\n          \"],[8,[39,1],null,[[\"@route\",\"@model\"],[\"jobs.job\",[30,1,[\"parent\"]]]],[[\"default\"],[[[[1,\"\\n            \"],[1,[30,1,[\"parent\",\"name\"]]],[1,\"\\n          \"]],[]]]]],[1,\"\\n        \"],[13],[1,\"\\n      \"]],[]]]]],[1,\"\\n    \"],[8,[30,2,[\"ui\",\"PlacementFailures\"]],null,null,null],[1,\"\\n    \"],[8,[30,2,[\"ui\",\"StatusPanel\"]],null,[[\"@statusMode\",\"@setStatusMode\"],[[30,3],[30,4]]],null],[1,\"\\n    \"],[8,[30,2,[\"ui\",\"TaskGroups\"]],null,[[\"@sortProperty\",\"@sortDescending\"],[[30,5],[30,6]]],null],[1,\"\\n    \"],[8,[30,2,[\"ui\",\"RecentAllocations\"]],null,[[\"@activeTask\",\"@setActiveTaskQueryParam\"],[[30,7],[30,8]]],null],[1,\"\\n    \"],[10,0],[14,0,\"boxed-section\"],[12],[1,\"\\n\"],[41,[30,1,[\"meta\"]],[[[1,\"        \"],[8,[30,2,[\"ui\",\"Meta\"]],null,null,null],[1,\"\\n\"]],[]],[[[1,\"        \"],[10,0],[14,0,\"boxed-section-head\"],[12],[1,\"\\n          Meta\\n        \"],[13],[1,\"\\n        \"],[10,0],[14,0,\"boxed-section-body\"],[12],[1,\"\\n          \"],[10,0],[14,0,\"empty-message\"],[12],[1,\"\\n            \"],[10,\"h3\"],[14,0,\"empty-message-headline\"],[12],[1,\"\\n              No Meta Attributes\\n            \"],[13],[1,\"\\n            \"],[10,2],[14,0,\"empty-message-body\"],[12],[1,\"\\n              This job is configured with no meta attributes.\\n            \"],[13],[1,\"\\n          \"],[13],[1,\"\\n        \"],[13],[1,\"\\n\"]],[]]],[1,\"    \"],[13],[1,\"\\n    \"],[10,0],[14,0,\"boxed-section\"],[12],[1,\"\\n      \"],[10,0],[14,0,\"boxed-section-head\"],[12],[1,\"\\n        Payload\\n      \"],[13],[1,\"\\n      \"],[10,0],[14,0,\"boxed-section-body is-dark\"],[12],[1,\"\\n\"],[41,[30,0,[\"payloadJSON\"]],[[[1,\"          \"],[8,[39,3],null,[[\"@json\"],[[30,0,[\"payloadJSON\"]]]],null],[1,\"\\n\"]],[]],[[[1,\"          \"],[10,\"pre\"],[14,0,\"cli-window is-elastic\"],[12],[1,\"            \"],[10,\"code\"],[12],[1,\"\\n              \"],[1,[30,0,[\"payload\"]]],[1,\"\\n            \"],[13],[1,\"\\n          \"],[13],[1,\"\\n\"]],[]]],[1,\"      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n  \"]],[]]]]],[1,\"\\n\"]],[2]]]]]],[\"@job\",\"jobPage\",\"@statusMode\",\"@setStatusMode\",\"@sortProperty\",\"@sortDescending\",\"@activeTask\",\"@setActiveTaskQueryParam\"],false,[\"job-page\",\"link-to\",\"if\",\"json-viewer\"]]",
    "moduleName": "nomad-ui/templates/components/job-page/parameterized-child.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/job-page/parameterized", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "XT0LTO+Q",
    "block": "[[[8,[39,0],null,[[\"@job\"],[[30,1]]],[[\"default\"],[[[[1,\"\\n  \"],[8,[30,2,[\"ui\",\"Body\"]],null,null,[[\"default\"],[[[[1,\"\\n    \"],[8,[30,2,[\"ui\",\"Error\"]],null,null,null],[1,\"\\n    \"],[8,[30,2,[\"ui\",\"Title\"]],null,null,[[\"default\"],[[[[1,\"\\n      \"],[10,1],[14,0,\"tag is-hollow\"],[12],[1,\"\\n        Parameterized\\n      \"],[13],[1,\"\\n    \"]],[]]]]],[1,\"\\n    \"],[8,[30,2,[\"ui\",\"StatsBox\"]],null,null,null],[1,\"\\n    \"],[8,[30,2,[\"ui\",\"Summary\"]],null,null,null],[1,\"\\n    \"],[8,[30,2,[\"ui\",\"Children\"]],null,[[\"@sortProperty\",\"@sortDescending\",\"@currentPage\"],[[30,3],[30,4],[30,5]]],null],[1,\"\\n    \"],[8,[30,2,[\"ui\",\"Meta\"]],null,null,null],[1,\"\\n  \"]],[]]]]],[1,\"\\n\"]],[2]]]]]],[\"@job\",\"jobPage\",\"@sortProperty\",\"@sortDescending\",\"@currentPage\"],false,[\"job-page\"]]",
    "moduleName": "nomad-ui/templates/components/job-page/parameterized.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/job-page/parts/body", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "JBAT9iDQ",
    "block": "[[[8,[39,0],null,[[\"@job\"],[[30,1]]],null],[1,\"\\n\"],[10,\"section\"],[14,0,\"section\"],[12],[1,\"\\n  \"],[18,2,null],[1,\"\\n\"],[13],[1,\"\\n\"]],[\"@job\",\"&default\"],false,[\"job-subnav\",\"yield\"]]",
    "moduleName": "nomad-ui/templates/components/job-page/parts/body.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/job-page/parts/children", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "upI2Tqe0",
    "block": "[[[10,0],[14,0,\"boxed-section-head\"],[12],[1,\"\\n  Job Launches\\n\"],[41,[30,0,[\"job\",\"parameterized\"]],[[[41,[28,[37,1],[\"dispatch job\"],[[\"namespace\"],[[30,0,[\"job\",\"namespace\"]]]]],[[[1,\"      \"],[8,[39,2],[[24,0,\"button is-primary is-compact pull-right\"]],[[\"@route\"],[\"jobs.job.dispatch\"]],[[\"default\"],[[[[1,\"\\n        Dispatch Job\\n      \"]],[]]]]],[1,\"\\n\"]],[]],[[[1,\"      \"],[10,\"button\"],[14,0,\"button is-disabled is-primary is-compact pull-right tooltip multiline\"],[14,\"aria-label\",\"You don’t have permission to dispatch jobs\"],[14,\"disabled\",\"\"],[14,4,\"button\"],[12],[1,\"\\n        Dispatch Job\\n      \"],[13],[1,\"\\n\"]],[]]]],[]],null],[13],[1,\"\\n\"],[10,0],[15,0,[29,[\"boxed-section-body \",[52,[30,0,[\"sortedChildren\",\"length\"]],\"is-full-bleed\"]]]],[12],[1,\"\\n\"],[41,[30,0,[\"sortedChildren\"]],[[[1,\"    \"],[8,[39,3],null,[[\"@source\",\"@size\",\"@page\"],[[30,0,[\"sortedChildren\"]],[30,0,[\"pageSize\"]],[30,0,[\"currentPage\"]]]],[[\"default\"],[[[[1,\"\\n      \"],[8,[39,4],null,[[\"@source\",\"@sortProperty\",\"@sortDescending\",\"@class\"],[[30,1,[\"list\"]],[30,0,[\"sortProperty\"]],[30,0,[\"sortDescending\"]],\"with-foot\"]],[[\"default\"],[[[[1,\"\\n        \"],[8,[30,2,[\"head\"]],null,null,[[\"default\"],[[[[1,\"\\n          \"],[8,[30,2,[\"sort-by\"]],null,[[\"@prop\"],[\"name\"]],[[\"default\"],[[[[1,\"\\n            Name\\n          \"]],[]]]]],[1,\"\\n          \"],[8,[30,2,[\"sort-by\"]],null,[[\"@prop\"],[\"submitTime\"]],[[\"default\"],[[[[1,\"\\n            Submitted At\\n          \"]],[]]]]],[1,\"\\n          \"],[8,[30,2,[\"sort-by\"]],null,[[\"@prop\"],[\"status\"]],[[\"default\"],[[[[1,\"\\n            Status\\n          \"]],[]]]]],[1,\"\\n          \"],[10,\"th\"],[12],[1,\"\\n            Groups\\n          \"],[13],[1,\"\\n          \"],[10,\"th\"],[14,0,\"is-3\"],[12],[1,\"\\n            Summary\\n          \"],[13],[1,\"\\n        \"]],[]]]]],[1,\"\\n        \"],[8,[30,2,[\"body\"]],null,[[\"@key\"],[\"model.id\"]],[[\"default\"],[[[[1,\"\\n          \"],[8,[39,5],null,[[\"@job\",\"@context\"],[[30,3,[\"model\"]],\"child\"]],null],[1,\"\\n        \"]],[3]]]]],[1,\"\\n      \"]],[2]]]]],[1,\"\\n      \"],[10,0],[14,0,\"table-foot\"],[12],[1,\"\\n        \"],[8,[39,6],null,[[\"@onChange\"],[[28,[37,7],[[30,0],[30,0,[\"resetPagination\"]]],null]]],null],[1,\"\\n        \"],[10,\"nav\"],[14,0,\"pagination\"],[12],[1,\"\\n          \"],[10,0],[14,0,\"pagination-numbers\"],[12],[1,\"\\n            \"],[1,[30,1,[\"startsAt\"]]],[1,\"\\n            –\\n            \"],[1,[30,1,[\"endsAt\"]]],[1,\"\\n            of\\n            \"],[1,[30,0,[\"sortedChildren\",\"length\"]]],[1,\"\\n          \"],[13],[1,\"\\n          \"],[8,[30,1,[\"prev\"]],null,[[\"@class\"],[\"pagination-previous\"]],[[\"default\"],[[[[1,\"\\n            \"],[1,[28,[35,8],[\"chevron-left\"],null]],[1,\"\\n          \"]],[]]]]],[1,\"\\n          \"],[8,[30,1,[\"next\"]],null,[[\"@class\"],[\"pagination-next\"]],[[\"default\"],[[[[1,\"\\n            \"],[1,[28,[35,8],[\"chevron-right\"],null]],[1,\"\\n          \"]],[]]]]],[1,\"\\n          \"],[10,\"ul\"],[14,0,\"pagination-list\"],[12],[13],[1,\"\\n        \"],[13],[1,\"\\n      \"],[13],[1,\"\\n    \"]],[1]]]]],[1,\"\\n\"]],[]],[[[1,\"    \"],[10,0],[14,0,\"empty-message\"],[12],[1,\"\\n      \"],[10,\"h3\"],[14,0,\"empty-message-headline\"],[12],[1,\"\\n        No Job Launches\\n      \"],[13],[1,\"\\n      \"],[10,2],[14,0,\"empty-message-body\"],[12],[1,\"\\n        No remaining living job launches.\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n\"]],[]]],[13]],[\"p\",\"t\",\"row\"],false,[\"if\",\"can\",\"link-to\",\"list-pagination\",\"list-table\",\"job-row\",\"page-size-select\",\"action\",\"x-icon\"]]",
    "moduleName": "nomad-ui/templates/components/job-page/parts/children.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/job-page/parts/das-recommendations", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "l8d0YbeE",
    "block": "[[[41,[28,[37,1],[\"accept recommendations\"],null],[[[42,[28,[37,3],[[28,[37,3],[[30,1,[\"recommendationSummaries\"]]],null]],null],null,[[[1,\"    \"],[8,[39,4],null,[[\"@summary\"],[[30,2]]],null],[1,\"\\n\"]],[2]],null]],[]],null]],[\"@job\",\"summary\"],false,[\"if\",\"can\",\"each\",\"-track-array\",\"das/recommendation-accordion\"]]",
    "moduleName": "nomad-ui/templates/components/job-page/parts/das-recommendations.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/job-page/parts/error", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "3kGI8rRx",
    "block": "[[[41,[30,0,[\"errorMessage\"]],[[[1,\"  \"],[10,0],[14,0,\"notification is-danger\"],[12],[1,\"\\n    \"],[10,0],[14,0,\"columns\"],[12],[1,\"\\n      \"],[10,0],[14,0,\"column\"],[12],[1,\"\\n        \"],[10,\"h3\"],[14,0,\"title is-4\"],[12],[1,[30,0,[\"errorMessage\",\"title\"]]],[13],[1,\"\\n        \"],[10,2],[12],[1,[30,0,[\"errorMessage\",\"description\"]]],[13],[1,\"\\n      \"],[13],[1,\"\\n      \"],[10,0],[14,0,\"column is-centered is-minimum\"],[12],[1,\"\\n        \"],[10,\"button\"],[14,0,\"button is-danger\"],[15,\"onclick\",[28,[37,1],[[30,0],[30,0,[\"onDismiss\"]]],null]],[14,4,\"button\"],[12],[1,\"Okay\"],[13],[1,\"\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n  \"],[13],[1,\"\\n\"]],[]],null]],[],false,[\"if\",\"action\"]]",
    "moduleName": "nomad-ui/templates/components/job-page/parts/error.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/job-page/parts/meta", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "9XcMz+n8",
    "block": "[[[41,[30,1,[\"meta\",\"structured\"]],[[[1,\"  \"],[10,0],[14,0,\"boxed-section\"],[12],[1,\"\\n    \"],[10,0],[14,0,\"boxed-section-head\"],[12],[1,\"\\n      Meta\\n    \"],[13],[1,\"\\n    \"],[10,0],[14,0,\"boxed-section-body is-full-bleed\"],[12],[1,\"\\n      \"],[8,[39,1],null,[[\"@attributePairs\",\"@class\"],[[30,1,[\"meta\",\"structured\"]],\"attributes-table\"]],null],[1,\"\\n    \"],[13],[1,\"\\n  \"],[13],[1,\"\\n\"]],[]],null]],[\"@job\"],false,[\"if\",\"attributes-table\"]]",
    "moduleName": "nomad-ui/templates/components/job-page/parts/meta.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/job-page/parts/placement-failures", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "aPbAaCPi",
    "block": "[[[41,[30,0,[\"job\",\"hasPlacementFailures\"]],[[[1,\"  \"],[8,[39,1],[[24,0,\"boxed-section placement-failures\"]],[[\"@type\",\"@color\"],[\"inline\",\"critical\"]],[[\"default\"],[[[[1,\"\\n    \"],[8,[30,1,[\"Title\"]],null,null,[[\"default\"],[[[[1,\"Placement Failures\"]],[]]]]],[1,\"\\n    \"],[8,[30,1,[\"Description\"]],null,null,[[\"default\"],[[[[1,\"\\n\"],[42,[28,[37,3],[[28,[37,3],[[30,0,[\"job\",\"taskGroups\"]]],null]],null],null,[[[1,\"        \"],[8,[39,4],null,[[\"@taskGroup\"],[[30,2]]],null],[1,\"\\n\"]],[2]],null],[1,\"    \"]],[]]]]],[1,\"\\n  \"]],[1]]]]],[1,\"\\n\"]],[]],null]],[\"A\",\"taskGroup\"],false,[\"if\",\"hds/alert\",\"each\",\"-track-array\",\"placement-failure\"]]",
    "moduleName": "nomad-ui/templates/components/job-page/parts/placement-failures.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/job-page/parts/recent-allocations", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "/MYRuW+W",
    "block": "[[[10,0],[14,0,\"boxed-section\"],[12],[1,\"\\n  \"],[10,0],[14,0,\"boxed-section-head\"],[12],[1,\"\\n    Recent Allocations\\n    \"],[10,1],[14,0,\"pull-right is-padded\"],[12],[1,\"\\n      \"],[8,[39,0],[[24,\"title\",\"Show tasks of allocations\"]],[[\"@isActive\",\"@onToggle\"],[[30,0,[\"showSubTasks\"]],[30,0,[\"toggleShowSubTasks\"]]]],[[\"default\"],[[[[1,\"Show Tasks\"]],[]]]]],[1,\"\\n    \"],[13],[1,\"\\n  \"],[13],[1,\"\\n  \"],[10,0],[15,0,[29,[\"boxed-section-body\\n      \",[52,[30,0,[\"job\",\"allocations\",\"length\"]],\"is-full-bleed\"]]]],[12],[1,\"\\n\"],[41,[30,0,[\"job\",\"allocations\",\"length\"]],[[[1,\"      \"],[8,[39,2],null,[[\"@source\",\"@sortProperty\",\"@sortDescending\",\"@class\"],[[30,0,[\"sortedAllocations\"]],[30,0,[\"sortProperty\"]],[30,0,[\"sortDescending\"]],[29,[\"with-foot \",[52,[30,0,[\"showSubTasks\"]],\"with-collapsed-borders\"]]]]],[[\"default\"],[[[[1,\"\\n        \"],[8,[30,1,[\"head\"]],null,null,[[\"default\"],[[[[1,\"\\n          \"],[10,\"th\"],[14,0,\"is-narrow\"],[12],[13],[1,\"\\n          \"],[10,\"th\"],[12],[1,\"\\n            ID\\n          \"],[13],[1,\"\\n          \"],[10,\"th\"],[12],[1,\"\\n            Task Group\\n          \"],[13],[1,\"\\n          \"],[10,\"th\"],[12],[1,\"\\n            Created\\n          \"],[13],[1,\"\\n          \"],[10,\"th\"],[12],[1,\"\\n            Modified\\n          \"],[13],[1,\"\\n          \"],[10,\"th\"],[12],[1,\"\\n            Status\\n          \"],[13],[1,\"\\n          \"],[10,\"th\"],[12],[1,\"\\n            Version\\n          \"],[13],[1,\"\\n          \"],[10,\"th\"],[12],[1,\"\\n            Client\\n          \"],[13],[1,\"\\n          \"],[10,\"th\"],[12],[1,\"\\n            Volume\\n          \"],[13],[1,\"\\n          \"],[10,\"th\"],[12],[1,\"\\n            CPU\\n          \"],[13],[1,\"\\n          \"],[10,\"th\"],[12],[1,\"\\n            Memory\\n          \"],[13],[1,\"\\n        \"]],[]]]]],[1,\"\\n        \"],[8,[30,1,[\"body\"]],null,null,[[\"default\"],[[[[1,\"\\n          \"],[8,[39,3],[[4,[38,5],null,[[\"enumerated\",\"action\"],[true,[28,[37,4],[[30,0],\"gotoAllocation\",[30,2,[\"model\"]]],null]]]]],[[\"@allocation\",\"@context\",\"@onClick\",\"@showSubTasks\"],[[30,2,[\"model\"]],\"job\",[28,[37,4],[[30,0],\"gotoAllocation\",[30,2,[\"model\"]]],null],[30,0,[\"showSubTasks\"]]]],null],[1,\"\\n\\n\"],[41,[30,0,[\"showSubTasks\"]],[[[42,[28,[37,7],[[28,[37,7],[[30,2,[\"model\",\"states\"]]],null]],null],null,[[[1,\"              \"],[8,[39,8],null,[[\"@namespan\",\"@taskState\",\"@active\",\"@onSetActiveTask\"],[\"9\",[30,3],[28,[37,9],[[30,4],[28,[37,10],[[30,3,[\"allocation\",\"id\"]],\"-\",[30,3,[\"name\"]]],null]],null],[30,5]]],null],[1,\"\\n\"]],[3]],null]],[]],null],[1,\"        \"]],[2]]]]],[1,\"\\n      \"]],[1]]]]],[1,\"\\n\"]],[]],[[[1,\"      \"],[10,0],[14,0,\"empty-message\"],[12],[1,\"\\n        \"],[10,\"h3\"],[14,0,\"empty-message-headline\"],[12],[1,\"\\n          No Allocations\\n        \"],[13],[1,\"\\n        \"],[10,2],[14,0,\"empty-message-body\"],[12],[1,\"\\n          No allocations have been placed.\\n        \"],[13],[1,\"\\n      \"],[13],[1,\"\\n\"]],[]]],[1,\"  \"],[13],[1,\"\\n\"],[41,[30,0,[\"job\",\"allocations\",\"length\"]],[[[1,\"    \"],[10,0],[14,0,\"boxed-section-foot\"],[12],[1,\"\\n      \"],[10,2],[14,0,\"pull-right\"],[12],[1,\"\\n        \"],[8,[39,11],null,[[\"@route\",\"@model\"],[\"jobs.job.allocations\",[30,0,[\"job\"]]]],[[\"default\"],[[[[1,\"\\n          View all\\n          \"],[1,[30,0,[\"job\",\"allocations\",\"length\"]]],[1,\"\\n          \"],[1,[28,[35,12],[\"allocation\",[30,0,[\"job\",\"allocations\",\"length\"]]],null]],[1,\"\\n        \"]],[]]]]],[1,\"\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n\"]],[]],null],[13]],[\"t\",\"row\",\"task\",\"@activeTask\",\"@setActiveTaskQueryParam\"],false,[\"toggle\",\"if\",\"list-table\",\"allocation-row\",\"action\",\"keyboard-shortcut\",\"each\",\"-track-array\",\"task-sub-row\",\"eq\",\"concat\",\"link-to\",\"pluralize\"]]",
    "moduleName": "nomad-ui/templates/components/job-page/parts/recent-allocations.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/job-page/parts/stats-box", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "nEJG7s9G",
    "block": "[[[10,0],[14,0,\"boxed-section is-small\"],[12],[1,\"\\n  \"],[10,0],[14,0,\"boxed-section-body inline-definitions\"],[12],[1,\"\\n    \"],[10,1],[14,0,\"label\"],[14,5,\"width: 6.125rem;\"],[12],[1,\"Job Details\"],[13],[1,\"\\n    \"],[10,1],[14,0,\"pair\"],[12],[1,\"\\n      \"],[10,1],[14,0,\"term\"],[12],[1,\"Type\"],[13],[1,\"\\n      \"],[1,[30,1,[\"type\"]]],[1,\"\\n    \"],[13],[1,\"\\n    \"],[10,1],[14,0,\"pair\"],[12],[1,\"\\n      \"],[10,1],[14,0,\"term\"],[12],[1,\"Priority\"],[13],[1,\"\\n      \"],[1,[30,1,[\"priority\"]]],[1,\"\\n    \"],[13],[1,\"\\n    \"],[10,1],[14,0,\"pair\"],[12],[1,\"\\n      \"],[10,1],[14,0,\"term\"],[12],[1,\"Version\"],[13],[1,\"\\n      \"],[1,[30,1,[\"version\"]]],[1,\"\\n    \"],[13],[1,\"\\n\"],[41,[28,[37,1],[[28,[37,2],[\"list variables\"],null],[30,1,[\"pathLinkedVariable\"]]],null],[[[1,\"      \"],[10,1],[14,0,\"pair\"],[12],[1,\"\\n        \"],[8,[39,3],null,[[\"@route\",\"@model\"],[\"variables.variable\",[30,1,[\"pathLinkedVariable\",\"id\"]]]],[[\"default\"],[[[[1,\"Variables\"]],[]]]]],[1,\"\\n      \"],[13],[1,\"\\n\"]],[]],null],[1,\"    \"],[18,2,null],[1,\"\\n\"],[41,[28,[37,1],[[30,1,[\"namespace\"]],[30,0,[\"system\",\"shouldShowNamespaces\"]]],null],[[[1,\"      \"],[10,1],[14,0,\"pair\"],[12],[1,\"\\n        \"],[10,1],[14,0,\"term\"],[12],[1,\"Namespace\"],[13],[1,\"\\n        \"],[1,[30,1,[\"namespace\",\"name\"]]],[1,\"\\n      \"],[13],[1,\"\\n\"]],[]],null],[1,\"    \"],[10,1],[14,0,\"pair\"],[12],[1,\"\\n      \"],[10,1],[14,0,\"term\"],[12],[1,\"Node Pool\"],[13],[1,\"\\n      \"],[41,[30,1,[\"nodePool\"]],[[[1,[30,1,[\"nodePool\"]]]],[]],[[[1,\"-\"]],[]]],[1,\"\\n    \"],[13],[1,\"\\n    \"],[18,3,null],[1,\"\\n  \"],[13],[1,\"\\n\\n\"],[41,[30,1,[\"meta\",\"structured\",\"pack\",\"name\"]],[[[1,\"    \"],[10,0],[14,0,\"boxed-section-body inline-definitions\"],[12],[1,\"\\n      \"],[10,1],[14,0,\"label\"],[14,5,\"width: 6.125rem;\"],[12],[1,\"Pack Details\"],[13],[1,\"\\n      \"],[10,1],[14,0,\"pair\"],[12],[1,\"\\n        \"],[10,1],[14,0,\"term\"],[12],[1,\"Name\"],[13],[1,\"\\n        \"],[1,[30,1,[\"meta\",\"structured\",\"pack\",\"name\"]]],[1,\"\\n      \"],[13],[1,\"\\n\"],[41,[30,1,[\"meta\",\"structured\",\"pack\",\"registry\"]],[[[1,\"        \"],[10,1],[14,0,\"pair\"],[12],[1,\"\\n          \"],[10,1],[14,0,\"term\"],[12],[1,\"Registry\"],[13],[1,\"\\n          \"],[1,[30,1,[\"meta\",\"structured\",\"pack\",\"registry\"]]],[1,\"\\n        \"],[13],[1,\"\\n\"]],[]],null],[41,[30,1,[\"meta\",\"structured\",\"pack\",\"version\"]],[[[1,\"        \"],[10,1],[14,0,\"pair\"],[12],[1,\"\\n          \"],[10,1],[14,0,\"term\"],[12],[1,\"Version\"],[13],[1,\"\\n          \"],[1,[30,1,[\"meta\",\"structured\",\"pack\",\"version\"]]],[1,\"\\n        \"],[13],[1,\"\\n\"]],[]],null],[41,[30,1,[\"meta\",\"structured\",\"pack\",\"revision\"]],[[[1,\"        \"],[10,1],[14,0,\"pair\"],[12],[1,\"\\n          \"],[10,1],[14,0,\"term\"],[12],[1,\"Revision\"],[13],[1,\"\\n          \"],[1,[30,1,[\"meta\",\"structured\",\"pack\",\"revision\"]]],[1,\"\\n        \"],[13],[1,\"\\n\"]],[]],null],[1,\"      \"],[18,4,null],[1,\"\\n    \"],[13],[1,\"\\n\"]],[]],null],[13],[1,\"\\n\"]],[\"@job\",\"&before-namespace\",\"&after-namespace\",\"&pack\"],false,[\"if\",\"and\",\"can\",\"link-to\",\"yield\"]]",
    "moduleName": "nomad-ui/templates/components/job-page/parts/stats-box.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/job-page/parts/summary-chart", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "NuIu2ObO",
    "block": "[[[41,[30,1,[\"hasChildren\"]],[[[1,\"  \"],[8,[39,1],null,[[\"@allocationContainer\",\"@job\",\"@class\"],[[30,1,[\"summary\"]],[30,1,[\"summary\"]],\"split-view\"]],[[\"default\"],[[[[1,\"\\n    \"],[10,\"ol\"],[14,0,\"legend\"],[12],[1,\"\\n\"],[42,[28,[37,3],[[28,[37,3],[[30,2,[\"data\"]]],null]],null],null,[[[1,\"        \"],[10,\"li\"],[15,0,[29,[[30,3,[\"className\"]],\"\\n\\n            \",[52,[28,[37,4],[[30,3,[\"label\"]],[30,2,[\"activeDatum\",\"label\"]]],null],\"is-active\"],\"\\n\\n            \",[52,[28,[37,4],[[30,3,[\"value\"]],0],null],\"is-empty\"]]]],[12],[1,\"\\n          \"],[8,[39,5],null,[[\"@datum\",\"@index\"],[[30,3],[30,4]]],null],[1,\"\\n        \"],[13],[1,\"\\n\"]],[3,4]],null],[1,\"    \"],[13],[1,\"\\n  \"]],[2]]]]],[1,\"\\n\"]],[]],[[[1,\"  \"],[8,[39,6],null,[[\"@allocationContainer\",\"@job\",\"@onSliceClick\",\"@class\"],[[30,1,[\"summary\"]],[30,1],[30,0,[\"onSliceClick\"]],\"split-view\"]],[[\"default\"],[[[[1,\"\\n    \"],[10,\"ol\"],[14,0,\"legend\"],[12],[1,\"\\n\"],[42,[28,[37,3],[[28,[37,3],[[30,5,[\"data\"]]],null]],null],null,[[[1,\"        \"],[10,\"li\"],[15,0,[29,[[30,6,[\"className\"]],\"\\n\\n            \",[52,[28,[37,4],[[30,6,[\"label\"]],[30,5,[\"activeDatum\",\"label\"]]],null],\"is-active\"],\"\\n\\n            \",[52,[28,[37,4],[[30,6,[\"value\"]],0],null],\"is-empty\",\"is-clickable\"]]]],[12],[1,\"\\n\"],[41,[28,[37,7],[[28,[37,8],[[30,6,[\"value\"]],0],null],[30,6,[\"legendLink\"]]],null],[[[1,\"            \"],[8,[39,9],null,[[\"@route\",\"@model\",\"@query\"],[\"jobs.job.allocations\",[30,1],[30,6,[\"legendLink\",\"queryParams\"]]]],[[\"default\"],[[[[1,\"\\n              \"],[8,[39,5],null,[[\"@datum\",\"@index\"],[[30,6],[30,7]]],null],[1,\"\\n            \"]],[]]]]],[1,\"\\n\"]],[]],[[[1,\"            \"],[8,[39,5],null,[[\"@datum\",\"@index\"],[[30,6],[30,7]]],null],[1,\"\\n\"]],[]]],[1,\"        \"],[13],[1,\"\\n\"]],[6,7]],null],[1,\"    \"],[13],[1,\"\\n  \"]],[5]]]]],[1,\"\\n\"]],[]]]],[\"@job\",\"chart\",\"datum\",\"index\",\"chart\",\"datum\",\"index\"],false,[\"if\",\"children-status-bar\",\"each\",\"-track-array\",\"eq\",\"job-page/parts/summary-legend-item\",\"allocation-status-bar\",\"and\",\"gt\",\"link-to\"]]",
    "moduleName": "nomad-ui/templates/components/job-page/parts/summary-chart.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/job-page/parts/summary-legend-item", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "UAmxh2T+",
    "block": "[[[10,0],[14,0,\"legend-item\"],[12],[1,\"\\n  \"],[10,1],[15,0,[29,[\"color-swatch \",[52,[30,1,[\"className\"]],[30,1,[\"className\"]],[28,[37,1],[\"swatch-\",[30,2]],null]]]]],[12],[13],[1,\"\\n  \"],[10,1],[14,0,\"text\"],[12],[1,\"\\n    \"],[10,1],[14,0,\"value\"],[12],[1,\"\\n      \"],[1,[30,1,[\"value\"]]],[1,\"\\n    \"],[13],[1,\"\\n    \"],[10,1],[12],[1,\"\\n      \"],[1,[30,1,[\"label\"]]],[1,\"\\n    \"],[13],[1,\"\\n  \"],[13],[1,\"\\n\"],[41,[30,1,[\"help\"]],[[[1,\"    \"],[10,1],[14,0,\"tooltip multiline\"],[14,\"role\",\"tooltip\"],[15,\"aria-label\",[29,[[30,1,[\"help\"]]]]],[12],[1,\"\\n      \"],[1,[28,[35,2],[\"info-circle-outline\"],[[\"class\"],[\"is-faded\"]]]],[1,\"\\n    \"],[13],[1,\"\\n\"]],[]],null],[13]],[\"@datum\",\"@index\"],false,[\"if\",\"concat\",\"x-icon\"]]",
    "moduleName": "nomad-ui/templates/components/job-page/parts/summary-legend-item.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/job-page/parts/summary", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "8BaDaWEe",
    "block": "[[[8,[39,0],null,[[\"@source\",\"@key\",\"@startExpanded\",\"@onToggle\"],[[28,[37,1],[[30,0,[\"job\"]]],null],\"id\",[30,0,[\"isExpanded\"]],[28,[37,2],[[30,0],[30,0,[\"persist\"]]],null]]],[[\"default\"],[[[[1,\"\\n  \"],[8,[30,1,[\"head\"]],null,[[\"@buttonLabel\",\"@buttonType\"],[[52,[30,1,[\"isOpen\"]],\"collapse\",\"expand\"],[52,[30,1,[\"item\",\"hasChildren\"]],\"children-status\",\"allocation-status\"]]],[[\"default\"],[[[[1,\"\\n    \"],[10,0],[14,0,\"columns\"],[12],[1,\"\\n      \"],[10,0],[14,0,\"column is-minimum nowrap\"],[12],[1,\"\\n\"],[41,[30,1,[\"item\",\"hasChildren\"]],[[[1,\"          Children Status\\n          \"],[10,1],[15,0,[29,[\"badge \",[52,[30,1,[\"isOpen\"]],\"is-white\",\"is-light\"]]]],[12],[1,\"\\n            \"],[1,[30,1,[\"item\",\"summary\",\"totalChildren\"]]],[1,\"\\n          \"],[13],[1,\"\\n\"]],[]],[[[1,\"          Allocation Status\\n          \"],[10,1],[15,0,[29,[\"badge \",[52,[30,1,[\"isOpen\"]],\"is-white\",\"is-light\"]]]],[12],[1,\"\\n            \"],[1,[30,1,[\"item\",\"summary\",\"totalAllocs\"]]],[1,\"\\n          \"],[13],[1,\"\\n\"]],[]]],[1,\"      \"],[13],[1,\"\\n\"],[41,[51,[30,1,[\"isOpen\"]]],[[[1,\"        \"],[10,0],[14,0,\"column\"],[12],[1,\"\\n          \"],[10,0],[14,0,\"inline-chart bumper-left\"],[12],[1,\"\\n\"],[41,[30,1,[\"item\",\"hasChildren\"]],[[[41,[28,[37,5],[[30,1,[\"item\",\"totalChildren\"]],0],null],[[[1,\"                \"],[8,[39,6],null,[[\"@job\",\"@isNarrow\"],[[30,1,[\"item\"]],true]],null],[1,\"\\n\"]],[]],[[[1,\"                \"],[10,\"em\"],[14,0,\"is-faded\"],[12],[1,\"\\n                  No Children\\n                \"],[13],[1,\"\\n\"]],[]]]],[]],[[[1,\"              \"],[8,[39,7],null,[[\"@allocationContainer\",\"@isNarrow\"],[[30,1,[\"item\"]],true]],null],[1,\"\\n\"]],[]]],[1,\"          \"],[13],[1,\"\\n        \"],[13],[1,\"\\n\"]],[]],null],[1,\"    \"],[13],[1,\"\\n  \"]],[]]]]],[1,\"\\n  \"],[8,[30,1,[\"body\"]],null,null,[[\"default\"],[[[[1,\"\\n    \"],[8,[39,8],null,[[\"@job\"],[[30,1,[\"item\"]]]],null],[1,\"\\n  \"]],[]]]]],[1,\"\\n\"]],[1]]]]]],[\"a\"],false,[\"list-accordion\",\"array\",\"action\",\"if\",\"unless\",\"gt\",\"children-status-bar\",\"allocation-status-bar\",\"job-page/parts/summary-chart\"]]",
    "moduleName": "nomad-ui/templates/components/job-page/parts/summary.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/job-page/parts/task-groups", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "vpK/y4PH",
    "block": "[[[10,0],[14,0,\"boxed-section\"],[12],[1,\"\\n  \"],[10,0],[14,0,\"boxed-section-head\"],[12],[1,\"\\n    Task Groups\\n  \"],[13],[1,\"\\n  \"],[10,0],[14,0,\"boxed-section-body is-full-bleed\"],[12],[1,\"\\n    \"],[8,[39,0],null,[[\"@source\",\"@sortProperty\",\"@sortDescending\"],[[30,0,[\"sortedTaskGroups\"]],[30,0,[\"sortProperty\"]],[30,0,[\"sortDescending\"]]]],[[\"default\"],[[[[1,\"\\n      \"],[8,[30,1,[\"head\"]],null,null,[[\"default\"],[[[[1,\"\\n        \"],[8,[30,1,[\"sort-by\"]],null,[[\"@prop\"],[\"name\"]],[[\"default\"],[[[[1,\"\\n          Name\\n        \"]],[]]]]],[1,\"\\n        \"],[8,[30,1,[\"sort-by\"]],null,[[\"@prop\"],[\"count\"]],[[\"default\"],[[[[1,\"\\n          Count\\n        \"]],[]]]]],[1,\"\\n        \"],[8,[30,1,[\"sort-by\"]],null,[[\"@prop\",\"@class\"],[\"queuedOrStartingAllocs\",\"is-3\"]],[[\"default\"],[[[[1,\"\\n          Allocation Status\\n        \"]],[]]]]],[1,\"\\n        \"],[8,[30,1,[\"sort-by\"]],null,[[\"@prop\"],[\"volumes.length\"]],[[\"default\"],[[[[1,\"\\n          Volume\\n        \"]],[]]]]],[1,\"\\n        \"],[8,[30,1,[\"sort-by\"]],null,[[\"@prop\"],[\"reservedCPU\"]],[[\"default\"],[[[[1,\"\\n          Reserved CPU\\n        \"]],[]]]]],[1,\"\\n        \"],[8,[30,1,[\"sort-by\"]],null,[[\"@prop\"],[\"reservedMemory\"]],[[\"default\"],[[[[1,\"\\n          Reserved Memory\\n        \"]],[]]]]],[1,\"\\n        \"],[8,[30,1,[\"sort-by\"]],null,[[\"@prop\"],[\"reservedEphemeralDisk\"]],[[\"default\"],[[[[1,\"\\n          Reserved Disk\\n        \"]],[]]]]],[1,\"\\n      \"]],[]]]]],[1,\"\\n      \"],[8,[30,1,[\"body\"]],null,null,[[\"default\"],[[[[1,\"\\n        \"],[8,[39,1],[[4,[38,3],null,[[\"enumerated\",\"action\"],[true,[28,[37,2],[[30,0,[\"gotoTaskGroup\"]],[30,2,[\"model\"]]],null]]]]],[[\"@taskGroup\",\"@onClick\"],[[30,2,[\"model\"]],[28,[37,2],[[30,0,[\"gotoTaskGroup\"]],[30,2,[\"model\"]]],null]]],null],[1,\"\\n      \"]],[2]]]]],[1,\"\\n    \"]],[1]]]]],[1,\"\\n  \"],[13],[1,\"\\n\"],[13]],[\"t\",\"row\"],false,[\"list-table\",\"task-group-row\",\"fn\",\"keyboard-shortcut\"]]",
    "moduleName": "nomad-ui/templates/components/job-page/parts/task-groups.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/job-page/parts/title", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "/a3BZUve",
    "block": "[[[10,\"h1\"],[14,0,\"title with-flex\"],[12],[1,\"\\n  \"],[10,0],[12],[1,\"\\n    \"],[1,[28,[35,0],[[30,0,[\"title\"]],[30,0,[\"job\",\"name\"]]],null]],[1,\"\\n\"],[41,[30,1,[\"meta\",\"structured\",\"pack\"]],[[[1,\"      \"],[10,1],[14,0,\"tag is-hollow\"],[12],[1,\"\\n        \"],[1,[28,[35,2],[\"box\"],[[\"class\"],[\"test\"]]]],[1,\"\\n        \"],[10,1],[12],[1,\"Pack\"],[13],[1,\"\\n      \"],[13],[1,\"\\n\"]],[]],null],[1,\"    \"],[18,2,null],[1,\"\\n  \"],[13],[1,\"\\n  \"],[10,0],[12],[1,\"\\n\"],[41,[28,[37,4],[[28,[37,5],[[30,0,[\"job\",\"status\"]],\"dead\"],null]],null],[[[1,\"      \"],[10,0],[14,0,\"two-step-button\"],[12],[1,\"\\n        \"],[8,[39,6],null,[[\"@job\"],[[30,0,[\"job\"]]]],null],[1,\"\\n      \"],[13],[1,\"\\n      \"],[8,[39,7],[[4,[38,9],null,[[\"label\",\"pattern\",\"action\"],[\"Stop\",[28,[37,10],[\"s\",\"t\",\"o\",\"p\"],null],[28,[37,8],[[30,0,[\"stopJob\"]],true],null]]]]],[[\"@alignRight\",\"@idleText\",\"@cancelText\",\"@confirmText\",\"@confirmationMessage\",\"@awaitingConfirmation\",\"@onConfirm\"],[true,\"Stop Job\",\"Cancel\",\"Yes, Stop Job\",\"Are you sure you want to stop this job?\",[30,0,[\"stopJob\",\"isRunning\"]],[28,[37,8],[[30,0,[\"stopJob\"]]],null]]],null],[1,\"\\n\"]],[]],[[[1,\"      \"],[8,[39,7],[[4,[38,9],null,[[\"label\",\"pattern\",\"action\"],[\"Purge\",[28,[37,10],[\"p\",\"u\",\"r\",\"g\",\"e\"],null],[28,[37,8],[[30,0,[\"purgeJob\"]]],null]]]]],[[\"@alignRight\",\"@idleText\",\"@cancelText\",\"@confirmText\",\"@confirmationMessage\",\"@awaitingConfirmation\",\"@onConfirm\"],[true,\"Purge Job\",\"Cancel\",\"Yes, Purge Job\",\"Are you sure? You cannot undo this action.\",[30,0,[\"purgeJob\",\"isRunning\"]],[28,[37,8],[[30,0,[\"purgeJob\"]]],null]]],null],[1,\"\\n      \"],[8,[39,7],[[4,[38,9],null,[[\"label\",\"pattern\",\"action\"],[\"Start\",[28,[37,10],[\"s\",\"t\",\"a\",\"r\",\"t\"],null],[28,[37,8],[[30,0,[\"startJob\"]],true],null]]]]],[[\"@alignRight\",\"@idleText\",\"@cancelText\",\"@confirmText\",\"@confirmationMessage\",\"@awaitingConfirmation\",\"@onConfirm\"],[true,\"Start Job\",\"Cancel\",\"Yes, Start Job\",\"Are you sure you want to start this job?\",[30,0,[\"startJob\",\"isRunning\"]],[28,[37,8],[[30,0,[\"startJob\"]]],null]]],null],[1,\"\\n\"]],[]]],[1,\"  \"],[13],[1,\"\\n\"],[13],[1,\"\\n\"]],[\"@job\",\"&default\"],false,[\"or\",\"if\",\"x-icon\",\"yield\",\"not\",\"eq\",\"exec/open-button\",\"two-step-button\",\"perform\",\"keyboard-shortcut\",\"array\"]]",
    "moduleName": "nomad-ui/templates/components/job-page/parts/title.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/job-page/periodic-child", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "WjqqBVRv",
    "block": "[[[8,[39,0],null,[[\"@job\"],[[30,1]]],[[\"default\"],[[[[1,\"\\n  \"],[8,[30,2,[\"ui\",\"Body\"]],null,null,[[\"default\"],[[[[1,\"\\n    \"],[8,[30,2,[\"ui\",\"Error\"]],null,null,null],[1,\"\\n    \"],[8,[30,2,[\"ui\",\"Title\"]],null,[[\"@title\"],[[30,1,[\"trimmedName\"]]]],null],[1,\"\\n    \"],[8,[30,2,[\"ui\",\"StatsBox\"]],null,null,[[\"before-namespace\"],[[[[1,\"\\n        \"],[10,1],[14,0,\"pair\"],[12],[1,\"\\n          \"],[10,1],[14,0,\"term\"],[12],[1,\"\\n            Parent\\n          \"],[13],[1,\"\\n          \"],[8,[39,1],null,[[\"@route\",\"@model\"],[\"jobs.job\",[30,1,[\"parent\"]]]],[[\"default\"],[[[[1,\"\\n            \"],[1,[30,1,[\"parent\",\"name\"]]],[1,\"\\n          \"]],[]]]]],[1,\"\\n        \"],[13],[1,\"\\n      \"]],[]]]]],[1,\"\\n    \"],[8,[30,2,[\"ui\",\"StatusPanel\"]],null,[[\"@statusMode\",\"@setStatusMode\"],[[30,3],[30,4]]],null],[1,\"\\n    \"],[8,[30,2,[\"ui\",\"PlacementFailures\"]],null,null,null],[1,\"\\n    \"],[8,[30,2,[\"ui\",\"TaskGroups\"]],null,[[\"@sortProperty\",\"@sortDescending\"],[[30,5],[30,6]]],null],[1,\"\\n    \"],[8,[30,2,[\"ui\",\"RecentAllocations\"]],null,[[\"@activeTask\",\"@setActiveTaskQueryParam\"],[[30,7],[30,8]]],null],[1,\"\\n    \"],[8,[30,2,[\"ui\",\"Meta\"]],null,null,null],[1,\"\\n  \"]],[]]]]],[1,\"\\n\"]],[2]]]]]],[\"@job\",\"jobPage\",\"@statusMode\",\"@setStatusMode\",\"@sortProperty\",\"@sortDescending\",\"@activeTask\",\"@setActiveTaskQueryParam\"],false,[\"job-page\",\"link-to\"]]",
    "moduleName": "nomad-ui/templates/components/job-page/periodic-child.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/job-page/periodic", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "iajjbxOs",
    "block": "[[[8,[39,0],null,[[\"@job\"],[[30,1]]],[[\"default\"],[[[[1,\"\\n  \"],[8,[30,2,[\"ui\",\"Body\"]],null,null,[[\"default\"],[[[[1,\"\\n    \"],[8,[30,2,[\"ui\",\"Error\"]],null,null,null],[1,\"\\n    \"],[8,[30,2,[\"ui\",\"Title\"]],null,[[\"@title\"],[[30,1,[\"trimmedName\"]]]],[[\"default\"],[[[[1,\"\\n      \"],[10,1],[14,0,\"tag is-hollow\"],[12],[1,\"\\n        periodic\\n      \"],[13],[1,\"\\n      \"],[10,\"button\"],[14,0,\"button is-warning is-small is-inline\"],[15,\"onclick\",[28,[37,1],[[30,0,[\"forceLaunch\"]],[30,2,[\"fns\",\"setError\"]]],null]],[14,4,\"button\"],[12],[1,\"\\n        Force Launch\\n      \"],[13],[1,\"\\n    \"]],[]]]]],[1,\"\\n    \"],[8,[30,2,[\"ui\",\"StatsBox\"]],null,null,[[\"after-namespace\"],[[[[1,\"\\n        \"],[10,1],[14,0,\"pair\"],[12],[1,\"\\n          \"],[10,1],[14,0,\"term\"],[12],[1,\"\\n            Cron\\n          \"],[13],[1,\"\\n          \"],[1,[30,1,[\"periodicDetails\",\"Spec\"]]],[1,\"\\n        \"],[13],[1,\"\\n      \"]],[]]]]],[1,\"\\n    \"],[8,[30,2,[\"ui\",\"Summary\"]],null,null,null],[1,\"\\n    \"],[8,[30,2,[\"ui\",\"Children\"]],null,[[\"@sortProperty\",\"@sortDescending\",\"@currentPage\"],[[30,3],[30,4],[30,5]]],null],[1,\"\\n    \"],[8,[30,2,[\"ui\",\"Meta\"]],null,null,null],[1,\"\\n  \"]],[]]]]],[1,\"\\n\"]],[2]]]]]],[\"@job\",\"jobPage\",\"@sortProperty\",\"@sortDescending\",\"@currentPage\"],false,[\"job-page\",\"fn\"]]",
    "moduleName": "nomad-ui/templates/components/job-page/periodic.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/job-page/service", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "OwYWYTJv",
    "block": "[[[8,[39,0],null,[[\"@job\"],[[30,1]]],[[\"default\"],[[[[1,\"\\n  \"],[8,[30,2,[\"ui\",\"Body\"]],null,null,[[\"default\"],[[[[1,\"\\n    \"],[8,[30,2,[\"ui\",\"Error\"]],null,null,null],[1,\"\\n    \"],[8,[30,2,[\"ui\",\"Title\"]],null,null,null],[1,\"\\n    \"],[8,[30,2,[\"ui\",\"StatsBox\"]],null,null,null],[1,\"\\n    \"],[8,[30,2,[\"ui\",\"DasRecommendations\"]],null,null,null],[1,\"\\n    \"],[8,[30,2,[\"ui\",\"PlacementFailures\"]],null,null,null],[1,\"\\n    \"],[8,[30,2,[\"ui\",\"StatusPanel\"]],null,[[\"@statusMode\",\"@setStatusMode\"],[[30,3],[30,4]]],null],[1,\"\\n    \"],[8,[30,2,[\"ui\",\"TaskGroups\"]],null,[[\"@sortProperty\",\"@sortDescending\"],[[30,5],[30,6]]],null],[1,\"\\n    \"],[8,[30,2,[\"ui\",\"RecentAllocations\"]],null,[[\"@activeTask\",\"@setActiveTaskQueryParam\"],[[30,7],[30,8]]],null],[1,\"\\n    \"],[8,[30,2,[\"ui\",\"Meta\"]],null,null,null],[1,\"\\n  \"]],[]]]]],[1,\"\\n\"]],[2]]]]]],[\"@job\",\"jobPage\",\"@statusMode\",\"@setStatusMode\",\"@sortProperty\",\"@sortDescending\",\"@activeTask\",\"@setActiveTaskQueryParam\"],false,[\"job-page\"]]",
    "moduleName": "nomad-ui/templates/components/job-page/service.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/job-page/sysbatch", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "oQKNX28G",
    "block": "[[[8,[39,0],null,[[\"@job\"],[[30,1]]],[[\"default\"],[[[[1,\"\\n  \"],[8,[30,2,[\"ui\",\"Body\"]],null,null,[[\"default\"],[[[[1,\"\\n    \"],[8,[30,2,[\"ui\",\"Error\"]],null,null,null],[1,\"\\n    \"],[8,[30,2,[\"ui\",\"Title\"]],null,null,null],[1,\"\\n    \"],[8,[30,2,[\"ui\",\"StatsBox\"]],null,null,null],[1,\"\\n    \"],[8,[30,2,[\"ui\",\"PlacementFailures\"]],null,null,null],[1,\"\\n    \"],[8,[30,2,[\"ui\",\"StatusPanel\"]],null,[[\"@statusMode\",\"@setStatusMode\"],[[30,3],[30,4]]],null],[1,\"\\n    \"],[8,[30,2,[\"ui\",\"TaskGroups\"]],null,[[\"@sortProperty\",\"@sortDescending\"],[[30,5],[30,6]]],null],[1,\"\\n    \"],[8,[30,2,[\"ui\",\"RecentAllocations\"]],null,[[\"@activeTask\",\"@setActiveTaskQueryParam\"],[[30,7],[30,8]]],null],[1,\"\\n    \"],[8,[30,2,[\"ui\",\"Meta\"]],null,null,null],[1,\"\\n  \"]],[]]]]],[1,\"\\n\"]],[2]]]]]],[\"@job\",\"jobPage\",\"@statusMode\",\"@setStatusMode\",\"@sortProperty\",\"@sortDescending\",\"@activeTask\",\"@setActiveTaskQueryParam\"],false,[\"job-page\"]]",
    "moduleName": "nomad-ui/templates/components/job-page/sysbatch.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/job-page/system", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "fd4O2bwo",
    "block": "[[[8,[39,0],null,[[\"@job\"],[[30,1]]],[[\"default\"],[[[[1,\"\\n  \"],[8,[30,2,[\"ui\",\"Body\"]],null,null,[[\"default\"],[[[[1,\"\\n    \"],[8,[30,2,[\"ui\",\"Error\"]],null,null,null],[1,\"\\n    \"],[8,[30,2,[\"ui\",\"Title\"]],null,null,null],[1,\"\\n    \"],[8,[30,2,[\"ui\",\"StatsBox\"]],null,null,null],[1,\"\\n    \"],[8,[30,2,[\"ui\",\"DasRecommendations\"]],null,null,null],[1,\"\\n    \"],[8,[30,2,[\"ui\",\"PlacementFailures\"]],null,null,null],[1,\"\\n    \"],[8,[30,2,[\"ui\",\"StatusPanel\"]],null,[[\"@statusMode\",\"@setStatusMode\"],[[30,3],[30,4]]],null],[1,\"\\n    \"],[8,[30,2,[\"ui\",\"TaskGroups\"]],null,[[\"@sortProperty\",\"@sortDescending\"],[[30,5],[30,6]]],null],[1,\"\\n    \"],[8,[30,2,[\"ui\",\"RecentAllocations\"]],null,[[\"@activeTask\",\"@setActiveTaskQueryParam\"],[[30,7],[30,8]]],null],[1,\"\\n    \"],[8,[30,2,[\"ui\",\"Meta\"]],null,null,null],[1,\"\\n  \"]],[]]]]],[1,\"\\n\"]],[2]]]]]],[\"@job\",\"jobPage\",\"@statusMode\",\"@setStatusMode\",\"@sortProperty\",\"@sortDescending\",\"@activeTask\",\"@setActiveTaskQueryParam\"],false,[\"job-page\"]]",
    "moduleName": "nomad-ui/templates/components/job-page/system.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/job-row", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "gR23AC8v",
    "block": "[[[11,\"td\"],[4,[38,0],null,[[\"enumerated\",\"action\"],[true,[28,[37,1],[[30,0],\"gotoJob\",[30,1]],null]]]],[12],[1,\"\\n  \"],[8,[39,2],[[24,0,\"is-primary\"]],[[\"@route\",\"@model\"],[\"jobs.job.index\",[30,0,[\"job\",\"idWithNamespace\"]]]],[[\"default\"],[[[[1,\"\\n    \"],[1,[30,0,[\"job\",\"name\"]]],[1,\"\\n\\n\"],[41,[30,0,[\"job\",\"meta\",\"structured\",\"pack\"]],[[[1,\"      \"],[10,1],[14,0,\"tag is-pack\"],[12],[1,\"\\n        \"],[1,[28,[35,4],[\"box\"],[[\"class\"],[\"test\"]]]],[1,\"\\n        \"],[10,1],[12],[1,\"Pack\"],[13],[1,\"\\n      \"],[13],[1,\"\\n\"]],[]],null],[1,\"\\n  \"]],[]]]]],[1,\"\\n\"],[13],[1,\"\\n\"],[41,[28,[37,5],[[28,[37,6],[[30,2],\"child\"],null]],null],[[[41,[30,0,[\"system\",\"shouldShowNamespaces\"]],[[[1,\"    \"],[10,\"td\"],[12],[1,\"\\n      \"],[1,[30,0,[\"job\",\"namespace\",\"name\"]]],[1,\"\\n    \"],[13],[1,\"\\n\"]],[]],null]],[]],null],[41,[28,[37,6],[[30,2],\"child\"],null],[[[1,\"  \"],[10,\"td\"],[12],[1,\"\\n    \"],[1,[28,[35,7],[[30,0,[\"job\",\"submitTime\"]]],null]],[1,\"\\n  \"],[13],[1,\"\\n\"]],[]],null],[10,\"td\"],[12],[1,\"\\n  \"],[10,1],[15,0,[29,[\"tag \",[30,0,[\"job\",\"statusClass\"]]]]],[12],[1,\"\\n    \"],[1,[30,0,[\"job\",\"status\"]]],[1,\"\\n  \"],[13],[1,\"\\n\"],[13],[1,\"\\n\"],[41,[28,[37,5],[[28,[37,6],[[30,2],\"child\"],null]],null],[[[1,\"  \"],[10,\"td\"],[12],[1,\"\\n    \"],[1,[30,0,[\"job\",\"displayType\",\"type\"]]],[1,\"\\n  \"],[13],[1,\"\\n  \"],[10,\"td\"],[12],[1,\"\\n    \"],[41,[30,0,[\"job\",\"nodePool\"]],[[[1,[30,0,[\"job\",\"nodePool\"]]]],[]],[[[1,\"-\"]],[]]],[1,\"\\n  \"],[13],[1,\"\\n  \"],[10,\"td\"],[12],[1,\"\\n    \"],[1,[30,0,[\"job\",\"priority\"]]],[1,\"\\n  \"],[13],[1,\"\\n\"]],[]],null],[10,\"td\"],[12],[1,\"\\n\"],[41,[30,0,[\"job\",\"taskGroupCount\"]],[[[1,\"    \"],[1,[30,0,[\"job\",\"taskGroupCount\"]]],[1,\"\\n\"]],[]],[[[1,\"    --\\n\"]],[]]],[13],[1,\"\\n\"],[10,\"td\"],[12],[1,\"\\n  \"],[10,0],[14,0,\"inline-chart\"],[12],[1,\"\\n\"],[41,[30,0,[\"job\",\"hasChildren\"]],[[[41,[28,[37,8],[[30,0,[\"job\",\"totalChildren\"]],0],null],[[[1,\"        \"],[8,[39,9],null,[[\"@job\",\"@isNarrow\"],[[30,0,[\"job\"]],true]],null],[1,\"\\n\"]],[]],[[[1,\"        \"],[10,\"em\"],[14,0,\"is-faded\"],[12],[1,\"\\n          No Children\\n        \"],[13],[1,\"\\n\"]],[]]]],[]],[[[1,\"      \"],[8,[39,10],null,[[\"@allocationContainer\",\"@isNarrow\"],[[30,0,[\"job\"]],true]],null],[1,\"\\n\"]],[]]],[1,\"  \"],[13],[1,\"\\n\"],[13]],[\"@job\",\"@context\"],false,[\"keyboard-shortcut\",\"action\",\"link-to\",\"if\",\"x-icon\",\"not\",\"eq\",\"format-month-ts\",\"gt\",\"children-status-bar\",\"allocation-status-bar\"]]",
    "moduleName": "nomad-ui/templates/components/job-row.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/job-service-row", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "iodUU1tD",
    "block": "[[[11,\"tr\"],[16,0,[52,[28,[37,1],[[30,1,[\"provider\"]],\"nomad\"],null],\"is-interactive\"]],[4,[38,2],[\"click\",[28,[37,3],[[30,0,[\"gotoService\"]],[30,1]],null]],null],[12],[1,\"\\n  \"],[11,\"td\"],[4,[38,4],null,[[\"enumerated\",\"action\"],[true,[28,[37,5],[[30,0],\"gotoService\",[30,1]],null]]]],[12],[1,\"\\n\"],[41,[28,[37,1],[[30,1,[\"provider\"]],\"nomad\"],null],[[[1,\"      \"],[8,[39,6],null,[[\"@name\"],[\"nomad-color\"]],null],[1,\"\\n      \"],[8,[39,7],[[24,0,\"is-primary\"]],[[\"@route\",\"@model\",\"@query\"],[\"jobs.job.services.service\",[30,1],[28,[37,8],null,[[\"level\"],[[30,1,[\"level\"]]]]]]],[[\"default\"],[[[[1,[30,1,[\"name\"]]]],[]]]]],[1,\"\\n\"]],[]],[[[1,\"      \"],[8,[39,6],null,[[\"@name\"],[\"consul-color\"]],null],[1,\"\\n\"],[41,[28,[37,9],[[28,[37,1],[[30,1,[\"provider\"]],\"consul\"],null],[30,0,[\"consulRedirectLink\"]]],null],[[[1,\"        \"],[10,3],[14,0,\"is-primary\"],[15,6,[30,0,[\"consulRedirectLink\"]]],[14,\"target\",\"_blank\"],[14,\"rel\",\"noopener noreferrer\"],[12],[1,\"\\n          \"],[1,[30,1,[\"name\"]]],[1,\"\\n        \"],[13],[1,\"\\n\"]],[]],[[[1,\"        \"],[1,[30,1,[\"name\"]]],[1,\"\\n\"]],[]]],[41,[30,1,[\"connect\"]],[[[1,\"        \"],[8,[39,6],null,[[\"@name\",\"@color\"],[\"mesh\",\"#444444\"]],null],[1,\"\\n\"]],[]],null]],[]]],[1,\"  \"],[13],[1,\"\\n  \"],[10,\"td\"],[12],[1,\"\\n    \"],[1,[30,1,[\"level\"]]],[1,\"\\n  \"],[13],[1,\"\\n  \"],[10,\"td\"],[12],[1,\"\\n\"],[42,[28,[37,11],[[28,[37,11],[[30,1,[\"tags\"]]],null]],null],null,[[[1,\"      \"],[10,1],[14,0,\"tag is-service\"],[12],[1,[30,2]],[13],[1,\"\\n\"]],[2]],null],[42,[28,[37,11],[[28,[37,11],[[30,1,[\"canary_tags\"]]],null]],null],null,[[[1,\"      \"],[10,1],[14,0,\"tag canary is-service\"],[12],[1,[30,3]],[13],[1,\"\\n\"]],[3]],null],[1,\"  \"],[13],[1,\"\\n  \"],[10,\"td\"],[12],[1,\"\\n\"],[41,[28,[37,1],[[30,1,[\"provider\"]],\"nomad\"],null],[[[1,\"      \"],[1,[30,1,[\"instances\",\"length\"]]],[1,\" \"],[1,[28,[35,12],[\"allocation\",[30,1,[\"instances\",\"length\"]]],null]],[1,\"\\n\"]],[]],[[[1,\"      --\\n\"]],[]]],[1,\"  \"],[13],[1,\"\\n\"],[13],[1,\"\\n\"]],[\"@service\",\"tag\",\"tag\"],false,[\"if\",\"eq\",\"on\",\"fn\",\"keyboard-shortcut\",\"action\",\"flight-icon\",\"link-to\",\"hash\",\"and\",\"each\",\"-track-array\",\"pluralize\"]]",
    "moduleName": "nomad-ui/templates/components/job-service-row.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/job-subnav", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "C0Ugfngg",
    "block": "[[[11,0],[24,0,\"tabs is-subnav\"],[4,[38,0],[[30,0,[\"keyboard\",\"registerNav\"]]],[[\"type\"],[\"subnav\"]]],[4,[38,1],[[30,0,[\"keyboard\",\"unregisterSubnav\"]]],null],[12],[1,\"\\n  \"],[10,\"ul\"],[12],[1,\"\\n    \"],[10,\"li\"],[12],[1,\"\\n      \"],[8,[39,2],null,[[\"@route\",\"@model\",\"@activeClass\",\"@current-when\"],[\"jobs.job.index\",[30,1],\"is-active\",\"jobs.job.index jobs.job.dispatch\"]],[[\"default\"],[[[[1,\"\\n        Overview\\n      \"]],[]]]]],[1,\"\\n    \"],[13],[1,\"\\n    \"],[10,\"li\"],[12],[1,\"\\n      \"],[8,[39,2],null,[[\"@route\",\"@model\",\"@activeClass\"],[\"jobs.job.definition\",[30,1],\"is-active\"]],[[\"default\"],[[[[1,\"\\n        Definition\\n      \"]],[]]]]],[1,\"\\n    \"],[13],[1,\"\\n    \"],[10,\"li\"],[12],[1,\"\\n      \"],[8,[39,2],null,[[\"@route\",\"@model\",\"@activeClass\"],[\"jobs.job.versions\",[30,1],\"is-active\"]],[[\"default\"],[[[[1,\"\\n        Versions\\n      \"]],[]]]]],[1,\"\\n    \"],[13],[1,\"\\n\"],[41,[30,1,[\"supportsDeployments\"]],[[[1,\"      \"],[10,\"li\"],[12],[1,\"\\n        \"],[8,[39,2],null,[[\"@route\",\"@model\",\"@activeClass\"],[\"jobs.job.deployments\",[30,1],\"is-active\"]],[[\"default\"],[[[[1,\"\\n          Deployments\\n        \"]],[]]]]],[1,\"\\n      \"],[13],[1,\"\\n\"]],[]],null],[41,[51,[30,0,[\"shouldHideNonParentTabs\"]]],[[[1,\"      \"],[10,\"li\"],[12],[1,\"\\n        \"],[8,[39,2],null,[[\"@route\",\"@model\",\"@activeClass\"],[\"jobs.job.allocations\",[28,[37,5],[[30,1,[\"id\"]]],null],\"is-active\"]],[[\"default\"],[[[[1,\"\\n          Allocations\\n        \"]],[]]]]],[1,\"\\n      \"],[13],[1,\"\\n      \"],[10,\"li\"],[12],[1,\"\\n        \"],[8,[39,2],null,[[\"@route\",\"@model\",\"@activeClass\"],[\"jobs.job.evaluations\",[30,1],\"is-active\"]],[[\"default\"],[[[[1,\"\\n          Evaluations\\n        \"]],[]]]]],[1,\"\\n      \"],[13],[1,\"\\n\"],[41,[30,0,[\"shouldRenderClientsTab\"]],[[[1,\"        \"],[10,\"li\"],[12],[1,\"\\n          \"],[8,[39,2],null,[[\"@route\",\"@model\",\"@activeClass\"],[\"jobs.job.clients\",[30,1],\"is-active\"]],[[\"default\"],[[[[1,\"\\n            Clients\\n          \"]],[]]]]],[1,\"\\n        \"],[13],[1,\"\\n\"]],[]],null],[1,\"      \"],[10,\"li\"],[12],[1,\"\\n        \"],[8,[39,2],null,[[\"@route\",\"@model\",\"@activeClass\"],[\"jobs.job.services\",[30,1],\"is-active\"]],[[\"default\"],[[[[1,\"\\n          Services\\n        \"]],[]]]]],[1,\"\\n      \"],[13],[1,\"\\n\"]],[]],null],[1,\"  \"],[13],[1,\"\\n\"],[13]],[\"@job\"],false,[\"did-insert\",\"will-destroy\",\"link-to\",\"if\",\"unless\",\"format-job-id\"]]",
    "moduleName": "nomad-ui/templates/components/job-subnav.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/job-version", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "4zmcovgt",
    "block": "[[[10,0],[14,0,\"boxed-section-head is-light inline-definitions\"],[12],[1,\"\\n  Version #\"],[1,[30,0,[\"version\",\"number\"]]],[1,\"\\n  \"],[10,1],[14,0,\"bumper-left pair is-faded\"],[12],[1,\"\\n    \"],[10,1],[14,0,\"term\"],[12],[1,\"Stable\"],[13],[1,\"\\n    \"],[10,1],[14,0,\"badge is-light is-faded\"],[12],[10,\"code\"],[12],[1,[30,0,[\"version\",\"stable\"]]],[13],[13],[1,\"\\n  \"],[13],[1,\"\\n  \"],[10,1],[14,0,\"pair is-faded\"],[12],[1,\"\\n    \"],[10,1],[14,0,\"term\"],[12],[1,\"Submitted\"],[13],[1,\"\\n    \"],[10,1],[14,0,\"submit-date\"],[12],[1,[28,[35,0],[[30,0,[\"version\",\"submitTime\"]]],null]],[13],[1,\"\\n  \"],[13],[1,\"\\n  \"],[10,0],[14,0,\"pull-right\"],[12],[1,\"\\n\"],[41,[51,[30,0,[\"isCurrent\"]]],[[[41,[28,[37,3],[\"run job\"],[[\"namespace\"],[[30,0,[\"version\",\"job\",\"namespace\"]]]]],[[[1,\"        \"],[8,[39,4],null,[[\"@classes\",\"@alignRight\",\"@idleText\",\"@cancelText\",\"@confirmText\",\"@confirmationMessage\",\"@inlineText\",\"@fadingBackground\",\"@awaitingConfirmation\",\"@onConfirm\"],[[28,[37,5],null,[[\"idleButton\",\"confirmButton\"],[\"is-warning is-outlined\",\"is-warning\"]]],true,\"Revert Version\",\"Cancel\",\"Yes, Revert Version\",\"Are you sure you want to revert to this version?\",true,true,[30,0,[\"revertTo\",\"isRunning\"]],[28,[37,6],[[30,0,[\"revertTo\"]]],null]]],null],[1,\"\\n\"]],[]],[[[1,\"        \"],[10,\"button\"],[14,0,\"button is-warning is-outlined is-small tooltip\"],[14,\"disabled\",\"\"],[14,\"aria-label\",\"You don’t have permission to revert\"],[14,4,\"button\"],[12],[1,\"\\n          Revert\\n        \"],[13],[1,\"\\n\"]],[]]]],[]],null],[1,\"\\n\"],[41,[30,0,[\"version\",\"diff\"]],[[[1,\"      \"],[11,\"button\"],[24,0,\"button is-light is-small is-fixed-width\"],[24,4,\"button\"],[4,[38,7],[[30,0],\"toggleDiff\"],null],[12],[1,[30,0,[\"changeCount\"]]],[1,\" \"],[1,[28,[35,8],[\"Change\",[30,0,[\"changeCount\"]]],null]],[13],[1,\"\\n\"]],[]],[[[1,\"      \"],[10,0],[14,0,\"is-fixed-width is-size-7 has-text-centered\"],[12],[1,\"No Changes\"],[13],[1,\"\\n\"]],[]]],[1,\"  \"],[13],[1,\"\\n\"],[13],[1,\"\\n\"],[41,[30,0,[\"isOpen\"]],[[[1,\"  \"],[10,0],[14,0,\"boxed-section-body is-dark\"],[12],[1,\"\\n    \"],[8,[39,9],null,[[\"@diff\",\"@verbose\"],[[30,0,[\"version\",\"diff\"]],[30,0,[\"verbose\"]]]],null],[1,\"\\n  \"],[13],[1,\"\\n\"]],[]],null]],[],false,[\"format-ts\",\"unless\",\"if\",\"can\",\"two-step-button\",\"hash\",\"perform\",\"action\",\"pluralize\",\"job-diff\"]]",
    "moduleName": "nomad-ui/templates/components/job-version.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/job-versions-stream", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "Rnug60nR",
    "block": "[[[42,[28,[37,1],[[28,[37,1],[[30,0,[\"annotatedVersions\"]]],null]],null],\"version.id\",[[[41,[30,1,[\"meta\",\"showDate\"]],[[[1,\"    \"],[10,\"li\"],[14,0,\"timeline-note\"],[12],[1,\"\\n      \"],[1,[28,[35,3],[[30,1,[\"version\",\"submitTime\"]]],null]],[1,\"\\n    \"],[13],[1,\"\\n\"]],[]],null],[1,\"  \"],[10,\"li\"],[14,0,\"timeline-object\"],[12],[1,\"\\n    \"],[8,[39,4],null,[[\"@version\",\"@verbose\",\"@handleError\"],[[30,1,[\"version\"]],[30,0,[\"verbose\"]],[30,2]]],null],[1,\"\\n  \"],[13],[1,\"\\n\"]],[1]],null]],[\"record\",\"@handleError\"],false,[\"each\",\"-track-array\",\"if\",\"format-date\",\"job-version\"]]",
    "moduleName": "nomad-ui/templates/components/job-versions-stream.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/json-viewer", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "5B+bnJLx",
    "block": "[[[11,0],[4,[38,0],null,[[\"content\",\"theme\",\"readOnly\",\"screenReaderLabel\"],[[28,[37,1],[[30,1]],null],\"hashi-read-only\",true,\"JSON Viewer\"]]],[12],[13],[1,\"\\n\"]],[\"@json\"],false,[\"code-mirror\",\"stringify-object\"]]",
    "moduleName": "nomad-ui/templates/components/json-viewer.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/lifecycle-chart-row", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "I2C4kLP3",
    "block": "[[[10,0],[15,0,[29,[\"lifecycle-chart-row \",[30,0,[\"task\",\"lifecycleName\"]],\" \",[30,0,[\"activeClass\"]],\" \",[30,0,[\"finishedClass\"]]]]],[12],[1,\"\\n  \"],[10,0],[14,0,\"task\"],[12],[1,\"\\n    \"],[10,0],[14,0,\"name\"],[12],[1,\"\\n\"],[41,[30,0,[\"taskState\"]],[[[1,\"        \"],[8,[39,1],null,[[\"@route\",\"@models\"],[\"allocations.allocation.task\",[28,[37,2],[[30,0,[\"taskState\",\"allocation\"]],[30,0,[\"taskState\"]]],null]]],[[\"default\"],[[[[1,\"\\n          \"],[1,[30,0,[\"task\",\"name\"]]],[1,\"\\n        \"]],[]]]]],[1,\"\\n\"]],[]],[[[1,\"        \"],[1,[30,0,[\"task\",\"name\"]]],[1,\"\\n\"]],[]]],[1,\"    \"],[13],[1,\"\\n    \"],[10,0],[14,0,\"lifecycle\"],[12],[1,[28,[35,3],[[30,0,[\"lifecycleLabel\"]]],null]],[1,\" Task\"],[13],[1,\"\\n  \"],[13],[1,\"\\n\"],[13],[1,\"\\n\"]],[],false,[\"if\",\"link-to\",\"array\",\"capitalize\"]]",
    "moduleName": "nomad-ui/templates/components/lifecycle-chart-row.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/lifecycle-chart", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "ct6CPzdR",
    "block": "[[[41,[28,[37,1],[[30,0,[\"lifecyclePhases\",\"length\"]],1],null],[[[1,\"    \"],[10,0],[14,0,\"boxed-section\"],[12],[1,\"\\n      \"],[10,0],[14,0,\"boxed-section-head\"],[12],[1,\"\\n        Task Lifecycle \"],[1,[52,[30,0,[\"taskStates\"]],\"Status\",\"Configuration\"]],[1,\"\\n      \"],[13],[1,\"\\n      \"],[10,0],[14,0,\"boxed-section-body lifecycle-chart\"],[12],[1,\"\\n\\n        \"],[10,0],[14,0,\"lifecycle-phases\"],[12],[1,\"\\n\"],[42,[28,[37,3],[[28,[37,3],[[30,0,[\"lifecyclePhases\"]]],null]],null],null,[[[1,\"            \"],[10,0],[15,0,[29,[\"lifecycle-phase \",[52,[30,1,[\"isActive\"]],\"is-active\"],\" \",[28,[37,4],[[30,1,[\"name\"]]],null]]]],[12],[1,\"\\n              \"],[10,0],[14,0,\"name\"],[12],[1,[30,1,[\"name\"]]],[13],[1,\"\\n            \"],[13],[1,\"\\n\"]],[1]],null],[1,\"          \"],[10,\"svg\"],[14,0,\"divider prestart\"],[12],[1,\"\\n            \"],[10,\"line\"],[14,\"x1\",\"0\"],[14,\"y1\",\"0\"],[14,\"x2\",\"0\"],[14,\"y2\",\"100%\"],[12],[13],[1,\"\\n          \"],[13],[1,\"\\n          \"],[10,\"svg\"],[14,0,\"divider poststop\"],[12],[1,\"\\n            \"],[10,\"line\"],[14,\"x1\",\"0\"],[14,\"y1\",\"0\"],[14,\"x2\",\"0\"],[14,\"y2\",\"100%\"],[12],[13],[1,\"\\n          \"],[13],[1,\"\\n        \"],[13],[1,\"\\n\\n        \"],[10,0],[14,0,\"lifecycle-chart-rows\"],[12],[1,\"\\n\"],[41,[30,0,[\"tasks\"]],[[[42,[28,[37,3],[[28,[37,3],[[30,0,[\"sortedLifecycleTasks\"]]],null]],null],null,[[[1,\"              \"],[8,[39,5],null,[[\"@task\"],[[30,2]]],null],[1,\"\\n\"]],[2]],null]],[]],[[[42,[28,[37,3],[[28,[37,3],[[30,0,[\"sortedLifecycleTaskStates\"]]],null]],null],null,[[[1,\"              \"],[8,[39,5],null,[[\"@taskState\",\"@task\"],[[30,3],[30,3,[\"task\"]]]],null],[1,\"\\n\"]],[3]],null]],[]]],[1,\"        \"],[13],[1,\"\\n\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n\"]],[]],null]],[\"phase\",\"task\",\"state\"],false,[\"if\",\"gt\",\"each\",\"-track-array\",\"lowercase\",\"lifecycle-chart-row\"]]",
    "moduleName": "nomad-ui/templates/components/lifecycle-chart.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/line-chart", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "fR0Fv0DB",
    "block": "[[[11,0],[24,0,\"chart line-chart\"],[17,1],[4,[38,0],[[30,0,[\"onInsert\"]]],null],[4,[38,1],[[30,0,[\"renderChart\"]]],null],[4,[38,1],[[30,0,[\"recomputeXAxis\"]],[30,0,[\"xScale\"]]],null],[4,[38,1],[[30,0,[\"recomputeYAxis\"]],[30,0,[\"yScale\"]]],null],[4,[38,2],[[30,0,[\"updateDimensions\"]]],null],[12],[1,\"\\n  \"],[10,\"svg\"],[15,\"aria-labelledby\",[29,[[30,0,[\"titleId\"]]]]],[15,\"aria-describedby\",[29,[[30,0,[\"descriptionId\"]]]]],[12],[1,\"\\n    \"],[10,\"title\"],[15,1,[29,[[30,0,[\"titleId\"]]]]],[12],[1,[30,0,[\"title\"]]],[13],[1,\"\\n    \"],[10,\"desc\"],[15,1,[29,[[30,0,[\"descriptionId\"]]]]],[12],[1,\"\\n\"],[41,[30,0,[\"description\"]],[[[1,\"        \"],[1,[30,0,[\"description\"]]],[1,\"\\n\"]],[]],[[[1,\"        X-axis values range from \"],[1,[30,0,[\"xRange\",\"firstObject\"]]],[1,\" to \"],[1,[30,0,[\"xRange\",\"lastObject\"]]],[1,\",\\n        and Y-axis values range from \"],[1,[30,0,[\"yRange\",\"firstObject\"]]],[1,\" to \"],[1,[30,0,[\"yRange\",\"lastObject\"]]],[1,\".\\n\"]],[]]],[1,\"    \"],[13],[1,\"\\n    \"],[10,\"g\"],[14,0,\"y-gridlines gridlines\"],[15,\"transform\",[29,[\"translate(\",[30,0,[\"yAxisOffset\"]],\", 0)\"]]],[12],[13],[1,\"\\n\"],[41,[30,0,[\"ready\"]],[[[1,\"      \"],[18,3,[[28,[37,5],null,[[\"Area\"],[[50,\"chart-primitives/area\",0,null,[[\"curve\",\"xScale\",\"yScale\",\"xProp\",\"yProp\",\"width\",\"height\"],[\"linear\",[30,0,[\"xScale\"]],[30,0,[\"yScale\"]],[30,0,[\"xProp\"]],[30,0,[\"yProp\"]],[30,0,[\"yAxisOffset\"]],[30,0,[\"xAxisOffset\"]]]]]]]]]],[1,\"\\n\"]],[]],null],[1,\"    \"],[10,\"g\"],[14,\"aria-hidden\",\"true\"],[14,0,\"x-axis axis\"],[15,\"transform\",[29,[\"translate(0, \",[30,0,[\"xAxisOffset\"]],\")\"]]],[12],[13],[1,\"\\n    \"],[10,\"g\"],[14,\"aria-hidden\",\"true\"],[14,0,\"y-axis axis\"],[15,\"transform\",[29,[\"translate(\",[30,0,[\"yAxisOffset\"]],\", 0)\"]]],[12],[13],[1,\"\\n    \"],[10,\"rect\"],[14,0,\"hover-target\"],[14,\"x\",\"0\"],[14,\"y\",\"0\"],[15,\"width\",[29,[[30,0,[\"yAxisOffset\"]]]]],[15,\"height\",[29,[[30,0,[\"xAxisOffset\"]]]]],[12],[13],[1,\"\\n  \"],[13],[1,\"\\n\"],[41,[30,0,[\"ready\"]],[[[1,\"    \"],[18,4,[[28,[37,5],null,[[\"VAnnotations\",\"HAnnotations\",\"Tooltip\"],[[50,\"chart-primitives/v-annotations\",0,null,[[\"timeseries\",\"format\",\"scale\",\"prop\",\"height\"],[[30,2],[30,0,[\"xFormat\"]],[30,0,[\"xScale\"]],[30,0,[\"xProp\"]],[30,0,[\"xAxisOffset\"]]]]],[50,\"chart-primitives/h-annotations\",0,null,[[\"format\",\"scale\",\"prop\",\"left\",\"width\"],[[30,0,[\"yFormat\"]],[30,0,[\"yScale\"]],[30,0,[\"yProp\"]],[30,0,[\"canvasDimensions\",\"left\"]],[30,0,[\"canvasDimensions\",\"width\"]]]]],[50,\"chart-primitives/tooltip\",0,null,[[\"active\",\"style\",\"data\"],[[30,0,[\"activeData\",\"length\"]],[30,0,[\"tooltipStyle\"]],[30,0,[\"activeData\"]]]]]]]]]],[1,\"\\n\"]],[]],null],[13],[1,\"\\n\"]],[\"&attrs\",\"@timeseries\",\"&svg\",\"&after\"],false,[\"did-insert\",\"did-update\",\"window-resize\",\"if\",\"yield\",\"hash\",\"component\"]]",
    "moduleName": "nomad-ui/templates/components/line-chart.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/list-accordion", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "wIKr92wy",
    "block": "[[[42,[28,[37,1],[[28,[37,1],[[30,0,[\"decoratedSource\"]]],null]],null],null,[[[18,2,[[28,[37,3],null,[[\"head\",\"body\",\"item\",\"isOpen\",\"close\"],[[50,\"list-accordion/accordion-head\",0,null,[[\"isOpen\",\"onOpen\",\"onClose\"],[[30,1,[\"isOpen\"]],[28,[37,5],[[30,0],[28,[37,6],[[28,[37,5],[[30,0],[28,[37,7],[[30,1,[\"isOpen\"]]],null],true],null],[28,[37,5],[[30,0],[30,0,[\"onToggle\"]],[30,1,[\"item\"]],[30,1,[\"isOpen\"]]],null]],null]],null],[28,[37,5],[[30,0],[28,[37,6],[[28,[37,5],[[30,0],[28,[37,7],[[30,1,[\"isOpen\"]]],null],false],null],[28,[37,5],[[30,0],[30,0,[\"onToggle\"]],[30,1,[\"item\"]],[30,1,[\"isOpen\"]]],null]],null]],null]]]],[50,\"list-accordion/accordion-body\",0,null,[[\"isOpen\"],[[30,1,[\"isOpen\"]]]]],[30,1,[\"item\"]],[30,1,[\"isOpen\"]],[28,[37,8],[[28,[37,7],[[30,1,[\"isOpen\"]]],null],false],null]]]]]],[1,\"\\n\"]],[1]],null]],[\"item\",\"&default\"],false,[\"each\",\"-track-array\",\"yield\",\"hash\",\"component\",\"action\",\"queue\",\"mut\",\"fn\"]]",
    "moduleName": "nomad-ui/templates/components/list-accordion.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/list-accordion/accordion-body", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "3ZZt5fT+",
    "block": "[[[41,[30,0,[\"isOpen\"]],[[[1,\"  \"],[10,0],[15,0,[29,[\"accordion-body \",[52,[30,0,[\"fullBleed\"]],\"is-full-bleed\"]]]],[12],[1,\"\\n    \"],[18,1,null],[1,\"\\n  \"],[13],[1,\"\\n\"]],[]],null]],[\"&default\"],false,[\"if\",\"yield\"]]",
    "moduleName": "nomad-ui/templates/components/list-accordion/accordion-body.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/list-accordion/accordion-head", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "UYkcACLF",
    "block": "[[[10,0],[14,0,\"accordion-head-content\"],[12],[1,\"\\n  \"],[18,1,null],[1,\"\\n\"],[13],[1,\"\\n\"],[11,\"button\"],[16,0,[29,[\"button is-light is-compact pull-right accordion-toggle\\n    \",[52,[51,[30,0,[\"isExpandable\"]]],\"is-invisible\"]]]],[24,4,\"button\"],[4,[38,2],[\"click\",[28,[37,3],[[52,[30,0,[\"isOpen\"]],[30,0,[\"onClose\"]],[30,0,[\"onOpen\"]]],[30,0,[\"item\"]]],null]],null],[12],[1,\"\\n  \"],[1,[30,0,[\"buttonLabel\"]]],[1,\"\\n\"],[13]],[\"&default\"],false,[\"yield\",\"unless\",\"on\",\"fn\",\"if\"]]",
    "moduleName": "nomad-ui/templates/components/list-accordion/accordion-head.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/list-pagination", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "EEOnBP1c",
    "block": "[[[41,[30,0,[\"source\",\"length\"]],[[[1,\"  \"],[18,1,[[28,[37,2],null,[[\"first\",\"prev\",\"next\",\"last\",\"pageLinks\",\"currentPage\",\"totalPages\",\"startsAt\",\"endsAt\",\"list\"],[[50,\"list-pagination/list-pager\",0,null,[[\"test\",\"label\",\"page\",\"visible\"],[\"first\",\"First page\",1,[28,[37,4],[[28,[37,5],[[30,0,[\"page\"]],1],null]],null]]]],[50,\"list-pagination/list-pager\",0,null,[[\"test\",\"label\",\"page\",\"visible\"],[\"prev\",\"Previous page\",[28,[37,6],[[30,0,[\"page\"]]],null],[28,[37,4],[[28,[37,5],[[30,0,[\"page\"]],1],null]],null]]]],[50,\"list-pagination/list-pager\",0,null,[[\"test\",\"label\",\"page\",\"visible\"],[\"next\",\"Next page\",[28,[37,7],[[30,0,[\"page\"]]],null],[28,[37,4],[[28,[37,5],[[30,0,[\"page\"]],[30,0,[\"lastPage\"]]],null]],null]]]],[50,\"list-pagination/list-pager\",0,null,[[\"test\",\"label\",\"page\",\"visible\"],[\"last\",\"Last page\",[30,0,[\"lastPage\"]],[28,[37,4],[[28,[37,5],[[30,0,[\"page\"]],[30,0,[\"lastPage\"]]],null]],null]]]],[30,0,[\"pageLinks\"]],[30,0,[\"page\"]],[30,0,[\"lastPage\"]],[30,0,[\"startsAt\"]],[30,0,[\"endsAt\"]],[30,0,[\"list\"]]]]]]],[1,\"\\n\"]],[]],null]],[\"&default\"],false,[\"if\",\"yield\",\"hash\",\"component\",\"not\",\"eq\",\"dec\",\"inc\"]]",
    "moduleName": "nomad-ui/templates/components/list-pagination.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/list-pagination/list-pager", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "dg5QEWQg",
    "block": "[[[41,[30,0,[\"visible\"]],[[[1,\"  \"],[8,[39,1],[[16,0,[30,0,[\"class\"]]],[16,\"aria-label\",[30,0,[\"label\"]]]],[[\"@query\"],[[28,[37,2],null,[[\"currentPage\"],[[30,0,[\"page\"]]]]]]],[[\"default\"],[[[[1,\"\\n    \"],[18,1,null],[1,\"\\n  \"]],[]]]]],[1,\"\\n\"]],[]],null]],[\"&default\"],false,[\"if\",\"link-to\",\"hash\",\"yield\"]]",
    "moduleName": "nomad-ui/templates/components/list-pagination/list-pager.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/list-table", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "/RdZhry7",
    "block": "[[[18,1,[[28,[37,1],null,[[\"head\",\"body\",\"sort-by\"],[[50,\"list-table/table-head\",0,null,null],[50,\"list-table/table-body\",0,null,[[\"rows\"],[[30,0,[\"decoratedSource\"]]]]],[50,\"list-table/sort-by\",0,null,[[\"currentProp\",\"sortDescending\"],[[30,0,[\"sortProperty\"]],[30,0,[\"sortDescending\"]]]]]]]]]],[1,\"\\n\"]],[\"&default\"],false,[\"yield\",\"hash\",\"component\"]]",
    "moduleName": "nomad-ui/templates/components/list-table.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/list-table/sort-by", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "vgK0Lu7f",
    "block": "[[[8,[39,0],null,[[\"@query\"],[[28,[37,1],null,[[\"sortProperty\",\"sortDescending\"],[[30,0,[\"prop\"]],[30,0,[\"shouldSortDescending\"]]]]]]],[[\"default\"],[[[[1,\"\\n  \"],[18,1,null],[1,\"\\n\"]],[]]]]],[1,\"\\n\"]],[\"&default\"],false,[\"safe-link-to\",\"hash\",\"yield\"]]",
    "moduleName": "nomad-ui/templates/components/list-table/sort-by.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/list-table/table-body", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "WM22ngBb",
    "block": "[[[42,[28,[37,1],[[28,[37,1],[[30,0,[\"rows\"]]],null]],null],[30,0,[\"key\"]],[[[1,\"  \"],[18,3,[[30,1],[30,2]]],[1,\"\\n\"]],[1,2]],null]],[\"row\",\"index\",\"&default\"],false,[\"each\",\"-track-array\",\"yield\"]]",
    "moduleName": "nomad-ui/templates/components/list-table/table-body.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/list-table/table-head", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "08IadRB/",
    "block": "[[[10,\"tr\"],[12],[1,\"\\n  \"],[18,1,null],[1,\"\\n\"],[13],[1,\"\\n\"]],[\"&default\"],false,[\"yield\"]]",
    "moduleName": "nomad-ui/templates/components/list-table/table-head.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/loading-spinner", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "xdRlPqo8",
    "block": "[[[11,0],[16,0,[29,[\"loading-spinner \",[52,[30,0,[\"paused\"]],\"paused\"]]]],[4,[38,1],[\"click\",[28,[37,2],[\"paused\",[30,0]],null]],null],[12],[1,\"\\n  \"],[10,0],[14,0,\"cube-and-logo\"],[12],[1,\"\\n    \"],[10,0],[14,0,\"cube\"],[12],[1,\"\\n      \"],[10,0],[14,0,\"side side-1\"],[12],[13],[1,\"\\n      \"],[10,0],[14,0,\"side side-2\"],[12],[13],[1,\"\\n      \"],[10,0],[14,0,\"side side-3\"],[12],[13],[1,\"\\n      \"],[10,0],[14,0,\"side side-4\"],[12],[13],[1,\"\\n    \"],[13],[1,\"\\n    \"],[10,0],[14,0,\"logo-container\"],[12],[1,\"\\n      \"],[1,[28,[35,3],[\"nomad-logo-n\"],null]],[1,\"\\n    \"],[13],[1,\"\\n  \"],[13],[1,\"\\n\"],[13],[1,\"\\n\"]],[],false,[\"if\",\"on\",\"toggle-action\",\"x-icon\"]]",
    "moduleName": "nomad-ui/templates/components/loading-spinner.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/multi-select-dropdown", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "NuwJXnHe",
    "block": "[[[8,[39,0],null,[[\"@horizontalPosition\",\"@onOpen\",\"@onClose\"],[\"auto\",[28,[37,1],[[30,0],[28,[37,2],[[28,[37,1],[[30,0],[28,[37,3],[[30,0,[\"isOpen\"]]],null],true],null],[28,[37,1],[[30,0],[30,0,[\"capture\"]]],null]],null]],null],[28,[37,1],[[30,0],[28,[37,3],[[30,0,[\"isOpen\"]]],null],false],null]]],[[\"default\"],[[[[1,\"\\n  \"],[8,[30,1,[\"Trigger\"]],[[24,0,\"dropdown-trigger\"],[4,[38,4],[\"keyup\",[28,[37,1],[[30,0],\"openOnArrowDown\",[30,1]],null]],null]],null,[[\"default\"],[[[[1,\"\\n    \"],[10,0],[14,0,\"dropdown-trigger-label\"],[15,1,[29,[[30,0,[\"elementId\"]],\"-label\"]]],[12],[1,\"\\n      \"],[1,[30,0,[\"label\"]]],[1,\"\\n\"],[41,[30,0,[\"selection\",\"length\"]],[[[1,\"        \"],[10,1],[14,0,\"tag is-light\"],[12],[1,\"\\n          \"],[1,[30,0,[\"selection\",\"length\"]]],[1,\"\\n        \"],[13],[1,\"\\n\"]],[]],null],[1,\"    \"],[13],[1,\"\\n    \"],[10,1],[14,0,\"dropdown-trigger-icon ember-power-select-status-icon\"],[12],[13],[1,\"\\n  \"]],[]]]]],[1,\"\\n  \"],[8,[30,1,[\"Content\"]],[[24,0,\"dropdown-options\"]],null,[[\"default\"],[[[[1,\"\\n\"],[41,[30,0,[\"options\"]],[[[1,\"      \"],[10,\"ul\"],[14,\"role\",\"listbox\"],[15,\"aria-labelledby\",[29,[[30,0,[\"elementId\"]],\"-label\"]]],[12],[1,\"\\n\"],[42,[28,[37,7],[[28,[37,7],[[30,0,[\"options\"]]],null]],null],\"key\",[[[1,\"          \"],[10,0],[14,0,\"dropdown-option\"],[14,\"tabindex\",\"0\"],[15,\"onkeyup\",[28,[37,1],[[30,0],\"traverseList\",[30,2]],null]],[12],[1,\"\\n            \"],[10,\"label\"],[12],[1,\"\\n              \"],[10,\"input\"],[14,\"tabindex\",\"-1\"],[15,\"checked\",[28,[37,8],[[30,2,[\"key\"]],[30,0,[\"selection\"]]],null]],[14,\"role\",\"option\"],[15,\"onchange\",[28,[37,1],[[30,0],\"toggle\",[30,2]],null]],[14,4,\"checkbox\"],[12],[13],[1,\"\\n              \"],[1,[30,2,[\"label\"]]],[1,\"\\n            \"],[13],[1,\"\\n          \"],[13],[1,\"\\n\"]],[2]],null],[1,\"      \"],[13],[1,\"\\n\"]],[]],[[[1,\"      \"],[10,\"ul\"],[15,\"aria-labelledby\",[29,[[30,0,[\"elementId\"]],\"-label\"]]],[12],[1,\"\\n        \"],[10,\"li\"],[14,0,\"dropdown-empty\"],[12],[1,\"\\n          No options\\n        \"],[13],[1,\"\\n      \"],[13],[1,\"\\n\"]],[]]],[1,\"  \"]],[]]]]],[1,\"\\n\"]],[1]]]]]],[\"dd\",\"option\"],false,[\"basic-dropdown\",\"action\",\"queue\",\"mut\",\"on\",\"if\",\"each\",\"-track-array\",\"includes\"]]",
    "moduleName": "nomad-ui/templates/components/multi-select-dropdown.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/nomad-logo", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "5DXps9Hm",
    "block": "[[[10,\"svg\"],[14,0,\"nomad-logo\"],[14,\"xmlns\",\"http://www.w3.org/2000/svg\",\"http://www.w3.org/2000/xmlns/\"],[14,\"viewBox\",\"0 0 206.31 60.07\"],[12],[1,\"\\n  \"],[10,\"g\"],[12],[1,\"\\n    \"],[10,\"g\"],[12],[1,\"\\n      \"],[10,\"path\"],[14,\"d\",\"M78.49,21.83V46.07h-5.9v-32h8.06L92.79,38.39V14.1h5.9v32H90.63Z\"],[12],[13],[1,\"\\n      \"],[10,\"path\"],[14,\"d\",\"M113.09,46.55c-8,0-10.18-4.42-10.18-9.22V31.43c0-4.8,2.16-9.22,10.18-9.22s10.18,4.42,10.18,9.22v5.91C123.27,42.13,121.11,46.55,113.09,46.55Zm0-19.35c-3.12,0-4.32,1.39-4.32,4v6.29c0,2.64,1.2,4,4.32,4s4.32-1.39,4.32-4V31.24C117.41,28.6,116.21,27.2,113.09,27.2Z\"],[12],[13],[1,\"\\n      \"],[10,\"path\"],[14,\"d\",\"M141.08,46.07V29.75c0-1.25-.53-1.87-1.87-1.87a16.16,16.16,0,0,0-6.1,2V46.07h-5.86V22.69h4.46l.58,2a23.43,23.43,0,0,1,9.36-2.45,4.44,4.44,0,0,1,4.42,2.5,23,23,0,0,1,9.41-2.5c3.89,0,5.28,2.74,5.28,6.91V46.07H154.9V29.75c0-1.25-.53-1.87-1.87-1.87a15.5,15.5,0,0,0-6.1,2V46.07Z\"],[12],[13],[1,\"\\n      \"],[10,\"path\"],[14,\"d\",\"M182.88,46.07h-4.8l-.43-1.58a12.79,12.79,0,0,1-7,2.06c-4.27,0-6.1-2.93-6.1-7,0-4.75,2.06-6.58,6.82-6.58H177V30.56c0-2.59-.72-3.5-4.46-3.5a32.71,32.71,0,0,0-6.48.72l-.72-4.46a30.52,30.52,0,0,1,8-1.1c7.34,0,9.5,2.59,9.5,8.45ZM177,37.24h-4.32c-1.92,0-2.45.53-2.45,2.3s.53,2.35,2.35,2.35a9.2,9.2,0,0,0,4.42-1.2Z\"],[12],[13],[1,\"\\n      \"],[10,\"path\"],[14,\"d\",\"M186.48,30.47c0-5.18,2.3-8.26,7.73-8.26a32.22,32.22,0,0,1,6.24.67V13.14l5.86-.82V46.07h-4.66l-.58-2a12.31,12.31,0,0,1-7.39,2.45c-4.7,0-7.2-2.79-7.2-8.11Zm14-2.64a26,26,0,0,0-5.18-.62c-2.11,0-2.93,1-2.93,3.12v8.26c0,1.92.72,3,2.88,3a8.28,8.28,0,0,0,5.23-2.11Z\"],[12],[13],[1,\"\\n      \"],[10,\"polygon\"],[14,0,\"faded\"],[14,\"points\",\"38.02 23.13 38.02 33.08 31.09 37.09 26.25 34.09 26.25 60.06 26.38 60.07 52.49 45.07 52.49 15.11 52.01 15.11 38.02 23.13\"],[12],[13],[1,\"\\n      \"],[10,\"polygon\"],[14,\"points\",\"26.03 0.07 0 15.11 17.56 25.43 21.11 23.27 29.75 28.08 29.75 18.08 38.02 13.11 38.02 23.13 52.49 15.11 52.49 15.07 26.03 0.07\"],[12],[13],[1,\"\\n      \"],[10,\"polygon\"],[14,\"points\",\"22.75 32.09 22.75 42.08 14.87 47.08 14.87 27.08 17.86 25.25 0.15 15.11 0 15.11 0 45.07 26.25 60.06 26.25 34.09 22.75 32.09\"],[12],[13],[1,\"\\n    \"],[13],[1,\"\\n  \"],[13],[1,\"\\n\"],[13],[1,\"\\n\"]],[],false,[]]",
    "moduleName": "nomad-ui/templates/components/nomad-logo.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/page-layout", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "KTiM68MO",
    "block": "[[[8,[39,0],null,[[\"@class\",\"@onHamburgerClick\"],[\"page-header\",[28,[37,1],[[30,0],[28,[37,2],[[30,0,[\"isGutterOpen\"]]],null],true],null]]],[[\"default\"],[[[[1,\"\\n  \"],[8,[39,3],null,null,null],[1,\"\\n\"]],[]]]]],[1,\"\\n\"],[8,[39,4],null,[[\"@class\",\"@isOpen\",\"@onHamburgerClick\"],[\"page-body\",[30,0,[\"isGutterOpen\"]],[28,[37,1],[[30,0],[28,[37,2],[[30,0,[\"isGutterOpen\"]]],null],false],null]]],[[\"default\"],[[[[1,\"\\n  \"],[18,1,null],[1,\"\\n\"]],[]]]]],[1,\"\\n\"]],[\"&default\"],false,[\"global-header\",\"action\",\"mut\",\"app-breadcrumbs\",\"gutter-menu\",\"yield\"]]",
    "moduleName": "nomad-ui/templates/components/page-layout.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/page-size-select", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "+w6KRdXh",
    "block": "[[[11,0],[24,0,\"field is-horizontal\"],[17,1],[12],[1,\"\\n  \"],[10,1],[14,0,\"field-label is-small\"],[12],[1,\"\\n    Per page\\n  \"],[13],[1,\"\\n  \"],[8,[39,0],[[24,0,\"field-body\"]],[[\"@tagName\",\"@options\",\"@selected\",\"@onChange\"],[\"div\",[30,0,[\"pageSizeOptions\"]],[30,0,[\"userSettings\",\"pageSize\"]],[28,[37,1],[[30,0],[28,[37,2],[[28,[37,1],[[30,0],[28,[37,3],[[30,0,[\"userSettings\",\"pageSize\"]]],null]],null],[28,[37,1],[[30,0],[30,0,[\"onChange\"]]],null]],null]],null]]],[[\"default\"],[[[[1,\"\\n    \"],[1,[30,2]],[1,\"\\n  \"]],[2]]]]],[1,\"\\n\"],[13]],[\"&attrs\",\"option\"],false,[\"power-select\",\"action\",\"queue\",\"mut\"]]",
    "moduleName": "nomad-ui/templates/components/page-size-select.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/placement-failure", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "LUb8YBz8",
    "block": "[[[41,[30,0,[\"placementFailures\"]],[[[44,[[30,0,[\"placementFailures\"]]],[[[41,[30,1],[[[1,\"    \"],[10,\"h3\"],[14,0,\"title is-5\"],[12],[1,\"\\n      \"],[1,[30,0,[\"placementFailures\",\"name\"]]],[1,\"\\n      \"],[8,[39,2],null,[[\"@color\",\"@type\",\"@size\",\"@text\"],[\"critical\",\"outlined\",\"small\",[29,[[28,[37,3],[[30,1,[\"coalescedFailures\"]]],null],\" unplaced\"]]]],null],[1,\"\\n    \"],[13],[1,\"\\n    \"],[10,\"ul\"],[14,0,\"simple-list\"],[12],[1,\"\\n\"],[41,[28,[37,4],[[30,1,[\"nodesEvaluated\"]],0],null],[[[1,\"        \"],[10,\"li\"],[12],[1,\"No nodes were eligible for evaluation\"],[13],[1,\"\\n\"]],[]],null],[42,[28,[37,6],[[30,1,[\"nodesAvailable\"]]],null],null,[[[41,[28,[37,4],[[30,2],0],null],[[[1,\"          \"],[10,\"li\"],[12],[1,\"No nodes are available in datacenter \"],[1,[30,3]],[13],[1,\"\\n\"]],[]],null]],[2,3]],null],[42,[28,[37,6],[[30,1,[\"classFiltered\"]]],null],null,[[[1,\"        \"],[10,\"li\"],[12],[1,\"Class \"],[1,[30,5]],[1,\" filtered \"],[1,[30,4]],[1,\" \"],[1,[28,[35,7],[\"node\",[30,4]],null]],[13],[1,\"\\n\"]],[4,5]],null],[42,[28,[37,6],[[30,1,[\"constraintFiltered\"]]],null],null,[[[1,\"        \"],[10,\"li\"],[12],[1,\"Constraint \"],[10,\"code\"],[12],[1,[30,7]],[13],[1,\" filtered \"],[1,[30,6]],[1,\" \"],[1,[28,[35,7],[\"node\",[30,6]],null]],[13],[1,\"\\n\"]],[6,7]],null],[41,[30,1,[\"nodesExhausted\"]],[[[1,\"        \"],[10,\"li\"],[12],[1,\"Resources exhausted on \"],[1,[30,1,[\"nodesExhausted\"]]],[1,\" \"],[1,[28,[35,7],[\"node\",[30,1,[\"nodesExhausted\"]]],null]],[13],[1,\"\\n\"]],[]],null],[42,[28,[37,6],[[30,1,[\"classExhausted\"]]],null],null,[[[1,\"        \"],[10,\"li\"],[12],[1,\"Class \"],[1,[30,9]],[1,\" exhausted on \"],[1,[30,8]],[1,\" \"],[1,[28,[35,7],[\"node\",[30,8]],null]],[13],[1,\"\\n\"]],[8,9]],null],[42,[28,[37,6],[[30,1,[\"dimensionExhausted\"]]],null],null,[[[1,\"        \"],[10,\"li\"],[12],[1,\"Dimension \"],[1,[30,11]],[1,\" exhausted on \"],[1,[30,10]],[1,\" \"],[1,[28,[35,7],[\"node\",[30,10]],null]],[13],[1,\"\\n\"]],[10,11]],null],[42,[28,[37,6],[[30,1,[\"quotaExhausted\"]]],null],null,[[[1,\"        \"],[10,\"li\"],[12],[1,\"Quota limit hit \"],[1,[30,12]],[13],[1,\"\\n\"]],[12,13]],null],[42,[28,[37,6],[[30,1,[\"scores\"]]],null],null,[[[1,\"        \"],[10,\"li\"],[12],[1,\"Score \"],[1,[30,15]],[1,\" = \"],[1,[30,14]],[13],[1,\"\\n\"]],[14,15]],null],[1,\"    \"],[13],[1,\"\\n\"]],[]],null]],[1]]]],[]],null]],[\"failures\",\"available\",\"datacenter\",\"count\",\"class\",\"count\",\"constraint\",\"count\",\"class\",\"count\",\"dimension\",\"dimension\",\"quota\",\"score\",\"name\"],false,[\"if\",\"let\",\"hds/badge\",\"inc\",\"eq\",\"each\",\"-each-in\",\"pluralize\"]]",
    "moduleName": "nomad-ui/templates/components/placement-failure.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/plugin-allocation-row", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "UcGRgVQz",
    "block": "[[[41,[30,0,[\"allocation\"]],[[[1,\"  \"],[10,\"td\"],[14,0,\"is-narrow\"],[12],[1,\"\\n\"],[41,[30,0,[\"allocation\",\"unhealthyDrivers\",\"length\"]],[[[1,\"      \"],[10,1],[14,0,\"tooltip text-center\"],[14,\"role\",\"tooltip\"],[14,\"aria-label\",\"Allocation depends on unhealthy drivers\"],[12],[1,\"\\n        \"],[1,[28,[35,1],[\"alert-triangle\"],[[\"class\"],[\"is-warning\"]]]],[1,\"\\n      \"],[13],[1,\"\\n\"]],[]],null],[41,[30,0,[\"allocation\",\"nextAllocation\"]],[[[1,\"      \"],[10,1],[14,0,\"tooltip text-center\"],[14,\"role\",\"tooltip\"],[14,\"aria-label\",\"Allocation was rescheduled\"],[12],[1,\"\\n        \"],[1,[28,[35,1],[\"history\"],[[\"class\"],[\"is-faded\"]]]],[1,\"\\n      \"],[13],[1,\"\\n\"]],[]],null],[41,[30,0,[\"allocation\",\"wasPreempted\"]],[[[1,\"      \"],[10,1],[14,0,\"tooltip text-center\"],[14,\"role\",\"tooltip\"],[14,\"aria-label\",\"Allocation was preempted\"],[12],[1,\"\\n        \"],[1,[28,[35,1],[\"boot\"],[[\"class\"],[\"is-faded\"]]]],[1,\"\\n      \"],[13],[1,\"\\n\"]],[]],null],[1,\"  \"],[13],[1,\"\\n\\n  \"],[10,\"td\"],[12],[1,\"\\n    \"],[8,[39,2],[[24,0,\"is-primary\"]],[[\"@route\",\"@model\"],[\"allocations.allocation\",[30,0,[\"allocation\"]]]],[[\"default\"],[[[[1,\"\\n      \"],[1,[30,0,[\"allocation\",\"shortId\"]]],[1,\"\\n    \"]],[]]]]],[1,\"\\n  \"],[13],[1,\"\\n\\n  \"],[10,\"td\"],[12],[1,\"\\n    \"],[10,1],[14,0,\"tooltip\"],[15,\"aria-label\",[29,[[28,[37,3],[[30,0,[\"allocation\",\"createTime\"]]],null]]]],[12],[1,\"\\n      \"],[1,[28,[35,3],[[30,0,[\"allocation\",\"createTime\"]]],[[\"short\"],[true]]]],[1,\"\\n    \"],[13],[1,\"\\n  \"],[13],[1,\"\\n\\n  \"],[10,\"td\"],[12],[1,\"\\n    \"],[10,1],[14,0,\"tooltip\"],[15,\"aria-label\",[29,[[28,[37,3],[[30,0,[\"allocation\",\"modifyTime\"]]],null]]]],[12],[1,\"\\n      \"],[1,[28,[35,4],[[30,0,[\"allocation\",\"modifyTime\"]]],null]],[1,\"\\n    \"],[13],[1,\"\\n  \"],[13],[1,\"\\n\\n  \"],[10,\"td\"],[12],[1,\"\\n    \"],[10,1],[14,0,\"nowrap\"],[12],[1,\"\\n      \"],[1,[28,[35,1],[[52,[30,0,[\"pluginAllocation\",\"healthy\"]],\"check-circle-outline\",\"minus-circle-outline\"]],[[\"class\"],[[52,[30,0,[\"pluginAllocation\",\"healthy\"]],\"is-success\",\"is-danger\"]]]]],[1,\"\\n      \"],[1,[52,[30,0,[\"pluginAllocation\",\"healthy\"]],\"Healthy\",\"Unhealthy\"]],[1,\"\\n    \"],[13],[1,\"\\n  \"],[13],[1,\"\\n\\n  \"],[10,\"td\"],[12],[1,\"\\n    \"],[8,[39,5],null,[[\"@text\"],[[30,0,[\"allocation\",\"node\",\"name\"]]]],[[\"default\"],[[[[1,\"\\n      \"],[8,[39,2],null,[[\"@route\",\"@model\"],[\"clients.client\",[30,0,[\"allocation\",\"node\"]]]],[[\"default\"],[[[[1,\"\\n        \"],[1,[30,0,[\"allocation\",\"node\",\"shortId\"]]],[1,\"\\n      \"]],[]]]]],[1,\"\\n    \"]],[]]]]],[1,\"\\n  \"],[13],[1,\"\\n  \"],[10,\"td\"],[12],[1,\"\\n\"],[41,[28,[37,6],[[30,0,[\"allocation\",\"job\",\"isPending\"]],[30,0,[\"allocation\",\"job\",\"isReloading\"]]],null],[[[1,\"      ...\\n\"]],[]],[[[1,\"      \"],[8,[39,2],null,[[\"@route\",\"@model\"],[\"jobs.job\",[30,0,[\"allocation\",\"job\"]]]],[[\"default\"],[[[[1,[30,0,[\"allocation\",\"job\",\"name\"]]]],[]]]]],[1,\"\\n      \"],[10,1],[14,0,\"is-faded\"],[12],[1,\"/ \"],[1,[30,0,[\"allocation\",\"taskGroup\",\"name\"]]],[13],[1,\"\\n\"]],[]]],[1,\"  \"],[13],[1,\"\\n  \"],[10,\"td\"],[14,0,\"is-1\"],[12],[1,[30,0,[\"allocation\",\"jobVersion\"]]],[13],[1,\"\\n  \"],[10,\"td\"],[12],[1,[52,[30,0,[\"allocation\",\"taskGroup\",\"volumes\",\"length\"]],\"Yes\"]],[13],[1,\"\\n\\n  \"],[10,\"td\"],[14,0,\"is-1 has-text-centered\"],[12],[1,\"\\n    \"],[8,[39,7],null,[[\"@metric\",\"@allocation\",\"@statsTracker\",\"@isLoading\",\"@error\"],[\"cpu\",[30,0,[\"allocation\"]],[30,0,[\"stats\"]],[30,0,[\"fetchStats\",\"isRunning\"]],[30,0,[\"statsError\"]]]],null],[1,\"\\n  \"],[13],[1,\"\\n  \"],[10,\"td\"],[14,0,\"is-1 has-text-centered\"],[12],[1,\"\\n    \"],[8,[39,7],null,[[\"@metric\",\"@allocation\",\"@statsTracker\",\"@isLoading\",\"@error\"],[\"memory\",[30,0,[\"allocation\"]],[30,0,[\"stats\"]],[30,0,[\"fetchStats\",\"isRunning\"]],[30,0,[\"statsError\"]]]],null],[1,\"\\n  \"],[13],[1,\"\\n\"]],[]],[[[1,\"  \"],[10,\"td\"],[14,\"colspan\",\"10\"],[12],[1,\"…\"],[13],[1,\"\\n\"]],[]]]],[],false,[\"if\",\"x-icon\",\"link-to\",\"format-month-ts\",\"moment-from-now\",\"tooltip\",\"or\",\"allocation-stat\"]]",
    "moduleName": "nomad-ui/templates/components/plugin-allocation-row.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/plugin-subnav", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "Qz7OALoe",
    "block": "[[[11,0],[24,0,\"tabs is-subnav\"],[4,[38,0],[[30,0,[\"keyboard\",\"registerNav\"]]],[[\"type\"],[\"subnav\"]]],[4,[38,1],[[30,0,[\"keyboard\",\"unregisterSubnav\"]]],null],[12],[1,\"\\n  \"],[10,\"ul\"],[12],[1,\"\\n    \"],[10,\"li\"],[12],[8,[39,2],null,[[\"@route\",\"@model\",\"@activeClass\"],[\"csi.plugins.plugin.index\",[30,1],\"is-active\"]],[[\"default\"],[[[[1,\"Overview\"]],[]]]]],[13],[1,\"\\n    \"],[10,\"li\"],[12],[8,[39,2],null,[[\"@route\",\"@model\",\"@activeClass\"],[\"csi.plugins.plugin.allocations\",[30,1],\"is-active\"]],[[\"default\"],[[[[1,\"Allocations\"]],[]]]]],[13],[1,\"\\n  \"],[13],[1,\"\\n\"],[13],[1,\"\\n\"]],[\"@plugin\"],false,[\"did-insert\",\"will-destroy\",\"link-to\"]]",
    "moduleName": "nomad-ui/templates/components/plugin-subnav.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/popover-menu", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "nlV2a4Sj",
    "block": "[[[8,[39,0],null,[[\"@horizontalPosition\",\"@disabled\",\"@onOpen\",\"@onClose\"],[\"right\",[30,0,[\"isDisabled\"]],[28,[37,1],[[30,0],[28,[37,2],[[28,[37,1],[[30,0],[28,[37,3],[[30,0,[\"isOpen\"]]],null],true],null],[28,[37,1],[[30,0],[30,0,[\"capture\"]]],null]],null]],null],[28,[37,1],[[30,0],[28,[37,3],[[30,0,[\"isOpen\"]]],null],false],null]]],[[\"default\"],[[[[1,\"\\n  \"],[8,[30,1,[\"Trigger\"]],[[16,0,[28,[37,4],[\"popover-trigger button is-primary \",[30,0,[\"triggerClass\"]],[52,[30,0,[\"isDisabled\"]],\" is-disabled\"]],null]],[16,\"aria-label\",[30,0,[\"tooltip\"]]],[4,[38,6],[\"keyup\",[28,[37,1],[[30,0],\"openOnArrowDown\",[30,1]],null]],null]],null,[[\"default\"],[[[[1,\"\\n    \"],[1,[30,0,[\"label\"]]],[1,\"\\n    \"],[1,[28,[35,7],[\"chevron-down\"],[[\"class\"],[\"is-text\"]]]],[1,\"\\n  \"]],[]]]]],[1,\"\\n  \"],[8,[30,1,[\"Content\"]],[[24,0,\"popover-content\"]],null,[[\"default\"],[[[[1,\"\\n    \"],[18,2,[[30,1]]],[1,\"\\n  \"]],[]]]]],[1,\"\\n\"]],[1]]]]],[1,\"\\n\"]],[\"dd\",\"&default\"],false,[\"basic-dropdown\",\"action\",\"queue\",\"mut\",\"concat\",\"if\",\"on\",\"x-icon\",\"yield\"]]",
    "moduleName": "nomad-ui/templates/components/popover-menu.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/proxy-tag", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "MhgDWEvt",
    "block": "[[[10,1],[14,0,\"badge is-light tooltip\"],[14,\"role\",\"tooltip\"],[14,\"aria-label\",\"Consul Connect proxy task\"],[12],[1,\"\\n  Proxy\\n\"],[13]],[],false,[]]",
    "moduleName": "nomad-ui/templates/components/proxy-tag.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/region-switcher", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "JfrcGJw6",
    "block": "[[[1,[28,[35,0],[[30,0,[\"keyCommands\"]]],null]],[1,\"\\n\\n\"],[41,[30,0,[\"system\",\"shouldShowRegions\"]],[[[1,\"  \"],[10,1],[12],[1,\"\\n    \"],[8,[39,2],null,[[\"@tagName\",\"@triggerClass\",\"@options\",\"@selected\",\"@searchEnabled\",\"@onChange\"],[\"div\",[30,0,[\"decoration\"]],[30,0,[\"sortedRegions\"]],[30,0,[\"system\",\"activeRegion\"]],false,[28,[37,3],[[30,0],[30,0,[\"gotoRegion\"]]],null]]],[[\"default\"],[[[[1,\"\\n      \"],[10,1],[14,0,\"ember-power-select-prefix\"],[12],[1,\"Region: \"],[13],[1,[30,1]],[1,\"\\n    \"]],[1]]]]],[1,\"\\n  \"],[13],[1,\"\\n\"]],[]],null]],[\"region\"],false,[\"keyboard-commands\",\"if\",\"power-select\",\"action\"]]",
    "moduleName": "nomad-ui/templates/components/region-switcher.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/reschedule-event-row", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "yrEblkkk",
    "block": "[[[10,\"li\"],[14,0,\"timeline-note\"],[12],[1,\"\\n\"],[41,[30,0,[\"label\"]],[[[1,\"    \"],[10,\"strong\"],[12],[1,[30,0,[\"label\"]]],[13],[1,\"\\n\"]],[]],null],[1,\"  \"],[1,[28,[35,1],[[30,0,[\"time\"]]],null]],[1,\"\\n\"],[13],[1,\"\\n\"],[10,\"li\"],[14,0,\"timeline-object\"],[12],[1,\"\\n  \"],[10,0],[14,0,\"boxed-section\"],[12],[1,\"\\n\"],[41,[51,[30,0,[\"linkToAllocation\"]]],[[[1,\"      \"],[10,0],[14,0,\"boxed-section-head\"],[12],[1,\"\\n        This Allocation\\n      \"],[13],[1,\"\\n\"]],[]],null],[1,\"    \"],[10,0],[14,0,\"boxed-section-body inline-definitions\"],[12],[1,\"\\n      \"],[10,0],[14,0,\"columns\"],[12],[1,\"\\n        \"],[10,0],[14,0,\"column is-centered is-minimum\"],[12],[1,\"\\n          \"],[10,1],[15,0,[29,[\"tag \",[30,0,[\"allocation\",\"statusClass\"]]]]],[12],[1,\"\\n            \"],[1,[30,0,[\"allocation\",\"clientStatus\"]]],[1,\"\\n          \"],[13],[1,\"\\n        \"],[13],[1,\"\\n        \"],[10,0],[14,0,\"column\"],[12],[1,\"\\n          \"],[10,0],[14,0,\"boxed-section-row\"],[12],[1,\"\\n            \"],[10,1],[14,0,\"pair\"],[12],[1,\"\\n              \"],[10,1],[14,0,\"term\"],[12],[1,\"Allocation\"],[13],[1,\"\\n\"],[41,[30,0,[\"linkToAllocation\"]],[[[1,\"                \"],[8,[39,3],null,[[\"@route\",\"@model\"],[\"allocations.allocation\",[30,0,[\"allocation\",\"id\"]]]],[[\"default\"],[[[[1,\"\\n                  \"],[10,\"code\"],[12],[1,[30,0,[\"allocation\",\"shortId\"]]],[13],[1,\"\\n                \"]],[]]]]],[1,\"\\n\"]],[]],[[[1,\"                \"],[10,\"code\"],[12],[1,[30,0,[\"allocation\",\"shortId\"]]],[13],[1,\"\\n\"]],[]]],[1,\"            \"],[13],[1,\"\\n            \"],[10,1],[14,0,\"pair\"],[12],[1,\"\\n              \"],[10,1],[14,0,\"term\"],[12],[1,\"Client\"],[13],[1,\"\\n              \"],[10,1],[12],[1,\"\\n                \"],[8,[39,3],null,[[\"@route\",\"@model\"],[\"clients.client\",[30,0,[\"allocation\",\"node\",\"id\"]]]],[[\"default\"],[[[[1,\"\\n                  \"],[10,\"code\"],[12],[1,[30,0,[\"allocation\",\"node\",\"id\"]]],[13],[1,\"\\n                \"]],[]]]]],[1,\"\\n              \"],[13],[1,\"\\n            \"],[13],[1,\"\\n          \"],[13],[1,\"\\n        \"],[13],[1,\"\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n  \"],[13],[1,\"\\n\"],[13],[1,\"\\n\"]],[],false,[\"if\",\"format-ts\",\"unless\",\"link-to\"]]",
    "moduleName": "nomad-ui/templates/components/reschedule-event-row.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/reschedule-event-timeline", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "Z4uicGyI",
    "block": "[[[10,\"ol\"],[14,0,\"timeline\"],[12],[1,\"\\n\"],[41,[30,1,[\"nextAllocation\"]],[[[1,\"    \"],[8,[39,1],null,[[\"@label\",\"@allocation\",\"@time\"],[\"Next Allocation\",[30,1,[\"nextAllocation\"]],[30,1,[\"nextAllocation\",\"modifyTime\"]]]],null],[1,\"\\n\"]],[]],null],[41,[30,1,[\"hasStoppedRescheduling\"]],[[[1,\"    \"],[10,\"li\"],[14,0,\"timeline-note\"],[12],[1,\"\\n      \"],[1,[28,[35,2],[\"alert-triangle\"],[[\"class\"],[\"is-warning is-text\"]]]],[1,\" Nomad has stopped attempting to reschedule this allocation.\\n    \"],[13],[1,\"\\n\"]],[]],null],[41,[28,[37,3],[[30,1,[\"followUpEvaluation\",\"waitUntil\"]],[28,[37,4],[[30,1,[\"nextAllocation\"]]],null]],null],[[[1,\"    \"],[10,\"li\"],[14,0,\"timeline-note\"],[12],[1,\"\\n      \"],[1,[28,[35,2],[\"clock\"],[[\"class\"],[\"is-info is-text\"]]]],[1,\" Nomad will attempt to reschedule\\n      \"],[10,1],[14,0,\"tooltip\"],[15,\"aria-label\",[29,[[28,[37,5],[[30,1,[\"followUpEvaluation\",\"waitUntil\"]]],null]]]],[12],[1,\"\\n        \"],[1,[28,[35,6],[[30,1,[\"followUpEvaluation\",\"waitUntil\"]]],[[\"interval\"],[1000]]]],[1,\"\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n\"]],[]],null],[1,\"  \"],[8,[39,1],null,[[\"@allocation\",\"@linkToAllocation\",\"@time\"],[[30,1],false,[30,1,[\"modifyTime\"]]]],null],[1,\"\\n\\n\"],[42,[28,[37,8],[[28,[37,8],[[28,[37,9],[[30,1,[\"rescheduleEvents\"]]],null]],null]],null],null,[[[1,\"    \"],[8,[39,1],null,[[\"@allocationId\",\"@time\"],[[30,2,[\"previousAllocationId\"]],[30,2,[\"time\"]]]],null],[1,\"\\n\"]],[2]],null],[13],[1,\"\\n\"]],[\"@allocation\",\"event\"],false,[\"if\",\"reschedule-event-row\",\"x-icon\",\"and\",\"not\",\"format-ts\",\"moment-from-now\",\"each\",\"-track-array\",\"reverse\"]]",
    "moduleName": "nomad-ui/templates/components/reschedule-event-timeline.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/scale-events-accordion", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "IWeQsCZv",
    "block": "[[[8,[39,0],null,[[\"@source\",\"@key\"],[[30,1],\"time\"]],[[\"default\"],[[[[1,\"\\n  \"],[8,[30,2,[\"head\"]],[[24,0,\"with-columns\"]],[[\"@buttonLabel\",\"@isExpandable\"],[\"details\",[30,2,[\"item\",\"hasMeta\"]]]],[[\"default\"],[[[[1,\"\\n    \"],[10,0],[14,0,\"columns inline-definitions\"],[12],[1,\"\\n      \"],[10,0],[14,0,\"column is-3\"],[12],[1,\"\\n        \"],[10,1],[14,0,\"icon-field\"],[12],[1,\"\\n          \"],[10,1],[14,0,\"icon-container\"],[15,\"title\",[29,[[52,[30,2,[\"item\",\"error\"]],\"Error event\"]]]],[12],[1,\"\\n\"],[41,[30,2,[\"item\",\"error\"]],[[[1,\"              \"],[1,[28,[35,2],[\"cancel-circle-fill\"],[[\"class\"],[\"is-danger\"]]]],[1,\"\\n\"]],[]],null],[1,\"          \"],[13],[1,\"\\n          \"],[10,1],[15,\"title\",[29,[[28,[37,3],[[30,2,[\"item\",\"time\"]]],null]]]],[12],[1,\"\\n            \"],[1,[28,[35,4],[[30,2,[\"item\",\"time\"]]],null]],[1,\"\\n          \"],[13],[1,\"\\n        \"],[13],[1,\"\\n      \"],[13],[1,\"\\n      \"],[10,0],[14,0,\"column is-2\"],[12],[1,\"\\n\"],[41,[30,2,[\"item\",\"hasCount\"]],[[[1,\"          \"],[10,1],[14,0,\"tooltip\"],[15,\"aria-label\",[29,[\"Count\\n              \",[52,[30,2,[\"item\",\"increased\"]],\"increased\",\"decreased\"],\"\\n               to\\n              \",[30,2,[\"item\",\"count\"]]]]],[12],[1,\"\\n\"],[41,[30,2,[\"item\",\"increased\"]],[[[1,\"              \"],[1,[28,[35,2],[\"arrow-up\"],[[\"class\"],[\"is-danger\"]]]],[1,\"\\n\"]],[]],[[[1,\"              \"],[1,[28,[35,2],[\"arrow-down\"],[[\"class\"],[\"is-primary\"]]]],[1,\"\\n\"]],[]]],[1,\"          \"],[13],[1,\"\\n          \"],[10,1],[12],[1,\"\\n            \"],[1,[30,2,[\"item\",\"count\"]]],[1,\"\\n          \"],[13],[1,\"\\n\"]],[]],null],[1,\"      \"],[13],[1,\"\\n      \"],[10,0],[14,0,\"column\"],[12],[1,\"\\n        \"],[1,[30,2,[\"item\",\"message\"]]],[1,\"\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n  \"]],[]]]]],[1,\"\\n  \"],[8,[30,2,[\"body\"]],null,[[\"@fullBleed\"],[true]],[[\"default\"],[[[[1,\"\\n    \"],[8,[39,5],null,[[\"@json\",\"@fluidHeight\"],[[30,2,[\"item\",\"meta\"]],true]],null],[1,\"\\n  \"]],[]]]]],[1,\"\\n\"]],[2]]]]]],[\"@events\",\"a\"],false,[\"list-accordion\",\"if\",\"x-icon\",\"format-ts\",\"format-month-ts\",\"json-viewer\"]]",
    "moduleName": "nomad-ui/templates/components/scale-events-accordion.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/scale-events-chart", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "xjPJ2Sep",
    "block": "[[[8,[39,0],null,[[\"@timeseries\",\"@xProp\",\"@yProp\",\"@data\"],[true,\"time\",\"count\",[30,0,[\"data\"]]]],[[\"svg\",\"after\"],[[[[1,\"\\n    \"],[8,[30,1,[\"Area\"]],null,[[\"@curve\",\"@data\"],[\"stepAfter\",[30,0,[\"data\"]]]],null],[1,\"\\n  \"]],[1]],[[[1,\"\\n    \"],[8,[30,2,[\"Tooltip\"]],[[24,0,\"is-snappy\"]],null,[[\"default\"],[[[[1,\"\\n      \"],[10,\"li\"],[12],[1,\"\\n        \"],[10,1],[14,0,\"label\"],[12],[10,1],[14,0,\"color-swatch is-primary\"],[12],[13],[1,[30,4,[\"formattedX\"]]],[13],[1,\"\\n        \"],[10,1],[14,0,\"value\"],[12],[1,[30,4,[\"formattedY\"]]],[13],[1,\"\\n      \"],[13],[1,\"\\n    \"]],[3,4]]]]],[1,\"\\n    \"],[8,[30,2,[\"VAnnotations\"]],null,[[\"@annotations\",\"@key\",\"@activeAnnotation\",\"@annotationClick\"],[[30,0,[\"annotations\"]],\"event.uid\",[30,0,[\"activeEvent\"]],[28,[37,1],[[30,0],[30,0,[\"toggleEvent\"]]],null]]],null],[1,\"\\n  \"]],[2]]]]],[1,\"\\n\"],[41,[30,0,[\"activeEvent\"]],[[[1,\"  \"],[10,0],[12],[1,\"\\n    \"],[10,0],[14,0,\"event\"],[12],[1,\"\\n      \"],[10,0],[14,0,\"type\"],[12],[1,\"\\n\"],[41,[30,0,[\"activeEvent\",\"event\",\"error\"]],[[[1,\"          \"],[1,[28,[35,3],[\"cancel-circle-fill\"],[[\"class\"],[\"is-danger\"]]]],[1,\"\\n\"]],[]],[[[1,\"          \"],[1,[28,[35,3],[\"info-circle-fill\"],[[\"class\"],[\"is-grey\"]]]],[1,\"\\n\"]],[]]],[1,\"      \"],[13],[1,\"\\n      \"],[10,0],[12],[1,\"\\n        \"],[10,2],[14,0,\"timestamp\"],[12],[1,[28,[35,4],[[30,0,[\"activeEvent\",\"event\",\"time\"]]],null]],[13],[1,\"\\n        \"],[10,2],[14,0,\"message\"],[12],[1,[30,0,[\"activeEvent\",\"event\",\"message\"]]],[13],[1,\"\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n    \"],[8,[39,5],null,[[\"@json\",\"@fluidHeight\"],[[30,0,[\"activeEvent\",\"event\",\"meta\"]],true]],null],[1,\"\\n  \"],[13],[1,\"\\n\"]],[]],null]],[\"c\",\"c\",\"series\",\"datum\"],false,[\"line-chart\",\"action\",\"if\",\"x-icon\",\"format-month-ts\",\"json-viewer\"]]",
    "moduleName": "nomad-ui/templates/components/scale-events-chart.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/search-box", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "SsqN3RNb",
    "block": "[[[10,0],[14,0,\"control\"],[12],[1,\"\\n  \"],[10,1],[14,0,\"prefix-icon\"],[12],[1,[28,[35,0],[\"search\"],null]],[13],[1,\"\\n  \"],[10,\"input\"],[15,0,[29,[\"input \",[30,0,[\"inputClass\"]]]]],[15,\"placeholder\",[30,0,[\"placeholder\"]]],[15,\"aria-label\",[30,0,[\"placeholder\"]]],[15,2,[30,0,[\"_searchTerm\"]]],[15,\"oninput\",[28,[37,1],[[30,0],\"setSearchTerm\"],null]],[14,\"size\",\"1\"],[14,4,\"text\"],[12],[13],[1,\"\\n  \"],[10,\"button\"],[14,0,\"suffix-icon\"],[15,\"onclick\",[28,[37,1],[[30,0],\"clear\"],null]],[14,\"title\",\"Clear search\"],[14,4,\"button\"],[12],[1,[28,[35,0],[\"cancel\"],null]],[13],[1,\"\\n\"],[13],[1,\"\\n\"]],[],false,[\"x-icon\",\"action\"]]",
    "moduleName": "nomad-ui/templates/components/search-box.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/server-agent-row", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "zquCNVGd",
    "block": "[[[11,\"td\"],[4,[38,0],null,[[\"enumerated\",\"action\"],[true,[28,[37,1],[[30,0],[30,0,[\"goToAgent\"]]],null]]]],[12],[8,[39,2],[[24,0,\"is-primary\"]],[[\"@route\",\"@model\"],[\"servers.server\",[30,0,[\"agent\",\"id\"]]]],[[\"default\"],[[[[1,[30,0,[\"agent\",\"name\"]]]],[]]]]],[13],[1,\"\\n\"],[10,\"td\"],[12],[1,[30,0,[\"agent\",\"status\"]]],[13],[1,\"\\n\"],[10,\"td\"],[12],[1,[52,[30,0,[\"agent\",\"isLeader\"]],\"True\",\"False\"]],[13],[1,\"\\n\"],[10,\"td\"],[14,0,\"is-200px is-truncatable\"],[12],[1,[30,0,[\"agent\",\"address\"]]],[13],[1,\"\\n\"],[10,\"td\"],[12],[1,[30,0,[\"agent\",\"serfPort\"]]],[13],[1,\"\\n\"],[10,\"td\"],[12],[1,[30,0,[\"agent\",\"datacenter\"]]],[13],[1,\"\\n\"],[10,\"td\"],[12],[1,[30,0,[\"agent\",\"version\"]]],[13],[1,\"\\n\"]],[],false,[\"keyboard-shortcut\",\"action\",\"link-to\",\"if\"]]",
    "moduleName": "nomad-ui/templates/components/server-agent-row.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/server-subnav", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "Urw8eqT2",
    "block": "[[[11,0],[24,0,\"tabs is-subnav\"],[4,[38,0],[[30,0,[\"keyboard\",\"registerNav\"]]],[[\"type\"],[\"subnav\"]]],[4,[38,1],[[30,0,[\"keyboard\",\"unregisterSubnav\"]]],null],[12],[1,\"\\n  \"],[10,\"ul\"],[12],[1,\"\\n    \"],[10,\"li\"],[12],[8,[39,2],null,[[\"@route\",\"@model\",\"@activeClass\"],[\"servers.server.index\",[30,0,[\"server\"]],\"is-active\"]],[[\"default\"],[[[[1,\"Overview\"]],[]]]]],[13],[1,\"\\n    \"],[10,\"li\"],[12],[8,[39,2],null,[[\"@route\",\"@model\",\"@activeClass\"],[\"servers.server.monitor\",[30,0,[\"server\"]],\"is-active\"]],[[\"default\"],[[[[1,\"Monitor\"]],[]]]]],[13],[1,\"\\n  \"],[13],[1,\"\\n\"],[13],[1,\"\\n\"]],[],false,[\"did-insert\",\"will-destroy\",\"link-to\"]]",
    "moduleName": "nomad-ui/templates/components/server-subnav.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/stats-time-series", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "dbdG2c2P",
    "block": "[[[8,[39,0],null,[[\"@data\",\"@dataProp\",\"@xProp\",\"@yProp\",\"@chartClass\",\"@timeseries\",\"@title\",\"@description\",\"@xScale\",\"@yScale\",\"@xFormat\",\"@yFormat\"],[[30,1],[30,2],\"timestamp\",[52,[30,2],\"percentStack\",\"percent\"],[30,3],true,\"Stats Time Series Chart\",[30,0,[\"description\"]],[28,[37,2],[[30,0,[\"xScale\"]],[30,0]],null],[28,[37,2],[[30,0,[\"yScale\"]],[30,0]],null],[30,0,[\"xFormat\"]],[30,0,[\"yFormat\"]]]],[[\"svg\",\"after\"],[[[[1,\"\\n\"],[41,[30,0,[\"useDefaults\"]],[[[1,\"      \"],[8,[30,4,[\"Area\"]],null,[[\"@data\",\"@colorClass\"],[[30,1],[30,3]]],null],[1,\"\\n\"]],[]],null],[1,\"    \"],[18,8,[[30,4]]],[1,\"\\n  \"]],[4]],[[[1,\"\\n\"],[41,[30,0,[\"useDefaults\"]],[[[1,\"      \"],[8,[30,5,[\"Tooltip\"]],[[24,0,\"is-snappy\"]],null,[[\"default\"],[[[[1,\"\\n        \"],[10,\"li\"],[12],[1,\"\\n          \"],[10,1],[14,0,\"label\"],[12],[10,1],[15,0,[29,[\"color-swatch \",[30,3]]]],[12],[13],[1,[30,7,[\"formattedX\"]]],[13],[1,\"\\n          \"],[10,1],[14,0,\"value\"],[12],[1,[30,7,[\"formattedY\"]]],[13],[1,\"\\n        \"],[13],[1,\"\\n      \"]],[6,7]]]]],[1,\"\\n\"]],[]],null],[1,\"    \"],[18,9,[[30,5]]],[1,\"\\n  \"]],[5]]]]],[1,\"\\n\"]],[\"@data\",\"@dataProp\",\"@chartClass\",\"c\",\"c\",\"series\",\"datum\",\"&svg\",\"&after\"],false,[\"line-chart\",\"if\",\"bind\",\"yield\"]]",
    "moduleName": "nomad-ui/templates/components/stats-time-series.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/stepper-input", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "dQZ6OPCa",
    "block": "[[[10,\"label\"],[15,\"for\",[29,[\"stepper-input-\",[30,0,[\"elementId\"]]]]],[14,0,\"stepper-input-label\"],[12],[18,1,null],[13],[1,\"\\n\"],[10,\"input\"],[15,\"min\",[30,0,[\"min\"]]],[15,\"max\",[30,0,[\"max\"]]],[15,2,[30,0,[\"internalValue\"]]],[15,\"disabled\",[30,0,[\"disabled\"]]],[15,1,[29,[\"stepper-input-\",[30,0,[\"elementId\"]]]]],[14,0,\"stepper-input-input\"],[15,\"onFocus\",[28,[37,1],[[30,0],\"selectValue\"],null]],[15,\"onKeyUp\",[28,[37,1],[[30,0],\"resetTextInput\"],null]],[15,\"onChange\",[28,[37,1],[[30,0],\"setValue\"],null]],[14,4,\"number\"],[12],[13],[1,\"\\n\"],[10,\"button\"],[14,\"role\",\"button\"],[14,\"aria-label\",\"decrement\"],[15,0,[29,[\"stepper-input-stepper button \",[30,0,[\"class\"]]]]],[15,\"disabled\",[28,[37,2],[[30,0,[\"disabled\"]],[28,[37,3],[[30,0,[\"internalValue\"]],[30,0,[\"min\"]]],null]],null]],[15,\"onclick\",[28,[37,1],[[30,0],\"decrement\"],null]],[14,4,\"button\"],[12],[1,\"\\n  \"],[1,[28,[35,4],[\"minus-plain\"],null]],[1,\"\\n\"],[13],[1,\"\\n\"],[10,\"button\"],[14,\"role\",\"button\"],[14,\"aria-label\",\"increment\"],[15,0,[29,[\"stepper-input-stepper button \",[30,0,[\"class\"]]]]],[15,\"disabled\",[28,[37,2],[[30,0,[\"disabled\"]],[28,[37,5],[[30,0,[\"internalValue\"]],[30,0,[\"max\"]]],null]],null]],[15,\"onclick\",[28,[37,1],[[30,0],\"increment\"],null]],[14,4,\"button\"],[12],[1,\"\\n  \"],[1,[28,[35,4],[\"plus-plain\"],null]],[1,\"\\n\"],[13],[1,\"\\n\"]],[\"&default\"],false,[\"yield\",\"action\",\"or\",\"lte\",\"x-icon\",\"gte\"]]",
    "moduleName": "nomad-ui/templates/components/stepper-input.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/storage-subnav", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "MmiNIOdi",
    "block": "[[[11,0],[24,0,\"tabs is-subnav\"],[4,[38,0],[[30,0,[\"keyboard\",\"registerNav\"]]],[[\"type\"],[\"subnav\"]]],[4,[38,1],[[30,0,[\"keyboard\",\"unregisterSubnav\"]]],null],[12],[1,\"\\n  \"],[10,\"ul\"],[12],[1,\"\\n    \"],[10,\"li\"],[12],[1,\"\\n      \"],[8,[39,2],null,[[\"@route\",\"@activeClass\"],[\"csi.volumes.index\",\"is-active\"]],[[\"default\"],[[[[1,\"\\n        Volumes\\n      \"]],[]]]]],[1,\"\\n    \"],[13],[1,\"\\n    \"],[10,\"li\"],[12],[1,\"\\n      \"],[8,[39,2],null,[[\"@route\",\"@activeClass\"],[\"csi.plugins.index\",\"is-active\"]],[[\"default\"],[[[[1,\"\\n        Plugins\\n      \"]],[]]]]],[1,\"\\n    \"],[13],[1,\"\\n  \"],[13],[1,\"\\n\"],[13],[1,\"\\n\"]],[],false,[\"did-insert\",\"will-destroy\",\"link-to\"]]",
    "moduleName": "nomad-ui/templates/components/storage-subnav.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/streaming-file", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "1dn8JnBb",
    "block": "[[[10,\"code\"],[15,0,[52,[30,1],\"wrapped\"]],[12],[1,[30,0,[\"logger\",\"output\"]]],[13]],[\"@wrapped\"],false,[\"if\"]]",
    "moduleName": "nomad-ui/templates/components/streaming-file.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/svg-patterns", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "ul5nizr6",
    "block": "[[[10,\"svg\"],[14,0,\"svg-pattern\"],[14,\"height\",\"0\"],[14,\"width\",\"0\"],[14,\"xmlns\",\"http://www.w3.org/2000/svg\",\"http://www.w3.org/2000/xmlns/\"],[14,\"version\",\"1.1\"],[12],[1,\"\\n \"],[10,\"defs\"],[12],[1,\"\\n\\n\"],[1,\" \"],[10,\"pattern\"],[14,1,\"diagonal-stripe-3\"],[14,\"patternUnits\",\"userSpaceOnUse\"],[14,\"width\",\"10\"],[14,\"height\",\"10\"],[12],[1,\"\\n  \"],[10,\"image\"],[14,\"xlink:href\",\"data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScxMCcgaGVpZ2h0PScxMCc+CiAgPHJlY3Qgd2lkdGg9JzEwJyBoZWlnaHQ9JzEwJyBmaWxsPSd3aGl0ZScvPgogIDxwYXRoIGQ9J00tMSwxIGwyLC0yCiAgICAgICAgICAgTTAsMTAgbDEwLC0xMAogICAgICAgICAgIE05LDExIGwyLC0yJyBzdHJva2U9J2JsYWNrJyBzdHJva2Utd2lkdGg9JzMnLz4KPC9zdmc+\",\"http://www.w3.org/1999/xlink\"],[14,\"x\",\"0\"],[14,\"y\",\"0\"],[14,\"width\",\"10\"],[14,\"height\",\"10\"],[12],[13],[1,\"\\n \"],[13],[1,\"\\n\\n  \"],[10,\"linearGradient\"],[14,0,\"das-gradient\"],[14,1,\"recommendation-chart-decrease-gradient\"],[14,\"x2\",\"100%\"],[14,\"y2\",\"0\"],[12],[1,\"\\n    \"],[10,\"stop\"],[14,\"offset\",\"0%\"],[14,\"stop-color\",\"var(--full-color)\"],[12],[13],[1,\"\\n    \"],[10,\"stop\"],[14,\"offset\",\"100%\"],[14,\"stop-color\",\"var(--faint-color)\"],[12],[13],[1,\"\\n  \"],[13],[1,\"\\n  \"],[10,\"linearGradient\"],[14,0,\"das-gradient\"],[14,1,\"recommendation-chart-increase-gradient\"],[14,\"x2\",\"100%\"],[14,\"y2\",\"0\"],[12],[1,\"\\n    \"],[10,\"stop\"],[14,\"offset\",\"0%\"],[14,\"stop-color\",\"var(--faint-color)\"],[12],[13],[1,\"\\n    \"],[10,\"stop\"],[14,\"offset\",\"100%\"],[14,\"stop-color\",\"var(--full-color)\"],[12],[13],[1,\"\\n  \"],[13],[1,\"\\n\\n \"],[13],[1,\"\\n\"],[13],[1,\"\\n\"]],[],false,[]]",
    "moduleName": "nomad-ui/templates/components/svg-patterns.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/task-group-row", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "AMiCzcsZ",
    "block": "[[[10,\"td\"],[12],[1,\"\\n  \"],[8,[39,0],[[24,0,\"is-primary\"]],[[\"@route\",\"@models\"],[\"jobs.job.task-group\",[28,[37,1],[[30,0,[\"taskGroup\",\"job\"]],[30,0,[\"taskGroup\"]]],null]]],[[\"default\"],[[[[1,\"\\n    \"],[1,[30,0,[\"taskGroup\",\"name\"]]],[1,\"\\n  \"]],[]]]]],[1,\"\\n\"],[13],[1,\"\\n\"],[10,\"td\"],[14,0,\"nowrap\"],[12],[1,\"\\n  \"],[1,[30,0,[\"count\"]]],[1,\"\\n\"],[41,[30,0,[\"taskGroup\",\"scaling\"]],[[[1,\"  \"],[10,0],[15,0,[29,[\"button-bar is-shadowless is-text bumper-left \",[52,[28,[37,3],[[30,0,[\"runningDeployment\"]],[28,[37,4],[\"scale job\"],[[\"namespace\"],[[30,0,[\"namespace\"]]]]]],null],\"tooltip multiline\"]]]],[15,\"aria-label\",[30,0,[\"tooltipText\"]]],[12],[1,\"\\n      \"],[10,\"button\"],[14,\"role\",\"button\"],[14,\"aria-label\",\"decrement\"],[14,0,\"button is-xsmall is-light\"],[15,\"disabled\",[28,[37,3],[[30,0,[\"isMinimum\"]],[30,0,[\"runningDeployment\"]],[28,[37,4],[\"scale job\"],[[\"namespace\"],[[30,0,[\"namespace\"]]]]]],null]],[15,\"onclick\",[28,[37,5],[[30,0],\"countDown\"],null]],[14,4,\"button\"],[12],[1,\"\\n        \"],[1,[28,[35,6],[\"minus-plain\"],[[\"class\"],[\"is-text\"]]]],[1,\"\\n      \"],[13],[1,\"\\n      \"],[10,\"button\"],[14,\"role\",\"button\"],[14,\"aria-label\",\"increment\"],[14,0,\"button is-xsmall is-light\"],[15,\"disabled\",[28,[37,3],[[30,0,[\"isMaximum\"]],[30,0,[\"runningDeployment\"]],[28,[37,4],[\"scale job\"],[[\"namespace\"],[[30,0,[\"namespace\"]]]]]],null]],[15,\"onclick\",[28,[37,5],[[30,0],\"countUp\"],null]],[14,4,\"button\"],[12],[1,\"\\n        \"],[1,[28,[35,6],[\"plus-plain\"],[[\"class\"],[\"is-text\"]]]],[1,\"\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n\"]],[]],null],[13],[1,\"\\n\"],[10,\"td\"],[12],[1,\"\\n  \"],[10,0],[14,0,\"inline-chart\"],[12],[8,[39,7],null,[[\"@allocationContainer\",\"@isNarrow\"],[[30,0,[\"taskGroup\",\"summary\"]],true]],null],[13],[1,\"\\n\"],[13],[1,\"\\n\"],[10,\"td\"],[12],[1,[52,[30,0,[\"taskGroup\",\"volumes\",\"length\"]],\"Yes\"]],[13],[1,\"\\n\"],[10,\"td\"],[12],[1,[28,[35,8],[[30,0,[\"taskGroup\",\"reservedCPU\"]]],null]],[13],[1,\"\\n\"],[10,\"td\"],[12],[1,[28,[35,9],[[30,0,[\"taskGroup\",\"reservedMemory\"]]],[[\"start\"],[\"MiB\"]]]],[13],[1,\"\\n\"],[10,\"td\"],[12],[1,[28,[35,9],[[30,0,[\"taskGroup\",\"reservedEphemeralDisk\"]]],[[\"start\"],[\"MiB\"]]]],[13],[1,\"\\n\"]],[],false,[\"link-to\",\"array\",\"if\",\"or\",\"cannot\",\"action\",\"x-icon\",\"allocation-status-bar\",\"format-scheduled-hertz\",\"format-scheduled-bytes\"]]",
    "moduleName": "nomad-ui/templates/components/task-group-row.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/task-log", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "HHDHGPfR",
    "block": "[[[41,[30,0,[\"noConnection\"]],[[[1,\"  \"],[10,0],[14,0,\"notification is-error\"],[12],[1,\"\\n    \"],[10,0],[14,0,\"columns\"],[12],[1,\"\\n      \"],[10,0],[14,0,\"column\"],[12],[1,\"\\n        \"],[10,\"h3\"],[14,0,\"title is-4\"],[12],[1,\"Cannot fetch logs\"],[13],[1,\"\\n        \"],[10,2],[12],[1,\"The logs for this task are inaccessible. Check the condition of the node the allocation is on.\"],[13],[1,\"\\n      \"],[13],[1,\"\\n      \"],[10,0],[14,0,\"column is-centered is-minimum\"],[12],[1,\"\\n        \"],[10,\"button\"],[14,0,\"button is-danger\"],[15,\"onclick\",[28,[37,1],[[30,0],[28,[37,2],[[30,0,[\"noConnection\"]]],null],false],null]],[14,4,\"button\"],[12],[1,\"Okay\"],[13],[1,\"\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n  \"],[13],[1,\"\\n\"]],[]],null],[10,0],[14,0,\"boxed-section-head task-log-head\"],[12],[1,\"\\n  \"],[10,1],[12],[1,\"\\n    \"],[11,\"button\"],[16,0,[29,[\"button \",[52,[28,[37,3],[[30,0,[\"mode\"]],\"stdout\"],null],\"is-info\"]]]],[24,4,\"button\"],[4,[38,1],[[30,0],\"setMode\",\"stdout\"],null],[12],[1,\"stdout\"],[13],[1,\"\\n    \"],[11,\"button\"],[16,0,[29,[\"button \",[52,[28,[37,3],[[30,0,[\"mode\"]],\"stderr\"],null],\"is-danger\"]]]],[24,4,\"button\"],[4,[38,1],[[30,0],\"setMode\",\"stderr\"],null],[12],[1,\"stderr\"],[13],[1,\"\\n  \"],[13],[1,\"\\n  \"],[10,1],[14,0,\"pull-right\"],[12],[1,\"\\n    \"],[10,1],[14,0,\"header-toggle\"],[12],[1,\"\\n      \"],[8,[39,4],[[16,\"checked\",[30,0,[\"wrapped\"]]],[4,[38,5],null,[[\"label\",\"action\",\"pattern\",\"menuLevel\"],[\"Toggle word wrap\",[28,[37,1],[[30,0],\"toggleWrap\"],null],[28,[37,6],[\"w\",\"w\"],null],true]]],[4,[38,7],[\"change\",[30,0,[\"toggleWrap\"]]],null]],null,[[\"default\"],[[[[1,\"\\n        \"],[8,[30,1,[\"Label\"]],null,null,[[\"default\"],[[[[1,\"Word Wrap\"]],[]]]]],[1,\"\\n      \"]],[1]]]]],[1,\"\\n    \"],[13],[1,\"\\n    \"],[10,\"button\"],[14,0,\"button is-white\"],[15,\"onclick\",[28,[37,1],[[30,0],\"gotoHead\"],null]],[14,4,\"button\"],[12],[1,\"Head\"],[13],[1,\"\\n    \"],[10,\"button\"],[14,0,\"button is-white\"],[15,\"onclick\",[28,[37,1],[[30,0],\"gotoTail\"],null]],[14,4,\"button\"],[12],[1,\"Tail\"],[13],[1,\"\\n    \"],[10,\"button\"],[14,0,\"button is-white\"],[15,\"onclick\",[28,[37,1],[[30,0],\"toggleStream\"],null]],[15,\"title\",[29,[[52,[30,0,[\"logger\",\"isStreaming\"]],\"Stop\",\"Start\"],\" log streaming\"]]],[14,4,\"button\"],[12],[1,\"\\n      \"],[1,[28,[35,8],[[52,[30,0,[\"logger\",\"isStreaming\"]],\"media-pause\",\"media-play\"]],[[\"class\"],[\"is-text\"]]]],[1,\"\\n    \"],[13],[1,\"\\n  \"],[13],[1,\"\\n\"],[13],[1,\"\\n\"],[10,0],[14,0,\"boxed-section-body is-dark is-full-bleed\"],[12],[1,\"\\n  \"],[8,[39,9],null,[[\"@logger\",\"@mode\",\"@isStreaming\",\"@shouldFillHeight\",\"@wrapped\"],[[30,0,[\"logger\"]],[30,0,[\"streamMode\"]],[30,0,[\"isStreaming\"]],[30,0,[\"shouldFillHeight\"]],[30,0,[\"wrapped\"]]]],null],[1,\"\\n\"],[13],[1,\"\\n\"]],[\"F\"],false,[\"if\",\"action\",\"mut\",\"eq\",\"hds/form/toggle/field\",\"keyboard-shortcut\",\"array\",\"on\",\"x-icon\",\"streaming-file\"]]",
    "moduleName": "nomad-ui/templates/components/task-log.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/task-row", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "g8Y+Icxh",
    "block": "[[[10,\"td\"],[14,0,\"is-narrow\"],[12],[1,\"\\n\"],[41,[51,[30,0,[\"task\",\"driverStatus\",\"healthy\"]]],[[[1,\"    \"],[10,1],[14,0,\"tooltip text-center\"],[15,\"aria-label\",[29,[[30,0,[\"task\",\"driver\"]],\" is unhealthy\"]]],[12],[1,\"\\n      \"],[1,[28,[35,1],[\"alert-triangle\"],[[\"class\"],[\"is-warning\"]]]],[1,\"\\n    \"],[13],[1,\"\\n\"]],[]],null],[13],[1,\"\\n\"],[10,\"td\"],[14,0,\"nowrap\"],[12],[1,\"\\n  \"],[8,[39,2],[[24,0,\"is-primary\"]],[[\"@route\",\"@models\"],[\"allocations.allocation.task\",[28,[37,3],[[30,0,[\"task\",\"allocation\"]],[30,0,[\"task\"]]],null]]],[[\"default\"],[[[[1,\"\\n    \"],[1,[30,0,[\"task\",\"name\"]]],[1,\"\\n\"],[41,[30,0,[\"task\",\"isConnectProxy\"]],[[[1,\"      \"],[8,[39,5],null,[[\"@class\"],[\"bumper-left\"]],null],[1,\"\\n\"]],[]],null],[1,\"  \"]],[]]]]],[1,\"\\n\"],[13],[1,\"\\n\"],[10,\"td\"],[12],[1,\"\\n  \"],[1,[30,0,[\"task\",\"state\"]]],[1,\"\\n\"],[13],[1,\"\\n\"],[10,\"td\"],[12],[1,\"\\n\"],[41,[30,0,[\"task\",\"events\",\"lastObject\",\"message\"]],[[[1,\"    \"],[1,[30,0,[\"task\",\"events\",\"lastObject\",\"message\"]]],[1,\"\\n\"]],[]],[[[1,\"    \"],[10,\"em\"],[12],[1,\"\\n      No message\\n    \"],[13],[1,\"\\n\"]],[]]],[13],[1,\"\\n\"],[10,\"td\"],[12],[1,\"\\n  \"],[1,[28,[35,6],[[30,0,[\"task\",\"events\",\"lastObject\",\"time\"]]],null]],[1,\"\\n\"],[13],[1,\"\\n\"],[10,\"td\"],[12],[1,\"\\n  \"],[10,\"ul\"],[12],[1,\"\\n\"],[42,[28,[37,8],[[28,[37,8],[[30,0,[\"task\",\"task\",\"volumeMounts\"]]],null]],null],null,[[[1,\"      \"],[10,\"li\"],[12],[1,\"\\n        \"],[10,\"strong\"],[12],[1,\"\\n          \"],[1,[30,1,[\"volume\"]]],[1,\"\\n          :\\n        \"],[13],[1,\"\\n\"],[41,[30,1,[\"isCSI\"]],[[[1,\"          \"],[8,[39,2],null,[[\"@route\",\"@model\"],[\"csi.volumes.volume\",[28,[37,9],[[28,[37,10],null,[[\"source\",\"isPerAlloc\",\"volumeExtension\"],[[30,1,[\"source\"]],[30,1,[\"volumeDeclaration\",\"perAlloc\"]],[30,0,[\"task\",\"allocation\",\"volumeExtension\"]]]]],\"@\",[30,1,[\"namespace\",\"id\"]]],null]]],[[\"default\"],[[[[1,\"\\n          \"],[1,[28,[35,10],null,[[\"source\",\"isPerAlloc\",\"volumeExtension\"],[[30,1,[\"source\"]],[30,1,[\"volumeDeclaration\",\"perAlloc\"]],[30,0,[\"task\",\"allocation\",\"volumeExtension\"]]]]]],[1,\"\\n          \"]],[]]]]],[1,\"\\n\"]],[]],[[[1,\"          \"],[1,[30,1,[\"source\"]]],[1,\"\\n\"]],[]]],[1,\"      \"],[13],[1,\"\\n\"]],[1]],null],[1,\"  \"],[13],[1,\"\\n\"],[13],[1,\"\\n\"],[10,\"td\"],[14,0,\"is-1 has-text-centered\"],[12],[1,\"\\n\"],[41,[30,0,[\"task\",\"isRunning\"]],[[[41,[28,[37,11],[[28,[37,12],[[30,0,[\"cpu\"]]],null],[30,0,[\"fetchStats\",\"isRunning\"]]],null],[[[1,\"      ...\\n\"]],[]],[[[41,[30,0,[\"statsError\"]],[[[1,\"      \"],[10,1],[14,0,\"tooltip text-center\"],[14,\"role\",\"tooltip\"],[14,\"aria-label\",\"Couldn't collect stats\"],[12],[1,\"\\n        \"],[1,[28,[35,1],[\"alert-triangle\"],[[\"class\"],[\"is-warning\"]]]],[1,\"\\n      \"],[13],[1,\"\\n\"]],[]],[[[1,\"      \"],[10,0],[14,0,\"inline-chart is-small tooltip\"],[14,\"role\",\"tooltip\"],[15,\"aria-label\",[29,[[28,[37,13],[[30,0,[\"cpu\",\"used\"]]],null],\"\\n           /\\n          \",[28,[37,13],[[30,0,[\"taskStats\",\"reservedCPU\"]]],null]]]],[12],[1,\"\\n        \"],[10,\"progress\"],[14,0,\"progress is-info is-small\"],[15,2,[29,[[30,0,[\"cpu\",\"percent\"]]]]],[14,\"max\",\"1\"],[12],[1,\"\\n          \"],[1,[30,0,[\"cpu\",\"percent\"]]],[1,\"\\n        \"],[13],[1,\"\\n      \"],[13],[1,\"\\n    \"]],[]]]],[]]]],[]],null],[13],[1,\"\\n\"],[10,\"td\"],[14,0,\"is-1 has-text-centered\"],[12],[1,\"\\n\"],[41,[30,0,[\"task\",\"isRunning\"]],[[[41,[28,[37,11],[[28,[37,12],[[30,0,[\"memory\"]]],null],[30,0,[\"fetchStats\",\"isRunning\"]]],null],[[[1,\"      ...\\n\"]],[]],[[[41,[30,0,[\"statsError\"]],[[[1,\"      \"],[10,1],[14,0,\"tooltip is-small text-center\"],[14,\"role\",\"tooltip\"],[14,\"aria-label\",\"Couldn't collect stats\"],[12],[1,\"\\n        \"],[1,[28,[35,1],[\"alert-triangle\"],[[\"class\"],[\"is-warning\"]]]],[1,\"\\n      \"],[13],[1,\"\\n\"]],[]],[[[1,\"      \"],[10,0],[14,0,\"inline-chart tooltip\"],[14,\"role\",\"tooltip\"],[15,\"aria-label\",[29,[[28,[37,14],[[30,0,[\"memory\",\"used\"]]],null],\"\\n           /\\n          \",[28,[37,14],[[30,0,[\"taskStats\",\"reservedMemory\"]]],[[\"start\"],[\"MiB\"]]]]]],[12],[1,\"\\n        \"],[10,\"progress\"],[14,0,\"progress is-danger is-small\"],[15,2,[29,[[30,0,[\"memory\",\"percent\"]]]]],[14,\"max\",\"1\"],[12],[1,\"\\n          \"],[1,[30,0,[\"memory\",\"percent\"]]],[1,\"\\n        \"],[13],[1,\"\\n      \"],[13],[1,\"\\n    \"]],[]]]],[]]]],[]],null],[13]],[\"volume\"],false,[\"unless\",\"x-icon\",\"link-to\",\"array\",\"if\",\"proxy-tag\",\"format-ts\",\"each\",\"-track-array\",\"concat\",\"format-volume-name\",\"and\",\"not\",\"format-hertz\",\"format-bytes\"]]",
    "moduleName": "nomad-ui/templates/components/task-row.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/task-subnav", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "AXbKB9kt",
    "block": "[[[11,0],[24,0,\"tabs is-subnav\"],[4,[38,0],[[30,0,[\"keyboard\",\"registerNav\"]]],[[\"type\"],[\"subnav\"]]],[4,[38,1],[[30,0,[\"keyboard\",\"unregisterSubnav\"]]],null],[12],[1,\"\\n  \"],[10,\"ul\"],[12],[1,\"\\n    \"],[10,\"li\"],[12],[8,[39,2],null,[[\"@route\",\"@models\",\"@activeClass\"],[\"allocations.allocation.task.index\",[28,[37,3],[[30,0,[\"task\",\"allocation\"]],[30,0,[\"task\"]]],null],\"is-active\"]],[[\"default\"],[[[[1,\"Overview\"]],[]]]]],[13],[1,\"\\n    \"],[10,\"li\"],[12],[8,[39,2],null,[[\"@route\",\"@models\",\"@activeClass\"],[\"allocations.allocation.task.logs\",[28,[37,3],[[30,0,[\"task\",\"allocation\"]],[30,0,[\"task\"]]],null],\"is-active\"]],[[\"default\"],[[[[1,\"Logs\"]],[]]]]],[13],[1,\"\\n    \"],[10,\"li\"],[12],[8,[39,2],[[16,0,[52,[30,0,[\"filesLinkActive\"]],\"is-active\"]]],[[\"@route\",\"@models\"],[\"allocations.allocation.task.fs-root\",[28,[37,3],[[30,0,[\"task\",\"allocation\"]],[30,0,[\"task\"]]],null]]],[[\"default\"],[[[[1,\"Files\"]],[]]]]],[13],[1,\"\\n  \"],[13],[1,\"\\n\"],[13],[1,\"\\n\"]],[],false,[\"did-insert\",\"will-destroy\",\"link-to\",\"array\",\"if\"]]",
    "moduleName": "nomad-ui/templates/components/task-subnav.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/toggle", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "WvO6meYZ",
    "block": "[[[10,\"input\"],[15,\"checked\",[30,0,[\"isActive\"]]],[15,\"disabled\",[30,0,[\"isDisabled\"]]],[14,0,\"input\"],[15,\"onchange\",[28,[37,0],[[30,0],[30,0,[\"onToggle\"]]],null]],[14,4,\"checkbox\"],[12],[13],[1,\"\\n\"],[10,1],[14,0,\"toggler\"],[12],[13],[1,\"\\n\"],[18,1,null],[1,\"\\n\"]],[\"&default\"],false,[\"action\",\"yield\"]]",
    "moduleName": "nomad-ui/templates/components/toggle.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/tooltip", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "QIwIBPqq",
    "block": "[[[41,[30,0,[\"condition\"]],[[[1,\"  \"],[10,1],[15,0,[28,[37,1],[\"tooltip\",[52,[30,1],\" multiline\"]],null]],[15,\"aria-label\",[52,[30,1],[30,2],[30,0,[\"text\"]]]],[12],[1,\"\\n    \"],[18,3,null],[1,\"\\n  \"],[13],[1,\"\\n\"]],[]],[[[1,\"  \"],[18,3,null],[1,\"\\n\"]],[]]]],[\"@isFullText\",\"@text\",\"&default\"],false,[\"if\",\"concat\",\"yield\"]]",
    "moduleName": "nomad-ui/templates/components/tooltip.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/topo-viz", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "WdtsFWqj",
    "block": "[[[11,0],[16,0,[29,[\"topo-viz \",[52,[30,0,[\"isSingleColumn\"]],\"is-single-column\"]]]],[4,[38,1],[[30,0,[\"buildTopology\"]]],null],[4,[38,2],[[30,0,[\"buildTopology\"]],[30,1]],null],[4,[38,1],[[30,0,[\"captureElement\"]]],null],[4,[38,3],[[30,0,[\"determineViewportColumns\"]]],null],[12],[1,\"\\n  \"],[8,[39,4],null,[[\"@columns\",\"@items\",\"@withSpacing\"],[[52,[30,0,[\"isSingleColumn\"]],1,2],[30,0,[\"topology\",\"datacenters\"]],true]],[[\"default\"],[[[[1,\"\\n    \"],[8,[39,5],null,[[\"@datacenter\",\"@isSingleColumn\",\"@isDense\",\"@heightScale\",\"@onAllocationSelect\",\"@onAllocationFocus\",\"@onAllocationBlur\",\"@onNodeSelect\"],[[30,2],[30,0,[\"datacenterIsSingleColumn\"]],[30,0,[\"isDense\"]],[30,0,[\"topology\",\"heightScale\"]],[30,0,[\"associateAllocations\"]],[30,0,[\"showTooltip\"]],[30,0,[\"hideTooltip\"]],[30,0,[\"showNodeDetails\"]]]],null],[1,\"\\n  \"]],[2]]]]],[1,\"\\n\\n  \"],[10,0],[15,0,[29,[\"chart-tooltip is-absolute \",[52,[30,0,[\"highlightAllocation\"]],\"active\",\"inactive\"]]]],[15,5,[30,0,[\"tooltipStyle\"]]],[12],[1,\"\\n\"],[44,[[30,0,[\"highlightAllocation\"]]],[[[1,\"      \"],[10,\"ol\"],[14,0,\"is-static\"],[12],[1,\"\\n        \"],[10,\"li\"],[12],[1,\"\\n          \"],[10,1],[14,0,\"label\"],[12],[1,\"Job\"],[13],[1,\"\\n          \"],[10,1],[14,0,\"value\"],[12],[1,[30,3,[\"allocation\",\"job\",\"name\"]]],[1,\"/\"],[1,[30,3,[\"allocation\",\"taskGroupName\"]]],[13],[1,\"\\n        \"],[13],[1,\"\\n\"],[41,[30,0,[\"system\",\"shouldShowNamespaces\"]],[[[1,\"          \"],[10,\"li\"],[12],[1,\"\\n            \"],[10,1],[14,0,\"label\"],[12],[1,\"Namespace\"],[13],[1,\"\\n            \"],[10,1],[14,0,\"value\"],[12],[1,[30,3,[\"allocation\",\"job\",\"namespace\",\"name\"]]],[13],[1,\"\\n          \"],[13],[1,\"\\n\"]],[]],null],[1,\"        \"],[10,\"li\"],[12],[1,\"\\n          \"],[10,1],[14,0,\"label\"],[12],[1,\"Memory\"],[13],[1,\"\\n          \"],[10,1],[14,0,\"value\"],[12],[1,[28,[35,7],[[30,3,[\"memory\"]]],[[\"start\"],[\"MiB\"]]]],[13],[1,\"\\n        \"],[13],[1,\"\\n        \"],[10,\"li\"],[12],[1,\"\\n          \"],[10,1],[14,0,\"label\"],[12],[1,\"CPU\"],[13],[1,\"\\n          \"],[10,1],[14,0,\"value\"],[12],[1,[28,[35,8],[[30,3,[\"cpu\"]]],null]],[13],[1,\"\\n        \"],[13],[1,\"\\n      \"],[13],[1,\"\\n\"]],[3]]],[1,\"  \"],[13],[1,\"\\n\\n\"],[41,[30,0,[\"activeAllocation\"]],[[[1,\"    \"],[11,\"svg\"],[24,0,\"chart topo-viz-edges\"],[4,[38,3],[[30,0,[\"resizeEdges\"]]],null],[12],[1,\"\\n      \"],[10,\"g\"],[15,\"transform\",[29,[\"translate(\",[30,0,[\"edgeOffset\",\"x\"]],\",\",[30,0,[\"edgeOffset\",\"y\"]],\")\"]]],[12],[1,\"\\n\"],[42,[28,[37,10],[[28,[37,10],[[30,0,[\"activeEdges\"]]],null]],null],null,[[[1,\"          \"],[10,\"path\"],[14,0,\"edge\"],[15,\"d\",[30,4]],[12],[13],[1,\"\\n\"]],[4]],null],[1,\"      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n\"]],[]],null],[13],[1,\"\\n\"]],[\"@nodes\",\"dc\",\"allocation\",\"edge\"],false,[\"if\",\"did-insert\",\"did-update\",\"window-resize\",\"flex-masonry\",\"topo-viz/datacenter\",\"let\",\"format-scheduled-bytes\",\"format-scheduled-hertz\",\"each\",\"-track-array\"]]",
    "moduleName": "nomad-ui/templates/components/topo-viz.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/topo-viz/datacenter", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "SPckPdFV",
    "block": "[[[10,0],[14,0,\"boxed-section topo-viz-datacenter\"],[12],[1,\"\\n  \"],[10,0],[14,0,\"boxed-section-head is-hollow\"],[12],[1,\"\\n    \"],[10,1],[14,0,\"tooltip\"],[14,\"aria-label\",\"Datacenter\"],[12],[10,\"strong\"],[12],[1,[30,1,[\"name\"]]],[13],[13],[1,\"\\n    \"],[10,1],[14,0,\"bumper-left tooltip\"],[14,\"aria-label\",\"Number of Allocations\"],[12],[1,[30,0,[\"scheduledAllocations\",\"length\"]]],[1,\" Allocs\"],[13],[1,\"\\n    \"],[10,1],[14,0,\"bumper-left tooltip\"],[14,\"aria-label\",\"Number of Nodes\"],[12],[1,[30,1,[\"nodes\",\"length\"]]],[1,\" Nodes\"],[13],[1,\"\\n    \"],[10,1],[14,0,\"bumper-left is-faded\"],[12],[1,\"\\n      \"],[10,1],[14,0,\"tooltip\"],[14,\"aria-label\",\"Memory Allocated\"],[12],[1,[28,[35,0],[[30,0,[\"aggregatedAllocationResources\",\"memory\"]]],[[\"start\"],[\"MiB\"]]]],[13],[1,\" /\\n      \"],[10,1],[14,0,\"tooltip\"],[14,\"aria-label\",\"Total Memory\"],[12],[1,[28,[35,0],[[30,0,[\"aggregatedNodeResources\",\"memory\"]]],[[\"start\"],[\"MiB\"]]]],[1,\",\"],[13],[1,\"\\n      \"],[10,1],[14,0,\"tooltip\"],[14,\"aria-label\",\"CPU Allocated\"],[12],[1,[28,[35,1],[[30,0,[\"aggregatedAllocationResources\",\"cpu\"]]],null]],[13],[1,\" /\\n      \"],[10,1],[14,0,\"tooltip\"],[14,\"aria-label\",\"Total CPU\"],[12],[1,[28,[35,1],[[30,0,[\"aggregatedNodeResources\",\"cpu\"]]],null]],[13],[1,\"\\n    \"],[13],[1,\"\\n  \"],[13],[1,\"\\n  \"],[10,0],[14,0,\"boxed-section-body\"],[12],[1,\"\\n    \"],[8,[39,2],null,[[\"@columns\",\"@items\"],[[52,[30,2],1,2],[30,1,[\"nodes\"]]]],[[\"default\"],[[[[1,\"\\n      \"],[8,[39,4],null,[[\"@node\",\"@isDense\",\"@heightScale\",\"@onAllocationSelect\",\"@onAllocationFocus\",\"@onAllocationBlur\",\"@onNodeSelect\"],[[30,3],[30,4],[30,5],[30,6],[30,7],[30,8],[30,9]]],null],[1,\"\\n    \"]],[3]]]]],[1,\"\\n  \"],[13],[1,\"\\n\"],[13],[1,\"\\n\"]],[\"@datacenter\",\"@isSingleColumn\",\"node\",\"@isDense\",\"@heightScale\",\"@onAllocationSelect\",\"@onAllocationFocus\",\"@onAllocationBlur\",\"@onNodeSelect\"],false,[\"format-bytes\",\"format-hertz\",\"flex-masonry\",\"if\",\"topo-viz/node\"]]",
    "moduleName": "nomad-ui/templates/components/topo-viz/datacenter.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/topo-viz/node", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "naOjKagX",
    "block": "[[[11,0],[16,0,[29,[\"topo-viz-node \",[52,[51,[30,0,[\"allocations\",\"length\"]]],\"is-empty\"]]]],[4,[38,1],[[30,0,[\"reloadNode\"]]],null],[12],[1,\"\\n\"],[41,[51,[30,1]],[[[1,\"    \"],[10,2],[14,0,\"label\"],[12],[1,\"\\n\"],[41,[30,2,[\"node\",\"isDraining\"]],[[[1,\"        \"],[10,1],[14,0,\"tooltip\"],[14,\"aria-label\",\"Client is draining\"],[12],[1,[28,[35,3],[\"clock-outline\"],[[\"class\"],[\"is-info\"]]]],[13],[1,\"\\n\"]],[]],[[[41,[28,[37,4],[[30,2,[\"node\",\"isEligible\"]]],null],[[[1,\"        \"],[10,1],[14,0,\"tooltip\"],[14,\"aria-label\",\"Client is ineligible\"],[12],[1,[28,[35,3],[\"lock-closed\"],[[\"class\"],[\"is-warning\"]]]],[13],[1,\"\\n      \"]],[]],null]],[]]],[1,\"      \"],[10,1],[14,0,\"tooltip\"],[14,\"aria-label\",\"Node Name\"],[12],[10,\"strong\"],[12],[8,[39,5],null,[[\"@route\",\"@model\"],[\"clients.client\",[30,2,[\"node\",\"id\"]]]],[[\"default\"],[[[[1,[30,2,[\"node\",\"name\"]]]],[]]]]],[13],[13],[1,\"\\n      \"],[10,1],[14,0,\"bumper-left tooltip\"],[14,\"aria-label\",\"Number of Allocations\"],[12],[1,[30,0,[\"count\"]]],[1,\" Allocs\"],[13],[1,\"\\n      \"],[10,1],[14,0,\"bumper-left is-faded tooltip\"],[14,\"aria-label\",\"Node Pool\"],[12],[1,[30,2,[\"node\",\"nodePool\"]]],[13],[1,\"\\n      \"],[10,1],[14,0,\"bumper-left is-faded\"],[12],[1,\"\\n        \"],[10,1],[14,0,\"tooltip\"],[14,\"aria-label\",\"Node Memory\"],[12],[1,[28,[35,6],[[30,2,[\"memory\"]]],[[\"start\"],[\"MiB\"]]]],[13],[1,\",\\n        \"],[10,1],[14,0,\"tooltip\"],[14,\"aria-label\",\"Node CPU\"],[12],[1,[28,[35,7],[[30,2,[\"cpu\"]]],null]],[13],[1,\"\\n      \"],[13],[1,\"\\n      \"],[10,1],[14,0,\"bumper-left is-faded tooltip\"],[14,\"aria-label\",\"Node Status\"],[12],[1,[30,2,[\"node\",\"status\"]]],[13],[1,\"\\n      \"],[10,1],[14,0,\"bumper-left is-faded tooltip\"],[14,\"aria-label\",\"Nomad Version\"],[12],[1,[30,2,[\"node\",\"version\"]]],[13],[1,\"\\n    \"],[13],[1,\"\\n\"]],[]],null],[1,\"  \"],[11,\"svg\"],[24,0,\"chart\"],[16,\"height\",[29,[[30,0,[\"totalHeight\"]],\"px\"]]],[4,[38,1],[[30,0,[\"render\"]]],null],[4,[38,8],[[30,0,[\"updateRender\"]]],null],[4,[38,9],[[30,0,[\"render\"]]],null],[4,[38,10],[\"mouseout\",[30,0,[\"allocationBlur\"]]],null],[12],[1,\"\\n    \"],[10,\"defs\"],[12],[1,\"\\n      \"],[10,\"clipPath\"],[15,1,[29,[[30,0,[\"maskId\"]]]]],[12],[1,\"\\n        \"],[10,\"rect\"],[14,0,\"mask\"],[14,\"x\",\"0\"],[14,\"y\",\"0\"],[15,\"width\",[29,[[30,0,[\"dimensionsWidth\"]],\"px\"]]],[15,\"height\",[29,[[30,0,[\"maskHeight\"]],\"px\"]]],[14,\"rx\",\"2px\"],[14,\"ry\",\"2px\"],[12],[13],[1,\"\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n    \"],[11,\"rect\"],[16,0,[29,[\"node-background \",[52,[30,2,[\"isSelected\"]],\"is-selected\"],\" \",[52,[30,1],\"is-interactive\"]]]],[24,\"width\",\"100%\"],[16,\"height\",[29,[[30,0,[\"totalHeight\"]],\"px\"]]],[24,\"rx\",\"2px\"],[24,\"ry\",\"2px\"],[4,[38,10],[\"click\",[30,0,[\"selectNode\"]]],null],[12],[13],[1,\"\\n\"],[41,[30,0,[\"allocations\",\"length\"]],[[[1,\"      \"],[11,\"g\"],[16,0,[29,[\"dimensions \",[52,[30,0,[\"activeAllocation\"]],\"is-active\"]]]],[16,\"transform\",[29,[\"translate(\",[30,0,[\"paddingLeft\"]],\",\",[30,0,[\"padding\"]],\")\"]]],[16,\"width\",[29,[[30,0,[\"dimensionsWidth\"]],\"px\"]]],[16,\"height\",[29,[[30,0,[\"maskHeight\"]],\"px\"]]],[24,\"pointer-events\",\"all\"],[4,[38,10],[\"mouseleave\",[30,0,[\"clearHighlight\"]]],null],[12],[1,\"\\n        \"],[10,\"g\"],[14,0,\"memory\"],[12],[1,\"\\n\"],[41,[30,0,[\"data\",\"memoryLabel\"]],[[[1,\"            \"],[10,\"text\"],[14,0,\"label\"],[14,\"aria-label\",\"Memory\"],[15,\"transform\",[29,[\"translate(\",[30,0,[\"data\",\"memoryLabel\",\"x\"]],\",\",[30,0,[\"data\",\"memoryLabel\",\"y\"]],\")\"]]],[12],[1,\"M\"],[13],[1,\"\\n\"]],[]],null],[41,[30,0,[\"data\",\"memoryRemainder\"]],[[[1,\"            \"],[10,\"rect\"],[14,0,\"dimension-background\"],[15,\"x\",[29,[[30,0,[\"data\",\"memoryRemainder\",\"x\"]],\"px\"]]],[15,\"width\",[29,[[30,0,[\"data\",\"memoryRemainder\",\"width\"]],\"px\"]]],[15,\"height\",[29,[[30,0,[\"height\"]],\"px\"]]],[12],[13],[1,\"\\n\"]],[]],null],[42,[28,[37,12],[[28,[37,12],[[30,0,[\"data\",\"memory\"]]],null]],null],\"allocation.id\",[[[1,\"            \"],[11,\"g\"],[16,0,[29,[\"bar \",[30,3,[\"className\"]],\" \",[52,[28,[37,13],[[30,0,[\"activeAllocation\"]],[30,3,[\"allocation\"]]],null],\"is-active\"],\" \",[52,[30,3,[\"allocation\",\"isSelected\"]],\"is-selected\"]]]],[16,\"clip-path\",[29,[\"url(#\",[30,0,[\"maskId\"]],\")\"]]],[16,\"data-allocation-id\",[29,[[30,3,[\"allocation\",\"allocation\",\"id\"]]]]],[4,[38,10],[\"mouseenter\",[28,[37,14],[[30,0,[\"highlightAllocation\"]],[30,3,[\"allocation\"]]],null]],null],[4,[38,10],[\"click\",[28,[37,14],[[30,0,[\"selectAllocation\"]],[30,3,[\"allocation\"]]],null]],null],[12],[1,\"\\n              \"],[10,\"rect\"],[15,\"width\",[29,[[30,3,[\"width\"]],\"px\"]]],[15,\"height\",[29,[[52,[30,3,[\"allocation\",\"isSelected\"]],[30,0,[\"selectedHeight\"]],[30,0,[\"height\"]]],\"px\"]]],[15,\"x\",[29,[[30,3,[\"x\"]],\"px\"]]],[15,\"y\",[29,[[52,[30,3,[\"allocation\",\"isSelected\"]],0.5,0],\"px\"]]],[14,0,\"layer-0\"],[12],[13],[1,\"\\n\"],[41,[28,[37,15],[[28,[37,13],[[30,3,[\"className\"]],\"starting\"],null],[28,[37,13],[[30,3,[\"className\"]],\"pending\"],null]],null],[[[1,\"                \"],[10,\"rect\"],[15,\"width\",[29,[[30,3,[\"width\"]],\"px\"]]],[15,\"height\",[29,[[52,[30,3,[\"allocation\",\"isSelected\"]],[30,0,[\"selectedHeight\"]],[30,0,[\"height\"]]],\"px\"]]],[15,\"x\",[29,[[30,3,[\"x\"]],\"px\"]]],[15,\"y\",[29,[[52,[30,3,[\"allocation\",\"isSelected\"]],0.5,0],\"px\"]]],[14,0,\"layer-1\"],[12],[13],[1,\"\\n\"]],[]],null],[1,\"            \"],[13],[1,\"\\n\"]],[3]],null],[1,\"        \"],[13],[1,\"\\n        \"],[10,\"g\"],[14,0,\"cpu\"],[12],[1,\"\\n\"],[41,[30,0,[\"data\",\"cpuLabel\"]],[[[1,\"            \"],[10,\"text\"],[14,0,\"label\"],[14,\"aria-label\",\"CPU\"],[15,\"transform\",[29,[\"translate(\",[30,0,[\"data\",\"cpuLabel\",\"x\"]],\",\",[30,0,[\"data\",\"cpuLabel\",\"y\"]],\")\"]]],[12],[1,\"C\"],[13],[1,\"\\n\"]],[]],null],[41,[30,0,[\"data\",\"cpuRemainder\"]],[[[1,\"            \"],[10,\"rect\"],[14,0,\"dimension-background\"],[15,\"x\",[29,[[30,0,[\"data\",\"cpuRemainder\",\"x\"]],\"px\"]]],[15,\"y\",[29,[[30,0,[\"yOffset\"]],\"px\"]]],[15,\"width\",[29,[[30,0,[\"data\",\"cpuRemainder\",\"width\"]],\"px\"]]],[15,\"height\",[29,[[30,0,[\"height\"]],\"px\"]]],[12],[13],[1,\"\\n\"]],[]],null],[42,[28,[37,12],[[28,[37,12],[[30,0,[\"data\",\"cpu\"]]],null]],null],\"allocation.id\",[[[1,\"            \"],[11,\"g\"],[16,0,[29,[\"bar \",[30,4,[\"className\"]],\" \",[52,[28,[37,13],[[30,0,[\"activeAllocation\"]],[30,4,[\"allocation\"]]],null],\"is-active\"],\" \",[52,[30,4,[\"allocation\",\"isSelected\"]],\"is-selected\"]]]],[16,\"clip-path\",[29,[\"url(#\",[30,0,[\"maskId\"]],\")\"]]],[16,\"data-allocation-id\",[29,[[30,4,[\"allocation\",\"allocation\",\"id\"]]]]],[4,[38,10],[\"mouseenter\",[28,[37,14],[[30,0,[\"highlightAllocation\"]],[30,4,[\"allocation\"]]],null]],null],[4,[38,10],[\"click\",[28,[37,14],[[30,0,[\"selectAllocation\"]],[30,4,[\"allocation\"]]],null]],null],[12],[1,\"\\n              \"],[10,\"rect\"],[15,\"width\",[29,[[30,4,[\"width\"]],\"px\"]]],[15,\"height\",[29,[[52,[30,4,[\"allocation\",\"isSelected\"]],[30,0,[\"selectedHeight\"]],[30,0,[\"height\"]]],\"px\"]]],[15,\"x\",[29,[[30,4,[\"x\"]],\"px\"]]],[15,\"y\",[29,[[52,[30,4,[\"allocation\",\"isSelected\"]],[30,0,[\"selectedYOffset\"]],[30,0,[\"yOffset\"]]],\"px\"]]],[14,0,\"layer-0\"],[12],[13],[1,\"\\n\"],[41,[28,[37,15],[[28,[37,13],[[30,4,[\"className\"]],\"starting\"],null],[28,[37,13],[[30,4,[\"className\"]],\"pending\"],null]],null],[[[1,\"                \"],[10,\"rect\"],[15,\"width\",[29,[[30,4,[\"width\"]],\"px\"]]],[15,\"height\",[29,[[52,[30,4,[\"allocation\",\"isSelected\"]],[30,0,[\"selectedHeight\"]],[30,0,[\"height\"]]],\"px\"]]],[15,\"x\",[29,[[30,4,[\"x\"]],\"px\"]]],[15,\"y\",[29,[[52,[30,4,[\"allocation\",\"isSelected\"]],[30,0,[\"selectedYOffset\"]],[30,0,[\"yOffset\"]]],\"px\"]]],[14,0,\"layer-1\"],[12],[13],[1,\"\\n\"]],[]],null],[1,\"            \"],[13],[1,\"\\n\"]],[4]],null],[1,\"        \"],[13],[1,\"\\n      \"],[13],[1,\"\\n\"]],[]],[[[1,\"      \"],[10,\"g\"],[14,0,\"empty-text\"],[12],[10,\"text\"],[12],[1,\"Empty Client\"],[13],[13],[1,\"\\n\"]],[]]],[1,\"  \"],[13],[1,\"\\n\"],[13],[1,\"\\n\\n\"]],[\"@isDense\",\"@node\",\"memory\",\"cpu\"],false,[\"unless\",\"did-insert\",\"if\",\"x-icon\",\"not\",\"link-to\",\"format-scheduled-bytes\",\"format-scheduled-hertz\",\"did-update\",\"window-resize\",\"on\",\"each\",\"-track-array\",\"eq\",\"fn\",\"or\"]]",
    "moduleName": "nomad-ui/templates/components/topo-viz/node.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/components/two-step-button", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "xbB+DhI0",
    "block": "[[[41,[30,0,[\"isIdle\"]],[[[1,\"  \"],[10,\"button\"],[15,0,[29,[\"button \",[52,[30,0,[\"classes\",\"idleButton\"]],[30,0,[\"classes\",\"idleButton\"]],\"is-danger is-outlined\"],\" is-important is-small\"]]],[15,\"disabled\",[30,0,[\"disabled\"]]],[15,\"onclick\",[28,[37,1],[[30,0],\"promptForConfirmation\"],null]],[14,4,\"button\"],[12],[1,\"\\n    \"],[1,[30,0,[\"idleText\"]]],[1,\"\\n  \"],[13],[1,\"\\n\"]],[]],[[[41,[30,0,[\"isPendingConfirmation\"]],[[[1,\"  \"],[10,1],[15,0,[29,[\"confirmation-text \",[30,0,[\"classes\",\"confirmationMessage\"]],\" \",[52,[30,0,[\"alignRight\"]],\"is-right-aligned\"],\" \",[52,[30,0,[\"inlineText\"]],\"has-text-inline\"]]]],[12],[1,\"\\n    \"],[1,[30,0,[\"confirmationMessage\"]]],[1,\"\\n  \"],[13],[1,\"\\n  \"],[10,\"button\"],[15,0,[29,[\"button is-outlined is-small \",[52,[30,0,[\"classes\",\"cancelButton\"]],[30,0,[\"classes\",\"cancelButton\"]],\"is-dark\"]]]],[15,\"disabled\",[30,0,[\"awaitingConfirmation\"]]],[15,\"onclick\",[28,[37,1],[[30,0],[28,[37,2],[[28,[37,1],[[30,0],\"setToIdle\"],null],[28,[37,1],[[30,0],[30,0,[\"onCancel\"]]],null]],null]],null]],[14,4,\"button\"],[12],[1,\"\\n    \"],[1,[30,0,[\"cancelText\"]]],[1,\"\\n  \"],[13],[1,\"\\n  \"],[10,\"button\"],[15,0,[29,[\"button is-small \",[52,[30,0,[\"awaitingConfirmation\"]],\"is-loading\"],\" \",[52,[30,0,[\"classes\",\"confirmButton\"]],[30,0,[\"classes\",\"confirmButton\"]],\"is-danger\"]]]],[15,\"disabled\",[30,0,[\"awaitingConfirmation\"]]],[15,\"onclick\",[28,[37,1],[[30,0],\"confirm\"],null]],[14,4,\"button\"],[12],[1,\"\\n    \"],[1,[30,0,[\"confirmText\"]]],[1,\"\\n  \"],[13],[1,\"\\n\"]],[]],null]],[]]]],[],false,[\"if\",\"action\",\"queue\"]]",
    "moduleName": "nomad-ui/templates/components/two-step-button.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/csi", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "zoUs8aal",
    "block": "[[[8,[39,0],null,null,[[\"default\"],[[[[1,\"\\n  \"],[46,[28,[37,2],null,null],null,null,null],[1,\"\\n\"]],[]]]]],[1,\"\\n\"]],[],false,[\"page-layout\",\"component\",\"-outlet\"]]",
    "moduleName": "nomad-ui/templates/csi.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/csi/plugins", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "CDHy//xr",
    "block": "[[[8,[39,0],null,[[\"@crumb\"],[[28,[37,1],null,[[\"label\",\"args\"],[\"Storage\",[28,[37,2],[\"csi.index\"],null]]]]]],null],[46,[28,[37,4],null,null],null,null,null]],[],false,[\"breadcrumb\",\"hash\",\"array\",\"component\",\"-outlet\"]]",
    "moduleName": "nomad-ui/templates/csi/plugins.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/csi/plugins/index", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "+io6TRvd",
    "block": "[[[1,[28,[35,0],[\"CSI Plugins\"],null]],[1,\"\\n\"],[8,[39,1],null,null,null],[1,\"\\n\"],[10,\"section\"],[14,0,\"section\"],[12],[1,\"\\n\"],[41,[30,0,[\"isForbidden\"]],[[[1,\"    \"],[8,[39,3],null,null,null],[1,\"\\n\"]],[]],[[[1,\"    \"],[10,0],[14,0,\"toolbar\"],[12],[1,\"\\n      \"],[10,0],[14,0,\"toolbar-item\"],[12],[1,\"\\n\"],[41,[30,0,[\"model\",\"length\"]],[[[1,\"          \"],[8,[39,4],null,[[\"@searchTerm\",\"@onChange\",\"@placeholder\"],[[28,[37,5],[[30,0,[\"searchTerm\"]]],null],[28,[37,6],[[30,0],[30,0,[\"resetPagination\"]]],null],\"Search plugins...\"]],null],[1,\"\\n\"]],[]],null],[1,\"      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n\"],[41,[30,0,[\"sortedPlugins\"]],[[[1,\"      \"],[8,[39,7],null,[[\"@source\",\"@size\",\"@page\"],[[30,0,[\"sortedPlugins\"]],[30,0,[\"pageSize\"]],[30,0,[\"currentPage\"]]]],[[\"default\"],[[[[1,\"\\n        \"],[8,[39,8],null,[[\"@source\",\"@sortProperty\",\"@sortDescending\",\"@class\"],[[30,1,[\"list\"]],[30,0,[\"sortProperty\"]],[30,0,[\"sortDescending\"]],\"with-foot\"]],[[\"default\"],[[[[1,\"\\n          \"],[8,[30,2,[\"head\"]],null,null,[[\"default\"],[[[[1,\"\\n            \"],[8,[30,2,[\"sort-by\"]],null,[[\"@prop\"],[\"plainId\"]],[[\"default\"],[[[[1,\"ID\"]],[]]]]],[1,\"\\n            \"],[8,[30,2,[\"sort-by\"]],null,[[\"@prop\"],[\"controllersHealthyProportion\"]],[[\"default\"],[[[[1,\"Controller Health\"]],[]]]]],[1,\"\\n            \"],[8,[30,2,[\"sort-by\"]],null,[[\"@prop\"],[\"nodesHealthyProportion\"]],[[\"default\"],[[[[1,\"Node Health\"]],[]]]]],[1,\"\\n            \"],[8,[30,2,[\"sort-by\"]],null,[[\"@prop\"],[\"provider\"]],[[\"default\"],[[[[1,\"Provider\"]],[]]]]],[1,\"\\n          \"]],[]]]]],[1,\"\\n          \"],[8,[30,2,[\"body\"]],null,[[\"@key\"],[\"model.id\"]],[[\"default\"],[[[[1,\"\\n            \"],[11,\"tr\"],[24,0,\"is-interactive\"],[4,[38,9],[\"click\",[28,[37,6],[[30,0],\"gotoPlugin\",[30,3,[\"model\"]]],null]],null],[12],[1,\"\\n              \"],[10,\"td\"],[12],[1,\"\\n                \"],[8,[39,10],[[24,0,\"is-primary\"]],[[\"@route\",\"@model\"],[\"csi.plugins.plugin\",[30,3,[\"model\",\"plainId\"]]]],[[\"default\"],[[[[1,[30,3,[\"model\",\"plainId\"]]]],[]]]]],[1,\"\\n              \"],[13],[1,\"\\n              \"],[10,\"td\"],[12],[1,\"\\n\"],[41,[30,3,[\"model\",\"controllerRequired\"]],[[[1,\"                  \"],[1,[52,[28,[37,11],[[30,3,[\"model\",\"controllersHealthy\"]],0],null],\"Healthy\",\"Unhealthy\"]],[1,\"\\n                  (\"],[1,[30,3,[\"model\",\"controllersHealthy\"]]],[1,\"/\"],[1,[30,3,[\"model\",\"controllersExpected\"]]],[1,\")\\n\"]],[]],[[[41,[28,[37,11],[[30,3,[\"model\",\"controllersExpected\"]],0],null],[[[1,\"                    \"],[1,[52,[28,[37,11],[[30,3,[\"model\",\"controllersHealthy\"]],0],null],\"Healthy\",\"Unhealthy\"]],[1,\"\\n                    (\"],[1,[30,3,[\"model\",\"controllersHealthy\"]]],[1,\"/\"],[1,[30,3,[\"model\",\"controllersExpected\"]]],[1,\")\\n\"]],[]],[[[1,\"                    \"],[10,\"em\"],[14,0,\"is-faded\"],[12],[1,\"Node Only\"],[13],[1,\"\\n\"]],[]]]],[]]],[1,\"              \"],[13],[1,\"\\n              \"],[10,\"td\"],[12],[1,\"\\n                \"],[1,[52,[28,[37,11],[[30,3,[\"model\",\"nodesHealthy\"]],0],null],\"Healthy\",\"Unhealthy\"]],[1,\"\\n                (\"],[1,[30,3,[\"model\",\"nodesHealthy\"]]],[1,\"/\"],[1,[30,3,[\"model\",\"nodesExpected\"]]],[1,\")\\n              \"],[13],[1,\"\\n              \"],[10,\"td\"],[12],[1,[30,3,[\"model\",\"provider\"]]],[13],[1,\"\\n            \"],[13],[1,\"\\n          \"]],[3]]]]],[1,\"\\n        \"]],[2]]]]],[1,\"\\n        \"],[10,0],[14,0,\"table-foot\"],[12],[1,\"\\n          \"],[8,[39,12],null,[[\"@onChange\"],[[28,[37,6],[[30,0],[30,0,[\"resetPagination\"]]],null]]],null],[1,\"\\n          \"],[10,\"nav\"],[14,0,\"pagination\"],[12],[1,\"\\n            \"],[10,0],[14,0,\"pagination-numbers\"],[12],[1,\"\\n              \"],[1,[30,1,[\"startsAt\"]]],[1,\"–\"],[1,[30,1,[\"endsAt\"]]],[1,\" of \"],[1,[30,0,[\"sortedPlugins\",\"length\"]]],[1,\"\\n            \"],[13],[1,\"\\n            \"],[8,[30,1,[\"prev\"]],null,[[\"@class\"],[\"pagination-previous\"]],[[\"default\"],[[[[1,[28,[35,13],[\"chevron-left\"],null]]],[]]]]],[1,\"\\n            \"],[8,[30,1,[\"next\"]],null,[[\"@class\"],[\"pagination-next\"]],[[\"default\"],[[[[1,[28,[35,13],[\"chevron-right\"],null]]],[]]]]],[1,\"\\n            \"],[10,\"ul\"],[14,0,\"pagination-list\"],[12],[13],[1,\"\\n          \"],[13],[1,\"\\n        \"],[13],[1,\"\\n      \"]],[1]]]]],[1,\"\\n\"]],[]],[[[1,\"      \"],[10,0],[14,0,\"empty-message\"],[12],[1,\"\\n\"],[41,[28,[37,14],[[30,0,[\"model\",\"length\"]],0],null],[[[1,\"          \"],[10,\"h3\"],[14,0,\"empty-message-headline\"],[12],[1,\"No Plugins\"],[13],[1,\"\\n          \"],[10,2],[14,0,\"empty-message-body\"],[12],[1,\"\\n            The cluster currently has no registered CSI Plugins.\\n          \"],[13],[1,\"\\n\"]],[]],[[[41,[30,0,[\"searchTerm\"]],[[[1,\"          \"],[10,\"h3\"],[14,0,\"empty-message-headline\"],[12],[1,\"No Matches\"],[13],[1,\"\\n          \"],[10,2],[14,0,\"empty-message-body\"],[12],[1,\"\\n            No plugins match the term \"],[10,\"strong\"],[12],[1,[30,0,[\"searchTerm\"]]],[13],[1,\"\\n          \"],[13],[1,\"\\n        \"]],[]],null]],[]]],[1,\"      \"],[13],[1,\"\\n\"]],[]]]],[]]],[13],[1,\"\\n\"]],[\"p\",\"t\",\"row\"],false,[\"page-title\",\"storage-subnav\",\"if\",\"forbidden-message\",\"search-box\",\"mut\",\"action\",\"list-pagination\",\"list-table\",\"on\",\"link-to\",\"gt\",\"page-size-select\",\"x-icon\",\"eq\"]]",
    "moduleName": "nomad-ui/templates/csi/plugins/index.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/csi/plugins/plugin", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "L3t+9hIU",
    "block": "[[[42,[28,[37,1],[[28,[37,1],[[30,0,[\"breadcrumbs\"]]],null]],null],null,[[[1,\"  \"],[8,[39,2],null,[[\"@crumb\"],[[30,1]]],null],[1,\"\\n\"]],[1]],null],[46,[28,[37,4],null,null],null,null,null]],[\"crumb\"],false,[\"each\",\"-track-array\",\"breadcrumb\",\"component\",\"-outlet\"]]",
    "moduleName": "nomad-ui/templates/csi/plugins/plugin.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/csi/plugins/plugin/allocations", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "N0cfHJ8/",
    "block": "[[[1,[28,[35,0],[\"CSI Plugin \",[30,0,[\"model\",\"plainId\"]],\" allocations\"],null]],[1,\"\\n\"],[8,[39,1],null,[[\"@plugin\"],[[30,0,[\"model\"]]]],null],[1,\"\\n\"],[10,\"section\"],[14,0,\"section\"],[12],[1,\"\\n  \"],[10,0],[14,0,\"toolbar\"],[12],[1,\"\\n    \"],[10,0],[14,0,\"toolbar-item\"],[12],[1,\"\\n      \"],[10,\"h1\"],[14,0,\"title\"],[12],[1,\"Allocations for \"],[1,[30,0,[\"model\",\"plainId\"]]],[13],[1,\"\\n    \"],[13],[1,\"\\n    \"],[10,0],[14,0,\"toolbar-item is-right-aligned is-mobile-full-width\"],[12],[1,\"\\n      \"],[10,0],[14,0,\"button-bar\"],[12],[1,\"\\n        \"],[8,[39,2],null,[[\"@label\",\"@options\",\"@selection\",\"@onSelect\"],[\"Health\",[30,0,[\"optionsHealth\"]],[30,0,[\"selectionHealth\"]],[28,[37,3],[[30,0],[30,0,[\"setFacetQueryParam\"]],\"qpHealth\"],null]]],null],[1,\"\\n        \"],[8,[39,2],null,[[\"@label\",\"@options\",\"@selection\",\"@onSelect\"],[\"Type\",[30,0,[\"optionsType\"]],[30,0,[\"selectionType\"]],[28,[37,3],[[30,0],[30,0,[\"setFacetQueryParam\"]],\"qpType\"],null]]],null],[1,\"\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n  \"],[13],[1,\"\\n\"],[41,[30,0,[\"sortedAllocations\"]],[[[1,\"    \"],[8,[39,5],null,[[\"@source\",\"@size\",\"@page\"],[[30,0,[\"sortedAllocations\"]],[30,0,[\"pageSize\"]],[30,0,[\"currentPage\"]]]],[[\"default\"],[[[[1,\"\\n      \"],[8,[39,6],null,[[\"@source\",\"@sortProperty\",\"@sortDescending\",\"@class\"],[[30,1,[\"list\"]],[30,0,[\"sortProperty\"]],[30,0,[\"sortDescending\"]],\"with-foot\"]],[[\"default\"],[[[[1,\"\\n        \"],[8,[30,2,[\"head\"]],null,null,[[\"default\"],[[[[1,\"\\n          \"],[10,\"th\"],[14,0,\"is-narrow\"],[12],[13],[1,\"\\n          \"],[10,\"td\"],[12],[1,\"ID\"],[13],[1,\"\\n          \"],[10,\"th\"],[12],[1,\"Created\"],[13],[1,\"\\n          \"],[8,[30,2,[\"sort-by\"]],null,[[\"@prop\"],[\"updateTime\"]],[[\"default\"],[[[[1,\"Modified\"]],[]]]]],[1,\"\\n          \"],[8,[30,2,[\"sort-by\"]],null,[[\"@prop\"],[\"healthy\"]],[[\"default\"],[[[[1,\"Health\"]],[]]]]],[1,\"\\n          \"],[10,\"th\"],[12],[1,\"Client\"],[13],[1,\"\\n          \"],[10,\"th\"],[12],[1,\"Job\"],[13],[1,\"\\n          \"],[10,\"th\"],[12],[1,\"Version\"],[13],[1,\"\\n          \"],[10,\"th\"],[12],[1,\"Volumes\"],[13],[1,\"\\n          \"],[10,\"th\"],[12],[1,\"CPU\"],[13],[1,\"\\n          \"],[10,\"th\"],[12],[1,\"Memory\"],[13],[1,\"\\n        \"]],[]]]]],[1,\"\\n        \"],[8,[30,2,[\"body\"]],null,[[\"@key\"],[\"model.allocID\"]],[[\"default\"],[[[[1,\"\\n          \"],[8,[39,7],null,[[\"@pluginAllocation\"],[[30,3,[\"model\"]]]],null],[1,\"\\n        \"]],[3]]]]],[1,\"\\n      \"]],[2]]]]],[1,\"\\n      \"],[10,0],[14,0,\"table-foot\"],[12],[1,\"\\n        \"],[8,[39,8],null,[[\"@onChange\"],[[28,[37,3],[[30,0],[30,0,[\"resetPagination\"]]],null]]],null],[1,\"\\n        \"],[10,\"nav\"],[14,0,\"pagination\"],[12],[1,\"\\n          \"],[10,0],[14,0,\"pagination-numbers\"],[12],[1,\"\\n            \"],[1,[30,1,[\"startsAt\"]]],[1,\"–\"],[1,[30,1,[\"endsAt\"]]],[1,\" of \"],[1,[30,0,[\"sortedAllocations\",\"length\"]]],[1,\"\\n          \"],[13],[1,\"\\n          \"],[8,[30,1,[\"prev\"]],null,[[\"@class\"],[\"pagination-previous\"]],[[\"default\"],[[[[1,[28,[35,9],[\"chevron-left\"],null]]],[]]]]],[1,\"\\n          \"],[8,[30,1,[\"next\"]],null,[[\"@class\"],[\"pagination-next\"]],[[\"default\"],[[[[1,[28,[35,9],[\"chevron-right\"],null]]],[]]]]],[1,\"\\n          \"],[10,\"ul\"],[14,0,\"pagination-list\"],[12],[13],[1,\"\\n        \"],[13],[1,\"\\n      \"],[13],[1,\"\\n    \"]],[1]]]]],[1,\"\\n\"]],[]],[[[1,\"    \"],[10,0],[14,0,\"empty-message\"],[12],[1,\"\\n\"],[41,[28,[37,10],[[30,0,[\"combinedAllocations\",\"length\"]],0],null],[[[1,\"        \"],[10,\"h3\"],[14,0,\"empty-message-headline\"],[12],[1,\"No Allocations\"],[13],[1,\"\\n        \"],[10,2],[14,0,\"empty-message-body\"],[12],[1,\"\\n          The plugin has no allocations.\\n        \"],[13],[1,\"\\n\"]],[]],[[[41,[28,[37,10],[[30,0,[\"sortedAllocations\",\"length\"]],0],null],[[[1,\"        \"],[10,\"h3\"],[14,0,\"empty-message-headline\"],[12],[1,\"No Matches\"],[13],[1,\"\\n        \"],[10,2],[14,0,\"empty-message-body\"],[12],[1,\"\\n          No allocations match your current filter selection.\\n        \"],[13],[1,\"\\n      \"]],[]],null]],[]]],[1,\"    \"],[13],[1,\"\\n\"]],[]]],[13],[1,\"\\n\"]],[\"p\",\"t\",\"row\"],false,[\"page-title\",\"plugin-subnav\",\"multi-select-dropdown\",\"action\",\"if\",\"list-pagination\",\"list-table\",\"plugin-allocation-row\",\"page-size-select\",\"x-icon\",\"eq\"]]",
    "moduleName": "nomad-ui/templates/csi/plugins/plugin/allocations.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/csi/plugins/plugin/index", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "YxUV3rZe",
    "block": "[[[1,[28,[35,0],[\"CSI Plugin \",[30,0,[\"model\",\"plainId\"]]],null]],[1,\"\\n\"],[8,[39,1],null,[[\"@plugin\"],[[30,0,[\"model\"]]]],null],[1,\"\\n\"],[10,\"section\"],[14,0,\"section\"],[12],[1,\"\\n  \"],[10,\"h1\"],[14,0,\"title\"],[12],[1,[30,0,[\"model\",\"plainId\"]]],[13],[1,\"\\n\\n  \"],[10,0],[14,0,\"boxed-section is-small\"],[12],[1,\"\\n    \"],[10,0],[14,0,\"boxed-section-body inline-definitions\"],[12],[1,\"\\n      \"],[10,1],[14,0,\"label\"],[12],[1,\"Plugin Details\"],[13],[1,\"\\n\"],[41,[30,0,[\"model\",\"controllerRequired\"]],[[[1,\"        \"],[10,1],[14,0,\"pair\"],[12],[1,\"\\n          \"],[10,1],[14,0,\"term\"],[12],[1,\"Controller Health\"],[13],[1,\"\\n          \"],[1,[28,[35,3],[[30,0,[\"model\",\"controllersHealthy\"]]],[[\"total\"],[[30,0,[\"model\",\"controllersExpected\"]]]]]],[1,\"\\n          (\"],[1,[30,0,[\"model\",\"controllersHealthy\"]]],[1,\"/\"],[1,[30,0,[\"model\",\"controllersExpected\"]]],[1,\")\\n        \"],[13],[1,\"\\n\"]],[]],null],[1,\"      \"],[10,1],[14,0,\"pair\"],[12],[1,\"\\n        \"],[10,1],[14,0,\"term\"],[12],[1,\"Node Health\"],[13],[1,\"\\n        \"],[1,[28,[35,3],[[30,0,[\"model\",\"nodesHealthy\"]]],[[\"total\"],[[30,0,[\"model\",\"nodesExpected\"]]]]]],[1,\"\\n        (\"],[1,[30,0,[\"model\",\"nodesHealthy\"]]],[1,\"/\"],[1,[30,0,[\"model\",\"nodesExpected\"]]],[1,\")\\n      \"],[13],[1,\"\\n      \"],[10,1],[14,0,\"pair\"],[12],[1,\"\\n        \"],[10,1],[14,0,\"term\"],[12],[1,\"Provider\"],[13],[1,\"\\n        \"],[1,[30,0,[\"model\",\"provider\"]]],[1,\"\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n  \"],[13],[1,\"\\n\\n  \"],[10,0],[14,0,\"columns\"],[12],[1,\"\\n\"],[41,[30,0,[\"model\",\"controllerRequired\"]],[[[1,\"      \"],[10,0],[14,0,\"column\"],[12],[1,\"\\n        \"],[10,0],[14,0,\"boxed-section\"],[12],[1,\"\\n          \"],[10,0],[14,0,\"boxed-section-head is-hollow\"],[12],[1,\"Controller Health\"],[13],[1,\"\\n          \"],[10,0],[14,0,\"boxed-section-body\"],[12],[1,\"\\n            \"],[10,0],[14,0,\"columns is-centered is-bottom-aligned\"],[12],[1,\"\\n              \"],[10,0],[14,0,\"column is-half\"],[12],[1,\"\\n                \"],[8,[39,4],null,[[\"@label\",\"@value\",\"@total\"],[\"Availability\",[30,0,[\"model\",\"controllersHealthy\"]],[30,0,[\"model\",\"controllersExpected\"]]]],null],[1,\"\\n              \"],[13],[1,\"\\n              \"],[10,0],[14,0,\"column\"],[12],[1,\"\\n                \"],[10,0],[14,0,\"metric\"],[12],[1,\"\\n                  \"],[10,\"h3\"],[14,0,\"label\"],[12],[1,\"Available\"],[13],[1,\"\\n                  \"],[10,2],[14,0,\"value\"],[12],[1,[30,0,[\"model\",\"controllersHealthy\"]]],[13],[1,\"\\n                \"],[13],[1,\"\\n              \"],[13],[1,\"\\n              \"],[10,0],[14,0,\"column\"],[12],[1,\"\\n                \"],[10,0],[14,0,\"metric\"],[12],[1,\"\\n                  \"],[10,\"h3\"],[14,0,\"label\"],[12],[1,\"Expected\"],[13],[1,\"\\n                  \"],[10,2],[14,0,\"value\"],[12],[1,[30,0,[\"model\",\"controllersExpected\"]]],[13],[1,\"\\n                \"],[13],[1,\"\\n              \"],[13],[1,\"\\n            \"],[13],[1,\"\\n          \"],[13],[1,\"\\n        \"],[13],[1,\"\\n      \"],[13],[1,\"\\n\"]],[]],null],[1,\"    \"],[10,0],[14,0,\"column\"],[12],[1,\"\\n      \"],[10,0],[14,0,\"boxed-section\"],[12],[1,\"\\n        \"],[10,0],[14,0,\"boxed-section-head is-hollow\"],[12],[1,\"Node Health\"],[13],[1,\"\\n        \"],[10,0],[14,0,\"boxed-section-body\"],[12],[1,\"\\n          \"],[10,0],[15,0,[29,[\"columns is-centered is-bottom-aligned \",[52,[51,[30,0,[\"model\",\"controllerRequired\"]]],\"is-max-half\"]]]],[12],[1,\"\\n            \"],[10,0],[14,0,\"column is-half\"],[12],[1,\"\\n              \"],[8,[39,4],null,[[\"@label\",\"@value\",\"@total\"],[\"Availability\",[30,0,[\"model\",\"nodesHealthy\"]],[30,0,[\"model\",\"nodesExpected\"]]]],null],[1,\"\\n            \"],[13],[1,\"\\n            \"],[10,0],[14,0,\"column\"],[12],[1,\"\\n              \"],[10,0],[14,0,\"metric\"],[12],[1,\"\\n                \"],[10,\"h3\"],[14,0,\"label\"],[12],[1,\"Available\"],[13],[1,\"\\n                \"],[10,2],[14,0,\"value\"],[12],[1,[30,0,[\"model\",\"nodesHealthy\"]]],[13],[1,\"\\n              \"],[13],[1,\"\\n            \"],[13],[1,\"\\n            \"],[10,0],[14,0,\"column\"],[12],[1,\"\\n              \"],[10,0],[14,0,\"metric\"],[12],[1,\"\\n                \"],[10,\"h3\"],[14,0,\"label\"],[12],[1,\"Expected\"],[13],[1,\"\\n                \"],[10,2],[14,0,\"value\"],[12],[1,[30,0,[\"model\",\"nodesExpected\"]]],[13],[1,\"\\n              \"],[13],[1,\"\\n            \"],[13],[1,\"\\n          \"],[13],[1,\"\\n        \"],[13],[1,\"\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n  \"],[13],[1,\"\\n\\n\"],[41,[30,0,[\"model\",\"controllerRequired\"]],[[[1,\"    \"],[10,0],[14,0,\"boxed-section\"],[12],[1,\"\\n      \"],[10,0],[14,0,\"boxed-section-head\"],[12],[1,\"\\n        Controller Allocations\\n      \"],[13],[1,\"\\n      \"],[10,0],[15,0,[29,[\"boxed-section-body \",[52,[30,0,[\"model\",\"controllers\"]],\"is-full-bleed\"]]]],[12],[1,\"\\n\"],[41,[30,0,[\"model\",\"controllers\"]],[[[1,\"          \"],[8,[39,6],null,[[\"@source\",\"@class\"],[[28,[37,7],[10,[30,0,[\"sortedControllers\"]]],null],\"with-foot\"]],[[\"default\"],[[[[1,\"\\n            \"],[8,[30,1,[\"head\"]],null,null,[[\"default\"],[[[[1,\"\\n              \"],[10,\"th\"],[14,0,\"is-narrow\"],[12],[13],[1,\"\\n              \"],[10,\"td\"],[12],[1,\"ID\"],[13],[1,\"\\n              \"],[10,\"th\"],[12],[1,\"Created\"],[13],[1,\"\\n              \"],[10,\"th\"],[12],[1,\"Modified\"],[13],[1,\"\\n              \"],[10,\"th\"],[12],[1,\"Health\"],[13],[1,\"\\n              \"],[10,\"th\"],[12],[1,\"Client\"],[13],[1,\"\\n              \"],[10,\"th\"],[12],[1,\"Job\"],[13],[1,\"\\n              \"],[10,\"th\"],[12],[1,\"Version\"],[13],[1,\"\\n              \"],[10,\"th\"],[12],[1,\"Volumes\"],[13],[1,\"\\n              \"],[10,\"th\"],[12],[1,\"CPU\"],[13],[1,\"\\n              \"],[10,\"th\"],[12],[1,\"Memory\"],[13],[1,\"\\n            \"]],[]]]]],[1,\"\\n            \"],[8,[30,1,[\"body\"]],null,[[\"@key\"],[\"model.allocID\"]],[[\"default\"],[[[[1,\"\\n              \"],[8,[39,8],null,[[\"@pluginAllocation\"],[[30,2,[\"model\"]]]],null],[1,\"\\n            \"]],[2]]]]],[1,\"\\n          \"]],[1]]]]],[1,\"\\n\"]],[]],[[[1,\"          \"],[10,0],[14,0,\"empty-message\"],[12],[1,\"\\n            \"],[10,\"h3\"],[14,0,\"empty-message-headline\"],[12],[1,\"No Controller Plugin Allocations\"],[13],[1,\"\\n            \"],[10,2],[14,0,\"empty-message-body\"],[12],[1,\"No allocations are providing controller plugin service.\"],[13],[1,\"\\n          \"],[13],[1,\"\\n\"]],[]]],[1,\"      \"],[13],[1,\"\\n\"],[41,[30,0,[\"model\",\"controllers\"]],[[[1,\"        \"],[10,0],[14,0,\"boxed-section-foot\"],[12],[1,\"\\n          \"],[10,2],[14,0,\"pull-right\"],[12],[1,\"\\n          \"],[8,[39,9],null,[[\"@route\",\"@model\",\"@query\"],[\"csi.plugins.plugin.allocations\",[30,0,[\"model\"]],[28,[37,10],null,[[\"qpType\"],[[28,[37,11],[[28,[37,12],[\"controller\"],null]],null]]]]]],[[\"default\"],[[[[1,\"\\n            View all \"],[1,[30,0,[\"model\",\"controllers\",\"length\"]]],[1,\" Controller \"],[1,[28,[35,13],[\"allocation\",[30,0,[\"model\",\"controllers\",\"length\"]]],null]],[1,\"\\n          \"]],[]]]]],[1,\"\\n          \"],[13],[1,\"\\n        \"],[13],[1,\"\\n\"]],[]],null],[1,\"    \"],[13],[1,\"\\n\"]],[]],null],[1,\"\\n  \"],[10,0],[14,0,\"boxed-section\"],[12],[1,\"\\n    \"],[10,0],[14,0,\"boxed-section-head\"],[12],[1,\"\\n      Node Allocations\\n    \"],[13],[1,\"\\n    \"],[10,0],[15,0,[29,[\"boxed-section-body \",[52,[30,0,[\"model\",\"nodes\"]],\"is-full-bleed\"]]]],[12],[1,\"\\n\"],[41,[30,0,[\"model\",\"nodes\"]],[[[1,\"        \"],[8,[39,6],null,[[\"@source\",\"@class\"],[[28,[37,7],[10,[30,0,[\"sortedNodes\"]]],null],\"with-foot\"]],[[\"default\"],[[[[1,\"\\n          \"],[8,[30,3,[\"head\"]],null,null,[[\"default\"],[[[[1,\"\\n            \"],[10,\"th\"],[14,0,\"is-narrow\"],[12],[13],[1,\"\\n            \"],[10,\"td\"],[12],[1,\"ID\"],[13],[1,\"\\n            \"],[10,\"th\"],[12],[1,\"Created\"],[13],[1,\"\\n            \"],[10,\"th\"],[12],[1,\"Modified\"],[13],[1,\"\\n            \"],[10,\"th\"],[12],[1,\"Health\"],[13],[1,\"\\n            \"],[10,\"th\"],[12],[1,\"Client\"],[13],[1,\"\\n            \"],[10,\"th\"],[12],[1,\"Job\"],[13],[1,\"\\n            \"],[10,\"th\"],[12],[1,\"Version\"],[13],[1,\"\\n            \"],[10,\"th\"],[12],[1,\"Volumes\"],[13],[1,\"\\n            \"],[10,\"th\"],[12],[1,\"CPU\"],[13],[1,\"\\n            \"],[10,\"th\"],[12],[1,\"Memory\"],[13],[1,\"\\n          \"]],[]]]]],[1,\"\\n          \"],[8,[30,3,[\"body\"]],null,[[\"@key\"],[\"model.allocID\"]],[[\"default\"],[[[[1,\"\\n            \"],[8,[39,8],null,[[\"@pluginAllocation\"],[[30,4,[\"model\"]]]],null],[1,\"\\n          \"]],[4]]]]],[1,\"\\n        \"]],[3]]]]],[1,\"\\n\"]],[]],[[[1,\"        \"],[10,0],[14,0,\"empty-message\"],[12],[1,\"\\n          \"],[10,\"h3\"],[14,0,\"empty-message-headline\"],[12],[1,\"No Node Plugin Allocations\"],[13],[1,\"\\n          \"],[10,2],[14,0,\"empty-message-body\"],[12],[1,\"No allocations are providing node plugin service.\"],[13],[1,\"\\n        \"],[13],[1,\"\\n\"]],[]]],[1,\"    \"],[13],[1,\"\\n\"],[41,[30,0,[\"model\",\"nodes\"]],[[[1,\"      \"],[10,0],[14,0,\"boxed-section-foot\"],[12],[1,\"\\n        \"],[10,2],[14,0,\"pull-right\"],[12],[1,\"\\n        \"],[8,[39,9],null,[[\"@route\",\"@model\",\"@query\"],[\"csi.plugins.plugin.allocations\",[30,0,[\"model\"]],[28,[37,10],null,[[\"qpType\"],[[28,[37,11],[[28,[37,12],[\"node\"],null]],null]]]]]],[[\"default\"],[[[[1,\"\\n          View all \"],[1,[30,0,[\"model\",\"nodes\",\"length\"]]],[1,\" Node \"],[1,[28,[35,13],[\"allocation\",[30,0,[\"model\",\"nodes\",\"length\"]]],null]],[1,\"\\n        \"]],[]]]]],[1,\"\\n        \"],[13],[1,\"\\n      \"],[13],[1,\"\\n\"]],[]],null],[1,\"  \"],[13],[1,\"\\n\"],[13],[1,\"\\n\"]],[\"t\",\"row\",\"t\",\"row\"],false,[\"page-title\",\"plugin-subnav\",\"if\",\"format-percentage\",\"gauge-chart\",\"unless\",\"list-table\",\"take\",\"plugin-allocation-row\",\"link-to\",\"hash\",\"qp-serialize\",\"array\",\"pluralize\"]]",
    "moduleName": "nomad-ui/templates/csi/plugins/plugin/index.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/csi/volumes", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "6nwnfZ/o",
    "block": "[[[8,[39,0],null,[[\"@crumb\"],[[28,[37,1],null,[[\"label\",\"args\"],[\"Storage\",[28,[37,2],[\"csi.index\"],null]]]]]],null],[46,[28,[37,4],null,null],null,null,null]],[],false,[\"breadcrumb\",\"hash\",\"array\",\"component\",\"-outlet\"]]",
    "moduleName": "nomad-ui/templates/csi/volumes.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/csi/volumes/index", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "xQN48RnC",
    "block": "[[[1,[28,[35,0],[\"CSI Volumes\"],null]],[1,\"\\n\"],[8,[39,1],null,null,null],[1,\"\\n\"],[10,\"section\"],[14,0,\"section\"],[12],[1,\"\\n  \"],[10,0],[14,0,\"toolbar\"],[12],[1,\"\\n    \"],[10,0],[14,0,\"toolbar-item\"],[12],[1,\"\\n\"],[41,[30,0,[\"visibleVolumes\",\"length\"]],[[[1,\"        \"],[8,[39,3],null,[[\"@searchTerm\",\"@onChange\",\"@placeholder\"],[[28,[37,4],[[30,0,[\"searchTerm\"]]],null],[28,[37,5],[[30,0],[30,0,[\"resetPagination\"]]],null],\"Search volumes...\"]],null],[1,\"\\n\"]],[]],null],[1,\"    \"],[13],[1,\"\\n\"],[41,[30,0,[\"system\",\"shouldShowNamespaces\"]],[[[1,\"      \"],[10,0],[14,0,\"toolbar-item is-right-aligned is-mobile-full-width\"],[12],[1,\"\\n        \"],[10,0],[14,0,\"button-bar\"],[12],[1,\"\\n          \"],[8,[39,6],null,[[\"@label\",\"@options\",\"@selection\",\"@onSelect\"],[\"Namespace\",[30,0,[\"optionsNamespaces\"]],[30,0,[\"qpNamespace\"]],[28,[37,5],[[30,0],[30,0,[\"setFacetQueryParam\"]],\"qpNamespace\"],null]]],null],[1,\"\\n        \"],[13],[1,\"\\n      \"],[13],[1,\"\\n\"]],[]],null],[1,\"  \"],[13],[1,\"\\n\"],[41,[30,0,[\"isForbidden\"]],[[[1,\"    \"],[8,[39,7],null,null,null],[1,\"\\n\"]],[]],[[[41,[30,0,[\"sortedVolumes\"]],[[[1,\"    \"],[8,[39,8],null,[[\"@source\",\"@size\",\"@page\"],[[30,0,[\"sortedVolumes\"]],[30,0,[\"pageSize\"]],[30,0,[\"currentPage\"]]]],[[\"default\"],[[[[1,\"\\n      \"],[8,[39,9],null,[[\"@source\",\"@sortProperty\",\"@sortDescending\",\"@class\"],[[30,1,[\"list\"]],[30,0,[\"sortProperty\"]],[30,0,[\"sortDescending\"]],\"with-foot\"]],[[\"default\"],[[[[1,\"\\n        \"],[8,[30,2,[\"head\"]],null,null,[[\"default\"],[[[[1,\"\\n          \"],[8,[30,2,[\"sort-by\"]],null,[[\"@prop\"],[\"name\"]],[[\"default\"],[[[[1,\"\\n            Name\\n          \"]],[]]]]],[1,\"\\n\"],[41,[30,0,[\"system\",\"shouldShowNamespaces\"]],[[[1,\"            \"],[8,[30,2,[\"sort-by\"]],null,[[\"@prop\"],[\"namespace.name\"]],[[\"default\"],[[[[1,\"\\n              Namespace\\n            \"]],[]]]]],[1,\"\\n\"]],[]],null],[1,\"          \"],[8,[30,2,[\"sort-by\"]],null,[[\"@prop\"],[\"schedulable\"]],[[\"default\"],[[[[1,\"\\n            Volume Health\\n          \"]],[]]]]],[1,\"\\n          \"],[8,[30,2,[\"sort-by\"]],null,[[\"@prop\"],[\"controllersHealthyProportion\"]],[[\"default\"],[[[[1,\"\\n            Controller Health\\n          \"]],[]]]]],[1,\"\\n          \"],[8,[30,2,[\"sort-by\"]],null,[[\"@prop\"],[\"nodesHealthyProportion\"]],[[\"default\"],[[[[1,\"\\n            Node Health\\n          \"]],[]]]]],[1,\"\\n          \"],[8,[30,2,[\"sort-by\"]],null,[[\"@prop\"],[\"provider\"]],[[\"default\"],[[[[1,\"\\n            Provider\\n          \"]],[]]]]],[1,\"\\n          \"],[10,\"th\"],[12],[1,\"\\n            # Allocs\\n          \"],[13],[1,\"\\n        \"]],[]]]]],[1,\"\\n        \"],[8,[30,2,[\"body\"]],null,[[\"@key\"],[\"model.name\"]],[[\"default\"],[[[[1,\"\\n          \"],[11,\"tr\"],[24,0,\"is-interactive\"],[4,[38,10],[\"click\",[28,[37,5],[[30,0],\"gotoVolume\",[30,3,[\"model\"]]],null]],null],[12],[1,\"\\n            \"],[11,\"td\"],[4,[38,11],null,[[\"enumerated\",\"action\"],[true,[28,[37,5],[[30,0],\"gotoVolume\",[30,3,[\"model\"]]],null]]]],[12],[1,\"\\n              \"],[8,[39,12],null,[[\"@text\"],[[30,3,[\"model\",\"plainId\"]]]],[[\"default\"],[[[[1,\"\\n                \"],[8,[39,13],[[24,0,\"is-primary\"]],[[\"@route\",\"@model\"],[\"csi.volumes.volume\",[30,3,[\"model\",\"idWithNamespace\"]]]],[[\"default\"],[[[[1,\"\\n                  \"],[1,[30,3,[\"model\",\"name\"]]],[1,\"\\n                \"]],[]]]]],[1,\"\\n              \"]],[]]]]],[1,\"\\n            \"],[13],[1,\"\\n\"],[41,[30,0,[\"system\",\"shouldShowNamespaces\"]],[[[1,\"              \"],[10,\"td\"],[12],[1,\"\\n                \"],[1,[30,3,[\"model\",\"namespace\",\"name\"]]],[1,\"\\n              \"],[13],[1,\"\\n\"]],[]],null],[1,\"            \"],[10,\"td\"],[12],[1,\"\\n              \"],[1,[52,[30,3,[\"model\",\"schedulable\"]],\"Schedulable\",\"Unschedulable\"]],[1,\"\\n            \"],[13],[1,\"\\n            \"],[10,\"td\"],[12],[1,\"\\n\"],[41,[30,3,[\"model\",\"controllerRequired\"]],[[[1,\"                \"],[1,[52,[28,[37,14],[[30,3,[\"model\",\"controllersHealthy\"]],0],null],\"Healthy\",\"Unhealthy\"]],[1,\"\\n                (\\n                \"],[1,[30,3,[\"model\",\"controllersHealthy\"]]],[1,\"\\n                /\\n                \"],[1,[30,3,[\"model\",\"controllersExpected\"]]],[1,\"\\n                )\\n\"]],[]],[[[41,[28,[37,14],[[30,3,[\"model\",\"controllersExpected\"]],0],null],[[[1,\"                \"],[1,[52,[28,[37,14],[[30,3,[\"model\",\"controllersHealthy\"]],0],null],\"Healthy\",\"Unhealthy\"]],[1,\"\\n                (\\n                \"],[1,[30,3,[\"model\",\"controllersHealthy\"]]],[1,\"\\n                /\\n                \"],[1,[30,3,[\"model\",\"controllersExpected\"]]],[1,\"\\n                )\\n\"]],[]],[[[1,\"                \"],[10,\"em\"],[14,0,\"is-faded\"],[12],[1,\"\\n                  Node Only\\n                \"],[13],[1,\"\\n              \"]],[]]]],[]]],[1,\"            \"],[13],[1,\"\\n            \"],[10,\"td\"],[12],[1,\"\\n              \"],[1,[52,[28,[37,14],[[30,3,[\"model\",\"nodesHealthy\"]],0],null],\"Healthy\",\"Unhealthy\"]],[1,\"\\n              (\\n              \"],[1,[30,3,[\"model\",\"nodesHealthy\"]]],[1,\"\\n              /\\n              \"],[1,[30,3,[\"model\",\"nodesExpected\"]]],[1,\"\\n              )\\n            \"],[13],[1,\"\\n            \"],[10,\"td\"],[12],[1,\"\\n              \"],[1,[30,3,[\"model\",\"provider\"]]],[1,\"\\n            \"],[13],[1,\"\\n            \"],[10,\"td\"],[12],[1,\"\\n              \"],[1,[30,3,[\"model\",\"allocationCount\"]]],[1,\"\\n            \"],[13],[1,\"\\n          \"],[13],[1,\"\\n        \"]],[3]]]]],[1,\"\\n      \"]],[2]]]]],[1,\"\\n      \"],[10,0],[14,0,\"table-foot\"],[12],[1,\"\\n        \"],[8,[39,15],null,[[\"@onChange\"],[[28,[37,5],[[30,0],[30,0,[\"resetPagination\"]]],null]]],null],[1,\"\\n        \"],[10,\"nav\"],[14,0,\"pagination\"],[12],[1,\"\\n          \"],[10,0],[14,0,\"pagination-numbers\"],[12],[1,\"\\n            \"],[1,[30,1,[\"startsAt\"]]],[1,\"\\n            –\\n            \"],[1,[30,1,[\"endsAt\"]]],[1,\"\\n            of\\n            \"],[1,[30,0,[\"sortedVolumes\",\"length\"]]],[1,\"\\n          \"],[13],[1,\"\\n          \"],[8,[30,1,[\"prev\"]],null,[[\"@class\"],[\"pagination-previous\"]],[[\"default\"],[[[[1,\"\\n            \"],[1,[28,[35,16],[\"chevron-left\"],null]],[1,\"\\n          \"]],[]]]]],[1,\"\\n          \"],[8,[30,1,[\"next\"]],null,[[\"@class\"],[\"pagination-next\"]],[[\"default\"],[[[[1,\"\\n            \"],[1,[28,[35,16],[\"chevron-right\"],null]],[1,\"\\n          \"]],[]]]]],[1,\"\\n          \"],[10,\"ul\"],[14,0,\"pagination-list\"],[12],[13],[1,\"\\n        \"],[13],[1,\"\\n      \"],[13],[1,\"\\n    \"]],[1]]]]],[1,\"\\n\"]],[]],[[[1,\"    \"],[10,0],[14,0,\"empty-message\"],[12],[1,\"\\n\"],[41,[28,[37,17],[[30,0,[\"visibleVolumes\",\"length\"]],0],null],[[[1,\"        \"],[10,\"h3\"],[14,0,\"empty-message-headline\"],[12],[1,\"\\n          No Volumes\\n        \"],[13],[1,\"\\n        \"],[10,2],[14,0,\"empty-message-body\"],[12],[1,\"\\n          This namespace currently has no CSI Volumes.\\n        \"],[13],[1,\"\\n\"]],[]],[[[41,[30,0,[\"searchTerm\"]],[[[1,\"        \"],[10,\"h3\"],[14,0,\"empty-message-headline\"],[12],[1,\"\\n          No Matches\\n        \"],[13],[1,\"\\n        \"],[10,2],[14,0,\"empty-message-body\"],[12],[1,\"\\n          No volumes match the term\\n          \"],[10,\"strong\"],[12],[1,\"\\n            \"],[1,[30,0,[\"searchTerm\"]]],[1,\"\\n          \"],[13],[1,\"\\n        \"],[13],[1,\"\\n      \"]],[]],null]],[]]],[1,\"    \"],[13],[1,\"\\n  \"]],[]]]],[]]],[13]],[\"p\",\"t\",\"row\"],false,[\"page-title\",\"storage-subnav\",\"if\",\"search-box\",\"mut\",\"action\",\"single-select-dropdown\",\"forbidden-message\",\"list-pagination\",\"list-table\",\"on\",\"keyboard-shortcut\",\"tooltip\",\"link-to\",\"gt\",\"page-size-select\",\"x-icon\",\"eq\"]]",
    "moduleName": "nomad-ui/templates/csi/volumes/index.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/csi/volumes/volume", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "xQB+ySo5",
    "block": "[[[42,[28,[37,1],[[28,[37,1],[[30,0,[\"breadcrumbs\"]]],null]],null],null,[[[1,\"  \"],[8,[39,2],null,[[\"@crumb\"],[[30,1]]],null],[1,\"\\n\"]],[1]],null],[1,[28,[35,3],[\"CSI Volume \",[30,0,[\"model\",\"name\"]]],null]],[1,\"\\n\"],[10,\"section\"],[14,0,\"section with-headspace\"],[12],[1,\"\\n  \"],[10,\"h1\"],[14,0,\"title\"],[12],[1,[30,0,[\"model\",\"name\"]]],[13],[1,\"\\n\\n  \"],[10,0],[14,0,\"boxed-section is-small\"],[12],[1,\"\\n    \"],[10,0],[14,0,\"boxed-section-body inline-definitions\"],[12],[1,\"\\n      \"],[10,1],[14,0,\"label\"],[12],[1,\"Volume Details\"],[13],[1,\"\\n      \"],[10,1],[14,0,\"pair\"],[12],[1,\"\\n        \"],[10,1],[14,0,\"term\"],[12],[1,\"Health\"],[13],[1,\"\\n        \"],[1,[52,[30,0,[\"model\",\"schedulable\"]],\"Schedulable\",\"Unschedulable\"]],[1,\"\\n      \"],[13],[1,\"\\n      \"],[10,1],[14,0,\"pair\"],[12],[1,\"\\n        \"],[10,1],[14,0,\"term\"],[12],[1,\"Provider\"],[13],[1,\"\\n        \"],[1,[30,0,[\"model\",\"provider\"]]],[1,\"\\n      \"],[13],[1,\"\\n      \"],[10,1],[14,0,\"pair\"],[12],[1,\"\\n        \"],[10,1],[14,0,\"term\"],[12],[1,\"External ID\"],[13],[1,\"\\n        \"],[1,[30,0,[\"model\",\"externalId\"]]],[1,\"\\n      \"],[13],[1,\"\\n\"],[41,[30,0,[\"system\",\"shouldShowNamespaces\"]],[[[1,\"        \"],[10,1],[14,0,\"pair\"],[12],[1,\"\\n          \"],[10,1],[14,0,\"term\"],[12],[1,\"Namespace\"],[13],[1,\"\\n          \"],[1,[30,0,[\"model\",\"namespace\",\"name\"]]],[1,\"\\n        \"],[13],[1,\"\\n\"]],[]],null],[1,\"    \"],[13],[1,\"\\n  \"],[13],[1,\"\\n\\n  \"],[10,0],[14,0,\"boxed-section\"],[12],[1,\"\\n    \"],[10,0],[14,0,\"boxed-section-head\"],[12],[1,\"\\n      Write Allocations\\n    \"],[13],[1,\"\\n    \"],[10,0],[15,0,[29,[\"boxed-section-body \",[52,[30,0,[\"model\",\"writeAllocations\",\"length\"]],\"is-full-bleed\"]]]],[12],[1,\"\\n\"],[41,[30,0,[\"model\",\"writeAllocations\",\"length\"]],[[[1,\"        \"],[8,[39,5],null,[[\"@source\",\"@class\"],[[30,0,[\"sortedWriteAllocations\"]],\"with-foot\"]],[[\"default\"],[[[[1,\"\\n          \"],[8,[30,2,[\"head\"]],null,null,[[\"default\"],[[[[1,\"\\n            \"],[10,\"th\"],[14,0,\"is-narrow\"],[12],[13],[1,\"\\n            \"],[10,\"th\"],[12],[1,\"ID\"],[13],[1,\"\\n            \"],[10,\"th\"],[12],[1,\"Created\"],[13],[1,\"\\n            \"],[10,\"th\"],[12],[1,\"Modified\"],[13],[1,\"\\n            \"],[10,\"th\"],[12],[1,\"Status\"],[13],[1,\"\\n            \"],[10,\"th\"],[12],[1,\"Client\"],[13],[1,\"\\n            \"],[10,\"th\"],[12],[1,\"Job\"],[13],[1,\"\\n            \"],[10,\"th\"],[12],[1,\"Version\"],[13],[1,\"\\n            \"],[10,\"th\"],[12],[1,\"CPU\"],[13],[1,\"\\n            \"],[10,\"th\"],[12],[1,\"Memory\"],[13],[1,\"\\n          \"]],[]]]]],[1,\"\\n          \"],[8,[30,2,[\"body\"]],null,null,[[\"default\"],[[[[1,\"\\n            \"],[8,[39,6],[[4,[38,8],null,[[\"enumerated\",\"action\"],[true,[28,[37,7],[[30,0],\"gotoAllocation\",[30,3,[\"model\"]]],null]]]]],[[\"@allocation\",\"@context\",\"@onClick\"],[[30,3,[\"model\"]],\"volume\",[28,[37,7],[[30,0],\"gotoAllocation\",[30,3,[\"model\"]]],null]]],null],[1,\"\\n          \"]],[3]]]]],[1,\"\\n        \"]],[2]]]]],[1,\"\\n\"]],[]],[[[1,\"        \"],[10,0],[14,0,\"empty-message\"],[12],[1,\"\\n          \"],[10,\"h3\"],[14,0,\"empty-message-headline\"],[12],[1,\"No Write Allocations\"],[13],[1,\"\\n          \"],[10,2],[14,0,\"empty-message-body\"],[12],[1,\"No allocations are depending on this volume for read/write access.\"],[13],[1,\"\\n        \"],[13],[1,\"\\n\"]],[]]],[1,\"    \"],[13],[1,\"\\n  \"],[13],[1,\"\\n\\n  \"],[10,0],[14,0,\"boxed-section\"],[12],[1,\"\\n    \"],[10,0],[14,0,\"boxed-section-head\"],[12],[1,\"\\n      Read Allocations\\n    \"],[13],[1,\"\\n    \"],[10,0],[15,0,[29,[\"boxed-section-body \",[52,[30,0,[\"model\",\"readAllocations\",\"length\"]],\"is-full-bleed\"]]]],[12],[1,\"\\n\"],[41,[30,0,[\"model\",\"readAllocations\",\"length\"]],[[[1,\"        \"],[8,[39,5],null,[[\"@source\",\"@class\"],[[30,0,[\"sortedReadAllocations\"]],\"with-foot\"]],[[\"default\"],[[[[1,\"\\n          \"],[8,[30,4,[\"head\"]],null,null,[[\"default\"],[[[[1,\"\\n            \"],[10,\"th\"],[14,0,\"is-narrow\"],[12],[13],[1,\"\\n            \"],[10,\"th\"],[12],[1,\"ID\"],[13],[1,\"\\n            \"],[10,\"th\"],[12],[1,\"Modified\"],[13],[1,\"\\n            \"],[10,\"th\"],[12],[1,\"Created\"],[13],[1,\"\\n            \"],[10,\"th\"],[12],[1,\"Status\"],[13],[1,\"\\n            \"],[10,\"th\"],[12],[1,\"Client\"],[13],[1,\"\\n            \"],[10,\"th\"],[12],[1,\"Job\"],[13],[1,\"\\n            \"],[10,\"th\"],[12],[1,\"Version\"],[13],[1,\"\\n            \"],[10,\"th\"],[12],[1,\"CPU\"],[13],[1,\"\\n            \"],[10,\"th\"],[12],[1,\"Memory\"],[13],[1,\"\\n          \"]],[]]]]],[1,\"\\n          \"],[8,[30,4,[\"body\"]],null,null,[[\"default\"],[[[[1,\"\\n            \"],[8,[39,6],[[4,[38,8],null,[[\"enumerated\",\"action\"],[true,[28,[37,7],[[30,0],\"gotoAllocation\",[30,5,[\"model\"]]],null]]]]],[[\"@allocation\",\"@context\",\"@onClick\"],[[30,5,[\"model\"]],\"volume\",[28,[37,7],[[30,0],\"gotoAllocation\",[30,5,[\"model\"]]],null]]],null],[1,\"\\n          \"]],[5]]]]],[1,\"\\n        \"]],[4]]]]],[1,\"\\n\"]],[]],[[[1,\"        \"],[10,0],[14,0,\"empty-message\"],[12],[1,\"\\n          \"],[10,\"h3\"],[14,0,\"empty-message-headline\"],[12],[1,\"No Read Allocations\"],[13],[1,\"\\n          \"],[10,2],[14,0,\"empty-message-body\"],[12],[1,\"No allocations are depending on this volume for read-only access.\"],[13],[1,\"\\n        \"],[13],[1,\"\\n\"]],[]]],[1,\"    \"],[13],[1,\"\\n  \"],[13],[1,\"\\n\\n  \"],[10,0],[14,0,\"boxed-section\"],[12],[1,\"\\n    \"],[10,0],[14,0,\"boxed-section-head\"],[12],[1,\"\\n      Constraints\\n    \"],[13],[1,\"\\n    \"],[10,0],[14,0,\"boxed-section-body is-full-bleed\"],[12],[1,\"\\n      \"],[10,\"table\"],[14,0,\"table\"],[12],[1,\"\\n        \"],[10,\"thead\"],[12],[1,\"\\n          \"],[10,\"th\"],[12],[1,\"Setting\"],[13],[1,\"\\n          \"],[10,\"th\"],[12],[1,\"Value\"],[13],[1,\"\\n        \"],[13],[1,\"\\n        \"],[10,\"tbody\"],[12],[1,\"\\n          \"],[10,\"tr\"],[12],[1,\"\\n            \"],[10,\"td\"],[12],[1,\"Access Mode\"],[13],[1,\"\\n            \"],[10,\"td\"],[12],[1,[30,0,[\"model\",\"accessMode\"]]],[13],[1,\"\\n          \"],[13],[1,\"\\n          \"],[10,\"tr\"],[12],[1,\"\\n            \"],[10,\"td\"],[12],[1,\"Attachment Mode\"],[13],[1,\"\\n            \"],[10,\"td\"],[12],[1,[30,0,[\"model\",\"attachmentMode\"]]],[13],[1,\"\\n          \"],[13],[1,\"\\n        \"],[13],[1,\"\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n  \"],[13],[1,\"\\n\"],[13],[1,\"\\n\"]],[\"crumb\",\"t\",\"row\",\"t\",\"row\"],false,[\"each\",\"-track-array\",\"breadcrumb\",\"page-title\",\"if\",\"list-table\",\"allocation-row\",\"action\",\"keyboard-shortcut\"]]",
    "moduleName": "nomad-ui/templates/csi/volumes/volume.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/evaluations", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "pPKNjdic",
    "block": "[[[8,[39,0],null,[[\"@crumb\"],[[28,[37,1],null,[[\"label\",\"args\"],[\"Evaluations\",[28,[37,2],[\"evaluations.index\"],null]]]]]],null],[1,\"\\n\"],[8,[39,3],null,null,[[\"default\"],[[[[1,\"\\n  \"],[8,[39,4],null,[[\"@name\"],[\"eval-detail-portal\"]],null],[1,\"\\n  \"],[46,[28,[37,6],null,null],null,null,null],[1,\"\\n\"]],[]]]]]],[],false,[\"breadcrumb\",\"hash\",\"array\",\"page-layout\",\"portal-target\",\"component\",\"-outlet\"]]",
    "moduleName": "nomad-ui/templates/evaluations.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/evaluations/index", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "4C4drFvQ",
    "block": "[[[1,[28,[35,0],[\"Evaluations\"],null]],[1,\"\\n\"],[1,[28,[35,1],[[30,0,[\"notifyEvalChange\"]],[30,0,[\"currentEval\"]]],null]],[1,\"\\n\"],[10,\"section\"],[14,0,\"section\"],[12],[1,\"\\n    \"],[10,0],[14,0,\"toolbar\"],[12],[1,\"\\n      \"],[10,0],[14,0,\"toolbar-item\"],[12],[1,\"\\n        \"],[8,[39,2],null,[[\"@searchTerm\",\"@onChange\",\"@placeholder\"],[[28,[37,3],[[30,0,[\"searchTerm\"]]],null],[28,[37,4],[[30,0],[30,0,[\"_resetTokens\"]]],null],\"Search evaluations...\"]],null],[1,\"\\n      \"],[13],[1,\"\\n      \"],[10,0],[14,0,\"toolbar-item is-right-aligned\"],[12],[1,\"\\n        \"],[10,0],[14,0,\"button-bar\"],[12],[1,\"\\n          \"],[8,[39,5],null,[[\"@label\",\"@options\",\"@selection\",\"@onSelect\"],[\"Namespace\",[30,0,[\"optionsNamespaces\"]],[30,0,[\"qpNamespace\"]],[28,[37,4],[[30,0],[30,0,[\"setQueryParam\"]],\"qpNamespace\"],null]]],null],[1,\"\\n          \"],[8,[39,5],null,[[\"@label\",\"@options\",\"@selection\",\"@onSelect\"],[\"Status\",[30,0,[\"optionsEvaluationsStatus\"]],[30,0,[\"status\"]],[28,[37,4],[[30,0],[30,0,[\"setQueryParam\"]],\"status\"],null]]],null],[1,\"\\n          \"],[8,[39,5],null,[[\"@label\",\"@options\",\"@selection\",\"@onSelect\"],[\"Triggered By\",[30,0,[\"optionsTriggeredBy\"]],[30,0,[\"triggeredBy\"]],[28,[37,4],[[30,0],[30,0,[\"setQueryParam\"]],\"triggeredBy\"],null]]],null],[1,\"\\n          \"],[8,[39,5],null,[[\"@label\",\"@options\",\"@selection\",\"@onSelect\"],[\"Type\",[30,0,[\"optionsType\"]],[30,0,[\"type\"]],[28,[37,4],[[30,0],[30,0,[\"setQueryParam\"]],\"type\"],null]]],null],[1,\"\\n        \"],[13],[1,\"\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n  \"],[10,0],[14,0,\"table-container\"],[12],[1,\"\\n\"],[41,[30,1,[\"length\"]],[[[1,\"      \"],[8,[39,7],null,[[\"@source\"],[[30,1]]],[[\"default\"],[[[[1,\"\\n        \"],[8,[30,2,[\"head\"]],null,null,[[\"default\"],[[[[1,\"\\n          \"],[10,\"th\"],[12],[1,\"\\n            Evaluation ID\\n          \"],[13],[1,\"\\n          \"],[10,\"th\"],[12],[1,\"\\n            Resource\\n          \"],[13],[1,\"\\n          \"],[10,\"th\"],[12],[1,\"\\n            Priority\\n          \"],[13],[1,\"\\n          \"],[10,\"th\"],[12],[1,\"\\n            Created\\n          \"],[13],[1,\"\\n          \"],[10,\"th\"],[12],[1,\"\\n            Triggered By\\n          \"],[13],[1,\"\\n          \"],[10,\"th\"],[12],[1,\"\\n            Status\\n          \"],[13],[1,\"\\n          \"],[10,\"th\"],[12],[1,\"\\n            Placement Failures\\n          \"],[13],[1,\"\\n        \"]],[]]]]],[1,\"\\n        \"],[8,[30,2,[\"body\"]],null,null,[[\"default\"],[[[[1,\"\\n          \"],[11,\"tr\"],[24,5,\"cursor: pointer;\"],[16,0,[29,[[52,[28,[37,8],[[30,0,[\"currentEval\"]],[30,3,[\"model\",\"id\"]]],null],\"is-active\"]]]],[24,\"tabindex\",\"0\"],[4,[38,9],[\"click\",[28,[37,10],[[30,0,[\"handleEvaluationClick\"]],[30,3,[\"model\"]]],null]],null],[4,[38,9],[\"keyup\",[28,[37,10],[[30,0,[\"handleEvaluationClick\"]],[30,3,[\"model\"]]],null]],null],[12],[1,\"\\n            \"],[11,\"td\"],[4,[38,11],null,[[\"enumerated\",\"action\"],[true,[28,[37,10],[[30,0,[\"handleEvaluationClick\"]],[30,3,[\"model\"]]],null]]]],[12],[1,\"\\n              \"],[1,[30,3,[\"model\",\"shortId\"]]],[1,\"\\n            \"],[13],[1,\"\\n            \"],[10,\"td\"],[12],[1,\"\\n\"],[41,[30,3,[\"model\",\"hasJob\"]],[[[1,\"                \"],[8,[39,12],null,[[\"@model\",\"@route\"],[[28,[37,13],[[30,3,[\"model\",\"plainJobId\"]],\"@\",[30,3,[\"model\",\"namespace\"]]],null],\"jobs.job\"]],[[\"default\"],[[[[1,\"\\n                  \"],[1,[30,3,[\"model\",\"plainJobId\"]]],[1,\"\\n                \"]],[]]]]],[1,\"\\n\"]],[]],[[[1,\"                \"],[8,[39,12],null,[[\"@model\",\"@route\"],[[30,3,[\"model\",\"nodeId\"]],\"clients.client\"]],[[\"default\"],[[[[1,\"\\n                  \"],[1,[30,3,[\"model\",\"shortNodeId\"]]],[1,\"\\n                \"]],[]]]]],[1,\"\\n\"]],[]]],[1,\"            \"],[13],[1,\"\\n            \"],[10,\"td\"],[12],[1,\"\\n              \"],[1,[30,3,[\"model\",\"priority\"]]],[1,\"\\n            \"],[13],[1,\"\\n            \"],[10,\"td\"],[12],[1,\"\\n              \"],[1,[28,[35,14],[[30,3,[\"model\",\"createTime\"]]],null]],[1,\"\\n            \"],[13],[1,\"\\n            \"],[10,\"td\"],[12],[1,\"\\n              \"],[1,[30,3,[\"model\",\"triggeredBy\"]]],[1,\"\\n            \"],[13],[1,\"\\n            \"],[10,\"td\"],[14,0,\"is-one-line\"],[12],[1,\"\\n              \"],[8,[39,15],null,[[\"@status\"],[[30,3,[\"model\",\"status\"]]]],null],[1,\"\\n            \"],[13],[1,\"\\n            \"],[10,\"td\"],[12],[1,\"\\n\"],[41,[28,[37,8],[[30,3,[\"model\",\"status\"]],\"blocked\"],null],[[[1,\"                N/A - In Progress\\n\"]],[]],[[[41,[30,3,[\"model\",\"hasPlacementFailures\"]],[[[1,\"                True\\n\"]],[]],[[[1,\"                False\\n              \"]],[]]]],[]]],[1,\"            \"],[13],[1,\"\\n          \"],[13],[1,\"\\n        \"]],[3]]]]],[1,\"\\n      \"]],[2]]]]],[1,\"\\n      \"],[10,0],[14,0,\"table-foot with-padding\"],[12],[1,\"\\n        \"],[8,[39,16],null,[[\"@onChange\"],[[30,0,[\"onChange\"]]]],null],[1,\"\\n        \"],[10,0],[12],[1,\"\\n          \"],[11,\"button\"],[24,0,\"button\"],[24,4,\"button\"],[4,[38,9],[\"click\",[30,0,[\"refresh\"]]],null],[12],[1,\"\\n            \"],[1,[28,[35,17],[\"refresh-default\"],[[\"class\"],[\"is-text\"]]]],[1,\"\\n            Refresh\\n          \"],[13],[1,\"\\n          \"],[11,\"button\"],[24,0,\"button is-text is-borderless\"],[16,\"disabled\",[30,0,[\"shouldDisablePrev\"]]],[24,4,\"button\"],[4,[38,9],[\"click\",[28,[37,10],[[30,0,[\"onPrev\"]],[30,0,[\"lastToken\"]]],null]],null],[12],[1,\"\\n            \"],[1,[28,[35,17],[\"chevron-left\"],[[\"class\"],[\"is-large\"]]]],[1,\"\\n          \"],[13],[1,\"\\n          \"],[11,\"button\"],[24,0,\"button is-text is-borderless\"],[16,\"disabled\",[30,0,[\"shouldDisableNext\"]]],[24,4,\"button\"],[4,[38,9],[\"click\",[28,[37,10],[[30,0,[\"onNext\"]],[30,1,[\"meta\",\"nextToken\"]]],null]],null],[12],[1,\"\\n            \"],[1,[28,[35,17],[\"chevron-right\"],[[\"class\"],[\"is-large\"]]]],[1,\"\\n          \"],[13],[1,\"\\n        \"],[13],[1,\"\\n      \"],[13],[1,\"\\n\"]],[]],[[[1,\"      \"],[10,0],[14,0,\"boxed-section-body\"],[12],[1,\"\\n        \"],[10,0],[14,0,\"empty-message\"],[12],[1,\"\\n          \"],[10,\"h3\"],[14,0,\"empty-message-headline\"],[12],[1,\"\\n            No Matches\\n          \"],[13],[1,\"\\n          \"],[10,2],[14,0,\"empty-message-body\"],[12],[1,\"\\n\"],[41,[30,0,[\"hasFiltersApplied\"]],[[[1,\"              \"],[10,1],[12],[1,\"\\n                No evaluations that match:\\n                \"],[10,\"strong\"],[12],[1,\"\\n                  \"],[1,[30,0,[\"noMatchText\"]]],[1,\"\\n                \"],[13],[1,\"\\n              \"],[13],[1,\"\\n\"]],[]],[[[1,\"              \"],[10,1],[12],[1,\"\\n                There are no evaluations\\n              \"],[13],[1,\"\\n\"]],[]]],[1,\"          \"],[13],[1,\"\\n        \"],[13],[1,\"\\n      \"],[13],[1,\"\\n\"]],[]]],[1,\"  \"],[13],[1,\"\\n  \"],[8,[39,18],null,[[\"@statechart\",\"@fns\"],[[30,0,[\"statechart\"]],[28,[37,19],null,[[\"closeSidebar\",\"handleEvaluationClick\"],[[30,0,[\"closeSidebar\"]],[30,0,[\"handleEvaluationClick\"]]]]]]],null],[1,\"\\n\"],[13]],[\"@model\",\"t\",\"row\"],false,[\"page-title\",\"did-update\",\"search-box\",\"mut\",\"action\",\"single-select-dropdown\",\"if\",\"list-table\",\"eq\",\"on\",\"fn\",\"keyboard-shortcut\",\"link-to\",\"concat\",\"format-month-ts\",\"status-cell\",\"page-size-select\",\"x-icon\",\"evaluation-sidebar/detail\",\"hash\"]]",
    "moduleName": "nomad-ui/templates/evaluations/index.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/exec-loading", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "2PjRrDeU",
    "block": "[[[1,[28,[35,0],[\"Exec\"],null]],[1,\"\\n\"],[10,\"nav\"],[14,0,\"navbar is-popup\"],[12],[1,\"\\n  \"],[10,0],[14,0,\"navbar-brand\"],[12],[1,\"\\n    \"],[10,0],[14,0,\"navbar-item is-logo\"],[12],[1,\"\\n      \"],[8,[39,1],null,null,null],[1,\"\\n    \"],[13],[1,\"\\n  \"],[13],[1,\"\\n\\n  \"],[10,0],[14,0,\"navbar-end\"],[12],[1,\"\\n    \"],[10,3],[14,6,\"https://nomadproject.io/docs\"],[14,\"target\",\"_blank\"],[14,\"rel\",\"noopener noreferrer\"],[14,0,\"navbar-item\"],[12],[1,\"Documentation\"],[13],[1,\"\\n    \"],[1,[28,[35,2],[\"lock-closed\"],null]],[1,\"\\n  \"],[13],[1,\"\\n\"],[13],[1,\"\\n\\n\"],[10,0],[14,0,\"exec-window loading\"],[12],[1,\"\\n  \"],[8,[39,3],null,null,null],[1,\"\\n\"],[13]],[],false,[\"page-title\",\"nomad-logo\",\"x-icon\",\"loading-spinner\"]]",
    "moduleName": "nomad-ui/templates/exec-loading.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/exec", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "zsF5DGnh",
    "block": "[[[1,[28,[35,0],[\"Exec\"],null]],[1,\"\\n\"],[10,\"nav\"],[14,0,\"navbar is-popup\"],[12],[1,\"\\n  \"],[10,0],[14,0,\"navbar-brand\"],[12],[1,\"\\n    \"],[10,0],[14,0,\"navbar-item is-logo\"],[12],[1,\"\\n      \"],[8,[39,1],null,null,null],[1,\"\\n    \"],[13],[1,\"\\n  \"],[13],[1,\"\\n\"],[41,[30,0,[\"system\",\"shouldShowRegions\"]],[[[1,\"      \"],[10,0],[14,0,\"navbar-item\"],[12],[1,\"\\n        \"],[10,1],[14,0,\"navbar-label\"],[12],[1,\"Region\"],[13],[1,\"\\n        \"],[10,1],[12],[1,[30,0,[\"model\",\"region\"]]],[13],[1,\"\\n      \"],[13],[1,\"\\n\"]],[]],null],[1,\"\\n\"],[41,[30,0,[\"system\",\"shouldShowNamespaces\"]],[[[1,\"      \"],[10,0],[14,0,\"navbar-item\"],[12],[1,\"\\n        \"],[10,1],[14,0,\"navbar-label\"],[12],[1,\"Namespace\"],[13],[1,\"\\n        \"],[10,1],[12],[1,[30,0,[\"model\",\"namespace\",\"id\"]]],[13],[1,\"\\n      \"],[13],[1,\"\\n\"]],[]],null],[1,\"\\n    \"],[10,0],[14,0,\"navbar-item\"],[12],[1,\"\\n      \"],[10,1],[14,0,\"navbar-label\"],[12],[1,\"Job\"],[13],[1,\"\\n      \"],[10,1],[12],[1,[30,0,[\"model\",\"name\"]]],[13],[1,\"\\n    \"],[13],[1,\"\\n  \"],[10,0],[14,0,\"navbar-end\"],[12],[1,\"\\n    \"],[10,3],[14,6,\"https://nomadproject.io/docs\"],[14,\"target\",\"_blank\"],[14,\"rel\",\"noopener noreferrer\"],[14,0,\"navbar-item\"],[12],[1,\"Documentation\"],[13],[1,\"\\n    \"],[1,[28,[35,3],[\"lock-closed\"],null]],[1,\"\\n  \"],[13],[1,\"\\n\"],[13],[1,\"\\n\\n\"],[41,[28,[37,4],[[30,0,[\"model\",\"status\"]],\"dead\"],null],[[[1,\"  \"],[10,0],[14,0,\"exec-window\"],[12],[1,\"\\n    \"],[10,0],[14,0,\"task-group-tree\"],[12],[1,\"\\n    \"],[13],[1,\"\\n    \"],[10,0],[14,0,\"terminal-container\"],[12],[1,\"\\n      Job \"],[10,\"code\"],[12],[1,[30,0,[\"model\",\"name\"]]],[13],[1,\" is dead and cannot host an exec session.\\n    \"],[13],[1,\"\\n  \"],[13],[1,\"\\n\"]],[]],[[[1,\"  \"],[10,0],[14,0,\"exec-window\"],[12],[1,\"\\n    \"],[10,0],[14,0,\"task-group-tree\"],[12],[1,\"\\n      \"],[10,\"h4\"],[14,0,\"title is-6\"],[12],[1,\"Tasks\"],[13],[1,\"\\n      \"],[10,\"ul\"],[12],[1,\"\\n\"],[42,[28,[37,6],[[28,[37,6],[[30,0,[\"sortedTaskGroups\"]]],null]],null],null,[[[1,\"          \"],[10,\"li\"],[12],[1,\"\\n            \"],[8,[39,7],null,[[\"@taskGroup\",\"@shouldOpenInNewWindow\",\"@activeTaskName\",\"@activeTaskGroupName\"],[[30,1],[30,0,[\"socketOpen\"]],[30,0,[\"taskName\"]],[30,0,[\"taskGroupName\"]]]],null],[1,\"\\n          \"],[13],[1,\"\\n\"]],[1]],null],[1,\"      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n    \"],[8,[39,8],null,[[\"@terminal\"],[[30,0,[\"terminal\"]]]],null],[1,\"\\n  \"],[13],[1,\"\\n\"]],[]]]],[\"taskGroup\"],false,[\"page-title\",\"nomad-logo\",\"if\",\"x-icon\",\"eq\",\"each\",\"-track-array\",\"exec/task-group-parent\",\"exec-terminal\"]]",
    "moduleName": "nomad-ui/templates/exec.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/index", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "JDzL3vyQ",
    "block": "[[],[],false,[]]",
    "moduleName": "nomad-ui/templates/index.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/jobs", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "dyFIpzgJ",
    "block": "[[[8,[39,0],null,[[\"@crumb\"],[[28,[37,1],null,[[\"label\",\"args\"],[\"Jobs\",[28,[37,2],[\"jobs.index\"],null]]]]]],null],[1,\"\\n\"],[8,[39,3],null,null,[[\"default\"],[[[[1,\"\\n  \"],[46,[28,[37,5],null,null],null,null,null],[1,\"\\n\"]],[]]]]]],[],false,[\"breadcrumb\",\"hash\",\"array\",\"page-layout\",\"component\",\"-outlet\"]]",
    "moduleName": "nomad-ui/templates/jobs.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/jobs/index", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "1ge793/u",
    "block": "[[[1,[28,[35,0],[\"Jobs\"],null]],[1,\"\\n\"],[10,\"section\"],[14,0,\"section\"],[12],[1,\"\\n  \"],[10,0],[14,0,\"toolbar\"],[12],[1,\"\\n    \"],[10,0],[14,0,\"toolbar-item\"],[12],[1,\"\\n\"],[41,[30,0,[\"visibleJobs\",\"length\"]],[[[1,\"        \"],[8,[39,2],null,[[\"@searchTerm\",\"@onChange\",\"@placeholder\"],[[28,[37,3],[[30,0,[\"searchTerm\"]]],null],[28,[37,4],[[30,0],[30,0,[\"resetPagination\"]]],null],\"Search jobs...\"]],null],[1,\"\\n\"]],[]],null],[1,\"    \"],[13],[1,\"\\n\"],[41,[28,[37,5],[\"isMobile\"],null],[[[1,\"      \"],[10,0],[14,0,\"toolbar-item is-right-aligned\"],[12],[1,\"\\n\"],[41,[28,[37,6],[\"run job\"],[[\"namespace\"],[[30,0,[\"qpNamespace\"]]]]],[[[1,\"          \"],[8,[39,7],[[24,0,\"button is-primary\"]],[[\"@route\",\"@query\"],[\"jobs.run\",[28,[37,8],null,[[\"namespace\"],[[30,0,[\"qpNamespace\"]]]]]]],[[\"default\"],[[[[1,\"\\n            Run Job\\n          \"]],[]]]]],[1,\"\\n\"]],[]],[[[1,\"          \"],[10,\"button\"],[14,0,\"button is-primary is-disabled tooltip is-right-aligned\"],[14,\"aria-label\",\"You don’t have permission to run jobs\"],[14,\"disabled\",\"\"],[14,4,\"button\"],[12],[1,\"\\n            Run Job\\n          \"],[13],[1,\"\\n\"]],[]]],[1,\"      \"],[13],[1,\"\\n\"]],[]],null],[1,\"    \"],[10,0],[14,0,\"toolbar-item is-right-aligned is-mobile-full-width\"],[12],[1,\"\\n      \"],[10,0],[14,0,\"button-bar\"],[12],[1,\"\\n\"],[41,[30,0,[\"system\",\"shouldShowNamespaces\"]],[[[1,\"          \"],[8,[39,9],null,[[\"@label\",\"@options\",\"@selection\",\"@onSelect\"],[\"Namespace\",[30,0,[\"optionsNamespaces\"]],[30,0,[\"qpNamespace\"]],[28,[37,4],[[30,0],[30,0,[\"setFacetQueryParam\"]],\"qpNamespace\"],null]]],null],[1,\"\\n\"]],[]],null],[1,\"        \"],[8,[39,10],null,[[\"@label\",\"@options\",\"@selection\",\"@onSelect\"],[\"Type\",[30,0,[\"optionsType\"]],[30,0,[\"selectionType\"]],[28,[37,4],[[30,0],[30,0,[\"setFacetQueryParam\"]],\"qpType\"],null]]],null],[1,\"\\n        \"],[8,[39,10],null,[[\"@label\",\"@options\",\"@selection\",\"@onSelect\"],[\"Node Pool\",[30,0,[\"optionsNodePool\"]],[30,0,[\"selectionNodePool\"]],[28,[37,4],[[30,0],[30,0,[\"setFacetQueryParam\"]],\"qpNodePool\"],null]]],null],[1,\"\\n        \"],[8,[39,10],null,[[\"@label\",\"@options\",\"@selection\",\"@onSelect\"],[\"Status\",[30,0,[\"optionsStatus\"]],[30,0,[\"selectionStatus\"]],[28,[37,4],[[30,0],[30,0,[\"setFacetQueryParam\"]],\"qpStatus\"],null]]],null],[1,\"\\n        \"],[8,[39,10],null,[[\"@label\",\"@options\",\"@selection\",\"@onSelect\"],[\"Datacenter\",[30,0,[\"optionsDatacenter\"]],[30,0,[\"selectionDatacenter\"]],[28,[37,4],[[30,0],[30,0,[\"setFacetQueryParam\"]],\"qpDatacenter\"],null]]],null],[1,\"\\n        \"],[8,[39,10],null,[[\"@label\",\"@options\",\"@selection\",\"@onSelect\"],[\"Prefix\",[30,0,[\"optionsPrefix\"]],[30,0,[\"selectionPrefix\"]],[28,[37,4],[[30,0],[30,0,[\"setFacetQueryParam\"]],\"qpPrefix\"],null]]],null],[1,\"\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n\"],[41,[28,[37,11],[[28,[37,5],[\"isMobile\"],null]],null],[[[1,\"      \"],[10,0],[14,0,\"toolbar-item is-right-aligned\"],[12],[1,\"\\n\"],[41,[28,[37,6],[\"run job\"],[[\"namespace\"],[[30,0,[\"qpNamespace\"]]]]],[[[1,\"          \"],[8,[39,7],[[24,0,\"button is-primary\"],[4,[38,12],null,[[\"label\",\"pattern\",\"action\"],[\"Run Job\",[28,[37,13],[\"r\",\"u\",\"n\"],null],[28,[37,4],[[30,0],[30,0,[\"goToRun\"]]],null]]]]],[[\"@route\",\"@query\"],[\"jobs.run\",[28,[37,8],null,[[\"namespace\"],[[30,0,[\"qpNamespace\"]]]]]]],[[\"default\"],[[[[1,\"\\n            Run Job\\n          \"]],[]]]]],[1,\"\\n\"]],[]],[[[1,\"          \"],[10,\"button\"],[14,0,\"button is-primary is-disabled tooltip is-right-aligned\"],[14,\"aria-label\",\"You don’t have permission to run jobs\"],[14,\"disabled\",\"\"],[14,4,\"button\"],[12],[1,\"\\n            Run Job\\n          \"],[13],[1,\"\\n\"]],[]]],[1,\"      \"],[13],[1,\"\\n\"]],[]],null],[1,\"  \"],[13],[1,\"\\n\"],[41,[30,0,[\"isForbidden\"]],[[[1,\"    \"],[8,[39,14],null,null,null],[1,\"\\n\"]],[]],[[[41,[30,0,[\"sortedJobs\"]],[[[1,\"    \"],[8,[39,15],null,[[\"@source\",\"@size\",\"@page\"],[[30,0,[\"sortedJobs\"]],[30,0,[\"pageSize\"]],[30,0,[\"currentPage\"]]]],[[\"default\"],[[[[1,\"\\n      \"],[8,[39,16],null,[[\"@source\",\"@sortProperty\",\"@sortDescending\",\"@class\"],[[30,1,[\"list\"]],[30,0,[\"sortProperty\"]],[30,0,[\"sortDescending\"]],\"with-foot\"]],[[\"default\"],[[[[1,\"\\n        \"],[8,[30,2,[\"head\"]],null,null,[[\"default\"],[[[[1,\"\\n          \"],[8,[30,2,[\"sort-by\"]],null,[[\"@prop\"],[\"name\"]],[[\"default\"],[[[[1,\"\\n            Name\\n          \"]],[]]]]],[1,\"\\n\"],[41,[30,0,[\"system\",\"shouldShowNamespaces\"]],[[[1,\"            \"],[8,[30,2,[\"sort-by\"]],null,[[\"@prop\"],[\"namespace.name\"]],[[\"default\"],[[[[1,\"\\n              Namespace\\n            \"]],[]]]]],[1,\"\\n\"]],[]],null],[1,\"          \"],[8,[30,2,[\"sort-by\"]],null,[[\"@prop\"],[\"status\"]],[[\"default\"],[[[[1,\"\\n            Status\\n          \"]],[]]]]],[1,\"\\n          \"],[8,[30,2,[\"sort-by\"]],null,[[\"@prop\"],[\"type\"]],[[\"default\"],[[[[1,\"\\n            Type\\n          \"]],[]]]]],[1,\"\\n          \"],[8,[30,2,[\"sort-by\"]],null,[[\"@prop\"],[\"nodePool\"]],[[\"default\"],[[[[1,\"\\n              Node Pool\\n          \"]],[]]]]],[1,\"\\n          \"],[8,[30,2,[\"sort-by\"]],null,[[\"@prop\"],[\"priority\"]],[[\"default\"],[[[[1,\"\\n            Priority\\n          \"]],[]]]]],[1,\"\\n          \"],[10,\"th\"],[12],[1,\"\\n            Groups\\n          \"],[13],[1,\"\\n          \"],[10,\"th\"],[14,0,\"is-3\"],[12],[1,\"\\n            Summary\\n          \"],[13],[1,\"\\n        \"]],[]]]]],[1,\"\\n        \"],[8,[30,2,[\"body\"]],null,[[\"@key\"],[\"model.id\"]],[[\"default\"],[[[[1,\"\\n          \"],[8,[39,17],null,[[\"@job\"],[[30,3,[\"model\"]]]],null],[1,\"\\n        \"]],[3]]]]],[1,\"\\n      \"]],[2]]]]],[1,\"\\n      \"],[10,0],[14,0,\"table-foot\"],[12],[1,\"\\n        \"],[8,[39,18],null,[[\"@onChange\"],[[28,[37,4],[[30,0],[30,0,[\"resetPagination\"]]],null]]],null],[1,\"\\n        \"],[10,\"nav\"],[14,0,\"pagination\"],[12],[1,\"\\n          \"],[10,0],[14,0,\"pagination-numbers\"],[12],[1,\"\\n            \"],[1,[30,1,[\"startsAt\"]]],[1,\"\\n            –\\n            \"],[1,[30,1,[\"endsAt\"]]],[1,\"\\n            of\\n            \"],[1,[30,0,[\"sortedJobs\",\"length\"]]],[1,\"\\n\"],[41,[30,0,[\"searchTerm\"]],[[[1,\"              \"],[10,\"em\"],[12],[1,\"\\n                (\\n                \"],[1,[28,[35,19],[[30,0,[\"sortedJobs\",\"length\"]],[30,0,[\"filteredJobs\",\"length\"]]],null]],[1,\"\\n                hidden by search term)\\n              \"],[13],[1,\"\\n\"]],[]],null],[1,\"          \"],[13],[1,\"\\n          \"],[8,[30,1,[\"prev\"]],null,[[\"@class\"],[\"pagination-previous\"]],[[\"default\"],[[[[1,\"\\n            \"],[1,[28,[35,20],[\"chevron-left\"],null]],[1,\"\\n          \"]],[]]]]],[1,\"\\n          \"],[8,[30,1,[\"next\"]],null,[[\"@class\"],[\"pagination-next\"]],[[\"default\"],[[[[1,\"\\n            \"],[1,[28,[35,20],[\"chevron-right\"],null]],[1,\"\\n          \"]],[]]]]],[1,\"\\n          \"],[10,\"ul\"],[14,0,\"pagination-list\"],[12],[13],[1,\"\\n        \"],[13],[1,\"\\n      \"],[13],[1,\"\\n    \"]],[1]]]]],[1,\"\\n\"]],[]],[[[1,\"    \"],[10,0],[14,0,\"empty-message\"],[12],[1,\"\\n\"],[41,[28,[37,21],[[30,0,[\"visibleJobs\",\"length\"]],0],null],[[[1,\"        \"],[10,\"h3\"],[14,0,\"empty-message-headline\"],[12],[1,\"\\n          No Jobs\\n        \"],[13],[1,\"\\n        \"],[10,2],[14,0,\"empty-message-body\"],[12],[1,\"\\n          The cluster is currently empty.\\n        \"],[13],[1,\"\\n\"]],[]],[[[41,[28,[37,21],[[30,0,[\"filteredJobs\",\"length\"]],0],null],[[[1,\"        \"],[10,\"h3\"],[14,0,\"empty-message-headline\"],[12],[1,\"\\n          No Matches\\n        \"],[13],[1,\"\\n        \"],[10,2],[14,0,\"empty-message-body\"],[12],[1,\"\\n          No jobs match your current filter selection.\\n        \"],[13],[1,\"\\n\"]],[]],[[[41,[30,0,[\"searchTerm\"]],[[[1,\"        \"],[10,\"h3\"],[14,0,\"empty-message-headline\"],[12],[1,\"\\n          No Matches\\n        \"],[13],[1,\"\\n        \"],[10,2],[14,0,\"empty-message-body\"],[12],[1,\"\\n          No jobs match the term\\n          \"],[10,\"strong\"],[12],[1,\"\\n            \"],[1,[30,0,[\"searchTerm\"]]],[1,\"\\n          \"],[13],[1,\"\\n        \"],[13],[1,\"\\n      \"]],[]],null]],[]]]],[]]],[1,\"    \"],[13],[1,\"\\n  \"]],[]]]],[]]],[13]],[\"p\",\"t\",\"row\"],false,[\"page-title\",\"if\",\"search-box\",\"mut\",\"action\",\"media\",\"can\",\"link-to\",\"hash\",\"single-select-dropdown\",\"multi-select-dropdown\",\"not\",\"keyboard-shortcut\",\"array\",\"forbidden-message\",\"list-pagination\",\"list-table\",\"job-row\",\"page-size-select\",\"dec\",\"x-icon\",\"eq\"]]",
    "moduleName": "nomad-ui/templates/jobs/index.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/jobs/job", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "lIiFHBvX",
    "block": "[[[1,[28,[35,0],[[30,0,[\"notFoundJobHandler\"]],[30,0,[\"watchers\",\"job\",\"isError\"]]],null]],[1,\"\\n\"],[8,[39,1],null,[[\"@crumb\"],[[28,[37,2],null,[[\"type\",\"job\"],[\"job\",[30,0,[\"job\"]]]]]]],null],[46,[28,[37,4],null,null],null,null,null]],[],false,[\"did-update\",\"breadcrumb\",\"hash\",\"component\",\"-outlet\"]]",
    "moduleName": "nomad-ui/templates/jobs/job.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/jobs/job/allocations", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "GSHGEka7",
    "block": "[[[1,[28,[35,0],[\"Job \",[30,0,[\"job\",\"name\"]],\" allocations\"],null]],[1,\"\\n\"],[8,[39,1],null,[[\"@job\"],[[30,0,[\"job\"]]]],null],[1,\"\\n\"],[10,\"section\"],[14,0,\"section\"],[12],[1,\"\\n\"],[41,[30,0,[\"allocations\",\"length\"]],[[[1,\"    \"],[10,0],[14,0,\"toolbar\"],[12],[1,\"\\n      \"],[10,0],[14,0,\"toolbar-item\"],[12],[1,\"\\n        \"],[8,[39,3],null,[[\"@searchTerm\",\"@onChange\",\"@placeholder\"],[[28,[37,4],[[30,0,[\"searchTerm\"]]],null],[28,[37,5],[[30,0],[30,0,[\"resetPagination\"]]],null],\"Search allocations...\"]],null],[1,\"\\n      \"],[13],[1,\"\\n      \"],[10,0],[14,0,\"toolbar-item is-right-aligned\"],[12],[1,\"\\n        \"],[10,0],[14,0,\"button-bar\"],[12],[1,\"\\n          \"],[8,[39,6],null,[[\"@label\",\"@options\",\"@selection\",\"@onSelect\"],[\"Status\",[30,0,[\"optionsAllocationStatus\"]],[30,0,[\"selectionStatus\"]],[28,[37,5],[[30,0],[30,0,[\"setFacetQueryParam\"]],\"qpStatus\"],null]]],null],[1,\"\\n          \"],[8,[39,6],null,[[\"@label\",\"@options\",\"@selection\",\"@onSelect\"],[\"Client\",[30,0,[\"optionsClients\"]],[30,0,[\"selectionClient\"]],[28,[37,5],[[30,0],[30,0,[\"setFacetQueryParam\"]],\"qpClient\"],null]]],null],[1,\"\\n          \"],[8,[39,6],null,[[\"@label\",\"@options\",\"@selection\",\"@onSelect\"],[\"Task Group\",[30,0,[\"optionsTaskGroups\"]],[30,0,[\"selectionTaskGroup\"]],[28,[37,5],[[30,0],[30,0,[\"setFacetQueryParam\"]],\"qpTaskGroup\"],null]]],null],[1,\"\\n          \"],[8,[39,6],null,[[\"@label\",\"@options\",\"@selection\",\"@onSelect\"],[\"Job Version\",[30,0,[\"optionsVersions\"]],[30,0,[\"selectionVersion\"]],[28,[37,5],[[30,0],[30,0,[\"setFacetQueryParam\"]],\"qpVersion\"],null]]],null],[1,\"\\n          \"],[8,[39,6],null,[[\"@label\",\"@options\",\"@selection\",\"@onSelect\"],[\"Scheduling\",[30,0,[\"optionsScheduling\"]],[30,0,[\"selectionScheduling\"]],[28,[37,5],[[30,0],[30,0,[\"setFacetQueryParam\"]],\"qpScheduling\"],null]]],null],[1,\"\\n        \"],[13],[1,\"\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n\"],[41,[30,0,[\"sortedAllocations\"]],[[[1,\"      \"],[8,[39,7],null,[[\"@source\",\"@size\",\"@page\",\"@class\"],[[30,0,[\"sortedAllocations\"]],[30,0,[\"pageSize\"]],[30,0,[\"currentPage\"]],\"allocations\"]],[[\"default\"],[[[[1,\"\\n        \"],[8,[39,8],null,[[\"@source\",\"@sortProperty\",\"@sortDescending\",\"@class\"],[[30,1,[\"list\"]],[30,0,[\"sortProperty\"]],[30,0,[\"sortDescending\"]],\"with-foot with-collapsed-borders\"]],[[\"default\"],[[[[1,\"\\n          \"],[8,[30,2,[\"head\"]],null,null,[[\"default\"],[[[[1,\"\\n            \"],[10,\"th\"],[14,0,\"is-narrow\"],[12],[13],[1,\"\\n            \"],[8,[30,2,[\"sort-by\"]],null,[[\"@prop\"],[\"shortId\"]],[[\"default\"],[[[[1,\"ID\"]],[]]]]],[1,\"\\n            \"],[8,[30,2,[\"sort-by\"]],null,[[\"@prop\"],[\"taskGroupName\"]],[[\"default\"],[[[[1,\"Task Group\"]],[]]]]],[1,\"\\n            \"],[8,[30,2,[\"sort-by\"]],null,[[\"@prop\",\"@title\"],[\"createIndex\",\"Create Index\"]],[[\"default\"],[[[[1,\"Created\"]],[]]]]],[1,\"\\n            \"],[8,[30,2,[\"sort-by\"]],null,[[\"@prop\",\"@title\"],[\"modifyIndex\",\"Modify Index\"]],[[\"default\"],[[[[1,\"Modified\"]],[]]]]],[1,\"\\n            \"],[8,[30,2,[\"sort-by\"]],null,[[\"@prop\"],[\"statusIndex\"]],[[\"default\"],[[[[1,\"Status\"]],[]]]]],[1,\"\\n            \"],[8,[30,2,[\"sort-by\"]],null,[[\"@prop\"],[\"jobVersion\"]],[[\"default\"],[[[[1,\"Version\"]],[]]]]],[1,\"\\n            \"],[8,[30,2,[\"sort-by\"]],null,[[\"@prop\"],[\"node.shortId\"]],[[\"default\"],[[[[1,\"Client\"]],[]]]]],[1,\"\\n            \"],[10,\"th\"],[12],[1,\"Volume\"],[13],[1,\"\\n            \"],[10,\"th\"],[12],[1,\"CPU\"],[13],[1,\"\\n            \"],[10,\"th\"],[12],[1,\"Memory\"],[13],[1,\"\\n          \"]],[]]]]],[1,\"\\n          \"],[8,[30,2,[\"body\"]],null,null,[[\"default\"],[[[[1,\"\\n            \"],[8,[39,9],[[4,[38,10],null,[[\"enumerated\",\"action\"],[true,[28,[37,5],[[30,0],\"gotoAllocation\",[30,3,[\"model\"]]],null]]]]],[[\"@allocation\",\"@context\",\"@onClick\"],[[30,3,[\"model\"]],\"job\",[28,[37,5],[[30,0],\"gotoAllocation\",[30,3,[\"model\"]]],null]]],null],[1,\"\\n\"],[42,[28,[37,12],[[28,[37,12],[[30,3,[\"model\",\"states\"]]],null]],null],null,[[[1,\"                \"],[8,[39,13],null,[[\"@active\",\"@onSetActiveTask\",\"@namespan\",\"@taskState\"],[[28,[37,14],[[30,0,[\"activeTask\"]],[28,[37,15],[[30,4,[\"allocation\",\"id\"]],\"-\",[30,4,[\"name\"]]],null]],null],[28,[37,5],[[30,0],\"setActiveTaskQueryParam\"],null],\"9\",[30,4]]],null],[1,\"\\n\"]],[4]],null],[1,\"\\n          \"]],[3]]]]],[1,\"\\n        \"]],[2]]]]],[1,\"\\n        \"],[10,0],[14,0,\"table-foot\"],[12],[1,\"\\n          \"],[10,\"nav\"],[14,0,\"pagination\"],[12],[1,\"\\n            \"],[10,0],[14,0,\"pagination-numbers\"],[12],[1,\"\\n              \"],[1,[30,1,[\"startsAt\"]]],[1,\"–\"],[1,[30,1,[\"endsAt\"]]],[1,\" of \"],[1,[30,0,[\"sortedAllocations\",\"length\"]]],[1,\"\\n            \"],[13],[1,\"\\n            \"],[8,[30,1,[\"prev\"]],null,[[\"@class\"],[\"pagination-previous\"]],[[\"default\"],[[[[1,\" < \"]],[]]]]],[1,\"\\n            \"],[8,[30,1,[\"next\"]],null,[[\"@class\"],[\"pagination-next\"]],[[\"default\"],[[[[1,\" > \"]],[]]]]],[1,\"\\n            \"],[10,\"ul\"],[14,0,\"pagination-list\"],[12],[13],[1,\"\\n          \"],[13],[1,\"\\n        \"],[13],[1,\"\\n      \"]],[1]]]]],[1,\"\\n\"]],[]],[[[1,\"      \"],[10,0],[14,0,\"boxed-section-body\"],[12],[1,\"\\n        \"],[10,0],[14,0,\"empty-message\"],[12],[1,\"\\n          \"],[10,\"h3\"],[14,0,\"empty-message-headline\"],[12],[1,\"No Matches\"],[13],[1,\"\\n          \"],[10,2],[14,0,\"empty-message-body\"],[12],[1,\"No allocations match the term \"],[10,\"strong\"],[12],[1,[30,0,[\"searchTerm\"]]],[13],[13],[1,\"\\n        \"],[13],[1,\"\\n      \"],[13],[1,\"\\n\"]],[]]]],[]],[[[1,\"    \"],[10,0],[14,0,\"boxed-section-body\"],[12],[1,\"\\n      \"],[10,0],[14,0,\"empty-message\"],[12],[1,\"\\n        \"],[10,\"h3\"],[14,0,\"empty-message-headline\"],[12],[1,\"No Allocations\"],[13],[1,\"\\n        \"],[10,2],[14,0,\"empty-message-body\"],[12],[1,\"No allocations have been placed.\"],[13],[1,\"\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n\"]],[]]],[13]],[\"p\",\"t\",\"row\",\"task\"],false,[\"page-title\",\"job-subnav\",\"if\",\"search-box\",\"mut\",\"action\",\"multi-select-dropdown\",\"list-pagination\",\"list-table\",\"allocation-row\",\"keyboard-shortcut\",\"each\",\"-track-array\",\"task-sub-row\",\"eq\",\"concat\"]]",
    "moduleName": "nomad-ui/templates/jobs/job/allocations.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/jobs/job/clients", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "ChoOpDxH",
    "block": "[[[1,[28,[35,0],[\"Job \",[30,0,[\"job\",\"name\"]],\" clients\"],null]],[1,\"\\n\"],[8,[39,1],null,[[\"@job\"],[[30,0,[\"job\"]]]],null],[1,\"\\n\"],[10,\"section\"],[14,0,\"section\"],[12],[1,\"\\n\"],[41,[30,0,[\"nodes\",\"length\"]],[[[1,\"    \"],[10,0],[14,0,\"toolbar\"],[12],[1,\"\\n      \"],[10,0],[14,0,\"toolbar-item\"],[12],[1,\"\\n        \"],[8,[39,3],null,[[\"@searchTerm\",\"@onChange\",\"@placeholder\"],[[28,[37,4],[[30,0,[\"searchTerm\"]]],null],[28,[37,5],[[30,0],[30,0,[\"resetPagination\"]]],null],\"Search clients...\"]],null],[1,\"\\n      \"],[13],[1,\"\\n      \"],[10,0],[14,0,\"toolbar-item is-right-aligned\"],[12],[1,\"\\n        \"],[10,0],[14,0,\"button-bar\"],[12],[1,\"\\n          \"],[8,[39,6],null,[[\"@label\",\"@options\",\"@selection\",\"@onSelect\"],[\"Job Status\",[30,0,[\"optionsJobStatus\"]],[30,0,[\"selectionStatus\"]],[28,[37,5],[[30,0],[30,0,[\"setFacetQueryParam\"]],\"qpStatus\"],null]]],null],[1,\"\\n          \"],[8,[39,6],null,[[\"@label\",\"@options\",\"@selection\",\"@onSelect\"],[\"Datacenter\",[30,0,[\"optionsDatacenter\"]],[30,0,[\"selectionDatacenter\"]],[28,[37,5],[[30,0],[30,0,[\"setFacetQueryParam\"]],\"qpDatacenter\"],null]]],null],[1,\"\\n          \"],[8,[39,6],null,[[\"@label\",\"@options\",\"@selection\",\"@onSelect\"],[\"Client Class\",[30,0,[\"optionsClientClass\"]],[30,0,[\"selectionClientClass\"]],[28,[37,5],[[30,0],[30,0,[\"setFacetQueryParam\"]],\"qpClientClass\"],null]]],null],[1,\"\\n        \"],[13],[1,\"\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n\"],[41,[30,0,[\"sortedClients\"]],[[[1,\"      \"],[8,[39,7],null,[[\"@source\",\"@size\",\"@page\",\"@class\"],[[30,0,[\"sortedClients\"]],[30,0,[\"pageSize\"]],[30,0,[\"currentPage\"]],\"clients\"]],[[\"default\"],[[[[1,\"\\n        \"],[8,[39,8],null,[[\"@source\",\"@sortProperty\",\"@sortDescending\",\"@class\"],[[30,1,[\"list\"]],[30,0,[\"sortProperty\"]],[30,0,[\"sortDescending\"]],\"with-foot\"]],[[\"default\"],[[[[1,\"\\n          \"],[8,[30,2,[\"head\"]],null,null,[[\"default\"],[[[[1,\"\\n            \"],[8,[30,2,[\"sort-by\"]],null,[[\"@prop\"],[\"node.id\"]],[[\"default\"],[[[[1,\"Client ID\"]],[]]]]],[1,\"\\n            \"],[8,[30,2,[\"sort-by\"]],[[24,0,\"is-200px is-truncatable\"]],[[\"@prop\"],[\"node.name\"]],[[\"default\"],[[[[1,\"Client Name\"]],[]]]]],[1,\"\\n            \"],[8,[30,2,[\"sort-by\"]],null,[[\"@prop\",\"@title\"],[\"createTime\",\"Create Time\"]],[[\"default\"],[[[[1,\"Created\"]],[]]]]],[1,\"\\n            \"],[8,[30,2,[\"sort-by\"]],null,[[\"@prop\",\"@title\"],[\"modifyTime\",\"Modify Time\"]],[[\"default\"],[[[[1,\"Modified\"]],[]]]]],[1,\"\\n            \"],[8,[30,2,[\"sort-by\"]],null,[[\"@prop\"],[\"jobStatus\"]],[[\"default\"],[[[[1,\"Job Status\"]],[]]]]],[1,\"\\n            \"],[10,\"th\"],[14,0,\"is-3\"],[12],[1,\"Allocation Summary\"],[13],[1,\"\\n          \"]],[]]]]],[1,\"\\n          \"],[8,[30,2,[\"body\"]],null,null,[[\"default\"],[[[[1,\"\\n            \"],[8,[39,9],null,[[\"@row\",\"@onClick\"],[[30,3],[30,0,[\"gotoClient\"]]]],null],[1,\"\\n          \"]],[3]]]]],[1,\"\\n        \"]],[2]]]]],[1,\"\\n        \"],[10,0],[14,0,\"table-foot\"],[12],[1,\"\\n          \"],[10,\"nav\"],[14,0,\"pagination\"],[12],[1,\"\\n            \"],[10,0],[14,0,\"pagination-numbers\"],[12],[1,\"\\n              \"],[1,[30,1,[\"startsAt\"]]],[1,\"–\"],[1,[30,1,[\"endsAt\"]]],[1,\" of \"],[1,[30,0,[\"sortedClients\",\"length\"]]],[1,\"\\n            \"],[13],[1,\"\\n            \"],[8,[30,1,[\"prev\"]],null,[[\"@class\"],[\"pagination-previous\"]],[[\"default\"],[[[[1,\" < \"]],[]]]]],[1,\"\\n            \"],[8,[30,1,[\"next\"]],null,[[\"@class\"],[\"pagination-next\"]],[[\"default\"],[[[[1,\" > \"]],[]]]]],[1,\"\\n            \"],[10,\"ul\"],[14,0,\"pagination-list\"],[12],[13],[1,\"\\n          \"],[13],[1,\"\\n        \"],[13],[1,\"\\n      \"]],[1]]]]],[1,\"\\n\"]],[]],[[[1,\"      \"],[10,0],[14,0,\"boxed-section-body\"],[12],[1,\"\\n        \"],[10,0],[14,0,\"empty-message\"],[12],[1,\"\\n          \"],[10,\"h3\"],[14,0,\"empty-message-headline\"],[12],[1,\"\\n            No Matches\\n          \"],[13],[1,\"\\n          \"],[10,2],[14,0,\"empty-message-body\"],[12],[1,\"\\n            No clients match the term\\n            \"],[10,\"strong\"],[12],[1,\"\\n              \"],[1,[30,0,[\"searchTerm\"]]],[1,\"\\n            \"],[13],[1,\"\\n          \"],[13],[1,\"\\n        \"],[13],[1,\"\\n      \"],[13],[1,\"\\n\"]],[]]]],[]],[[[1,\"    \"],[10,0],[14,0,\"boxed-section-body\"],[12],[1,\"\\n      \"],[10,0],[14,0,\"empty-message\"],[12],[1,\"\\n        \"],[10,\"h3\"],[14,0,\"empty-message-headline\"],[12],[1,\"\\n          No Clients\\n        \"],[13],[1,\"\\n        \"],[10,2],[14,0,\"empty-message-body\"],[12],[1,\"\\n          No clients available.\\n        \"],[13],[1,\"\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n\"]],[]]],[13]],[\"p\",\"t\",\"row\"],false,[\"page-title\",\"job-subnav\",\"if\",\"search-box\",\"mut\",\"action\",\"multi-select-dropdown\",\"list-pagination\",\"list-table\",\"job-client-status-row\"]]",
    "moduleName": "nomad-ui/templates/jobs/job/clients.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/jobs/job/definition", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "qoDCfuFk",
    "block": "[[[1,[28,[35,0],[\"Job \",[30,0,[\"job\",\"name\"]],\" definition\"],null]],[1,\"\\n\"],[8,[39,1],null,[[\"@job\"],[[30,0,[\"job\"]]]],null],[1,\"\\n\"],[10,\"section\"],[14,0,\"section\"],[12],[1,\"\\n  \"],[8,[39,2],null,[[\"@cancelable\",\"@context\",\"@definition\",\"@format\",\"@job\",\"@specification\",\"@variables\",\"@view\",\"@onSubmit\",\"@onSelect\",\"@onToggleEdit\"],[true,[30,0,[\"context\"]],[30,0,[\"definition\"]],[30,0,[\"format\"]],[30,0,[\"job\"]],[30,0,[\"specification\"]],[28,[37,3],null,[[\"flags\",\"literal\"],[[30,0,[\"variableFlags\"]],[30,0,[\"variableLiteral\"]]]]],[30,0,[\"view\"]],[28,[37,4],[[30,0],[30,0,[\"onSubmit\"]]],null],[30,0,[\"selectView\"]],[30,0,[\"toggleEdit\"]]]],null],[1,\"\\n\"],[13],[1,\"\\n\"]],[],false,[\"page-title\",\"job-subnav\",\"job-editor\",\"hash\",\"action\"]]",
    "moduleName": "nomad-ui/templates/jobs/job/definition.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/jobs/job/deployments", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "ChfkvvNT",
    "block": "[[[1,[28,[35,0],[\"Job \",[30,0,[\"job\",\"name\"]],\" deployments\"],null]],[1,\"\\n\"],[8,[39,1],null,[[\"@job\"],[[30,0,[\"job\"]]]],null],[1,\"\\n\"],[10,\"section\"],[14,0,\"section\"],[12],[1,\"\\n  \"],[8,[39,2],null,[[\"@deployments\"],[[30,0,[\"model\",\"deployments\"]]]],null],[1,\"\\n\"],[13],[1,\"\\n\"]],[],false,[\"page-title\",\"job-subnav\",\"job-deployments-stream\"]]",
    "moduleName": "nomad-ui/templates/jobs/job/deployments.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/jobs/job/dispatch", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "1p1mOPeW",
    "block": "[[[8,[39,0],null,[[\"@crumb\"],[[28,[37,1],null,[[\"label\",\"args\"],[\"Dispatch\",[28,[37,2],[\"jobs.job.dispatch\"],null]]]]]],null],[1,\"\\n\"],[1,[28,[35,3],[\"Dispatch new \",[30,0,[\"model\",\"name\"]]],null]],[1,\"\\n\"],[8,[39,4],null,[[\"@job\"],[[30,0,[\"model\"]]]],null],[1,\"\\n\"],[10,\"section\"],[14,0,\"section\"],[12],[1,\"\\n  \"],[8,[39,5],null,[[\"@job\"],[[30,0,[\"model\"]]]],null],[1,\"\\n\"],[13]],[],false,[\"breadcrumb\",\"hash\",\"array\",\"page-title\",\"job-subnav\",\"job-dispatch\"]]",
    "moduleName": "nomad-ui/templates/jobs/job/dispatch.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/jobs/job/evaluations", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "Ft1Y5Z25",
    "block": "[[[1,[28,[35,0],[\"Job \",[30,0,[\"job\",\"name\"]],\" evaluations\"],null]],[1,\"\\n\"],[8,[39,1],null,[[\"@job\"],[[30,0,[\"job\"]]]],null],[1,\"\\n\"],[10,\"section\"],[14,0,\"section\"],[12],[1,\"\\n\"],[41,[30,0,[\"sortedEvaluations\",\"length\"]],[[[1,\"    \"],[8,[39,3],null,[[\"@source\",\"@sortProperty\",\"@sortDescending\"],[[30,0,[\"sortedEvaluations\"]],[30,0,[\"sortProperty\"]],[30,0,[\"sortDescending\"]]]],[[\"default\"],[[[[1,\"\\n      \"],[8,[30,1,[\"head\"]],null,null,[[\"default\"],[[[[1,\"\\n        \"],[10,\"th\"],[12],[1,\"ID\"],[13],[1,\"\\n        \"],[8,[30,1,[\"sort-by\"]],null,[[\"@prop\"],[\"priority\"]],[[\"default\"],[[[[1,\"Priority\"]],[]]]]],[1,\"\\n        \"],[8,[30,1,[\"sort-by\"]],null,[[\"@prop\"],[\"createTime\"]],[[\"default\"],[[[[1,\"Created\"]],[]]]]],[1,\"\\n        \"],[8,[30,1,[\"sort-by\"]],null,[[\"@prop\"],[\"triggeredBy\"]],[[\"default\"],[[[[1,\"Triggered By\"]],[]]]]],[1,\"\\n        \"],[8,[30,1,[\"sort-by\"]],null,[[\"@prop\"],[\"status\"]],[[\"default\"],[[[[1,\"Status\"]],[]]]]],[1,\"\\n        \"],[8,[30,1,[\"sort-by\"]],null,[[\"@prop\"],[\"hasPlacementFailures\"]],[[\"default\"],[[[[1,\"Placement Failures\"]],[]]]]],[1,\"\\n      \"]],[]]]]],[1,\"\\n      \"],[8,[30,1,[\"body\"]],null,null,[[\"default\"],[[[[1,\"\\n        \"],[10,\"tr\"],[12],[1,\"\\n          \"],[10,\"td\"],[12],[1,[30,2,[\"model\",\"shortId\"]]],[13],[1,\"\\n          \"],[10,\"td\"],[12],[1,[30,2,[\"model\",\"priority\"]]],[13],[1,\"\\n          \"],[10,\"td\"],[12],[1,[28,[35,4],[[30,2,[\"model\",\"createTime\"]]],null]],[13],[1,\"\\n          \"],[10,\"td\"],[12],[1,[30,2,[\"model\",\"triggeredBy\"]]],[13],[1,\"\\n          \"],[10,\"td\"],[12],[1,[30,2,[\"model\",\"status\"]]],[13],[1,\"\\n          \"],[10,\"td\"],[12],[1,\"\\n\"],[41,[28,[37,5],[[30,2,[\"model\",\"status\"]],\"blocked\"],null],[[[1,\"              N/A - In Progress\\n\"]],[]],[[[41,[30,2,[\"model\",\"hasPlacementFailures\"]],[[[1,\"              True\\n\"]],[]],[[[1,\"              False\\n            \"]],[]]]],[]]],[1,\"          \"],[13],[1,\"\\n        \"],[13],[1,\"\\n      \"]],[2]]]]],[1,\"\\n    \"]],[1]]]]],[1,\"\\n\"]],[]],[[[1,\"    \"],[10,0],[14,0,\"empty-message\"],[12],[1,\"\\n      \"],[10,\"h3\"],[14,0,\"empty-message-headline\"],[12],[1,\"No Evaluations\"],[13],[1,\"\\n      \"],[10,2],[14,0,\"empty-message-body\"],[12],[1,\"This is most likely due to garbage collection.\"],[13],[1,\"\\n    \"],[13],[1,\"\\n\"]],[]]],[13],[1,\"\\n\"]],[\"t\",\"row\"],false,[\"page-title\",\"job-subnav\",\"if\",\"list-table\",\"format-month-ts\",\"eq\"]]",
    "moduleName": "nomad-ui/templates/jobs/job/evaluations.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/jobs/job/index", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "ZhnSoLVO",
    "block": "[[[1,[28,[35,0],[\"Job \",[30,0,[\"model\",\"name\"]]],null]],[1,\"\\n\"],[46,[28,[37,2],[\"job-page/\",[30,0,[\"model\",\"templateType\"]]],null],null,[[\"job\",\"sortProperty\",\"sortDescending\",\"currentPage\",\"activeTask\",\"setActiveTaskQueryParam\",\"statusMode\",\"setStatusMode\"],[[30,0,[\"model\"]],[30,0,[\"sortProperty\"]],[30,0,[\"sortDescending\"]],[30,0,[\"currentPage\"]],[30,0,[\"activeTask\"]],[30,0,[\"setActiveTaskQueryParam\"]],[30,0,[\"statusMode\"]],[30,0,[\"setStatusMode\"]]]],null]],[],false,[\"page-title\",\"component\",\"concat\"]]",
    "moduleName": "nomad-ui/templates/jobs/job/index.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/jobs/job/loading", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "DTEErOXV",
    "block": "[[[8,[39,0],null,[[\"@job\"],[[30,0,[\"job\"]]]],null],[1,\"\\n\"],[10,\"section\"],[14,0,\"section has-text-centered\"],[12],[8,[39,1],null,null,null],[13],[1,\"\\n\"]],[],false,[\"job-subnav\",\"loading-spinner\"]]",
    "moduleName": "nomad-ui/templates/jobs/job/loading.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/jobs/job/services", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "NuimzE8v",
    "block": "[[[1,[28,[35,0],[\"Job \",[30,1,[\"name\"]],\" services\"],null]],[1,\"\\n\"],[8,[39,1],null,[[\"@job\"],[[30,1]]],null],[1,\"\\n\"],[46,[28,[37,3],null,null],null,null,null],[1,\"\\n\"]],[\"@model\"],false,[\"page-title\",\"job-subnav\",\"component\",\"-outlet\"]]",
    "moduleName": "nomad-ui/templates/jobs/job/services.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/jobs/job/services/index", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "73XmQmFo",
    "block": "[[[10,\"section\"],[14,0,\"section service-list\"],[12],[1,\"\\n\"],[41,[30,0,[\"sortedServices\",\"length\"]],[[[1,\"\\t\\t\"],[8,[39,1],null,[[\"@source\",\"@sortProperty\",\"@sortDescending\"],[[30,0,[\"sortedServices\"]],[30,0,[\"sortProperty\"]],[30,0,[\"sortDescending\"]]]],[[\"default\"],[[[[1,\"\\n\\t\\t\\t\"],[8,[30,1,[\"head\"]],null,null,[[\"default\"],[[[[1,\"\\n\\t\\t\\t\\t\"],[8,[30,1,[\"sort-by\"]],null,[[\"@prop\"],[\"name\"]],[[\"default\"],[[[[1,\"Name\"]],[]]]]],[1,\"\\n\\t\\t\\t\\t\"],[8,[30,1,[\"sort-by\"]],null,[[\"@prop\"],[\"level\"]],[[\"default\"],[[[[1,\"Level\"]],[]]]]],[1,\"\\n\\t\\t\\t\\t\"],[10,\"th\"],[12],[1,\"Tags\"],[13],[1,\"\\n\\t\\t\\t\\t\"],[8,[30,1,[\"sort-by\"]],null,[[\"@prop\"],[\"numAllocs\"]],[[\"default\"],[[[[1,\"Number of Alocations\"]],[]]]]],[1,\"\\n\\t\\t\\t\"]],[]]]]],[1,\"\\n\\t\\t\\t\"],[8,[30,1,[\"body\"]],null,null,[[\"default\"],[[[[1,\"\\n\\t\\t\\t\\t\"],[8,[39,2],[[4,[38,3],null,[[\"enumerated\",\"action\"],[true,[28,[37,4],[[30,0],\"gotoService\",[30,2,[\"model\"]]],null]]]]],[[\"@service\"],[[30,2,[\"model\"]]]],null],[1,\"\\n\\t\\t\\t\"]],[2]]]]],[1,\"\\n\\t\\t\"]],[1]]]]],[1,\"\\n\"]],[]],[[[1,\"\\t\\t\"],[10,0],[14,0,\"boxed-section-body\"],[12],[1,\"\\n\\t\\t\\t\"],[10,0],[14,0,\"empty-message\"],[12],[1,\"\\n\\t\\t\\t\\t\"],[10,\"h3\"],[14,0,\"empty-message-headline\"],[12],[1,\"\\n\\t\\t\\t\\t\\tNo Services\\n\\t\\t\\t\\t\"],[13],[1,\"\\n\\t\\t\\t\\t\"],[10,2],[14,0,\"empty-message-body\"],[12],[1,\"\\n\\t\\t\\t\\t\\tNo services running on \"],[1,[30,0,[\"job\",\"name\"]]],[1,\".\\n\\t\\t\\t\\t\"],[13],[1,\"\\n\\t\\t\\t\"],[13],[1,\"\\n\\t\\t\"],[13],[1,\"\\n\"]],[]]],[13]],[\"t\",\"row\"],false,[\"if\",\"list-table\",\"job-service-row\",\"keyboard-shortcut\",\"action\"]]",
    "moduleName": "nomad-ui/templates/jobs/job/services/index.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/jobs/job/services/service", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "Pos/cShw",
    "block": "[[[10,\"section\"],[14,0,\"section service-list\"],[12],[1,\"\\n  \"],[10,\"h1\"],[14,0,\"title\"],[12],[1,\"\\n    \"],[8,[39,0],[[24,0,\"back-link\"]],[[\"@route\"],[\"jobs.job.services\"]],[[\"default\"],[[[[1,\"\\n      \"],[8,[39,1],null,[[\"@name\",\"@title\",\"@size\"],[\"chevron-left\",\"Back to services\",\"24\"]],null],[1,\"\\n    \"]],[]]]]],[1,\"\\n    \"],[1,[30,0,[\"model\",\"name\"]]],[1,\"\\n  \"],[13],[1,\"\\n\\n  \"],[8,[39,2],null,[[\"@source\"],[[30,0,[\"model\",\"instances\"]]]],[[\"default\"],[[[[1,\"\\n    \"],[8,[30,1,[\"head\"]],null,null,[[\"default\"],[[[[1,\"\\n      \"],[10,\"th\"],[12],[1,\"Allocation\"],[13],[1,\"\\n      \"],[10,\"th\"],[12],[1,\"Client\"],[13],[1,\"\\n      \"],[10,\"th\"],[12],[1,\"IP Address & Port\"],[13],[1,\"\\n    \"]],[]]]]],[1,\"\\n    \"],[8,[30,1,[\"body\"]],null,null,[[\"default\"],[[[[1,\"\\n      \"],[10,\"tr\"],[12],[1,\"\\n\"],[44,[[28,[37,4],[[30,2,[\"model\"]],\"allocation\"],null]],[[[1,\"          \"],[11,\"td\"],[4,[38,5],null,[[\"enumerated\",\"action\"],[true,[28,[37,6],[[30,0],\"gotoAllocation\",[30,2,[\"model\",\"allocation\"]]],null]]]],[12],[1,\"\\n            \"],[8,[39,0],null,[[\"@route\",\"@model\"],[\"allocations.allocation\",[30,3,[\"id\"]]]],[[\"default\"],[[[[1,[30,3,[\"shortId\"]]]],[]]]]],[1,\"\\n          \"],[13],[1,\"\\n\"]],[3]]],[44,[[28,[37,7],[[30,2,[\"model\"]],\"node\"],null]],[[[1,\"          \"],[10,\"td\"],[12],[1,\"\\n            \"],[8,[39,8],null,[[\"@text\"],[[30,4,[\"name\"]]]],[[\"default\"],[[[[1,\"\\n              \"],[8,[39,0],null,[[\"@route\",\"@model\"],[\"clients.client\",[30,4,[\"id\"]]]],[[\"default\"],[[[[1,[30,4,[\"shortId\"]]]],[]]]]],[1,\"\\n            \"]],[]]]]],[1,\"\\n          \"],[13],[1,\"\\n\"]],[4]]],[1,\"        \"],[10,\"td\"],[12],[1,\"\\n          \"],[1,[30,2,[\"model\",\"address\"]]],[1,\":\"],[1,[30,2,[\"model\",\"port\"]]],[1,\"\\n        \"],[13],[1,\"\\n      \"],[13],[1,\"\\n    \"]],[2]]]]],[1,\"\\n  \"]],[1]]]]],[1,\"\\n\"],[13]],[\"t\",\"row\",\"allocation\",\"node\"],false,[\"link-to\",\"flight-icon\",\"list-table\",\"let\",\"format-id\",\"keyboard-shortcut\",\"action\",\"async-escape-hatch\",\"tooltip\"]]",
    "moduleName": "nomad-ui/templates/jobs/job/services/service.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/jobs/job/task-group", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "tK4ypHXV",
    "block": "[[[8,[39,0],null,[[\"@crumb\"],[[30,0,[\"breadcrumb\"]]]],null],[1,\"\\n\"],[1,[28,[35,1],[\"Task group \",[30,0,[\"model\",\"name\"]],\" - Job \",[30,0,[\"model\",\"job\",\"name\"]]],null]],[1,\"\\n\"],[10,0],[14,0,\"tabs is-subnav\"],[12],[1,\"\\n  \"],[10,\"ul\"],[12],[1,\"\\n    \"],[10,\"li\"],[12],[1,\"\\n      \"],[8,[39,2],null,[[\"@route\",\"@models\",\"@activeClass\"],[\"jobs.job.task-group\",[28,[37,3],[[30,0,[\"model\",\"job\"]],[30,0,[\"model\"]]],null],\"is-active\"]],[[\"default\"],[[[[1,\"\\n        Overview\\n      \"]],[]]]]],[1,\"\\n    \"],[13],[1,\"\\n  \"],[13],[1,\"\\n\"],[13],[1,\"\\n\"],[10,\"section\"],[14,0,\"section\"],[12],[1,\"\\n  \"],[10,\"h1\"],[14,0,\"title with-flex\"],[12],[1,\"\\n    \"],[10,1],[12],[1,\"\\n      \"],[1,[30,0,[\"model\",\"name\"]]],[1,\"\\n    \"],[13],[1,\"\\n    \"],[10,0],[12],[1,\"\\n      \"],[8,[39,4],null,[[\"@job\",\"@taskGroup\"],[[30,0,[\"model\",\"job\"]],[30,0,[\"model\"]]]],null],[1,\"\\n\"],[41,[30,0,[\"model\",\"scaling\"]],[[[1,\"        \"],[8,[39,6],[[16,\"aria-label\",[30,0,[\"tooltipText\"]]]],[[\"@min\",\"@max\",\"@value\",\"@class\",\"@disabled\",\"@onChange\"],[[30,0,[\"model\",\"scaling\",\"min\"]],[30,0,[\"model\",\"scaling\",\"max\"]],[30,0,[\"model\",\"count\"]],\"is-primary is-small\",[28,[37,7],[[30,0,[\"model\",\"job\",\"runningDeployment\"]],[28,[37,8],[\"scale job\"],[[\"namespace\"],[[30,0,[\"model\",\"job\",\"namespace\",\"name\"]]]]]],null],[28,[37,9],[[30,0],\"scaleTaskGroup\"],null]]],[[\"default\"],[[[[1,\"\\n          Count\\n        \"]],[]]]]],[1,\"\\n\"]],[]],null],[1,\"    \"],[13],[1,\"\\n  \"],[13],[1,\"\\n  \"],[10,0],[14,0,\"boxed-section is-small\"],[12],[1,\"\\n    \"],[10,0],[14,0,\"boxed-section-body inline-definitions\"],[12],[1,\"\\n      \"],[10,1],[14,0,\"label\"],[12],[1,\"\\n        Task Group Details\\n      \"],[13],[1,\"\\n      \"],[10,1],[14,0,\"pair\"],[12],[1,\"\\n        \"],[10,1],[14,0,\"term\"],[12],[1,\"\\n          # Tasks\\n        \"],[13],[1,\"\\n        \"],[1,[30,0,[\"model\",\"tasks\",\"length\"]]],[1,\"\\n      \"],[13],[1,\"\\n      \"],[10,1],[14,0,\"pair\"],[12],[1,\"\\n        \"],[10,1],[14,0,\"term\"],[12],[1,\"\\n          Reserved CPU\\n        \"],[13],[1,\"\\n        \"],[1,[28,[35,10],[[30,0,[\"model\",\"reservedCPU\"]]],null]],[1,\"\\n      \"],[13],[1,\"\\n      \"],[10,1],[14,0,\"pair\"],[12],[1,\"\\n        \"],[10,1],[14,0,\"term\"],[12],[1,\"\\n          Reserved Memory\\n        \"],[13],[1,\"\\n        \"],[1,[28,[35,11],[[30,0,[\"model\",\"reservedMemory\"]]],[[\"start\"],[\"MiB\"]]]],[1,\"\\n\"],[41,[28,[37,12],[[30,0,[\"model\",\"reservedMemoryMax\"]],[30,0,[\"model\",\"reservedMemory\"]]],null],[[[1,\"          (\"],[1,[28,[35,11],[[30,0,[\"model\",\"reservedMemoryMax\"]]],[[\"start\"],[\"MiB\"]]]],[1,\"Max)\\n\"]],[]],null],[1,\"      \"],[13],[1,\"\\n      \"],[10,1],[14,0,\"pair\"],[12],[1,\"\\n        \"],[10,1],[14,0,\"term\"],[12],[1,\"\\n          Reserved Disk\\n        \"],[13],[1,\"\\n        \"],[1,[28,[35,11],[[30,0,[\"model\",\"reservedEphemeralDisk\"]]],[[\"start\"],[\"MiB\"]]]],[1,\"\\n      \"],[13],[1,\"\\n      \"],[10,1],[14,0,\"pair\"],[12],[1,\"\\n        \"],[10,1],[14,0,\"term\"],[12],[1,\"\\n          Namespace\\n        \"],[13],[1,\"\\n        \"],[1,[30,0,[\"model\",\"job\",\"namespace\",\"name\"]]],[1,\"\\n      \"],[13],[1,\"\\n\"],[41,[30,0,[\"model\",\"scaling\"]],[[[1,\"        \"],[10,1],[14,0,\"pair\"],[12],[1,\"\\n          \"],[10,1],[14,0,\"term\"],[12],[1,\"\\n            Count Range\\n          \"],[13],[1,\"\\n          \"],[1,[30,0,[\"model\",\"scaling\",\"min\"]]],[1,\"\\n          to\\n          \"],[1,[30,0,[\"model\",\"scaling\",\"max\"]]],[1,\"\\n        \"],[13],[1,\"\\n        \"],[10,1],[14,0,\"pair\"],[12],[1,\"\\n          \"],[10,1],[14,0,\"term\"],[12],[1,\"\\n            Scaling Policy?\\n          \"],[13],[1,\"\\n          \"],[1,[52,[30,0,[\"model\",\"scaling\",\"policy\"]],\"Yes\",\"No\"]],[1,\"\\n        \"],[13],[1,\"\\n\"]],[]],null],[41,[28,[37,13],[[28,[37,14],[\"list variables\"],null],[30,0,[\"model\",\"pathLinkedVariable\"]]],null],[[[1,\"        \"],[10,1],[14,0,\"pair\"],[12],[1,\"\\n          \"],[8,[39,2],null,[[\"@route\",\"@model\"],[\"variables.variable\",[30,0,[\"model\",\"pathLinkedVariable\",\"id\"]]]],[[\"default\"],[[[[1,\"Variables\"]],[]]]]],[1,\"\\n        \"],[13],[1,\"\\n\"]],[]],null],[1,\"    \"],[13],[1,\"\\n  \"],[13],[1,\"\\n  \"],[10,0],[14,0,\"boxed-section\"],[12],[1,\"\\n    \"],[10,0],[14,0,\"boxed-section-head\"],[12],[1,\"\\n      \"],[10,0],[12],[1,\"\\n        Allocation Status\\n        \"],[10,1],[14,0,\"badge is-white\"],[12],[1,\"\\n          \"],[1,[30,0,[\"allocations\",\"length\"]]],[1,\"\\n        \"],[13],[1,\"\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n    \"],[10,0],[14,0,\"boxed-section-body\"],[12],[1,\"\\n      \"],[8,[39,15],null,[[\"@allocationContainer\",\"@class\"],[[30,0,[\"model\",\"summary\"]],\"split-view\"]],[[\"default\"],[[[[1,\"\\n        \"],[10,\"ol\"],[14,0,\"legend\"],[12],[1,\"\\n\"],[42,[28,[37,17],[[28,[37,17],[[30,1,[\"data\"]]],null]],null],null,[[[1,\"            \"],[10,\"li\"],[15,0,[29,[[30,2,[\"className\"]],\"\\n\\n                \",[52,[28,[37,18],[[30,2,[\"label\"]],[30,1,[\"activeDatum\",\"label\"]]],null],\"is-active\"],\"\\n\\n                \",[52,[28,[37,18],[[30,2,[\"value\"]],0],null],\"is-empty\"]]]],[12],[1,\"\\n              \"],[8,[39,19],null,[[\"@datum\",\"@index\"],[[30,2],[30,3]]],null],[1,\"\\n            \"],[13],[1,\"\\n\"]],[2,3]],null],[1,\"        \"],[13],[1,\"\\n      \"]],[1]]]]],[1,\"\\n    \"],[13],[1,\"\\n  \"],[13],[1,\"\\n  \"],[10,0],[14,0,\"boxed-section\"],[12],[1,\"\\n    \"],[10,0],[14,0,\"boxed-section-head\"],[12],[1,\"\\n      Allocations\\n      \"],[10,0],[14,0,\"pull-right is-subsection\"],[12],[1,\"\\n        \"],[8,[39,20],null,[[\"@label\",\"@options\",\"@selection\",\"@onSelect\"],[\"Status\",[30,0,[\"optionsAllocationStatus\"]],[30,0,[\"selectionStatus\"]],[28,[37,9],[[30,0],[30,0,[\"setFacetQueryParam\"]],\"qpStatus\"],null]]],null],[1,\"\\n        \"],[8,[39,20],null,[[\"@label\",\"@options\",\"@selection\",\"@onSelect\"],[\"Client\",[30,0,[\"optionsClients\"]],[30,0,[\"selectionClient\"]],[28,[37,9],[[30,0],[30,0,[\"setFacetQueryParam\"]],\"qpClient\"],null]]],null],[1,\"\\n        \"],[8,[39,21],null,[[\"@searchTerm\",\"@placeholder\",\"@onChange\",\"@class\",\"@inputClass\"],[[28,[37,22],[[30,0,[\"searchTerm\"]]],null],\"Search allocations...\",[28,[37,9],[[30,0],[30,0,[\"resetPagination\"]]],null],\"is-padded\",\"is-compact\"]],null],[1,\"\\n        \"],[10,1],[14,0,\"is-padded is-one-line\"],[12],[1,\"\\n          \"],[8,[39,23],[[24,\"title\",\"Show tasks of allocations\"]],[[\"@isActive\",\"@onToggle\"],[[30,0,[\"showSubTasks\"]],[30,0,[\"toggleShowSubTasks\"]]]],[[\"default\"],[[[[1,\"\\n            Show Tasks\\n          \"]],[]]]]],[1,\"\\n        \"],[13],[1,\"\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n    \"],[10,0],[14,0,\"boxed-section-body is-full-bleed\"],[12],[1,\"\\n\"],[41,[30,0,[\"sortedAllocations\"]],[[[1,\"        \"],[8,[39,24],null,[[\"@source\",\"@size\",\"@page\",\"@class\"],[[30,0,[\"sortedAllocations\"]],[30,0,[\"pageSize\"]],[30,0,[\"currentPage\"]],\"allocations\"]],[[\"default\"],[[[[1,\"\\n          \"],[8,[39,25],null,[[\"@source\",\"@sortProperty\",\"@sortDescending\",\"@class\"],[[30,4,[\"list\"]],[30,0,[\"sortProperty\"]],[30,0,[\"sortDescending\"]],[29,[\"with-foot \",[52,[30,0,[\"showSubTasks\"]],\"with-collapsed-borders\"]]]]],[[\"default\"],[[[[1,\"\\n            \"],[8,[30,5,[\"head\"]],null,null,[[\"default\"],[[[[1,\"\\n              \"],[10,\"th\"],[14,0,\"is-narrow\"],[12],[13],[1,\"\\n              \"],[8,[30,5,[\"sort-by\"]],null,[[\"@prop\"],[\"shortId\"]],[[\"default\"],[[[[1,\"\\n                ID\\n              \"]],[]]]]],[1,\"\\n              \"],[8,[30,5,[\"sort-by\"]],null,[[\"@prop\",\"@title\"],[\"createIndex\",\"Create Index\"]],[[\"default\"],[[[[1,\"\\n                Created\\n              \"]],[]]]]],[1,\"\\n              \"],[8,[30,5,[\"sort-by\"]],null,[[\"@prop\",\"@title\"],[\"modifyIndex\",\"Modify Index\"]],[[\"default\"],[[[[1,\"\\n                Modified\\n              \"]],[]]]]],[1,\"\\n              \"],[8,[30,5,[\"sort-by\"]],null,[[\"@prop\"],[\"statusIndex\"]],[[\"default\"],[[[[1,\"\\n                Status\\n              \"]],[]]]]],[1,\"\\n              \"],[8,[30,5,[\"sort-by\"]],null,[[\"@prop\"],[\"jobVersion\"]],[[\"default\"],[[[[1,\"\\n                Version\\n              \"]],[]]]]],[1,\"\\n              \"],[8,[30,5,[\"sort-by\"]],null,[[\"@prop\"],[\"node.shortId\"]],[[\"default\"],[[[[1,\"\\n                Client\\n              \"]],[]]]]],[1,\"\\n              \"],[10,\"th\"],[12],[1,\"\\n                Volume\\n              \"],[13],[1,\"\\n              \"],[10,\"th\"],[12],[1,\"\\n                CPU\\n              \"],[13],[1,\"\\n              \"],[10,\"th\"],[12],[1,\"\\n                Memory\\n              \"],[13],[1,\"\\n            \"]],[]]]]],[1,\"\\n            \"],[8,[30,5,[\"body\"]],null,[[\"@key\"],[\"model.id\"]],[[\"default\"],[[[[1,\"\\n              \"],[8,[39,26],[[4,[38,27],null,[[\"enumerated\",\"action\"],[true,[28,[37,9],[[30,0],\"gotoAllocation\",[30,6,[\"model\"]]],null]]]]],[[\"@allocation\",\"@context\",\"@onClick\"],[[30,6,[\"model\"]],\"taskGroup\",[28,[37,9],[[30,0],\"gotoAllocation\",[30,6,[\"model\"]]],null]]],null],[1,\"\\n\"],[41,[30,0,[\"showSubTasks\"]],[[[42,[28,[37,17],[[28,[37,17],[[30,6,[\"model\",\"states\"]]],null]],null],null,[[[1,\"                  \"],[8,[39,28],null,[[\"@namespan\",\"@taskState\",\"@active\",\"@onSetActiveTask\"],[\"8\",[30,7],[28,[37,18],[[30,0,[\"activeTask\"]],[28,[37,29],[[30,7,[\"allocation\",\"id\"]],\"-\",[30,7,[\"name\"]]],null]],null],[28,[37,9],[[30,0],\"setActiveTaskQueryParam\"],null]]],null],[1,\"\\n\"]],[7]],null]],[]],null],[1,\"            \"]],[6]]]]],[1,\"\\n          \"]],[5]]]]],[1,\"\\n          \"],[10,0],[14,0,\"table-foot\"],[12],[1,\"\\n            \"],[8,[39,30],null,[[\"@onChange\"],[[28,[37,9],[[30,0],[30,0,[\"resetPagination\"]]],null]]],null],[1,\"\\n            \"],[10,\"nav\"],[14,0,\"pagination\"],[12],[1,\"\\n              \"],[10,0],[14,0,\"pagination-numbers\"],[12],[1,\"\\n                \"],[1,[30,4,[\"startsAt\"]]],[1,\"\\n                –\\n                \"],[1,[30,4,[\"endsAt\"]]],[1,\"\\n                of\\n                \"],[1,[30,0,[\"sortedAllocations\",\"length\"]]],[1,\"\\n              \"],[13],[1,\"\\n              \"],[8,[30,4,[\"prev\"]],null,[[\"@class\"],[\"pagination-previous\"]],[[\"default\"],[[[[1,\"\\n                \"],[1,[28,[35,31],[\"chevron-left\"],null]],[1,\"\\n              \"]],[]]]]],[1,\"\\n              \"],[8,[30,4,[\"next\"]],null,[[\"@class\"],[\"pagination-next\"]],[[\"default\"],[[[[1,\"\\n                \"],[1,[28,[35,31],[\"chevron-right\"],null]],[1,\"\\n              \"]],[]]]]],[1,\"\\n              \"],[10,\"ul\"],[14,0,\"pagination-list\"],[12],[13],[1,\"\\n            \"],[13],[1,\"\\n          \"],[13],[1,\"\\n        \"]],[4]]]]],[1,\"\\n\"]],[]],[[[41,[30,0,[\"allocations\",\"length\"]],[[[1,\"        \"],[10,0],[14,0,\"boxed-section-body\"],[12],[1,\"\\n          \"],[10,0],[14,0,\"empty-message\"],[12],[1,\"\\n            \"],[10,\"h3\"],[14,0,\"empty-message-headline\"],[12],[1,\"\\n              No Matches\\n            \"],[13],[1,\"\\n            \"],[10,2],[14,0,\"empty-message-body\"],[12],[1,\"\\n              No allocations match the term\\n              \"],[10,\"strong\"],[12],[1,\"\\n                \"],[1,[30,0,[\"searchTerm\"]]],[1,\"\\n              \"],[13],[1,\"\\n            \"],[13],[1,\"\\n          \"],[13],[1,\"\\n        \"],[13],[1,\"\\n\"]],[]],[[[1,\"        \"],[10,0],[14,0,\"boxed-section-body\"],[12],[1,\"\\n          \"],[10,0],[14,0,\"empty-message\"],[12],[1,\"\\n            \"],[10,\"h3\"],[14,0,\"empty-message-headline\"],[12],[1,\"\\n              No Allocations\\n            \"],[13],[1,\"\\n            \"],[10,2],[14,0,\"empty-message-body\"],[12],[1,\"\\n              No allocations have been placed.\\n            \"],[13],[1,\"\\n          \"],[13],[1,\"\\n        \"],[13],[1,\"\\n      \"]],[]]]],[]]],[1,\"    \"],[13],[1,\"\\n  \"],[13],[1,\"\\n  \"],[8,[39,32],null,[[\"@tasks\"],[[30,0,[\"model\",\"tasks\"]]]],null],[1,\"\\n\"],[41,[30,0,[\"model\",\"scaleState\",\"isVisible\"]],[[[41,[30,0,[\"shouldShowScaleEventTimeline\"]],[[[1,\"      \"],[10,0],[14,0,\"boxed-section\"],[12],[1,\"\\n        \"],[10,0],[14,0,\"boxed-section-head is-hollow\"],[12],[1,\"\\n          Scaling Timeline\\n        \"],[13],[1,\"\\n        \"],[10,0],[14,0,\"boxed-section-body\"],[12],[1,\"\\n          \"],[8,[39,33],null,[[\"@events\"],[[30,0,[\"sortedScaleEvents\"]]]],null],[1,\"\\n        \"],[13],[1,\"\\n      \"],[13],[1,\"\\n\"]],[]],null],[1,\"    \"],[10,0],[14,0,\"boxed-section\"],[12],[1,\"\\n      \"],[10,0],[14,0,\"boxed-section-head\"],[12],[1,\"\\n        Recent Scaling Events\\n      \"],[13],[1,\"\\n      \"],[10,0],[14,0,\"boxed-section-body\"],[12],[1,\"\\n        \"],[8,[39,34],null,[[\"@events\"],[[30,0,[\"sortedScaleEvents\"]]]],null],[1,\"\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n\"]],[]],null],[41,[30,0,[\"model\",\"volumes\",\"length\"]],[[[1,\"    \"],[10,0],[14,0,\"boxed-section\"],[12],[1,\"\\n      \"],[10,0],[14,0,\"boxed-section-head\"],[12],[1,\"\\n        Volume Requirements\\n      \"],[13],[1,\"\\n      \"],[10,0],[14,0,\"boxed-section-body is-full-bleed\"],[12],[1,\"\\n        \"],[8,[39,25],null,[[\"@source\"],[[30,0,[\"model\",\"volumes\"]]]],[[\"default\"],[[[[1,\"\\n          \"],[8,[30,8,[\"head\"]],null,null,[[\"default\"],[[[[1,\"\\n            \"],[10,\"th\"],[12],[1,\"\\n              Name\\n            \"],[13],[1,\"\\n            \"],[10,\"th\"],[12],[1,\"\\n              Type\\n            \"],[13],[1,\"\\n            \"],[10,\"th\"],[12],[1,\"\\n              Source\\n            \"],[13],[1,\"\\n            \"],[10,\"th\"],[12],[1,\"\\n              Permissions\\n            \"],[13],[1,\"\\n          \"]],[]]]]],[1,\"\\n          \"],[8,[30,8,[\"body\"]],null,null,[[\"default\"],[[[[1,\"\\n            \"],[10,\"tr\"],[12],[1,\"\\n              \"],[10,\"td\"],[12],[1,\"\\n\"],[41,[30,9,[\"model\",\"isCSI\"]],[[[41,[30,9,[\"model\",\"perAlloc\"]],[[[1,\"                    \"],[8,[39,2],null,[[\"@route\",\"@query\"],[\"csi.volumes.index\",[28,[37,35],null,[[\"search\"],[[30,9,[\"model\",\"source\"]]]]]]],[[\"default\"],[[[[1,[30,9,[\"model\",\"name\"]]]],[]]]]],[1,\"\\n\"]],[]],[[[1,\"                    \"],[8,[39,2],null,[[\"@route\",\"@model\"],[\"csi.volumes.volume\",[28,[37,29],[[30,9,[\"model\",\"source\"]],\"@\",[30,9,[\"model\",\"namespace\",\"id\"]]],null]]],[[\"default\"],[[[[1,\"\\n                      \"],[1,[30,9,[\"model\",\"name\"]]],[1,\"\\n                    \"]],[]]]]],[1,\"\\n\"]],[]]]],[]],[[[1,\"                  \"],[1,[30,9,[\"model\",\"name\"]]],[1,\"\\n\"]],[]]],[1,\"              \"],[13],[1,\"\\n              \"],[10,\"td\"],[12],[1,\"\\n                \"],[1,[30,9,[\"model\",\"type\"]]],[1,\"\\n              \"],[13],[1,\"\\n              \"],[10,\"td\"],[12],[1,\"\\n                \"],[1,[30,9,[\"model\",\"source\"]]],[1,\"\\n              \"],[13],[1,\"\\n              \"],[10,\"td\"],[12],[1,\"\\n                \"],[1,[52,[30,9,[\"model\",\"readOnly\"]],\"Read\",\"Read/Write\"]],[1,\"\\n              \"],[13],[1,\"\\n            \"],[13],[1,\"\\n          \"]],[9]]]]],[1,\"\\n        \"]],[8]]]]],[1,\"\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n\"]],[]],null],[13]],[\"chart\",\"datum\",\"index\",\"p\",\"t\",\"row\",\"task\",\"t\",\"row\"],false,[\"breadcrumb\",\"page-title\",\"link-to\",\"array\",\"exec/open-button\",\"if\",\"stepper-input\",\"or\",\"cannot\",\"action\",\"format-scheduled-hertz\",\"format-scheduled-bytes\",\"gt\",\"and\",\"can\",\"allocation-status-bar\",\"each\",\"-track-array\",\"eq\",\"job-page/parts/summary-legend-item\",\"multi-select-dropdown\",\"search-box\",\"mut\",\"toggle\",\"list-pagination\",\"list-table\",\"allocation-row\",\"keyboard-shortcut\",\"task-sub-row\",\"concat\",\"page-size-select\",\"x-icon\",\"lifecycle-chart\",\"scale-events-chart\",\"scale-events-accordion\",\"hash\"]]",
    "moduleName": "nomad-ui/templates/jobs/job/task-group.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/jobs/job/versions", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "EQ9gLP4G",
    "block": "[[[1,[28,[35,0],[\"Job \",[30,0,[\"job\",\"name\"]],\" versions\"],null]],[1,\"\\n\"],[8,[39,1],null,[[\"@job\"],[[30,0,[\"job\"]]]],null],[1,\"\\n\"],[10,\"section\"],[14,0,\"section\"],[12],[1,\"\\n\"],[41,[30,0,[\"error\"]],[[[1,\"    \"],[10,0],[15,0,[29,[\"notification \",[30,0,[\"errorLevelClass\"]]]]],[12],[1,\"\\n      \"],[10,0],[14,0,\"columns\"],[12],[1,\"\\n        \"],[10,0],[14,0,\"column\"],[12],[1,\"\\n          \"],[10,\"h3\"],[14,0,\"title is-4\"],[12],[1,[30,0,[\"error\",\"title\"]]],[13],[1,\"\\n          \"],[10,2],[12],[1,[30,0,[\"error\",\"description\"]]],[13],[1,\"\\n        \"],[13],[1,\"\\n        \"],[10,0],[14,0,\"column is-centered is-minimum\"],[12],[1,\"\\n          \"],[10,\"button\"],[15,0,[29,[\"button \",[30,0,[\"errorLevelClass\"]]]]],[15,\"onclick\",[28,[37,3],[[30,0],[30,0,[\"onDismiss\"]]],null]],[14,4,\"button\"],[12],[1,\"Okay\"],[13],[1,\"\\n        \"],[13],[1,\"\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n\"]],[]],null],[1,\"\\n  \"],[8,[39,4],null,[[\"@versions\",\"@verbose\",\"@handleError\"],[[30,0,[\"model\",\"versions\"]],true,[28,[37,3],[[30,0],[30,0,[\"handleError\"]]],null]]],null],[1,\"\\n\"],[13],[1,\"\\n\"]],[],false,[\"page-title\",\"job-subnav\",\"if\",\"action\",\"job-versions-stream\"]]",
    "moduleName": "nomad-ui/templates/jobs/job/versions.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/jobs/loading", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "zr8vwpsB",
    "block": "[[[10,\"section\"],[14,0,\"section has-text-centered\"],[12],[8,[39,0],null,null,null],[13],[1,\"\\n\"]],[],false,[\"loading-spinner\"]]",
    "moduleName": "nomad-ui/templates/jobs/loading.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/jobs/run/index", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "mTQ6OT62",
    "block": "[[[8,[39,0],null,[[\"@crumb\"],[[28,[37,1],null,[[\"label\",\"args\"],[\"Run\",[28,[37,2],[\"jobs.run\"],null]]]]]],null],[1,\"\\n\"],[1,[28,[35,3],[\"Run a job\"],null]],[1,\"\\n\"],[10,\"section\"],[14,0,\"section\"],[12],[1,\"\\n  \"],[8,[39,4],null,[[\"@job\",\"@context\",\"@onSubmit\",\"@handleSaveAsTemplate\"],[[30,0,[\"model\"]],\"new\",[28,[37,5],[[30,0],[30,0,[\"onSubmit\"]]],null],[30,0,[\"handleSaveAsTemplate\"]]]],null],[1,\"\\n\"],[13]],[],false,[\"breadcrumb\",\"hash\",\"array\",\"page-title\",\"job-editor\",\"action\"]]",
    "moduleName": "nomad-ui/templates/jobs/run/index.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/jobs/run/templates/index", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "/KC+q9ll",
    "block": "[[[10,\"section\"],[14,0,\"section\"],[12],[1,\"\\n    \"],[10,\"header\"],[14,0,\"run-job-header\"],[12],[1,\"\\n        \"],[10,\"h1\"],[14,0,\"title is-3\"],[12],[1,\"Choose a template\"],[13],[1,\"\\n        \"],[10,2],[12],[1,\"Select a custom or default job template below. You will have an opportunity to modify and plan your job before it is submitted.\"],[13],[1,\"\\n    \"],[13],[1,\"\\n\"],[41,[28,[37,1],[[30,0,[\"templates\",\"length\"]],0],null],[[[1,\"        \"],[10,\"h3\"],[14,0,\"empty-message-headline\"],[12],[1,\"\\n          You have no templates to choose from. Would you like to \"],[8,[39,2],null,[[\"@route\"],[\"jobs.run.templates.new\"]],[[\"default\"],[[[[1,\"create\"]],[]]]]],[1,\" one?\\n        \"],[13],[1,\"\\n        \"],[8,[39,3],[[24,0,\"button-group\"]],[[\"@text\",\"@route\",\"@icon\"],[\"Back to editor\",\"jobs.run\",\"arrow-left\"]],null],[1,\"\\n\"]],[]],[[[1,\"    \"],[10,\"main\"],[14,0,\"radio-group\"],[12],[1,\"\\n        \"],[8,[39,4],null,null,[[\"default\"],[[[[1,\"\\n            \"],[8,[30,1,[\"Legend\"]],null,null,[[\"default\"],[[[[1,\"Select a Template\"]],[]]]]],[1,\"\\n\"],[42,[28,[37,6],[[28,[37,6],[[30,0,[\"templates\"]]],null]],null],null,[[[1,\"                \"],[8,[30,1,[\"RadioCard\"]],[[24,0,\"form-container\"],[16,1,[30,2,[\"id\"]]],[4,[38,7],[\"change\",[30,0,[\"onChange\"]]],null]],[[\"@layout\",\"@maxWidth\",\"@checked\"],[\"fixed\",\"30%\",[28,[37,1],[[30,2,[\"id\"]],[30,0,[\"selectedTemplate\"]]],null]]],[[\"default\"],[[[[1,\"\\n                    \"],[8,[30,3,[\"Label\"]],null,null,[[\"default\"],[[[[1,[28,[35,8],[[30,2,[\"path\"]]],null]]],[]]]]],[1,\"\\n                    \"],[8,[30,3,[\"Description\"]],null,null,[[\"default\"],[[[[1,[30,2,[\"items\",\"description\"]]]],[]]]]],[1,\"\\n                \"]],[3]]]]],[1,\"\\n\"]],[2]],null],[1,\"        \"]],[1]]]]],[1,\"\\n    \"],[13],[1,\"\\n    \"],[10,\"footer\"],[14,0,\"buttonset\"],[12],[1,\"\\n        \"],[8,[39,9],[[24,0,\"button-group\"]],null,[[\"default\"],[[[[1,\"\\n            \"],[8,[39,3],[[16,\"disabled\",[28,[37,10],[[30,0,[\"selectedTemplate\"]],null],null]]],[[\"@text\",\"@route\",\"@query\"],[\"Apply\",\"jobs.run\",[28,[37,11],null,[[\"template\"],[[30,0,[\"selectedTemplate\"]]]]]]],null],[1,\"\\n            \"],[8,[39,3],null,[[\"@text\",\"@route\",\"@color\"],[\"Cancel\",\"jobs.run\",\"secondary\"]],null],[1,\"\\n        \"]],[]]]]],[1,\"\\n        \"],[8,[39,9],[[24,0,\"button-group align-right\"]],null,[[\"default\"],[[[[1,\"\\n            \"],[8,[39,3],null,[[\"@text\",\"@color\",\"@icon\",\"@route\"],[\"Manage\",\"tertiary\",\"edit\",\"jobs.run.templates.manage\"]],null],[1,\"\\n            \"],[8,[39,3],null,[[\"@text\",\"@color\",\"@icon\",\"@route\"],[\"Create New Template\",\"tertiary\",\"file-plus\",\"jobs.run.templates.new\"]],null],[1,\"\\n        \"]],[]]]]],[1,\"\\n    \"],[13],[1,\"\\n\"]],[]]],[13]],[\"G\",\"card\",\"R\"],false,[\"if\",\"eq\",\"hds/link/inline\",\"hds/button\",\"hds/form/radio-card/group\",\"each\",\"-track-array\",\"on\",\"format-template-label\",\"hds/button-set\",\"is-equal\",\"hash\"]]",
    "moduleName": "nomad-ui/templates/jobs/run/templates/index.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/jobs/run/templates/manage", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "4UDPEW2+",
    "block": "[[[1,[28,[35,0],[\"Manage templates\"],null]],[1,\"\\n\"],[10,\"section\"],[14,0,\"section\"],[12],[1,\"\\n    \"],[10,\"header\"],[14,0,\"run-job-header\"],[12],[1,\"\\n        \"],[10,\"h1\"],[14,0,\"title is-3\"],[12],[1,\"Manage Job Templates\"],[13],[1,\"\\n        \"],[10,2],[12],[1,\"Modify or Delete a job template from the list below. Default job templates cannot be removed.\"],[13],[1,\"\\n    \"],[13],[1,\"\\n\"],[41,[28,[37,2],[[30,0,[\"model\",\"length\"]],0],null],[[[1,\"        \"],[10,\"h3\"],[14,0,\"empty-message-headline\"],[12],[1,\"\\n          You have no templates to choose from. Would you like to \"],[8,[39,3],null,[[\"@route\"],[\"jobs.run.templates.new\"]],[[\"default\"],[[[[1,\"create\"]],[]]]]],[1,\" one?\\n        \"],[13],[1,\"\\n        \"],[8,[39,4],[[24,0,\"button-group\"]],[[\"@text\",\"@route\",\"@icon\"],[\"Back to editor\",\"jobs.run\",\"arrow-left\"]],null],[1,\"\\n\"]],[]],[[[1,\"    \"],[10,\"main\"],[14,0,\"radio-group\"],[12],[1,\"\\n        \"],[8,[39,5],null,[[\"@model\",\"@columns\",\"@isFixedLayout\"],[[30,0,[\"templates\"]],[30,0,[\"columns\"]],true]],[[\"body\"],[[[[1,\"\\n                \"],[8,[30,1,[\"Tr\"]],null,null,[[\"default\"],[[[[1,\"\\n                    \"],[8,[30,1,[\"Td\"]],null,null,[[\"default\"],[[[[1,\"\\n\"],[41,[30,1,[\"data\",\"isDefaultJobTemplate\"]],[[[1,\"                            \"],[1,[28,[35,6],[[30,1,[\"data\",\"path\"]]],null]],[1,\"\\n\"]],[]],[[[1,\"\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\"],[8,[39,7],null,[[\"@route\",\"@model\"],[\"jobs.run.templates.template\",[28,[37,8],[[30,1,[\"data\",\"path\"]],\"@\",[30,1,[\"data\",\"namespace\"]]],null]]],[[\"default\"],[[[[1,\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\"],[1,[28,[35,6],[[30,1,[\"data\",\"path\"]]],null]],[1,\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\"]],[]]]]],[1,\"\\n\"]],[]]],[1,\"                    \"]],[]]]]],[1,\"\\n                    \"],[8,[30,1,[\"Td\"]],null,null,[[\"default\"],[[[[1,[30,1,[\"data\",\"namespace\"]]]],[]]]]],[1,\"\\n                    \"],[8,[30,1,[\"Td\"]],null,null,[[\"default\"],[[[[1,\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\"],[1,[30,1,[\"data\",\"items\",\"description\"]]],[1,\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\"]],[]]]]],[1,\"\\n                    \"],[8,[30,1,[\"Td\"]],null,null,[[\"default\"],[[[[1,\"\\n\"],[41,[30,1,[\"data\",\"isDefaultJobTemplate\"]],[[[1,\"\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\"],[10,\"em\"],[12],[1,\"(Default Job — cannot be deleted)\"],[13],[1,\"\\n\"]],[]],[[[1,\"\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\\t\"],[8,[39,9],null,[[\"@idleText\",\"@cancelText\",\"@confirmText\",\"@inlineText\",\"@confirmationMessage\",\"@awaitingConfirmation\",\"@disabled\",\"@onConfirm\"],[\"Delete\",\"Cancel\",\"Yes\",true,\"Are you sure?\",[30,0,[\"deleteTemplate\",\"isRunning\"]],[28,[37,10],[\"destroy variable\"],[[\"namespace\"],[\"*\"]]],[28,[37,11],[[30,0,[\"deleteTemplate\"]],[30,1,[\"data\"]]],null]]],null],[1,\"\\n\"]],[]]],[1,\"                    \"]],[]]]]],[1,\"\\n                \"]],[]]]]],[1,\"\\n            \"]],[1]]]]],[1,\"\\n    \"],[13],[1,\"\\n    \"],[10,\"footer\"],[14,0,\"buttonset\"],[12],[1,\"\\n        \"],[8,[39,12],[[24,0,\"button-group\"]],null,[[\"default\"],[[[[1,\"\\n            \"],[8,[39,4],null,[[\"@text\",\"@color\",\"@route\"],[\"Cancel\",\"secondary\",\"jobs.run.templates\"]],null],[1,\"\\n        \"]],[]]]]],[1,\"\\n    \"],[13],[1,\"\\n\"]],[]]],[13],[1,\"\\n\"]],[\"B\"],false,[\"page-title\",\"if\",\"eq\",\"hds/link/inline\",\"hds/button\",\"hds/table\",\"format-template-label\",\"link-to\",\"concat\",\"two-step-button\",\"cannot\",\"perform\",\"hds/button-set\"]]",
    "moduleName": "nomad-ui/templates/jobs/run/templates/manage.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/jobs/run/templates/new", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "n97Gx6HN",
    "block": "[[[1,[28,[35,0],[\"Create a custom template\"],null]],[1,\"\\n\"],[10,\"section\"],[14,0,\"section\"],[12],[1,\"\\n    \"],[10,\"header\"],[14,0,\"run-job-header\"],[12],[1,\"\\n        \"],[10,\"h1\"],[14,0,\"title is-3\"],[12],[1,\"Create template\"],[13],[1,\"\\n        \"],[10,2],[12],[1,\"Provide a job spec that you or others can re-use later. Anytime it is applied to a new job, you will have the opportunity to modify it before that job is run.\"],[13],[1,\"\\n    \"],[13],[1,\"\\n    \"],[10,\"form\"],[14,0,\"new-job-template\"],[14,\"autocomplete\",\"off\"],[12],[1,\"\\n        \"],[10,0],[15,0,[52,[30,0,[\"system\",\"shouldShowNamespaces\"]],\"input-dropdown-row\"]],[12],[1,\"\\n            \"],[10,\"label\"],[12],[1,\"\\n                \"],[10,1],[12],[1,\"\\n                    Template name\\n                \"],[13],[1,\"\\n                \"],[8,[39,2],[[24,\"placeholder\",\"your-template-name-here\"],[16,0,[29,[\"input path-input \",[52,[30,0,[\"isDuplicateTemplate\"]],\"error\"]]]],[4,[38,4],null,null]],[[\"@type\",\"@value\"],[\"text\",[28,[37,3],[[30,0,[\"templateName\"]]],null]]],null],[1,\"\\n\"],[41,[30,0,[\"isDuplicateTemplate\"]],[[[1,\"                    \"],[10,2],[14,0,\"help is-danger\"],[12],[1,\"\\n                        There is already a templated named \"],[1,[30,0,[\"templateName\"]]],[1,\".\\n                    \"],[13],[1,\"\\n\"]],[]],null],[1,\"            \"],[13],[1,\"\\n\"],[41,[30,0,[\"system\",\"shouldShowNamespaces\"]],[[[1,\"                \"],[10,\"label\"],[12],[1,\"\\n                    \"],[10,1],[12],[1,\"\\n                        Namespace\\n                    \"],[13],[1,\"\\n                    \"],[8,[39,5],null,[[\"@label\",\"@options\",\"@selection\",\"@onSelect\"],[\"Namespace\",[30,0,[\"namespaceOptions\"]],[30,0,[\"templateNamespace\"]],[28,[37,6],[[28,[37,3],[[30,0,[\"templateNamespace\"]]],null]],null]]],null],[1,\"\\n                \"],[13],[1,\"\\n\"]],[]],null],[1,\"        \"],[13],[1,\"\\n        \"],[8,[39,7],null,[[\"@keyValues\",\"@updateKeyValue\"],[[30,0,[\"model\",\"keyValues\"]],[30,0,[\"updateKeyValue\"]]]],null],[1,\"\\n        \"],[10,\"footer\"],[14,0,\"button-group\"],[12],[1,\"\\n            \"],[8,[39,8],[[16,\"disabled\",[28,[37,9],[[30,0,[\"templateName\"]]],null]],[4,[38,10],[\"click\",[30,0,[\"save\"]]],null]],[[\"@text\"],[\"Save\"]],null],[1,\"\\n            \"],[8,[39,8],null,[[\"@text\",\"@route\",\"@color\"],[\"Cancel\",\"jobs.run\",\"secondary\"]],null],[1,\"\\n        \"],[13],[1,\"\\n    \"],[13],[1,\"\\n\"],[13],[1,\"\\n\"]],[],false,[\"page-title\",\"if\",\"input\",\"mut\",\"autofocus\",\"single-select-dropdown\",\"fn\",\"variable-form/job-template-editor\",\"hds/button\",\"is-empty\",\"on\"]]",
    "moduleName": "nomad-ui/templates/jobs/run/templates/new.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/jobs/run/templates/template", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "nv++/j6y",
    "block": "[[[1,[28,[35,0],[\"Edit template\"],null]],[1,\"\\n\"],[10,\"section\"],[14,0,\"section\"],[12],[1,\"\\n    \"],[10,\"header\"],[14,0,\"run-job-header\"],[12],[1,\"\\n        \"],[10,0],[12],[1,\"\\n            \"],[10,\"h1\"],[14,0,\"title is-3\"],[12],[1,\"Edit template\"],[13],[1,\"\\n        \"],[13],[1,\"\\n        \"],[8,[39,1],null,[[\"@alignRight\",\"@idleText\",\"@cancelText\",\"@confirmText\",\"@inlineText\",\"@confirmationMessage\",\"@awaitingConfirmation\",\"@disabled\",\"@onConfirm\"],[true,\"Delete\",\"Cancel\",\"Yes, Delete Template\",true,\"Are you sure?\",[30,0,[\"deleteTemplate\",\"isRunning\"]],[28,[37,2],[\"destroy variable\"],[[\"namespace\"],[\"*\"]]],[28,[37,3],[[30,0,[\"deleteTemplate\"]]],null]]],null],[1,\"\\n    \"],[13],[1,\"\\n    \"],[10,\"form\"],[14,0,\"new-job-template\"],[14,\"autocomplete\",\"off\"],[12],[1,\"\\n        \"],[10,0],[15,0,[52,[30,0,[\"system\",\"shouldShowNamespaces\"]],\"input-dropdown-row\"]],[12],[1,\"\\n            \"],[10,\"label\"],[12],[1,\"\\n                \"],[10,1],[12],[1,\"\\n                    Template name\\n                \"],[13],[1,\"\\n                \"],[8,[39,5],[[24,0,\"input path-input\"],[24,\"disabled\",\"\"]],[[\"@type\",\"@value\"],[\"text\",[30,0,[\"model\",\"path\"]]]],null],[1,\"\\n            \"],[13],[1,\"\\n\"],[41,[30,0,[\"system\",\"shouldShowNamespaces\"]],[[[1,\"                \"],[10,\"label\"],[12],[1,\"\\n                    \"],[10,1],[12],[1,\"\\n                        Namespace\\n                    \"],[13],[1,\"\\n                    \"],[8,[39,6],null,[[\"@label\",\"@selection\",\"@options\",\"@disabled\"],[\"Namespace\",[30,0,[\"model\",\"namespace\"]],[28,[37,7],[[28,[37,8],null,[[\"key\",\"label\"],[[30,0,[\"model\",\"namespace\"]],[30,0,[\"model\",\"namespace\"]]]]]],null],true]],null],[1,\"\\n                \"],[13],[1,\"\\n\"]],[]],null],[1,\"        \"],[13],[1,\"\\n        \"],[8,[39,9],null,[[\"@keyValues\",\"@updateKeyValue\"],[[30,0,[\"model\",\"keyValues\"]],[30,0,[\"updateKeyValue\"]]]],null],[1,\"\\n        \"],[10,\"footer\"],[14,0,\"button-group\"],[12],[1,\"\\n            \"],[8,[39,10],[[4,[38,11],[\"click\",[30,0,[\"save\"]]],null]],[[\"@text\"],[\"Edit\"]],null],[1,\"\\n            \"],[8,[39,10],null,[[\"@text\",\"@route\",\"@color\"],[\"Cancel\",\"jobs.run.templates\",\"critical\"]],null],[1,\"\\n        \"],[13],[1,\"\\n    \"],[13],[1,\"\\n\"],[13],[1,\"\\n\"],[41,[30,0,[\"formModalActive\"]],[[[1,\"    \"],[8,[39,12],[[24,1,\"form-modal\"]],[[\"@onClose\",\"@color\"],[[30,0,[\"toggleModal\"]],\"critical\"]],[[\"default\"],[[[[1,\"\\n        \"],[8,[30,1,[\"Header\"]],null,null,[[\"default\"],[[[[1,\"\\n            Confirm\\n        \"]],[]]]]],[1,\"\\n        \"],[8,[30,1,[\"Body\"]],null,null,[[\"default\"],[[[[1,\"\\n            Are you sure you want to delete this template?\\n        \"]],[]]]]],[1,\"\\n        \"],[8,[30,1,[\"Footer\"]],null,null,[[\"default\"],[[[[1,\"\\n        \"],[8,[39,13],null,null,[[\"default\"],[[[[1,\"\\n            \"],[8,[39,10],[[24,4,\"submit\"],[4,[38,11],[\"click\",[30,0,[\"deleteTemplateAndClose\"]]],null]],[[\"@text\"],[\"Confirm\"]],null],[1,\"\\n            \"],[8,[39,10],[[24,4,\"button\"],[4,[38,11],[\"click\",[30,2,[\"close\"]]],null]],[[\"@text\",\"@color\"],[\"Cancel\",\"secondary\"]],null],[1,\"\\n        \"]],[]]]]],[1,\"\\n        \"]],[2]]]]],[1,\"\\n    \"]],[1]]]]],[1,\"\\n\"]],[]],null]],[\"M\",\"F\"],false,[\"page-title\",\"two-step-button\",\"cannot\",\"perform\",\"if\",\"input\",\"single-select-dropdown\",\"array\",\"hash\",\"variable-form/job-template-editor\",\"hds/button\",\"on\",\"hds/modal\",\"hds/button-set\"]]",
    "moduleName": "nomad-ui/templates/jobs/run/templates/template.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/loading", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "lvGVEmys",
    "block": "[[[8,[39,0],null,null,[[\"default\"],[[[[1,\"\\n  \"],[10,\"section\"],[14,0,\"section has-text-centered\"],[12],[8,[39,1],null,null,null],[13],[1,\"\\n\"]],[]]]]],[1,\"\\n\"]],[],false,[\"page-layout\",\"loading-spinner\"]]",
    "moduleName": "nomad-ui/templates/loading.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/oidc-mock", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "vMrXWZrL",
    "block": "[[[1,[28,[35,0],[\"Mock OIDC Test Page\"],null]],[1,\"\\n\\n\"],[10,\"section\"],[14,0,\"mock-sso-provider\"],[12],[1,\"\\n  \"],[10,\"h1\"],[12],[1,\"OIDC Test route: \"],[1,[30,0,[\"auth_method\"]]],[13],[1,\"\\n  \"],[10,\"h2\"],[12],[1,\"(Mirage only)\"],[13],[1,\"\\n  \"],[10,0],[14,0,\"providers\"],[12],[1,\"\\n\"],[42,[28,[37,2],[[28,[37,2],[[30,0,[\"model\"]]],null]],null],null,[[[1,\"      \"],[11,\"button\"],[24,0,\"button\"],[24,4,\"button\"],[4,[38,3],[\"click\",[28,[37,4],[[30,0,[\"signIn\"]],[30,1]],null]],null],[12],[1,\"\\n        Sign In as \"],[1,[30,1,[\"name\"]]],[1,\"\\n      \"],[13],[1,\"\\n\"]],[1]],null],[1,\"    \"],[11,\"button\"],[24,0,\"button error\"],[24,4,\"button\"],[4,[38,3],[\"click\",[30,0,[\"failToSignIn\"]]],null],[12],[1,\"\\n      Simulate Failure\\n    \"],[13],[1,\"\\n  \"],[13],[1,\"\\n\"],[13],[1,\"\\n\"],[46,[28,[37,6],null,null],null,null,null]],[\"fakeAccount\"],false,[\"page-title\",\"each\",\"-track-array\",\"on\",\"fn\",\"component\",\"-outlet\"]]",
    "moduleName": "nomad-ui/templates/oidc-mock.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/optimize", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "SPbrIYmo",
    "block": "[[[8,[39,0],null,[[\"@crumb\"],[[28,[37,1],null,[[\"label\",\"args\"],[\"Recommendations\",[28,[37,2],[\"optimize\"],null]]]]]],null],[1,\"\\n\"],[8,[39,3],null,null,[[\"default\"],[[[[1,\"\\n  \"],[10,\"section\"],[14,0,\"section\"],[12],[1,\"\\n\"],[41,[30,0,[\"summaries\"]],[[[1,\"      \"],[10,0],[14,0,\"toolbar collapse\"],[12],[1,\"\\n        \"],[10,0],[14,0,\"toolbar-item\"],[12],[1,\"\\n\"],[41,[30,0,[\"summaries\"]],[[[1,\"            \"],[8,[39,5],null,[[\"@onChange\",\"@searchTerm\",\"@placeholder\"],[[30,0,[\"syncActiveSummary\"]],[28,[37,6],[[30,0,[\"searchTerm\"]]],null],[29,[\"Search\\n        \",[30,0,[\"summaries\",\"length\"]],\"\\n        \",[28,[37,7],[\"recommendation\",[30,0,[\"summaries\",\"length\"]]],null],\"...\"]]]],null],[1,\"\\n\"]],[]],null],[1,\"        \"],[13],[1,\"\\n        \"],[10,0],[14,0,\"toolbar-item is-right-aligned is-mobile-full-width\"],[12],[1,\"\\n          \"],[10,0],[14,0,\"button-bar\"],[12],[1,\"\\n\"],[41,[30,0,[\"system\",\"shouldShowNamespaces\"]],[[[1,\"              \"],[8,[39,8],null,[[\"@label\",\"@options\",\"@selection\",\"@onSelect\"],[\"Namespace\",[30,0,[\"optionsNamespaces\"]],[30,0,[\"qpNamespace\"]],[28,[37,9],[[30,0],[30,0,[\"setFacetQueryParam\"]],\"qpNamespace\"],null]]],null],[1,\"\\n\"]],[]],null],[1,\"            \"],[8,[39,10],null,[[\"@label\",\"@options\",\"@selection\",\"@onSelect\"],[\"Type\",[30,0,[\"optionsType\"]],[30,0,[\"selectionType\"]],[28,[37,9],[[30,0],[30,0,[\"setFacetQueryParam\"]],\"qpType\"],null]]],null],[1,\"\\n            \"],[8,[39,10],null,[[\"@label\",\"@options\",\"@selection\",\"@onSelect\"],[\"Status\",[30,0,[\"optionsStatus\"]],[30,0,[\"selectionStatus\"]],[28,[37,9],[[30,0],[30,0,[\"setFacetQueryParam\"]],\"qpStatus\"],null]]],null],[1,\"\\n            \"],[8,[39,10],null,[[\"@label\",\"@options\",\"@selection\",\"@onSelect\"],[\"Datacenter\",[30,0,[\"optionsDatacenter\"]],[30,0,[\"selectionDatacenter\"]],[28,[37,9],[[30,0],[30,0,[\"setFacetQueryParam\"]],\"qpDatacenter\"],null]]],null],[1,\"\\n            \"],[8,[39,10],null,[[\"@label\",\"@options\",\"@selection\",\"@onSelect\"],[\"Prefix\",[30,0,[\"optionsPrefix\"]],[30,0,[\"selectionPrefix\"]],[28,[37,9],[[30,0],[30,0,[\"setFacetQueryParam\"]],\"qpPrefix\"],null]]],null],[1,\"\\n          \"],[13],[1,\"\\n        \"],[13],[1,\"\\n      \"],[13],[1,\"\\n\\n\"],[41,[30,0,[\"filteredSummaries\"]],[[[1,\"        \"],[46,[28,[37,12],null,null],null,null,null],[1,\"\\n\\n        \"],[8,[39,13],null,[[\"@source\"],[[30,0,[\"filteredSummaries\"]]]],[[\"default\"],[[[[1,\"\\n          \"],[8,[30,1,[\"head\"]],null,null,[[\"default\"],[[[[1,\"\\n            \"],[10,\"th\"],[12],[1,\"Job\"],[13],[1,\"\\n            \"],[10,\"th\"],[12],[1,\"Recommended At\"],[13],[1,\"\\n            \"],[10,\"th\"],[12],[1,\"# Allocs\"],[13],[1,\"\\n            \"],[10,\"th\"],[12],[1,\"CPU\"],[13],[1,\"\\n            \"],[10,\"th\"],[12],[1,\"Mem\"],[13],[1,\"\\n            \"],[10,\"th\"],[12],[1,\"Agg. CPU\"],[13],[1,\"\\n            \"],[10,\"th\"],[12],[1,\"Agg. Mem\"],[13],[1,\"\\n          \"]],[]]]]],[1,\"\\n          \"],[8,[30,1,[\"body\"]],null,null,[[\"default\"],[[[[1,\"\\n\"],[41,[30,2,[\"model\",\"isProcessed\"]],[[[1,\"              \"],[8,[39,14],[[24,0,\"is-disabled\"]],[[\"@summary\"],[[30,2,[\"model\"]]]],null],[1,\"\\n\"]],[]],[[[1,\"              \"],[8,[39,14],[[16,0,[29,[\"is-interactive\\n                  \",[52,[28,[37,15],[[30,2,[\"model\"]],[30,0,[\"activeRecommendationSummary\"]]],null],\"is-active\"]]]],[4,[38,16],[\"click\",[28,[37,17],[[30,0,[\"transitionToSummary\"]],[30,2,[\"model\"]]],null]],null]],[[\"@summary\"],[[30,2,[\"model\"]]]],null],[1,\"\\n\"]],[]]],[1,\"          \"]],[2]]]]],[1,\"\\n        \"]],[1]]]]],[1,\"\\n\"]],[]],[[[1,\"        \"],[10,0],[14,0,\"empty-message\"],[12],[1,\"\\n          \"],[10,\"h3\"],[14,0,\"empty-message-headline\"],[12],[1,\"\\n            No Matches\\n          \"],[13],[1,\"\\n          \"],[10,2],[14,0,\"empty-message-body\"],[12],[1,\"\\n            No recommendations match your current filter selection.\\n          \"],[13],[1,\"\\n        \"],[13],[1,\"\\n\"]],[]]]],[]],[[[1,\"      \"],[10,0],[14,0,\"empty-message\"],[12],[1,\"\\n        \"],[10,\"h3\"],[14,0,\"empty-message-headline\"],[12],[1,\"\\n          No Recommendations\\n        \"],[13],[1,\"\\n        \"],[10,2],[14,0,\"empty-message-body\"],[12],[1,\"\\n          All recommendations have been accepted or dismissed. Nomad will\\n          continuously monitor applications so expect more recommendations in\\n          the future.\\n        \"],[13],[1,\"\\n      \"],[13],[1,\"\\n\"]],[]]],[1,\"  \"],[13],[1,\"\\n\"]],[]]]]],[1,\"\\n\"]],[\"t\",\"row\"],false,[\"breadcrumb\",\"hash\",\"array\",\"page-layout\",\"if\",\"search-box\",\"mut\",\"pluralize\",\"single-select-dropdown\",\"action\",\"multi-select-dropdown\",\"component\",\"-outlet\",\"list-table\",\"das/recommendation-row\",\"eq\",\"on\",\"fn\"]]",
    "moduleName": "nomad-ui/templates/optimize.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/optimize/summary", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "weHS1ddu",
    "block": "[[[8,[39,0],null,[[\"@crumb\"],[[30,0,[\"breadcrumb\"]]]],null],[1,\"\\n\"],[8,[39,1],null,[[\"@summary\",\"@proceed\"],[[30,1],[30,0,[\"optimizeController\",\"proceed\"]]]],null]],[\"@model\"],false,[\"breadcrumb\",\"das/recommendation-card\"]]",
    "moduleName": "nomad-ui/templates/optimize/summary.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/policies", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "ZWCV8bhf",
    "block": "[[[8,[39,0],null,[[\"@crumb\"],[[28,[37,1],null,[[\"label\",\"args\"],[\"Policies\",[28,[37,2],[\"policies.index\"],null]]]]]],null],[1,\"\\n\"],[8,[39,3],null,null,[[\"default\"],[[[[1,\"\\n  \"],[46,[28,[37,5],null,null],null,null,null],[1,\"\\n\"]],[]]]]]],[],false,[\"breadcrumb\",\"hash\",\"array\",\"page-layout\",\"component\",\"-outlet\"]]",
    "moduleName": "nomad-ui/templates/policies.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/policies/index", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "qN5rNqv3",
    "block": "[[[1,[28,[35,0],[\"Policies\"],null]],[1,\"\\n\"],[10,\"section\"],[14,0,\"section\"],[12],[1,\"\\n  \"],[10,0],[14,0,\"toolbar\"],[12],[1,\"\\n    \"],[10,0],[14,0,\"toolbar-item is-right-aligned is-mobile-full-width\"],[12],[1,\"\\n      \"],[10,0],[14,0,\"button-bar\"],[12],[1,\"\\n\"],[41,[28,[37,2],[\"write policy\"],null],[[[1,\"        \"],[8,[39,3],[[24,0,\"button is-primary\"]],[[\"@route\"],[\"policies.new\"]],[[\"default\"],[[[[1,\"\\n          Create Policy\\n        \"]],[]]]]],[1,\"\\n\"]],[]],[[[1,\"        \"],[10,\"button\"],[14,0,\"button is-primary is-disabled tooltip is-right-aligned\"],[14,\"aria-label\",\"You don’t have sufficient permissions\"],[14,\"disabled\",\"\"],[14,4,\"button\"],[12],[1,\"\\n          Create Policy\\n        \"],[13],[1,\"\\n\"]],[]]],[1,\"\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n  \"],[13],[1,\"\\n\"],[41,[30,0,[\"policies\",\"length\"]],[[[1,\"    \"],[8,[39,4],null,[[\"@source\",\"@class\"],[[30,0,[\"policies\"]],\"policies no-mobile-condense\"]],[[\"default\"],[[[[1,\"\\n      \"],[8,[30,1,[\"head\"]],null,null,[[\"default\"],[[[[1,\"\\n        \"],[10,\"th\"],[12],[1,\"Policy Name\"],[13],[1,\"\\n\"],[41,[28,[37,2],[\"list token\"],null],[[[1,\"          \"],[10,\"th\"],[12],[1,\"Tokens\"],[13],[1,\"\\n\"]],[]],null],[1,\"      \"]],[]]]]],[1,\"\\n      \"],[8,[30,1,[\"body\"]],null,null,[[\"default\"],[[[[1,\"\\n        \"],[11,\"tr\"],[4,[38,5],[\"click\",[28,[37,6],[[30,0],\"openPolicy\",[30,2,[\"model\"]]],null]],null],[4,[38,7],null,[[\"enumerated\",\"action\"],[true,[28,[37,6],[[30,0],\"openPolicy\",[30,2,[\"model\"]]],null]]]],[12],[1,\"\\n          \"],[10,\"td\"],[12],[1,\"\\n\\t\\t\\t\\t\\t\\t\"],[8,[39,3],null,[[\"@route\",\"@model\"],[\"policies.policy\",[30,2,[\"model\",\"name\"]]]],[[\"default\"],[[[[1,[30,2,[\"model\",\"name\"]]]],[]]]]],[1,\"\\n\\t\\t\\t\\t\\t\"],[13],[1,\"\\n\"],[41,[28,[37,2],[\"list token\"],null],[[[1,\"            \"],[10,\"td\"],[12],[1,\"\\n              \"],[10,1],[12],[1,\"\\n                \"],[10,1],[12],[1,[30,2,[\"model\",\"tokens\",\"length\"]]],[13],[1,\"\\n\"],[41,[28,[37,8],[\"isExpired\",[30,2,[\"model\",\"tokens\"]]],null],[[[1,\"                  \"],[10,1],[14,0,\"number-expired\"],[12],[1,\"(\"],[1,[28,[35,9],[[28,[37,8],[\"isExpired\",[30,2,[\"model\",\"tokens\"]]],null],\"length\"],null]],[1,\" expired)\"],[13],[1,\"\\n\"]],[]],null],[1,\"              \"],[13],[1,\"\\n            \"],[13],[1,\"\\n\"]],[]],null],[1,\"        \"],[13],[1,\"\\n      \"]],[2]]]]],[1,\"\\n    \"]],[1]]]]],[1,\"\\n\"]],[]],[[[1,\"    \"],[10,0],[14,0,\"empty-message\"],[12],[1,\"\\n      \"],[10,\"h3\"],[14,0,\"empty-message-headline\"],[12],[1,\"\\n        No Policies\\n      \"],[13],[1,\"\\n      \"],[10,2],[14,0,\"empty-message-body\"],[12],[1,\"\\n        Get started by \"],[8,[39,3],null,[[\"@route\"],[\"policies.new\"]],[[\"default\"],[[[[1,\"creating a new policy\"]],[]]]]],[1,\"\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n\"]],[]]],[13],[1,\"\\n\"]],[\"t\",\"row\"],false,[\"page-title\",\"if\",\"can\",\"link-to\",\"list-table\",\"on\",\"action\",\"keyboard-shortcut\",\"filter-by\",\"get\"]]",
    "moduleName": "nomad-ui/templates/policies/index.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/policies/new", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "1ZNsU6MS",
    "block": "[[[8,[39,0],null,[[\"@crumb\"],[[28,[37,1],null,[[\"label\",\"args\"],[\"New\",[28,[37,2],[\"policies.new\"],null]]]]]],null],[1,\"\\n\"],[1,[28,[35,3],[\"Create Policy\"],null]],[1,\"\\n\"],[10,\"section\"],[14,0,\"section\"],[12],[1,\"\\n\\t\"],[10,\"h1\"],[14,0,\"title with-flex\"],[12],[1,\"\\n\\t\\tCreate Policy\\n\\t\"],[13],[1,\"\\n  \"],[8,[39,4],null,[[\"@policy\"],[[30,0,[\"model\"]]]],null],[1,\"\\n\"],[13],[1,\"\\n\"]],[],false,[\"breadcrumb\",\"hash\",\"array\",\"page-title\",\"policy-editor\"]]",
    "moduleName": "nomad-ui/templates/policies/new.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/policies/policy", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "cWDLLn4J",
    "block": "[[[8,[39,0],null,[[\"@crumb\"],[[28,[37,1],null,[[\"label\",\"args\"],[[30,0,[\"policy\",\"name\"]],[28,[37,2],[\"policies.policy\",[30,0,[\"policy\",\"name\"]]],null]]]]]],null],[1,\"\\n\"],[1,[28,[35,3],[\"Policy\"],null]],[1,\"\\n\"],[10,\"section\"],[14,0,\"section\"],[12],[1,\"\\n\\t\"],[10,\"h1\"],[14,0,\"title with-flex\"],[12],[1,\"\\n\\t\\t\"],[10,0],[12],[1,\"\\n\\t\\t\\t\"],[1,[30,0,[\"policy\",\"name\"]]],[1,\"\\n\\t\\t\"],[13],[1,\"\\n\"],[41,[28,[37,5],[\"destroy policy\"],null],[[[1,\"\\t\\t\\t\"],[10,0],[12],[1,\"\\n\\t\\t\\t\\t\"],[8,[39,6],null,[[\"@idleText\",\"@cancelText\",\"@confirmText\",\"@confirmationMessage\",\"@awaitingConfirmation\",\"@onConfirm\",\"@onPrompt\",\"@onCancel\"],[\"Delete policy\",\"Cancel\",\"Yes, delete\",\"Are you sure?\",[30,0,[\"deletePolicy\",\"isRunning\"]],[28,[37,7],[[30,0,[\"deletePolicy\"]]],null],[30,0,[\"onDeletePrompt\"]],[30,0,[\"onDeleteCancel\"]]]],null],[1,\"\\n\\t\\t\\t\"],[13],[1,\"\\n\"]],[]],null],[1,\"\\t\"],[13],[1,\"\\n\\t\"],[8,[39,8],null,[[\"@policy\"],[[30,0,[\"policy\"]]]],null],[1,\"\\n\\n\"],[41,[28,[37,5],[\"list token\"],null],[[[1,\"    \"],[10,\"hr\"],[12],[13],[1,\"\\n\\n    \"],[10,\"h2\"],[14,0,\"title\"],[12],[1,\"\\n      Tokens\\n    \"],[13],[1,\"\\n\\n\"],[41,[28,[37,5],[\"write token\"],null],[[[1,\"      \"],[10,0],[14,0,\"token-operations\"],[12],[1,\"\\n        \"],[10,0],[14,0,\"boxed-section\"],[12],[1,\"\\n          \"],[10,0],[14,0,\"boxed-section-head\"],[12],[1,\"\\n            \"],[10,\"h3\"],[12],[1,\"Create a Test Token\"],[13],[1,\"\\n          \"],[13],[1,\"\\n          \"],[10,0],[14,0,\"boxed-section-body\"],[12],[1,\"\\n            \"],[10,2],[14,0,\"is-info\"],[12],[1,\"Create a test token that expires in 10 minutes for testing purposes.\"],[13],[1,\"\\n            \"],[10,\"label\"],[12],[1,\"\\n              \"],[11,\"button\"],[24,0,\"button is-info is-outlined create-test-token\"],[24,4,\"button\"],[4,[38,9],[\"click\",[28,[37,7],[[30,0,[\"createTestToken\"]]],null]],null],[12],[1,\"Create Test Token\"],[13],[1,\"\\n            \"],[13],[1,\"\\n          \"],[13],[1,\"\\n        \"],[13],[1,\"\\n        \"],[10,0],[14,0,\"boxed-section\"],[12],[1,\"\\n          \"],[10,0],[14,0,\"boxed-section-head\"],[12],[1,\"\\n            \"],[10,\"h3\"],[12],[1,\"Create Tokens from the Nomad CLI\"],[13],[1,\"\\n          \"],[13],[1,\"\\n          \"],[10,0],[14,0,\"boxed-section-body\"],[12],[1,\"\\n            \"],[10,2],[12],[1,\"When you're ready to create more tokens, you can do so via the \"],[10,3],[14,0,\"external-link\"],[14,6,\"https://developer.hashicorp.com/nomad/docs/commands\"],[14,\"target\",\"_blank\"],[14,\"rel\",\"noopener noreferrer\"],[12],[1,\"Nomad CLI \"],[8,[39,10],null,[[\"@name\"],[\"external-link\"]],null],[13],[1,\" with the following:\\n              \"],[10,\"pre\"],[12],[1,\"                \"],[10,\"code\"],[12],[1,[30,0,[\"newTokenString\"]]],[13],[1,\"\\n                \"],[8,[39,11],null,[[\"@clipboardText\",\"@compact\"],[[30,0,[\"newTokenString\"]],true]],[[\"default\"],[[[[1,\"\\n                \"]],[]]]]],[1,\"\\n              \"],[13],[1,\"\\n            \"],[13],[1,\"\\n          \"],[13],[1,\"\\n        \"],[13],[1,\"\\n      \"],[13],[1,\"\\n\"]],[]],null],[1,\"\\n\"],[41,[30,0,[\"tokens\",\"length\"]],[[[1,\"      \"],[8,[39,12],null,[[\"@source\",\"@class\"],[[30,0,[\"tokens\"]],\"tokens no-mobile-condense\"]],[[\"default\"],[[[[1,\"\\n        \"],[8,[30,1,[\"head\"]],null,null,[[\"default\"],[[[[1,\"\\n          \"],[10,\"th\"],[12],[1,\"Name\"],[13],[1,\"\\n          \"],[10,\"th\"],[12],[1,\"Created\"],[13],[1,\"\\n          \"],[10,\"th\"],[12],[1,\"Expires\"],[13],[1,\"\\n\"],[41,[28,[37,5],[\"destroy token\"],null],[[[1,\"            \"],[10,\"th\"],[12],[1,\"Delete\"],[13],[1,\"\\n\"]],[]],null],[1,\"        \"]],[]]]]],[1,\"\\n        \"],[8,[30,1,[\"body\"]],null,null,[[\"default\"],[[[[1,\"\\n          \"],[10,\"tr\"],[12],[1,\"\\n            \"],[10,\"td\"],[12],[1,\"\\n              \"],[8,[39,13],null,[[\"@text\"],[[30,2,[\"model\",\"id\"]]]],[[\"default\"],[[[[1,\"\\n                \"],[1,[30,2,[\"model\",\"name\"]]],[1,\"\\n              \"]],[]]]]],[1,\"\\n            \"],[13],[1,\"\\n            \"],[10,\"td\"],[12],[1,\"\\n              \"],[1,[28,[35,14],[[30,2,[\"model\",\"createTime\"]]],[[\"interval\"],[1000]]]],[1,\"\\n            \"],[13],[1,\"\\n            \"],[10,\"td\"],[12],[1,\"\\n\"],[41,[30,2,[\"model\",\"expirationTime\"]],[[[1,\"                \"],[8,[39,13],null,[[\"@text\"],[[30,2,[\"model\",\"expirationTime\"]]]],[[\"default\"],[[[[1,\"\\n                  \"],[10,1],[15,0,[29,[[52,[30,2,[\"model\",\"isExpired\"]],\"has-text-danger\"]]]],[12],[1,[28,[35,14],[[30,2,[\"model\",\"expirationTime\"]]],[[\"interval\"],[1000]]]],[13],[1,\"\\n                \"]],[]]]]],[1,\"\\n\"]],[]],[[[1,\"                \"],[10,1],[14,0,\"has-text-grey\"],[12],[1,\"Never\"],[13],[1,\"\\n\"]],[]]],[1,\"            \"],[13],[1,\"\\n\"],[41,[28,[37,5],[\"destroy token\"],null],[[[1,\"              \"],[10,\"td\"],[14,0,\"is-200px\"],[12],[1,\"\\n                \"],[8,[39,6],null,[[\"@idleText\",\"@cancelText\",\"@confirmText\",\"@confirmationMessage\",\"@awaitingConfirmation\",\"@onConfirm\",\"@inlineText\",\"@classes\"],[\"Delete\",\"Cancel\",\"Yes, delete\",\"Are you sure?\",[30,2,[\"model\",\"isPendingDeletion\"]],[28,[37,7],[[30,0,[\"deleteToken\"]],[30,2,[\"model\"]]],null],true,[28,[37,1],null,[[\"idleButton\",\"confirmButton\"],[\"is-danger is-outlined\",\"is-danger\"]]]]],null],[1,\"\\n              \"],[13],[1,\"\\n\"]],[]],null],[1,\"          \"],[13],[1,\"\\n        \"]],[2]]]]],[1,\"\\n      \"]],[1]]]]],[1,\"\\n\"]],[]],[[[1,\"      \"],[10,0],[14,0,\"empty-message\"],[12],[1,\"\\n        \"],[10,\"h3\"],[14,0,\"empty-message-headline\"],[12],[1,\"\\n          No Tokens\\n        \"],[13],[1,\"\\n        \"],[10,2],[14,0,\"empty-message-body\"],[12],[1,\"\\n          No tokens are using this policy.\\n        \"],[13],[1,\"\\n      \"],[13],[1,\"\\n\"]],[]]]],[]],null],[1,\"\\n\"],[13],[1,\"\\n\\n\"],[46,[28,[37,16],null,null],null,null,null]],[\"t\",\"row\"],false,[\"breadcrumb\",\"hash\",\"array\",\"page-title\",\"if\",\"can\",\"two-step-button\",\"perform\",\"policy-editor\",\"on\",\"flight-icon\",\"copy-button\",\"list-table\",\"tooltip\",\"moment-from-now\",\"component\",\"-outlet\"]]",
    "moduleName": "nomad-ui/templates/policies/policy.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/servers", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "260VlJJf",
    "block": "[[[8,[39,0],null,[[\"@crumb\"],[[28,[37,1],null,[[\"label\",\"args\"],[\"Servers\",[28,[37,2],[\"servers.index\"],null]]]]]],null],[1,\"\\n\"],[8,[39,3],null,null,[[\"default\"],[[[[1,\"\\n  \"],[46,[28,[37,5],null,null],null,null,null],[1,\"\\n\"]],[]]]]]],[],false,[\"breadcrumb\",\"hash\",\"array\",\"page-layout\",\"component\",\"-outlet\"]]",
    "moduleName": "nomad-ui/templates/servers.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/servers/index", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "vb5DxZBN",
    "block": "[[[1,[28,[35,0],[\"Servers\"],null]],[1,\"\\n\"],[10,\"section\"],[14,0,\"section\"],[12],[1,\"\\n\"],[41,[30,0,[\"isForbidden\"]],[[[1,\"    \"],[8,[39,2],null,null,null],[1,\"\\n\"]],[]],[[[1,\"    \"],[8,[39,3],null,[[\"@source\",\"@size\",\"@page\"],[[30,0,[\"sortedAgents\"]],[30,0,[\"pageSize\"]],[30,0,[\"currentPage\"]]]],[[\"default\"],[[[[1,\"\\n      \"],[8,[39,4],null,[[\"@source\",\"@sortProperty\",\"@sortDescending\",\"@class\"],[[30,1,[\"list\"]],[30,0,[\"sortProperty\"]],[30,0,[\"sortDescending\"]],\"with-foot\"]],[[\"default\"],[[[[1,\"\\n        \"],[8,[30,2,[\"head\"]],null,null,[[\"default\"],[[[[1,\"\\n          \"],[8,[30,2,[\"sort-by\"]],null,[[\"@prop\"],[\"name\"]],[[\"default\"],[[[[1,\"Name\"]],[]]]]],[1,\"\\n          \"],[8,[30,2,[\"sort-by\"]],null,[[\"@prop\"],[\"status\"]],[[\"default\"],[[[[1,\"Status\"]],[]]]]],[1,\"\\n          \"],[8,[30,2,[\"sort-by\"]],null,[[\"@prop\"],[\"isLeader\"]],[[\"default\"],[[[[1,\"Leader\"]],[]]]]],[1,\"\\n          \"],[8,[30,2,[\"sort-by\"]],null,[[\"@class\",\"@prop\"],[\"is-200px is-truncatable\",\"address\"]],[[\"default\"],[[[[1,\"Address\"]],[]]]]],[1,\"\\n          \"],[8,[30,2,[\"sort-by\"]],null,[[\"@prop\"],[\"serfPort\"]],[[\"default\"],[[[[1,\"port\"]],[]]]]],[1,\"\\n          \"],[8,[30,2,[\"sort-by\"]],null,[[\"@prop\"],[\"datacenter\"]],[[\"default\"],[[[[1,\"Datacenter\"]],[]]]]],[1,\"\\n          \"],[8,[30,2,[\"sort-by\"]],null,[[\"@prop\"],[\"version\"]],[[\"default\"],[[[[1,\"Version\"]],[]]]]],[1,\"\\n        \"]],[]]]]],[1,\"\\n        \"],[8,[30,2,[\"body\"]],null,null,[[\"default\"],[[[[1,\"\\n          \"],[8,[39,5],null,[[\"@agent\"],[[30,3,[\"model\"]]]],null],[1,\"\\n        \"]],[3]]]]],[1,\"\\n      \"]],[2]]]]],[1,\"\\n      \"],[10,0],[14,0,\"table-foot\"],[12],[1,\"\\n        \"],[10,\"nav\"],[14,0,\"pagination\"],[12],[1,\"\\n          \"],[10,0],[14,0,\"pagination-numbers\"],[12],[1,\"\\n            \"],[1,[30,1,[\"startsAt\"]]],[1,\"–\"],[1,[30,1,[\"endsAt\"]]],[1,\" of \"],[1,[30,0,[\"sortedAgents\",\"length\"]]],[1,\"\\n          \"],[13],[1,\"\\n          \"],[8,[30,1,[\"prev\"]],null,[[\"@class\"],[\"pagination-previous\"]],[[\"default\"],[[[[1,\" < \"]],[]]]]],[1,\"\\n          \"],[8,[30,1,[\"next\"]],null,[[\"@class\"],[\"pagination-next\"]],[[\"default\"],[[[[1,\" > \"]],[]]]]],[1,\"\\n          \"],[10,\"ul\"],[14,0,\"pagination-list\"],[12],[13],[1,\"\\n        \"],[13],[1,\"\\n      \"],[13],[1,\"\\n    \"]],[1]]]]],[1,\"\\n\"]],[]]],[13],[1,\"\\n\"]],[\"p\",\"t\",\"row\"],false,[\"page-title\",\"if\",\"forbidden-message\",\"list-pagination\",\"list-table\",\"server-agent-row\"]]",
    "moduleName": "nomad-ui/templates/servers/index.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/servers/loading", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "k+3efmnd",
    "block": "[[[10,\"section\"],[14,0,\"section has-text-centered\"],[12],[8,[39,0],null,null,null],[13],[1,\"\\n\"]],[],false,[\"loading-spinner\"]]",
    "moduleName": "nomad-ui/templates/servers/loading.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/servers/server", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "A85FJUz5",
    "block": "[[[8,[39,0],null,[[\"@crumb\"],[[28,[37,1],null,[[\"title\",\"label\",\"args\"],[\"Server\",[30,0,[\"server\",\"name\"]],[28,[37,2],[\"servers.server\",[30,0,[\"server\",\"id\"]]],null]]]]]],null],[1,\"\\n\"],[46,[28,[37,4],null,null],null,null,null]],[],false,[\"breadcrumb\",\"hash\",\"array\",\"component\",\"-outlet\"]]",
    "moduleName": "nomad-ui/templates/servers/server.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/servers/server/index", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "hSeYnvTn",
    "block": "[[[1,[28,[35,0],[\"Server \",[30,0,[\"model\",\"name\"]]],null]],[1,\"\\n\"],[8,[39,1],null,[[\"@server\"],[[30,0,[\"model\"]]]],null],[1,\"\\n\"],[10,\"section\"],[14,0,\"section\"],[12],[1,\"\\n  \"],[10,\"h1\"],[14,0,\"title\"],[12],[1,\"\\n    Server \"],[1,[30,0,[\"model\",\"name\"]]],[1,\"\\n\"],[41,[30,0,[\"model\",\"isLeader\"]],[[[1,\"      \"],[10,1],[14,0,\"bumper-left tag is-primary\"],[12],[1,\"Leader\"],[13],[1,\"\\n\"]],[]],null],[1,\"  \"],[13],[1,\"\\n  \"],[10,0],[14,0,\"boxed-section is-small\"],[12],[1,\"\\n    \"],[10,0],[14,0,\"boxed-section-body inline-definitions\"],[12],[1,\"\\n      \"],[10,1],[14,0,\"label\"],[12],[1,\"Server Details\"],[13],[1,\"\\n      \"],[10,1],[14,0,\"pair\"],[12],[10,1],[14,0,\"term\"],[12],[1,\"Status\"],[13],[1,\"\\n        \"],[1,[30,0,[\"model\",\"status\"]]],[1,\"\\n      \"],[13],[1,\"\\n      \"],[10,1],[14,0,\"pair\"],[12],[10,1],[14,0,\"term\"],[12],[1,\"Address\"],[13],[1,\"\\n        \"],[1,[30,0,[\"model\",\"rpcAddr\"]]],[1,\"\\n      \"],[13],[1,\"\\n      \"],[10,1],[14,0,\"pair\"],[12],[10,1],[14,0,\"term\"],[12],[1,\"Datacenter\"],[13],[1,\"\\n        \"],[1,[30,0,[\"model\",\"datacenter\"]]],[1,\"\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n  \"],[13],[1,\"\\n  \"],[10,0],[14,0,\"boxed-section\"],[12],[1,\"\\n    \"],[10,0],[14,0,\"boxed-section-head\"],[12],[1,\"\\n      Server Tags\\n    \"],[13],[1,\"\\n    \"],[10,0],[14,0,\"boxed-section-body is-full-bleed\"],[12],[1,\"\\n      \"],[8,[39,3],null,[[\"@source\",\"@class\"],[[30,0,[\"sortedTags\"]],\"is-striped\"]],[[\"default\"],[[[[1,\"\\n        \"],[8,[30,1,[\"head\"]],null,null,[[\"default\"],[[[[1,\"\\n          \"],[10,\"td\"],[14,0,\"is-one-quarter\"],[12],[1,\"Name\"],[13],[1,\"\\n          \"],[10,\"td\"],[12],[1,\"Value\"],[13],[1,\"\\n        \"]],[]]]]],[1,\"\\n        \"],[8,[30,1,[\"body\"]],null,null,[[\"default\"],[[[[1,\"\\n          \"],[10,\"tr\"],[12],[1,\"\\n            \"],[10,\"td\"],[12],[1,[30,2,[\"model\",\"name\"]]],[13],[1,\"\\n            \"],[10,\"td\"],[12],[1,\"\\n              \"],[8,[39,4],null,[[\"@inset\",\"@compact\",\"@clipboardText\"],[true,true,[30,2,[\"model\",\"value\"]]]],null],[1,\"\\n              \"],[1,[30,2,[\"model\",\"value\"]]],[1,\"\\n            \"],[13],[1,\"\\n          \"],[13],[1,\"\\n        \"]],[2]]]]],[1,\"\\n      \"]],[1]]]]],[1,\"\\n    \"],[13],[1,\"\\n  \"],[13],[1,\"\\n\"],[13],[1,\"\\n\"]],[\"t\",\"row\"],false,[\"page-title\",\"server-subnav\",\"if\",\"list-table\",\"copy-button\"]]",
    "moduleName": "nomad-ui/templates/servers/server/index.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/servers/server/monitor", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "yobDDmJp",
    "block": "[[[1,[28,[35,0],[\"Server \",[30,0,[\"model\",\"name\"]]],null]],[1,\"\\n\"],[8,[39,1],null,[[\"@server\"],[[30,0,[\"model\"]]]],null],[1,\"\\n\"],[10,\"section\"],[14,0,\"section is-full-width\"],[12],[1,\"\\n\"],[41,[28,[37,3],[\"read agent\"],null],[[[1,\"    \"],[8,[39,4],null,[[\"@level\",\"@server\",\"@onLevelChange\"],[[30,0,[\"level\"]],[30,0,[\"model\"]],[28,[37,5],[[30,0],[28,[37,6],[[30,0,[\"level\"]]],null]],null]]],null],[1,\"\\n\"]],[]],[[[1,\"    \"],[8,[39,7],null,[[\"@permission\"],[\"agent:read\"]],null],[1,\"\\n\"]],[]]],[13],[1,\"\\n\"]],[],false,[\"page-title\",\"server-subnav\",\"if\",\"can\",\"agent-monitor\",\"action\",\"mut\",\"forbidden-message\"]]",
    "moduleName": "nomad-ui/templates/servers/server/monitor.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/settings", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "y3Sj4lPu",
    "block": "[[[8,[39,0],null,null,[[\"default\"],[[[[1,\"\\n  \"],[46,[28,[37,2],null,null],null,null,null],[1,\"\\n\"]],[]]]]],[1,\"\\n\"]],[],false,[\"page-layout\",\"component\",\"-outlet\"]]",
    "moduleName": "nomad-ui/templates/settings.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/settings/tokens", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "msDMYJUn",
    "block": "[[[1,[28,[35,0],[\"Authorization\"],null]],[1,\"\\n\"],[10,\"section\"],[14,0,\"section authorization-page\"],[12],[1,\"\\n\"],[41,[30,0,[\"isValidatingToken\"]],[[[1,\"    \"],[8,[39,2],null,null,null],[1,\"\\n\"]],[]],[[[1,\"    \"],[10,\"h1\"],[14,0,\"title\"],[12],[1,\"Authorization and access control\"],[13],[1,\"\\n\\n    \"],[10,0],[15,0,[29,[\"status-notifications \",[52,[30,0,[\"canSignIn\"]],\"is-half\"]]]],[12],[1,\"\\n\\n\"],[41,[28,[37,3],[[30,0,[\"signInStatus\"]],\"failure\"],null],[[[1,\"        \"],[10,0],[14,0,\"notification is-danger\"],[12],[1,\"\\n          \"],[10,0],[14,0,\"columns\"],[12],[1,\"\\n            \"],[10,0],[14,0,\"column\"],[12],[1,\"\\n              \"],[10,\"h3\"],[14,0,\"title is-4\"],[12],[1,\"Token Failed to Authenticate\"],[13],[1,\"\\n              \"],[10,2],[12],[1,\"The token secret you have provided does not match an existing token, or has expired.\"],[13],[1,\"\\n            \"],[13],[1,\"\\n          \"],[13],[1,\"\\n        \"],[13],[1,\"\\n\"]],[]],null],[1,\"\\n\"],[41,[28,[37,3],[[30,0,[\"signInStatus\"]],\"jwtFailure\"],null],[[[1,\"        \"],[10,0],[14,0,\"notification is-danger\"],[12],[1,\"\\n          \"],[10,0],[14,0,\"columns\"],[12],[1,\"\\n            \"],[10,0],[14,0,\"column\"],[12],[1,\"\\n              \"],[10,\"h3\"],[14,0,\"title is-4\"],[12],[1,\"JWT Failed to Authenticate\"],[13],[1,\"\\n              \"],[10,2],[12],[1,\"You passed in a JWT, but no JWT auth methods were found\"],[13],[1,\"\\n            \"],[13],[1,\"\\n          \"],[13],[1,\"\\n        \"],[13],[1,\"\\n\"]],[]],null],[1,\"\\n\"],[41,[30,0,[\"tokenRecord\",\"isExpired\"]],[[[1,\"        \"],[10,0],[14,0,\"notification is-danger\"],[12],[1,\"\\n          \"],[10,0],[14,0,\"columns\"],[12],[1,\"\\n            \"],[10,0],[14,0,\"column\"],[12],[1,\"\\n              \"],[10,\"h3\"],[14,0,\"title is-4\"],[12],[1,\"Your authentication has expired\"],[13],[1,\"\\n              \"],[10,2],[12],[1,\"Expired \"],[1,[28,[35,4],[[30,0,[\"tokenRecord\",\"expirationTime\"]]],[[\"interval\"],[1000]]]],[1,\" (\"],[1,[30,0,[\"tokenRecord\",\"expirationTime\"]]],[1,\")\"],[13],[1,\"\\n            \"],[13],[1,\"\\n            \"],[10,0],[14,0,\"column is-centered is-minimum\"],[12],[1,\"\\n              \"],[11,\"button\"],[24,0,\"button\"],[24,4,\"button\"],[4,[38,5],[[30,0],\"clearTokenProperties\"],null],[12],[1,\"Sign In Again\"],[13],[1,\"\\n            \"],[13],[1,\"\\n          \"],[13],[1,\"\\n        \"],[13],[1,\"\\n\"]],[]],[[[41,[28,[37,3],[[30,0,[\"signInStatus\"]],\"success\"],null],[[[1,\"          \"],[10,0],[14,0,\"notification is-success\"],[12],[1,\"\\n            \"],[10,0],[14,0,\"columns\"],[12],[1,\"\\n              \"],[10,0],[14,0,\"column\"],[12],[1,\"\\n                \"],[10,\"h3\"],[14,0,\"title is-4\"],[12],[1,\"Token Authenticated!\"],[13],[1,\"\\n                \"],[10,2],[12],[1,\"Your token is valid and authorized for the following policies.\"],[13],[1,\"\\n              \"],[13],[1,\"\\n            \"],[13],[1,\"\\n          \"],[13],[1,\"\\n\"]],[]],null]],[]]],[1,\"\\n\"],[41,[30,0,[\"token\",\"tokenNotFound\"]],[[[1,\"        \"],[10,0],[14,0,\"notification is-danger\"],[12],[1,\"\\n          \"],[10,0],[14,0,\"columns\"],[12],[1,\"\\n            \"],[10,0],[14,0,\"column\"],[12],[1,\"\\n              \"],[10,\"h3\"],[14,0,\"title is-4\"],[12],[1,\"Your token was not found\"],[13],[1,\"\\n              \"],[10,2],[12],[1,\"It may have expired, or been entered incorrectly.\"],[13],[1,\"\\n            \"],[13],[1,\"\\n          \"],[13],[1,\"\\n        \"],[13],[1,\"\\n\"]],[]],null],[1,\"\\n\"],[41,[30,0,[\"SSOFailure\"]],[[[1,\"        \"],[10,0],[14,0,\"notification is-danger column\"],[12],[1,\"\\n          \"],[10,0],[14,0,\"columns\"],[12],[1,\"\\n            \"],[10,0],[14,0,\"column\"],[12],[1,\"\\n              \"],[10,\"h3\"],[14,0,\"title is-4\"],[12],[1,\"Failed to sign in with SSO\"],[13],[1,\"\\n              \"],[10,2],[12],[1,\"Your OIDC provider has failed on sign in; please try again or contact your SSO administrator.\"],[13],[1,\"\\n            \"],[13],[1,\"\\n            \"],[10,0],[14,0,\"column is-centered is-minimum\"],[12],[1,\"\\n              \"],[11,\"button\"],[24,0,\"button\"],[24,4,\"button\"],[4,[38,5],[[30,0],[28,[37,6],[[30,0,[\"state\"]]],null]],null],[12],[1,\"Clear\"],[13],[1,\"\\n            \"],[13],[1,\"\\n          \"],[13],[1,\"\\n        \"],[13],[1,\"\\n\"]],[]],null],[1,\"    \"],[13],[1,\"\\n\\n    \"],[10,0],[14,0,\"columns\"],[12],[1,\"\\n\"],[41,[30,0,[\"canSignIn\"]],[[[1,\"        \"],[10,0],[14,0,\"column is-half sign-in-methods\"],[12],[1,\"\\n\"],[41,[30,0,[\"nonTokenAuthMethods\",\"length\"]],[[[1,\"            \"],[10,\"h3\"],[14,0,\"title is-4\"],[12],[1,\"Sign in with SSO\"],[13],[1,\"\\n            \"],[10,2],[12],[1,\"Sign in to Nomad using the configured authorization provider. After logging in, the policies and rules for the token will be listed.\"],[13],[1,\"\\n            \"],[10,0],[14,0,\"sso-auth-methods\"],[12],[1,\"\\n\"],[42,[28,[37,8],[[28,[37,8],[[30,0,[\"nonTokenAuthMethods\"]]],null]],null],null,[[[1,\"                \"],[10,\"button\"],[14,0,\"button is-primary\"],[15,\"onclick\",[28,[37,5],[[30,0],\"redirectToSSO\",[30,1]],null]],[14,4,\"button\"],[12],[1,\"Sign in with \"],[1,[30,1,[\"name\"]]],[1,\"\\n                \"],[13],[1,\"\\n\"]],[1]],null],[1,\"            \"],[13],[1,\"\\n            \"],[10,1],[14,0,\"or-divider\"],[12],[10,1],[12],[1,\"Or\"],[13],[13],[1,\"\\n\"]],[]],null],[1,\"\\n          \"],[10,\"h3\"],[14,0,\"title is-4\"],[12],[1,\"Sign in with token\"],[13],[1,\"\\n          \"],[10,2],[12],[1,\"Clusters that use Access Control Lists require tokens to perform certain tasks. By providing a token Secret ID\"],[41,[30,0,[\"hasJWTAuthMethods\"]],[[[1,\" or \"],[10,3],[14,6,\"https://jwt.io/\"],[14,\"target\",\"_blank\"],[14,\"rel\",\"noopener noreferrer\"],[12],[1,\"JWT\"],[13]],[]],null],[1,\", each future request will be authenticated, potentially authorizing read access to additional information.\"],[13],[1,\"\\n          \"],[10,\"label\"],[14,0,\"label\"],[14,\"for\",\"token-input\"],[12],[1,\"Secret ID\"],[41,[30,0,[\"hasJWTAuthMethods\"]],[[[1,\" or JWT\"]],[]],null],[13],[1,\"\\n          \"],[10,0],[15,0,[29,[\"control \",[52,[28,[37,9],[[30,0,[\"currentSecretIsJWT\"]],[28,[37,10],[[30,0,[\"JWTAuthMethods\",\"length\"]],1],null]],null],\"with-jwt-selector\"]]]],[12],[1,\"\\n            \"],[8,[39,11],[[24,1,\"token-input\"],[24,0,\"input\"],[16,\"placeholder\",[29,[[52,[30,0,[\"hasJWTAuthMethods\"]],\"36-character token secret or JWT\",\"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\"]]]],[4,[38,12],null,null],[4,[38,13],[\"input\",[28,[37,5],[[30,0],[28,[37,6],[[30,0,[\"secret\"]]],null]],[[\"value\"],[\"target.value\"]]]],null]],[[\"@type\",\"@enter\"],[\"password\",[30,0,[\"verifyToken\"]]]],null],[1,\"\\n\\n\"],[41,[30,0,[\"currentSecretIsJWT\"]],[[[1,\"              \"],[1,[28,[35,14],[[28,[37,5],[[30,0],[30,0,[\"setCurrentAuthMethod\"]]],null]],null]],[1,\"\\n\"],[41,[28,[37,10],[[30,0,[\"JWTAuthMethods\",\"length\"]],1],null],[[[1,\"                \"],[8,[39,15],null,[[\"@label\",\"@options\",\"@selection\",\"@onSelect\"],[\"Sign-in method\",[30,0,[\"JWTAuthMethodOptions\"]],[30,0,[\"jwtAuthMethod\"]],[28,[37,16],[[28,[37,6],[[30,0,[\"jwtAuthMethod\"]]],null]],null]]],null],[1,\"\\n\"]],[]],null]],[]],null],[1,\"          \"],[13],[1,\"\\n          \"],[10,2],[14,0,\"help\"],[12],[1,\"Sent with every request to determine authorization\"],[13],[1,\"\\n          \"],[11,\"button\"],[16,\"disabled\",[28,[37,17],[[30,0,[\"secret\"]]],null]],[24,0,\"button is-primary\"],[24,4,\"button\"],[4,[38,5],[[30,0],\"verifyToken\"],null],[12],[1,\"\\n\"],[41,[30,0,[\"currentSecretIsJWT\"]],[[[1,\"              Sign in with JWT\\n\"]],[]],[[[1,\"              Sign in with secret\\n\"]],[]]],[1,\"          \"],[13],[1,\"\\n        \"],[13],[1,\"\\n\"]],[]],null],[1,\"\\n\"],[41,[30,0,[\"shouldShowPolicies\"]],[[[1,\"        \"],[10,0],[14,0,\"column\"],[12],[1,\"\\n\"],[41,[51,[30,0,[\"tokenRecord\",\"isExpired\"]]],[[[1,\"            \"],[10,0],[14,0,\"columns\"],[12],[1,\"\\n              \"],[10,0],[14,0,\"column\"],[12],[1,\"\\n                \"],[10,\"h3\"],[14,0,\"title is-4\"],[12],[1,\"Token: \"],[1,[30,0,[\"tokenRecord\",\"name\"]]],[13],[1,\"\\n                \"],[10,0],[12],[1,\"AccessorID: \"],[10,\"code\"],[12],[1,[30,0,[\"tokenRecord\",\"accessor\"]]],[13],[13],[1,\"\\n                \"],[10,0],[12],[1,\"SecretID: \"],[10,\"code\"],[12],[1,[30,0,[\"tokenRecord\",\"secret\"]]],[13],[13],[1,\"\\n\"],[41,[30,0,[\"tokenRecord\",\"expirationTime\"]],[[[1,\"                  \"],[10,0],[12],[1,\"Expires: \"],[1,[28,[35,4],[[30,0,[\"tokenRecord\",\"expirationTime\"]]],[[\"interval\"],[1000]]]],[1,\" \"],[10,1],[12],[1,\"(\"],[1,[30,0,[\"tokenRecord\",\"expirationTime\"]]],[1,\")\"],[13],[13],[1,\"\\n\"]],[]],null],[1,\"              \"],[13],[1,\"\\n              \"],[10,0],[14,0,\"column is-minimum\"],[12],[1,\"\\n                \"],[11,\"button\"],[24,0,\"button is-primary\"],[24,4,\"button\"],[4,[38,5],[[30,0],\"clearTokenProperties\"],null],[12],[1,\"Sign Out\"],[13],[1,\"\\n              \"],[13],[1,\"\\n            \"],[13],[1,\"\\n            \"],[10,\"h3\"],[14,0,\"title is-4\"],[12],[1,\"Policies\"],[13],[1,\"\\n\"],[41,[28,[37,3],[[30,0,[\"tokenRecord\",\"type\"]],\"management\"],null],[[[1,\"              \"],[10,0],[14,0,\"boxed-section\"],[12],[1,\"\\n                \"],[10,0],[14,0,\"boxed-section-body has-centered-text\"],[12],[1,\"\\n                  The management token has all permissions\\n                \"],[13],[1,\"\\n              \"],[13],[1,\"\\n\"]],[]],[[[42,[28,[37,8],[[28,[37,8],[[30,0,[\"tokenRecord\",\"policies\"]]],null]],null],null,[[[1,\"                \"],[10,0],[14,0,\"boxed-section\"],[12],[1,\"\\n                  \"],[10,0],[14,0,\"boxed-section-head\"],[12],[1,\"\\n                    \"],[1,[30,2,[\"name\"]]],[1,\"\\n                  \"],[13],[1,\"\\n                  \"],[10,0],[14,0,\"boxed-section-body\"],[12],[1,\"\\n                    \"],[10,2],[14,0,\"content\"],[12],[1,\"\\n\"],[41,[30,2,[\"description\"]],[[[1,\"                        \"],[1,[30,2,[\"description\"]]],[1,\"\\n\"]],[]],[[[1,\"                        \"],[10,\"em\"],[12],[1,\"No description\"],[13],[1,\"\\n\"]],[]]],[1,\"                    \"],[13],[1,\"\\n                    \"],[10,\"pre\"],[12],[10,\"code\"],[12],[1,[30,2,[\"rules\"]]],[13],[13],[1,\"\\n                  \"],[13],[1,\"\\n                \"],[13],[1,\"\\n\"]],[2]],null]],[]]]],[]],null],[1,\"        \"],[13],[1,\"\\n\"]],[]],null],[1,\"    \"],[13],[1,\"\\n\\n\"]],[]]],[13],[1,\"\\n\\n\"]],[\"method\",\"policy\"],false,[\"page-title\",\"if\",\"loading-spinner\",\"eq\",\"moment-from-now\",\"action\",\"mut\",\"each\",\"-track-array\",\"and\",\"gt\",\"input\",\"autofocus\",\"on\",\"did-insert\",\"single-select-dropdown\",\"fn\",\"not\",\"unless\"]]",
    "moduleName": "nomad-ui/templates/settings/tokens.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/topology", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "y3x0PIrV",
    "block": "[[[8,[39,0],null,[[\"@crumb\"],[[28,[37,1],null,[[\"label\",\"args\"],[\"Topology\",[28,[37,2],[\"topology\"],null]]]]]],null],[1,\"\\n\"],[1,[28,[35,3],[\"Cluster Topology\"],null]],[1,\"\\n\"],[8,[39,4],null,null,[[\"default\"],[[[[1,\"\\n  \"],[10,\"section\"],[14,0,\"section is-full-width\"],[12],[1,\"\\n\"],[41,[30,0,[\"isForbidden\"]],[[[1,\"      \"],[8,[39,6],null,null,null],[1,\"\\n\"]],[]],[[[41,[30,0,[\"pre09Nodes\"]],[[[1,\"        \"],[10,0],[14,0,\"notification is-warning\"],[12],[1,\"\\n          \"],[10,0],[14,0,\"columns\"],[12],[1,\"\\n            \"],[10,0],[14,0,\"column\"],[12],[1,\"\\n              \"],[10,\"h3\"],[14,0,\"title is-4\"],[12],[1,\"\\n                Some Clients Were Filtered\\n              \"],[13],[1,\"\\n              \"],[10,2],[12],[1,\"\\n                \"],[1,[30,0,[\"pre09Nodes\",\"length\"]]],[1,\"\\n                \"],[1,[52,[28,[37,7],[[30,0,[\"pre09Nodes\",\"length\"]],1],null],\"client was\",\"clients were\"]],[1,\"\\n                filtered from the topology visualization. This is most likely due to the\\n                \"],[1,[28,[35,8],[\"client\",[30,0,[\"pre09Nodes\",\"length\"]]],null]],[1,\"\\n                running a version of Nomad\\n              \"],[13],[1,\"\\n            \"],[13],[1,\"\\n            \"],[10,0],[14,0,\"column is-centered is-minimum\"],[12],[1,\"\\n              \"],[10,\"button\"],[14,0,\"button is-warning\"],[15,\"onclick\",[28,[37,9],[[30,0],[28,[37,10],[[30,0,[\"pre09Nodes\"]]],null],null],null]],[14,4,\"button\"],[12],[1,\"\\n                Okay\\n              \"],[13],[1,\"\\n            \"],[13],[1,\"\\n          \"],[13],[1,\"\\n        \"],[13],[1,\"\\n\"]],[]],null],[1,\"      \"],[10,0],[14,0,\"columns\"],[12],[1,\"\\n        \"],[10,0],[14,0,\"column is-narrow is-400\"],[12],[1,\"\\n\"],[41,[30,0,[\"showPollingNotice\"]],[[[1,\"            \"],[10,0],[14,0,\"notification is-warning\"],[12],[1,\"\\n              \"],[10,0],[14,0,\"columns\"],[12],[1,\"\\n                \"],[10,0],[14,0,\"column\"],[12],[1,\"\\n                  \"],[10,\"h3\"],[14,0,\"title is-4\"],[12],[1,\"\\n                    No Live Updating\\n                  \"],[13],[1,\"\\n                  \"],[10,2],[12],[1,\"\\n                    The topology visualization depends on too much data to continuously poll.\\n                  \"],[13],[1,\"\\n                \"],[13],[1,\"\\n                \"],[10,0],[14,0,\"column is-centered is-minimum\"],[12],[1,\"\\n                  \"],[10,\"button\"],[14,0,\"button is-warning\"],[15,\"onclick\",[28,[37,11],[\"showPollingNotice\",[30,0]],null]],[14,4,\"button\"],[12],[1,\"\\n                    Okay\\n                  \"],[13],[1,\"\\n                \"],[13],[1,\"\\n              \"],[13],[1,\"\\n            \"],[13],[1,\"\\n\"]],[]],null],[1,\"          \"],[10,0],[14,0,\"boxed-section\"],[12],[1,\"\\n            \"],[10,0],[14,0,\"boxed-section-head\"],[12],[1,\"\\n              Legend\\n\"],[41,[28,[37,12],[\"list all jobs\"],null],[[[1,\"                \"],[10,1],[14,\"aria-label\",\"Your ACL token may limit your ability to list all allocations\"],[14,0,\"tag is-warning pull-right tooltip multiline\"],[12],[1,\"\\n                  Partial View\\n                \"],[13],[1,\"\\n\"]],[]],null],[1,\"            \"],[13],[1,\"\\n            \"],[10,0],[14,0,\"boxed-section-body\"],[12],[1,\"\\n              \"],[10,0],[14,0,\"legend\"],[12],[1,\"\\n                \"],[10,\"h3\"],[14,0,\"legend-label\"],[12],[1,\"\\n                  Metrics\\n                \"],[13],[1,\"\\n                \"],[10,\"dl\"],[14,0,\"legend-terms\"],[12],[1,\"\\n                  \"],[10,\"dt\"],[12],[1,\"\\n                    M:\\n                  \"],[13],[1,\"\\n                  \"],[10,\"dd\"],[12],[1,\"\\n                    Memory\\n                  \"],[13],[1,\"\\n                  \"],[10,\"dt\"],[12],[1,\"\\n                    C:\\n                  \"],[13],[1,\"\\n                  \"],[10,\"dd\"],[12],[1,\"\\n                    CPU\\n                  \"],[13],[1,\"\\n                \"],[13],[1,\"\\n              \"],[13],[1,\"\\n              \"],[10,0],[14,0,\"legend\"],[12],[1,\"\\n                \"],[10,\"h3\"],[14,0,\"legend-label\"],[12],[1,\"\\n                  Allocation Status\\n                \"],[13],[1,\"\\n                \"],[10,\"dl\"],[14,0,\"legend-terms\"],[12],[1,\"\\n                  \"],[10,0],[14,0,\"legend-term\"],[12],[1,\"\\n                    \"],[10,\"dt\"],[12],[1,\"\\n                      \"],[10,1],[14,0,\"color-swatch is-wide running\"],[14,\"title\",\"Running\"],[12],[13],[1,\"\\n                    \"],[13],[1,\"\\n                    \"],[10,\"dd\"],[12],[1,\"\\n                      Running\\n                    \"],[13],[1,\"\\n                  \"],[13],[1,\"\\n                  \"],[10,0],[14,0,\"legend-term\"],[12],[1,\"\\n                    \"],[10,\"dt\"],[12],[1,\"\\n                      \"],[10,1],[14,0,\"color-swatch is-wide pending\"],[14,\"title\",\"Starting\"],[12],[13],[1,\"\\n                    \"],[13],[1,\"\\n                    \"],[10,\"dd\"],[12],[1,\"\\n                      Starting\\n                    \"],[13],[1,\"\\n                  \"],[13],[1,\"\\n                \"],[13],[1,\"\\n              \"],[13],[1,\"\\n            \"],[13],[1,\"\\n          \"],[13],[1,\"\\n          \"],[10,0],[14,0,\"boxed-section\"],[12],[1,\"\\n            \"],[10,0],[14,0,\"boxed-section-head\"],[12],[1,\"\\n\"],[41,[30,0,[\"activeNode\"]],[[[1,\"                Client\\n\"]],[]],[[[41,[30,0,[\"activeAllocation\"]],[[[1,\"                Allocation\\n\"]],[]],[[[1,\"                Cluster\\n              \"]],[]]]],[]]],[1,\"              Details\\n            \"],[13],[1,\"\\n            \"],[10,0],[14,0,\"boxed-section-body\"],[12],[1,\"\\n\"],[41,[30,0,[\"activeNode\"]],[[[44,[[30,0,[\"activeNode\",\"node\"]]],[[[1,\"                  \"],[10,0],[14,0,\"dashboard-metric\"],[12],[1,\"\\n                    \"],[10,2],[14,0,\"metric\"],[12],[1,\"\\n                      \"],[1,[30,0,[\"activeNode\",\"allocations\",\"length\"]]],[1,\"\\n                      \"],[10,1],[14,0,\"metric-label\"],[12],[1,\"\\n                        Allocations\\n                      \"],[13],[1,\"\\n                    \"],[13],[1,\"\\n                  \"],[13],[1,\"\\n                  \"],[10,0],[14,0,\"dashboard-metric\"],[12],[1,\"\\n                    \"],[10,\"h3\"],[14,0,\"pair\"],[12],[1,\"\\n                      \"],[10,\"strong\"],[12],[1,\"\\n                        Client:\\n                      \"],[13],[1,\"\\n                      \"],[8,[39,14],null,[[\"@route\",\"@model\"],[\"clients.client\",[30,1]]],[[\"default\"],[[[[1,\"\\n                        \"],[1,[30,1,[\"shortId\"]]],[1,\"\\n                      \"]],[]]]]],[1,\"\\n                    \"],[13],[1,\"\\n                    \"],[10,2],[14,0,\"minor-pair\"],[12],[1,\"\\n                      \"],[10,\"strong\"],[12],[1,\"\\n                        Name:\\n                      \"],[13],[1,\"\\n                      \"],[1,[30,1,[\"name\"]]],[1,\"\\n                    \"],[13],[1,\"\\n                    \"],[10,2],[14,0,\"minor-pair\"],[12],[1,\"\\n                      \"],[10,\"strong\"],[12],[1,\"\\n                        Address:\\n                      \"],[13],[1,\"\\n                      \"],[1,[30,1,[\"httpAddr\"]]],[1,\"\\n                    \"],[13],[1,\"\\n                    \"],[10,2],[14,0,\"minor-pair\"],[12],[1,\"\\n                      \"],[10,\"strong\"],[12],[1,\"\\n                        Status:\\n                      \"],[13],[1,\"\\n                      \"],[1,[30,1,[\"status\"]]],[1,\"\\n                    \"],[13],[1,\"\\n                  \"],[13],[1,\"\\n                  \"],[10,0],[14,0,\"dashboard-metric\"],[12],[1,\"\\n                    \"],[10,\"h3\"],[14,0,\"pair\"],[12],[1,\"\\n                      \"],[10,\"strong\"],[12],[1,\"\\n                        Draining?\\n                      \"],[13],[1,\"\\n                      \"],[10,1],[15,0,[29,[[52,[30,1,[\"isDraining\"]],\"status-text is-info\"]]]],[12],[1,\"\\n                        \"],[1,[52,[30,1,[\"isDraining\"]],\"Yes\",\"No\"]],[1,\"\\n                      \"],[13],[1,\"\\n                    \"],[13],[1,\"\\n                    \"],[10,\"h3\"],[14,0,\"pair\"],[12],[1,\"\\n                      \"],[10,\"strong\"],[12],[1,\"\\n                        Eligible?\\n                      \"],[13],[1,\"\\n                      \"],[10,1],[15,0,[29,[[52,[51,[30,1,[\"isEligible\"]]],\"status-text is-warning\"]]]],[12],[1,\"\\n                        \"],[1,[52,[30,1,[\"isEligible\"]],\"Yes\",\"No\"]],[1,\"\\n                      \"],[13],[1,\"\\n                    \"],[13],[1,\"\\n                  \"],[13],[1,\"\\n                  \"],[10,0],[14,0,\"dashboard-metric with-divider\"],[12],[1,\"\\n                    \"],[10,2],[14,0,\"metric\"],[12],[1,\"\\n                      \"],[1,[30,0,[\"nodeUtilization\",\"totalMemoryFormatted\"]]],[1,\"\\n                      \"],[10,1],[14,0,\"metric-units\"],[12],[1,\"\\n                        \"],[1,[30,0,[\"nodeUtilization\",\"totalMemoryUnits\"]]],[1,\"\\n                      \"],[13],[1,\"\\n                      \"],[10,1],[14,0,\"metric-label\"],[12],[1,\"\\n                        of memory\\n                      \"],[13],[1,\"\\n                    \"],[13],[1,\"\\n                    \"],[10,0],[14,0,\"columns graphic\"],[12],[1,\"\\n                      \"],[10,0],[14,0,\"column\"],[12],[1,\"\\n                        \"],[10,0],[14,0,\"inline-chart\"],[12],[1,\"\\n                          \"],[10,\"progress\"],[14,0,\"progress is-danger is-small\"],[15,2,[29,[[30,0,[\"nodeUtilization\",\"reservedMemoryPercent\"]]]]],[14,\"max\",\"1\"],[12],[1,\"\\n                            \"],[1,[30,0,[\"nodeUtilization\",\"reservedMemoryPercent\"]]],[1,\"\\n                          \"],[13],[1,\"\\n                        \"],[13],[1,\"\\n                      \"],[13],[1,\"\\n                      \"],[10,0],[14,0,\"column is-minimum\"],[12],[1,\"\\n                        \"],[10,1],[14,0,\"nowrap\"],[12],[1,\"\\n                          \"],[1,[28,[35,16],[[30,0,[\"nodeUtilization\",\"reservedMemoryPercent\"]]],[[\"total\"],[1]]]],[1,\"\\n                        \"],[13],[1,\"\\n                      \"],[13],[1,\"\\n                    \"],[13],[1,\"\\n                    \"],[10,0],[14,0,\"annotation\"],[12],[1,\"\\n                      \"],[10,\"strong\"],[12],[1,\"\\n                        \"],[1,[28,[35,17],[[30,0,[\"nodeUtilization\",\"totalReservedMemory\"]]],null]],[1,\"\\n                      \"],[13],[1,\"\\n                      /\\n                      \"],[1,[28,[35,17],[[30,0,[\"nodeUtilization\",\"totalMemory\"]]],null]],[1,\"\\n                      reserved\\n                    \"],[13],[1,\"\\n                  \"],[13],[1,\"\\n                  \"],[10,0],[14,0,\"dashboard-metric\"],[12],[1,\"\\n                    \"],[10,2],[14,0,\"metric\"],[12],[1,\"\\n                      \"],[1,[30,0,[\"nodeUtilization\",\"totalCPU\"]]],[1,\"\\n                      \"],[10,1],[14,0,\"metric-units\"],[12],[1,\"\\n                        MHz\\n                      \"],[13],[1,\"\\n                      \"],[10,1],[14,0,\"metric-label\"],[12],[1,\"\\n                        of CPU\\n                      \"],[13],[1,\"\\n                    \"],[13],[1,\"\\n                    \"],[10,0],[14,0,\"columns graphic\"],[12],[1,\"\\n                      \"],[10,0],[14,0,\"column\"],[12],[1,\"\\n                        \"],[10,0],[14,0,\"inline-chart\"],[12],[1,\"\\n                          \"],[10,\"progress\"],[14,0,\"progress is-info is-small\"],[15,2,[29,[[30,0,[\"nodeUtilization\",\"reservedCPUPercent\"]]]]],[14,\"max\",\"1\"],[12],[1,\"\\n                            \"],[1,[30,0,[\"nodeUtilization\",\"reservedCPUPercent\"]]],[1,\"\\n                          \"],[13],[1,\"\\n                        \"],[13],[1,\"\\n                      \"],[13],[1,\"\\n                      \"],[10,0],[14,0,\"column is-minimum\"],[12],[1,\"\\n                        \"],[10,1],[14,0,\"nowrap\"],[12],[1,\"\\n                          \"],[1,[28,[35,16],[[30,0,[\"nodeUtilization\",\"reservedCPUPercent\"]]],[[\"total\"],[1]]]],[1,\"\\n                        \"],[13],[1,\"\\n                      \"],[13],[1,\"\\n                    \"],[13],[1,\"\\n                    \"],[10,0],[14,0,\"annotation\"],[12],[1,\"\\n                      \"],[10,\"strong\"],[12],[1,\"\\n                        \"],[1,[28,[35,18],[[30,0,[\"nodeUtilization\",\"totalReservedCPU\"]]],null]],[1,\"\\n                      \"],[13],[1,\"\\n                      /\\n                      \"],[1,[28,[35,18],[[30,0,[\"nodeUtilization\",\"totalCPU\"]]],null]],[1,\"\\n                      reserved\\n                    \"],[13],[1,\"\\n                  \"],[13],[1,\"\\n\"]],[1]]]],[]],[[[41,[30,0,[\"activeAllocation\"]],[[[1,\"                \"],[10,0],[14,0,\"dashboard-metric\"],[12],[1,\"\\n                  \"],[10,\"h3\"],[14,0,\"pair\"],[12],[1,\"\\n                    \"],[10,\"strong\"],[12],[1,\"\\n                      Allocation:\\n                    \"],[13],[1,\"\\n                    \"],[8,[39,14],[[24,0,\"is-primary\"]],[[\"@route\",\"@model\"],[\"allocations.allocation\",[30,0,[\"activeAllocation\"]]]],[[\"default\"],[[[[1,\"\\n                      \"],[1,[30,0,[\"activeAllocation\",\"shortId\"]]],[1,\"\\n                    \"]],[]]]]],[1,\"\\n                  \"],[13],[1,\"\\n                  \"],[10,2],[14,0,\"minor-pair\"],[12],[1,\"\\n                    \"],[10,\"strong\"],[12],[1,\"\\n                      Sibling Allocations:\\n                    \"],[13],[1,\"\\n                    \"],[1,[30,0,[\"siblingAllocations\",\"length\"]]],[1,\"\\n                  \"],[13],[1,\"\\n                  \"],[10,2],[14,0,\"minor-pair\"],[12],[1,\"\\n                    \"],[10,\"strong\"],[12],[1,\"\\n                      Unique Client Placements:\\n                    \"],[13],[1,\"\\n                    \"],[1,[30,0,[\"uniqueActiveAllocationNodes\",\"length\"]]],[1,\"\\n                  \"],[13],[1,\"\\n                \"],[13],[1,\"\\n                \"],[10,0],[14,0,\"dashboard-metric with-divider\"],[12],[1,\"\\n                  \"],[10,\"h3\"],[14,0,\"pair\"],[12],[1,\"\\n                    \"],[10,\"strong\"],[12],[1,\"\\n                      Job:\\n                    \"],[13],[1,\"\\n                    \"],[8,[39,14],null,[[\"@route\",\"@model\"],[\"jobs.job\",[30,0,[\"activeAllocation\",\"job\"]]]],[[\"default\"],[[[[1,\"\\n                      \"],[1,[30,0,[\"activeAllocation\",\"job\",\"name\"]]],[1,\"\\n                    \"]],[]]]]],[1,\"\\n                    \"],[10,1],[14,0,\"is-faded\"],[12],[1,\"\\n                      /\\n                      \"],[1,[30,0,[\"activeAllocation\",\"taskGroupName\"]]],[1,\"\\n                    \"],[13],[1,\"\\n                  \"],[13],[1,\"\\n                  \"],[10,2],[14,0,\"minor-pair\"],[12],[1,\"\\n                    \"],[10,\"strong\"],[12],[1,\"\\n                      Type:\\n                    \"],[13],[1,\"\\n                    \"],[1,[30,0,[\"activeAllocation\",\"job\",\"type\"]]],[1,\"\\n                  \"],[13],[1,\"\\n                  \"],[10,2],[14,0,\"minor-pair\"],[12],[1,\"\\n                    \"],[10,\"strong\"],[12],[1,\"\\n                      Priority:\\n                    \"],[13],[1,\"\\n                    \"],[1,[30,0,[\"activeAllocation\",\"job\",\"priority\"]]],[1,\"\\n                  \"],[13],[1,\"\\n                \"],[13],[1,\"\\n                \"],[10,0],[14,0,\"dashboard-metric with-divider\"],[12],[1,\"\\n                  \"],[10,\"h3\"],[14,0,\"pair\"],[12],[1,\"\\n                    \"],[10,\"strong\"],[12],[1,\"\\n                      Client:\\n                    \"],[13],[1,\"\\n                    \"],[8,[39,14],null,[[\"@route\",\"@model\"],[\"clients.client\",[30,0,[\"activeAllocation\",\"node\"]]]],[[\"default\"],[[[[1,\"\\n                      \"],[1,[30,0,[\"activeAllocation\",\"node\",\"shortId\"]]],[1,\"\\n                    \"]],[]]]]],[1,\"\\n                  \"],[13],[1,\"\\n                  \"],[10,2],[14,0,\"minor-pair\"],[12],[1,\"\\n                    \"],[10,\"strong\"],[12],[1,\"\\n                      Name:\\n                    \"],[13],[1,\"\\n                    \"],[1,[30,0,[\"activeAllocation\",\"node\",\"name\"]]],[1,\"\\n                  \"],[13],[1,\"\\n                  \"],[10,2],[14,0,\"minor-pair\"],[12],[1,\"\\n                    \"],[10,\"strong\"],[12],[1,\"\\n                      Address:\\n                    \"],[13],[1,\"\\n                    \"],[1,[30,0,[\"activeAllocation\",\"node\",\"httpAddr\"]]],[1,\"\\n                  \"],[13],[1,\"\\n                \"],[13],[1,\"\\n                \"],[10,0],[14,0,\"dashboard-metric with-divider\"],[12],[1,\"\\n                  \"],[8,[39,19],[[24,0,\"is-short\"]],[[\"@allocation\",\"@metric\"],[[30,0,[\"activeAllocation\"]],\"memory\"]],null],[1,\"\\n                \"],[13],[1,\"\\n                \"],[10,0],[14,0,\"dashboard-metric\"],[12],[1,\"\\n                  \"],[8,[39,19],[[24,0,\"is-short\"]],[[\"@allocation\",\"@metric\"],[[30,0,[\"activeAllocation\"]],\"cpu\"]],null],[1,\"\\n                \"],[13],[1,\"\\n\"]],[]],[[[1,\"                \"],[10,0],[14,0,\"columns is-flush\"],[12],[1,\"\\n                  \"],[10,0],[14,0,\"dashboard-metric column\"],[12],[1,\"\\n                    \"],[10,2],[14,0,\"metric justify\"],[12],[1,\"\\n                      \"],[1,[30,0,[\"model\",\"nodes\",\"length\"]]],[1,\"\\n                      \"],[10,1],[14,0,\"metric-label\"],[12],[1,\"\\n                        Clients\\n                      \"],[13],[1,\"\\n                    \"],[13],[1,\"\\n                  \"],[13],[1,\"\\n                  \"],[10,0],[14,0,\"dashboard-metric column\"],[12],[1,\"\\n                    \"],[10,2],[14,0,\"metric justify\"],[12],[1,\"\\n                      \"],[1,[30,0,[\"scheduledAllocations\",\"length\"]]],[1,\"\\n                      \"],[10,1],[14,0,\"metric-label\"],[12],[1,\"\\n                        Allocations\\n                      \"],[13],[1,\"\\n                    \"],[13],[1,\"\\n                  \"],[13],[1,\"\\n                  \"],[10,0],[14,0,\"dashboard-metric column\"],[12],[1,\"\\n                    \"],[10,2],[14,0,\"metric justify\"],[12],[1,\"\\n                      \"],[1,[30,0,[\"model\",\"nodePools\",\"length\"]]],[1,\"\\n                      \"],[10,1],[14,0,\"metric-label\"],[12],[1,\"\\n                        Node Pools\\n                      \"],[13],[1,\"\\n                    \"],[13],[1,\"\\n                  \"],[13],[1,\"\\n                \"],[13],[1,\"\\n                \"],[10,0],[14,0,\"dashboard-metric with-divider\"],[12],[1,\"\\n                  \"],[10,2],[14,0,\"metric\"],[12],[1,\"\\n                    \"],[1,[30,0,[\"totalMemoryFormatted\"]]],[1,\"\\n                    \"],[10,1],[14,0,\"metric-units\"],[12],[1,\"\\n                      \"],[1,[30,0,[\"totalMemoryUnits\"]]],[1,\"\\n                    \"],[13],[1,\"\\n                    \"],[10,1],[14,0,\"metric-label\"],[12],[1,\"\\n                      of memory\\n                    \"],[13],[1,\"\\n                  \"],[13],[1,\"\\n                  \"],[10,0],[14,0,\"columns graphic\"],[12],[1,\"\\n                    \"],[10,0],[14,0,\"column\"],[12],[1,\"\\n                      \"],[10,0],[14,0,\"inline-chart\"],[12],[1,\"\\n                        \"],[10,\"progress\"],[14,0,\"progress is-danger is-small\"],[15,2,[29,[[30,0,[\"reservedMemoryPercent\"]]]]],[14,\"max\",\"1\"],[12],[1,\"\\n                          \"],[1,[30,0,[\"reservedMemoryPercent\"]]],[1,\"\\n                        \"],[13],[1,\"\\n                      \"],[13],[1,\"\\n                    \"],[13],[1,\"\\n                    \"],[10,0],[14,0,\"column is-minimum\"],[12],[1,\"\\n                      \"],[10,1],[14,0,\"nowrap\"],[12],[1,\"\\n                        \"],[1,[28,[35,16],[[30,0,[\"reservedMemoryPercent\"]]],[[\"total\"],[1]]]],[1,\"\\n                      \"],[13],[1,\"\\n                    \"],[13],[1,\"\\n                  \"],[13],[1,\"\\n                  \"],[10,0],[14,0,\"annotation\"],[12],[1,\"\\n                    \"],[10,\"strong\"],[12],[1,\"\\n                      \"],[1,[28,[35,20],[[30,0,[\"totalReservedMemory\"]]],null]],[1,\"\\n                    \"],[13],[1,\"\\n                    /\\n                    \"],[1,[28,[35,20],[[30,0,[\"totalMemory\"]]],null]],[1,\"\\n                    reserved\\n                  \"],[13],[1,\"\\n                \"],[13],[1,\"\\n                \"],[10,0],[14,0,\"dashboard-metric\"],[12],[1,\"\\n                  \"],[10,2],[14,0,\"metric\"],[12],[1,\"\\n                    \"],[1,[30,0,[\"totalCPUFormatted\"]]],[1,\"\\n                    \"],[10,1],[14,0,\"metric-units\"],[12],[1,\"\\n                      \"],[1,[30,0,[\"totalCPUUnits\"]]],[1,\"\\n                    \"],[13],[1,\"\\n                    \"],[10,1],[14,0,\"metric-label\"],[12],[1,\"\\n                      of CPU\\n                    \"],[13],[1,\"\\n                  \"],[13],[1,\"\\n                  \"],[10,0],[14,0,\"columns graphic\"],[12],[1,\"\\n                    \"],[10,0],[14,0,\"column\"],[12],[1,\"\\n                      \"],[10,0],[14,0,\"inline-chart\"],[12],[1,\"\\n                        \"],[10,\"progress\"],[14,0,\"progress is-info is-small\"],[15,2,[29,[[30,0,[\"reservedCPUPercent\"]]]]],[14,\"max\",\"1\"],[12],[1,\"\\n                          \"],[1,[30,0,[\"reservedCPUPercent\"]]],[1,\"\\n                        \"],[13],[1,\"\\n                      \"],[13],[1,\"\\n                    \"],[13],[1,\"\\n                    \"],[10,0],[14,0,\"column is-minimum\"],[12],[1,\"\\n                      \"],[10,1],[14,0,\"nowrap\"],[12],[1,\"\\n                        \"],[1,[28,[35,16],[[30,0,[\"reservedCPUPercent\"]]],[[\"total\"],[1]]]],[1,\"\\n                      \"],[13],[1,\"\\n                    \"],[13],[1,\"\\n                  \"],[13],[1,\"\\n                  \"],[10,0],[14,0,\"annotation\"],[12],[1,\"\\n                    \"],[10,\"strong\"],[12],[1,\"\\n                      \"],[1,[28,[35,21],[[30,0,[\"totalReservedCPU\"]]],null]],[1,\"\\n                    \"],[13],[1,\"\\n                    /\\n                    \"],[1,[28,[35,21],[[30,0,[\"totalCPU\"]]],null]],[1,\"\\n                    reserved\\n                  \"],[13],[1,\"\\n                \"],[13],[1,\"\\n              \"]],[]]]],[]]],[1,\"            \"],[13],[1,\"\\n          \"],[13],[1,\"\\n        \"],[13],[1,\"\\n        \"],[10,0],[14,0,\"column\"],[12],[1,\"\\n          \"],[10,0],[14,0,\"toolbar\"],[12],[1,\"\\n            \"],[10,0],[14,0,\"toolbar-item\"],[12],[1,\"\\n\"],[41,[30,0,[\"model\",\"nodes\",\"length\"]],[[[1,\"                \"],[8,[39,22],null,[[\"@inputClass\",\"@searchTerm\",\"@placeholder\"],[\"node-search\",[28,[37,10],[[30,0,[\"searchTerm\"]]],null],\"Search clients...\"]],null],[1,\"\\n\"]],[]],null],[1,\"            \"],[13],[1,\"\\n            \"],[10,0],[14,0,\"toolbar-item is-right-aligned is-mobile-full-width\"],[12],[1,\"\\n              \"],[10,0],[14,0,\"button-bar\"],[12],[1,\"\\n                \"],[8,[39,23],null,[[\"@label\",\"@options\",\"@selection\",\"@onSelect\"],[\"Node Pool\",[30,0,[\"optionsNodePool\"]],[30,0,[\"selectionNodePool\"]],[28,[37,9],[[30,0],[30,0,[\"setFacetQueryParam\"]],\"qpNodePool\"],null]]],null],[1,\"\\n                \"],[8,[39,23],null,[[\"@label\",\"@options\",\"@selection\",\"@onSelect\"],[\"Datacenter\",[30,0,[\"optionsDatacenter\"]],[30,0,[\"selectionDatacenter\"]],[28,[37,9],[[30,0],[30,0,[\"setFacetQueryParam\"]],\"qpDatacenter\"],null]]],null],[1,\"\\n                \"],[8,[39,23],null,[[\"@label\",\"@options\",\"@selection\",\"@onSelect\"],[\"Class\",[30,0,[\"optionsClass\"]],[30,0,[\"selectionClass\"]],[28,[37,9],[[30,0],[30,0,[\"setFacetQueryParam\"]],\"qpClass\"],null]]],null],[1,\"\\n                \"],[8,[39,23],null,[[\"@label\",\"@options\",\"@selection\",\"@onSelect\"],[\"State\",[30,0,[\"optionsState\"]],[30,0,[\"selectionState\"]],[28,[37,9],[[30,0],[30,0,[\"setFacetQueryParam\"]],\"qpState\"],null]]],null],[1,\"\\n                \"],[8,[39,23],null,[[\"@label\",\"@options\",\"@selection\",\"@onSelect\"],[\"Version\",[30,0,[\"optionsVersion\"]],[30,0,[\"selectionVersion\"]],[28,[37,9],[[30,0],[30,0,[\"setFacetQueryParam\"]],\"qpVersion\"],null]]],null],[1,\"\\n              \"],[13],[1,\"\\n            \"],[13],[1,\"\\n          \"],[13],[1,\"\\n          \"],[8,[39,24],null,[[\"@nodes\",\"@allocations\",\"@onAllocationSelect\",\"@onNodeSelect\",\"@onDataError\",\"@filters\"],[[30,0,[\"filteredNodes\"]],[30,0,[\"model\",\"allocations\"]],[28,[37,9],[[30,0],[30,0,[\"setAllocation\"]]],null],[28,[37,9],[[30,0],[30,0,[\"setNode\"]]],null],[28,[37,9],[[30,0],[30,0,[\"handleTopoVizDataError\"]]],null],[28,[37,1],null,[[\"search\",\"clientState\",\"clientVersion\"],[[30,0,[\"searchTerm\"]],[30,0,[\"selectionState\"]],[30,0,[\"selectionVersion\"]]]]]]],null],[1,\"\\n        \"],[13],[1,\"\\n      \"],[13],[1,\"\\n\"]],[]]],[1,\"  \"],[13],[1,\"\\n\"]],[]]]]]],[\"node\"],false,[\"breadcrumb\",\"hash\",\"array\",\"page-title\",\"page-layout\",\"if\",\"forbidden-message\",\"eq\",\"pluralize\",\"action\",\"mut\",\"toggle-action\",\"cannot\",\"let\",\"link-to\",\"unless\",\"format-percentage\",\"format-scheduled-bytes\",\"format-scheduled-hertz\",\"primary-metric/allocation\",\"format-bytes\",\"format-hertz\",\"search-box\",\"multi-select-dropdown\",\"topo-viz\"]]",
    "moduleName": "nomad-ui/templates/topology.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/variables", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "7jsR8Hlr",
    "block": "[[[8,[39,0],null,[[\"@crumb\"],[[28,[37,1],null,[[\"label\",\"args\"],[\"Variables\",[28,[37,2],[\"variables.index\"],null]]]]]],null],[1,\"\\n\"],[8,[39,3],null,null,[[\"default\"],[[[[1,\"\\n  \"],[46,[28,[37,5],null,null],null,null,null],[1,\"\\n\"]],[]]]]]],[],false,[\"breadcrumb\",\"hash\",\"array\",\"page-layout\",\"component\",\"-outlet\"]]",
    "moduleName": "nomad-ui/templates/variables.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/variables/index", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "GPln3Ste",
    "block": "[[[1,[28,[35,0],[\"Variables\"],null]],[1,\"\\n\"],[10,\"section\"],[14,0,\"section\"],[12],[1,\"\\n  \"],[10,0],[14,0,\"toolbar\"],[12],[1,\"\\n    \"],[10,0],[14,0,\"toolbar-item is-right-aligned is-mobile-full-width\"],[12],[1,\"\\n\"],[41,[30,0,[\"namespaceOptions\"]],[[[1,\"          \"],[8,[39,2],null,[[\"@label\",\"@options\",\"@selection\",\"@onSelect\"],[\"Namespace\",[30,0,[\"namespaceOptions\"]],[30,0,[\"namespaceSelection\"]],[30,0,[\"setNamespace\"]]]],null],[1,\"\\n\"]],[]],null],[1,\"      \"],[10,0],[14,0,\"button-bar\"],[12],[1,\"\\n\"],[41,[28,[37,3],[\"write variable\"],[[\"path\",\"namespace\"],[\"*\",[30,0,[\"namespaceSelection\"]]]]],[[[1,\"        \"],[8,[39,4],[[24,0,\"button is-primary\"],[4,[38,5],null,[[\"pattern\",\"action\",\"label\"],[[28,[37,6],[\"n\",\"v\"],null],[28,[37,7],[[30,0],[30,0,[\"goToNewVariable\"]]],null],\"Create Variable\"]]]],[[\"@route\"],[\"variables.new\"]],[[\"default\"],[[[[1,\"\\n          Create Variable\\n        \"]],[]]]]],[1,\"\\n\"]],[]],[[[1,\"        \"],[10,\"button\"],[14,0,\"button is-primary is-disabled tooltip is-right-aligned\"],[14,\"aria-label\",\"You don’t have sufficient permissions\"],[14,\"disabled\",\"\"],[14,4,\"button\"],[12],[1,\"\\n          Create Variable\\n        \"],[13],[1,\"\\n\"]],[]]],[1,\"\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n  \"],[13],[1,\"\\n\"],[41,[30,0,[\"isForbidden\"]],[[[1,\"    \"],[8,[39,8],null,null,null],[1,\"\\n\"]],[]],[[[41,[30,0,[\"hasVariables\"]],[[[1,\"      \"],[8,[39,9],null,[[\"@branch\"],[[30,0,[\"root\"]]]],null],[1,\"\\n\"]],[]],[[[1,\"      \"],[10,0],[14,0,\"empty-message\"],[12],[1,\"\\n\"],[41,[28,[37,10],[[30,0,[\"namespaceSelection\"]],\"*\"],null],[[[1,\"          \"],[10,\"h3\"],[14,0,\"empty-message-headline\"],[12],[1,\"\\n            No Variables\\n          \"],[13],[1,\"\\n\"],[41,[28,[37,3],[\"write variable\"],[[\"path\",\"namespace\"],[\"*\",[30,0,[\"namespaceSelection\"]]]]],[[[1,\"            \"],[10,2],[14,0,\"empty-message-body\"],[12],[1,\"\\n              Get started by \"],[8,[39,4],null,[[\"@route\"],[\"variables.new\"]],[[\"default\"],[[[[1,\"creating a new variable\"]],[]]]]],[1,\"\\n            \"],[13],[1,\"\\n\"]],[]],null]],[]],[[[1,\"          \"],[10,\"h3\"],[14,0,\"empty-message-headline\"],[12],[1,\"\\n            No Matches\\n          \"],[13],[1,\"\\n          \"],[10,2],[14,0,\"empty-message-body\"],[12],[1,\"\\n            No paths or variables match the namespace\\n            \"],[10,\"strong\"],[12],[1,\"\\n              \"],[1,[30,0,[\"namespaceSelection\"]]],[1,\"\\n            \"],[13],[1,\"\\n          \"],[13],[1,\"\\n\"]],[]]],[1,\"      \"],[13],[1,\"\\n\"]],[]]]],[]]],[13],[1,\"\\n\"]],[],false,[\"page-title\",\"if\",\"single-select-dropdown\",\"can\",\"link-to\",\"keyboard-shortcut\",\"array\",\"action\",\"forbidden-message\",\"variable-paths\",\"eq\"]]",
    "moduleName": "nomad-ui/templates/variables/index.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/variables/new", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "yGePXhE0",
    "block": "[[[1,[28,[35,0],[\"New Variable\"],null]],[1,\"\\n\"],[8,[39,1],null,[[\"@crumb\"],[[28,[37,2],null,[[\"label\",\"args\"],[\"New\",[28,[37,3],[\"variables.new\"],null]]]]]],null],[1,\"\\n\\n\"],[10,\"section\"],[14,0,\"section\"],[12],[1,\"\\n  \"],[10,\"h1\"],[14,0,\"title variable-title\"],[12],[1,\"\\n    Create a Variable\\n    \"],[8,[39,4],[[24,\"title\",\"JSON\"]],[[\"@isActive\",\"@onToggle\"],[[28,[37,5],[[30,0,[\"view\"]],\"json\"],null],[28,[37,6],[[30,0],[30,0,[\"toggleView\"]]],null]]],[[\"default\"],[[[[1,\"JSON\"]],[]]]]],[1,\"\\n  \"],[13],[1,\"\\n\\n  \"],[8,[39,7],null,[[\"@model\",\"@path\",\"@existingVariables\",\"@view\"],[[30,0,[\"model\"]],[30,0,[\"path\"]],[30,0,[\"existingVariables\"]],[30,0,[\"view\"]]]],null],[1,\"\\n\"],[13],[1,\"\\n\"]],[],false,[\"page-title\",\"breadcrumb\",\"hash\",\"array\",\"toggle\",\"eq\",\"action\",\"variable-form\"]]",
    "moduleName": "nomad-ui/templates/variables/new.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/variables/path", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "lbOXfz9z",
    "block": "[[[1,[28,[35,0],[\"Variables: \",[30,0,[\"absolutePath\"]]],null]],[1,\"\\n\"],[42,[28,[37,2],[[28,[37,2],[[30,0,[\"breadcrumbs\"]]],null]],null],null,[[[1,\"  \"],[8,[39,3],null,[[\"@crumb\"],[[30,1]]],null],[1,\"\\n\"]],[1]],null],[1,\"  \"],[10,\"section\"],[14,0,\"section\"],[12],[1,\"\\n    \"],[10,0],[14,0,\"toolbar\"],[12],[1,\"\\n      \"],[10,0],[14,0,\"toolbar-item is-right-aligned is-mobile-full-width\"],[12],[1,\"\\n\"],[41,[30,0,[\"namespaceOptions\"]],[[[1,\"          \"],[8,[39,5],null,[[\"@label\",\"@options\",\"@selection\",\"@onSelect\"],[\"Namespace\",[30,0,[\"namespaceOptions\"]],[30,0,[\"namespaceSelection\"]],[30,0,[\"setNamespace\"]]]],null],[1,\"\\n\"]],[]],null],[1,\"        \"],[10,0],[14,0,\"button-bar\"],[12],[1,\"\\n\"],[41,[28,[37,6],[\"write variable\"],[[\"path\",\"namespace\"],[[28,[37,7],[[30,0,[\"absolutePath\"]],\"/\"],null],[30,0,[\"namespaceSelection\"]]]]],[[[1,\"            \"],[8,[39,8],[[24,0,\"button is-primary\"],[4,[38,10],null,[[\"pattern\",\"action\",\"label\"],[[28,[37,11],[\"n\",\"v\"],null],[28,[37,12],[[30,0],[30,0,[\"goToNewVariable\"]]],null],\"Create Variable\"]]]],[[\"@route\",\"@query\"],[\"variables.new\",[28,[37,9],null,[[\"path\"],[[28,[37,7],[[30,0,[\"absolutePath\"]],\"/\"],null]]]]]],[[\"default\"],[[[[1,\"\\n              Create Variable\\n            \"]],[]]]]],[1,\"\\n\"]],[]],[[[1,\"            \"],[10,\"button\"],[14,0,\"button is-primary is-disabled tooltip is-right-aligned\"],[14,\"aria-label\",\"You don’t have sufficient permissions\"],[14,\"disabled\",\"\"],[14,4,\"button\"],[12],[1,\"\\n              Create Variable\\n            \"],[13],[1,\"\\n\"]],[]]],[1,\"        \"],[13],[1,\"\\n      \"],[13],[1,\"\\n    \"],[13],[1,\"\\n\"],[41,[30,0,[\"isForbidden\"]],[[[1,\"      \"],[8,[39,13],null,null,null],[1,\"\\n\"]],[]],[[[41,[30,0,[\"model\",\"treeAtPath\"]],[[[1,\"        \"],[8,[39,14],null,[[\"@branch\"],[[30,0,[\"model\",\"treeAtPath\"]]]],null],[1,\"\\n\"]],[]],[[[1,\"        \"],[10,0],[14,0,\"empty-message\"],[12],[1,\"\\n\"],[41,[28,[37,15],[[30,0,[\"namespaceSelection\"]],\"*\"],null],[[[1,\"            \"],[10,\"h3\"],[14,0,\"empty-message-headline\"],[12],[1,\"\\n              Path /\"],[1,[30,0,[\"absolutePath\"]]],[1,\" contains no variables\\n            \"],[13],[1,\"\\n            \"],[10,2],[14,0,\"empty-message-body\"],[12],[1,\"\\n              To get started, \"],[8,[39,8],null,[[\"@route\",\"@query\"],[\"variables.new\",[28,[37,9],null,[[\"path\"],[[28,[37,7],[[30,0,[\"absolutePath\"]],\"/\"],null]]]]]],[[\"default\"],[[[[1,\"create a new variable here\"]],[]]]]],[1,\", or \"],[8,[39,8],null,[[\"@route\"],[\"variables\"]],[[\"default\"],[[[[1,\"go back to the Variables root directory\"]],[]]]]],[1,\".\\n            \"],[13],[1,\"\\n\"]],[]],[[[1,\"            \"],[10,\"h3\"],[14,0,\"empty-message-headline\"],[12],[1,\"\\n              No Matches\\n            \"],[13],[1,\"\\n            \"],[10,2],[14,0,\"empty-message-body\"],[12],[1,\"\\n              No paths or variables match the namespace \\n              \"],[10,\"strong\"],[12],[1,\"\\n                \"],[1,[30,0,[\"namespaceSelection\"]]],[1,\"\\n              \"],[13],[1,\"\\n            \"],[13],[1,\"\\n\"]],[]]],[1,\"        \"],[13],[1,\"\\n\"]],[]]]],[]]],[1,\"  \"],[13],[1,\"\\n\"]],[\"crumb\"],false,[\"page-title\",\"each\",\"-track-array\",\"breadcrumb\",\"if\",\"single-select-dropdown\",\"can\",\"concat\",\"link-to\",\"hash\",\"keyboard-shortcut\",\"array\",\"action\",\"forbidden-message\",\"variable-paths\",\"eq\"]]",
    "moduleName": "nomad-ui/templates/variables/path.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/variables/variable", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "P0+J/JkK",
    "block": "[[[1,[28,[35,0],[\"Variables: \",[30,0,[\"model\",\"path\"]]],null]],[1,\"\\n\"],[42,[28,[37,2],[[28,[37,2],[[30,0,[\"breadcrumbs\"]]],null]],null],null,[[[1,\"  \"],[8,[39,3],null,[[\"@crumb\"],[[30,1]]],null],[1,\"\\n\"]],[1]],null],[10,\"section\"],[14,0,\"section single-variable\"],[12],[1,\"\\n\"],[41,[30,0,[\"isForbidden\"]],[[[1,\"    \"],[8,[39,5],null,null,null],[1,\"\\n\"]],[]],[[[1,\"    \"],[46,[28,[37,7],null,null],null,null,null],[1,\"\\n\"]],[]]],[13],[1,\"\\n \"]],[\"crumb\"],false,[\"page-title\",\"each\",\"-track-array\",\"breadcrumb\",\"if\",\"forbidden-message\",\"component\",\"-outlet\"]]",
    "moduleName": "nomad-ui/templates/variables/variable.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/variables/variable/edit", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "oo8Cj2om",
    "block": "[[[1,[28,[35,0],[\"Edit Variable\"],null]],[1,\"\\n\\n\"],[10,\"h1\"],[14,0,\"title variable-title\"],[12],[1,\"\\n  \"],[8,[39,1],[[24,0,\"back-link\"]],[[\"@route\"],[\"variables.variable.index\"]],[[\"default\"],[[[[1,\"\\n    \"],[8,[39,2],null,[[\"@name\",\"@title\",\"@size\"],[\"chevron-left\",[29,[\"Back to \",[30,0,[\"model\",\"path\"]]]],\"24\"]],null],[1,\"\\n  \"]],[]]]]],[1,\"\\n  Edit\\n  \"],[1,[30,0,[\"model\",\"path\"]]],[1,\"\\n  \"],[8,[39,3],[[24,\"title\",\"JSON\"]],[[\"@isActive\",\"@onToggle\"],[[28,[37,4],[[30,0,[\"view\"]],\"json\"],null],[28,[37,5],[[30,0],[30,0,[\"toggleView\"]]],null]]],[[\"default\"],[[[[1,\"JSON\"]],[]]]]],[1,\"\\n\\n\"],[13],[1,\"\\n\\n\"],[8,[39,6],null,[[\"@model\",\"@existingVariables\",\"@view\"],[[30,0,[\"model\"]],[30,0,[\"existingVariables\"]],[30,0,[\"view\"]]]],null],[1,\"\\n\"]],[],false,[\"page-title\",\"link-to\",\"flight-icon\",\"toggle\",\"eq\",\"action\",\"variable-form\"]]",
    "moduleName": "nomad-ui/templates/variables/variable/edit.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/templates/variables/variable/index", ["exports", "@ember/template-factory"], function (_exports, _templateFactory) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/template-factory"eaimeta@70e063a35619d71f

  var _default = (0, _templateFactory.createTemplateFactory)({
    "id": "iENvlqKa",
    "block": "[[[10,\"h1\"],[14,0,\"variable-title title with-flex\"],[12],[1,\"\\n  \"],[10,0],[12],[1,\"\\n    \"],[8,[39,0],null,[[\"@name\"],[\"file-text\"]],null],[1,\"\\n    \"],[1,[30,0,[\"model\",\"path\"]]],[1,\"\\n      \"],[8,[39,1],null,[[\"@inset\",\"@compact\",\"@clipboardText\"],[true,true,[30,0,[\"model\",\"path\"]]]],null],[1,\"\\n\\n    \"],[8,[39,2],[[24,\"title\",\"JSON\"],[4,[38,5],null,[[\"label\",\"pattern\",\"action\"],[\"Toggle View (JSON/List)\",[28,[37,6],[\"j\"],null],[28,[37,4],[[30,0],[30,0,[\"toggleView\"]]],null]]]]],[[\"@isActive\",\"@onToggle\"],[[28,[37,3],[[30,0,[\"view\"]],\"json\"],null],[28,[37,4],[[30,0],[30,0,[\"toggleView\"]]],null]]],[[\"default\"],[[[[1,\"JSON\"]],[]]]]],[1,\"\\n  \"],[13],[1,\"\\n  \"],[10,0],[12],[1,\"\\n\"],[41,[51,[30,0,[\"isDeleting\"]]],[[[41,[28,[37,9],[\"write variable\"],[[\"path\",\"namespace\"],[[30,0,[\"model\",\"path\"]],[30,0,[\"model\",\"namespace\"]]]]],[[[1,\"      \"],[10,0],[14,0,\"two-step-button\"],[12],[1,\"\\n        \"],[8,[39,10],[[24,0,\"button is-info is-inverted is-small\"],[4,[38,12],null,null]],[[\"@model\",\"@route\",\"@query\"],[[30,0,[\"model\"]],\"variables.variable.edit\",[28,[37,11],null,[[\"view\"],[[30,0,[\"view\"]]]]]]],[[\"default\"],[[[[1,\"\\n          Edit\\n        \"]],[]]]]],[1,\"\\n      \"],[13],[1,\"\\n\"]],[]],null]],[]],null],[41,[28,[37,9],[\"destroy variable\"],[[\"path\",\"namespace\"],[[30,0,[\"model\",\"path\"]],[30,0,[\"model\",\"namespace\"]]]]],[[[1,\"      \"],[8,[39,13],null,[[\"@alignRight\",\"@idleText\",\"@cancelText\",\"@confirmText\",\"@confirmationMessage\",\"@awaitingConfirmation\",\"@onConfirm\",\"@onPrompt\",\"@onCancel\"],[true,\"Delete\",\"Cancel\",\"Yes, delete\",\"Are you sure you want to delete this variable and all its items?\",[30,0,[\"deleteVariableFile\",\"isRunning\"]],[28,[37,14],[[30,0,[\"deleteVariableFile\"]]],null],[30,0,[\"onDeletePrompt\"]],[30,0,[\"onDeleteCancel\"]]]],null],[1,\"\\n\"]],[]],null],[1,\"  \"],[13],[1,\"\\n\"],[13],[1,\"\\n\\n\"],[41,[30,0,[\"shouldShowLinkedEntities\"]],[[[1,\"  \"],[8,[39,15],null,[[\"@job\",\"@group\",\"@task\",\"@namespace\"],[[30,0,[\"model\",\"pathLinkedEntities\",\"job\"]],[30,0,[\"model\",\"pathLinkedEntities\",\"group\"]],[30,0,[\"model\",\"pathLinkedEntities\",\"task\"]],[30,0,[\"model\",\"namespace\"]]]],null],[1,\"\\n\"]],[]],null],[1,\"\\n\"],[41,[28,[37,3],[[30,0,[\"view\"]],\"json\"],null],[[[1,\"  \"],[10,0],[14,0,\"boxed-section\"],[12],[1,\"\\n    \"],[10,0],[14,0,\"boxed-section-head\"],[12],[1,\"\\n      Key/Value Data\\n      \"],[8,[39,1],[[24,0,\"pull-right\"]],[[\"@compact\",\"@border\",\"@clipboardText\"],[true,true,[28,[37,16],[[30,0,[\"model\",\"items\"]]],null]]],null],[1,\"\\n    \"],[13],[1,\"\\n    \"],[10,0],[14,0,\"boxed-section-body is-full-bleed\"],[12],[1,\"\\n      \"],[8,[39,17],null,[[\"@json\"],[[30,0,[\"model\",\"items\"]]]],null],[1,\"\\n    \"],[13],[1,\"\\n  \"],[13],[1,\"\\n\"]],[]],[[[1,\"  \"],[8,[39,18],[[24,0,\"variable-items\"]],[[\"@source\",\"@sortProperty\",\"@sortDescending\"],[[30,0,[\"sortedKeyValues\"]],[30,0,[\"sortProperty\"]],[30,0,[\"sortDescending\"]]]],[[\"default\"],[[[[1,\"\\n    \"],[8,[30,1,[\"head\"]],null,null,[[\"default\"],[[[[1,\"\\n      \"],[8,[30,1,[\"sort-by\"]],null,[[\"@prop\"],[\"key\"]],[[\"default\"],[[[[1,\"Key\"]],[]]]]],[1,\"\\n      \"],[8,[30,1,[\"sort-by\"]],null,[[\"@prop\"],[\"value\"]],[[\"default\"],[[[[1,\"Value\"]],[]]]]],[1,\"\\n    \"]],[]]]]],[1,\"\\n    \"],[8,[30,1,[\"body\"]],null,null,[[\"default\"],[[[[1,\"\\n      \"],[10,\"tr\"],[12],[1,\"\\n        \"],[10,\"td\"],[12],[1,\"\\n          \"],[1,[30,2,[\"model\",\"key\"]]],[1,\"\\n        \"],[13],[1,\"\\n        \"],[10,\"td\"],[14,\"colspan\",\"3\"],[14,0,\"value-cell\"],[12],[1,\"\\n          \"],[10,0],[12],[1,\"\\n            \"],[8,[39,1],null,[[\"@compact\",\"@clipboardText\"],[true,[30,2,[\"model\",\"value\"]]]],null],[1,\"\\n            \"],[11,\"button\"],[24,0,\"show-hide-values button is-borderless is-compact\"],[24,4,\"button\"],[4,[38,19],[\"click\",[28,[37,4],[[30,0],[30,0,[\"toggleRowVisibility\"]],[30,2,[\"model\"]]],null]],null],[4,[38,5],null,[[\"label\",\"pattern\",\"action\"],[\"Toggle Variable Visibility\",[28,[37,6],[\"v\"],null],[28,[37,4],[[30,0],[30,0,[\"toggleRowVisibility\"]],[30,2,[\"model\"]]],null]]]],[12],[1,\"\\n              \"],[8,[39,0],null,[[\"@name\",\"@title\"],[[52,[30,2,[\"model\",\"isVisible\"]],\"eye\",\"eye-off\"],[52,[30,2,[\"model\",\"isVisible\"]],\"Hide Value\",\"Show Value\"]]],null],[1,\"\\n            \"],[13],[1,\"\\n\\n\"],[41,[30,2,[\"model\",\"isVisible\"]],[[[1,\"              \"],[10,\"code\"],[12],[1,[30,2,[\"model\",\"value\"]]],[13],[1,\"\\n\"]],[]],[[[1,\"              ********\\n\"]],[]]],[1,\"          \"],[13],[1,\"\\n        \"],[13],[1,\"\\n      \"],[13],[1,\"\\n    \"]],[2]]]]],[1,\"\\n  \"]],[1]]]]],[1,\"\\n\"]],[]]]],[\"t\",\"row\"],false,[\"flight-icon\",\"copy-button\",\"toggle\",\"eq\",\"action\",\"keyboard-shortcut\",\"array\",\"unless\",\"if\",\"can\",\"link-to\",\"hash\",\"autofocus\",\"two-step-button\",\"perform\",\"variable-form/related-entities\",\"stringify-object\",\"json-viewer\",\"list-table\",\"on\"]]",
    "moduleName": "nomad-ui/templates/variables/variable/index.hbs",
    "isStrictMode": false
  });

  _exports.default = _default;
});
;define("nomad-ui/transforms/array", ["exports", "ember-data-model-fragments/transforms/array"], function (_exports, _array) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember-data-model-fragments/transforms/array"eaimeta@70e063a35619d71f

  var _default = _array.default;
  _exports.default = _default;
});
;define("nomad-ui/transforms/boolean", ["exports", "@ember-data/serializer/-private"], function (_exports, _private) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _private.BooleanTransform;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@ember-data/serializer/-private"eaimeta@70e063a35619d71f
});
;define("nomad-ui/transforms/date", ["exports", "@ember-data/serializer/-private"], function (_exports, _private) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _private.DateTransform;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@ember-data/serializer/-private"eaimeta@70e063a35619d71f
});
;define("nomad-ui/transforms/fragment-array", ["exports", "ember-data-model-fragments/transforms/fragment-array"], function (_exports, _fragmentArray) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember-data-model-fragments/transforms/fragment-array"eaimeta@70e063a35619d71f

  var _default = _fragmentArray.default;
  _exports.default = _default;
});
;define("nomad-ui/transforms/fragment", ["exports", "ember-data-model-fragments/transforms/fragment"], function (_exports, _fragment) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember-data-model-fragments/transforms/fragment"eaimeta@70e063a35619d71f

  var _default = _fragment.default;
  _exports.default = _default;
});
;define("nomad-ui/transforms/number", ["exports", "@ember-data/serializer/-private"], function (_exports, _private) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _private.NumberTransform;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@ember-data/serializer/-private"eaimeta@70e063a35619d71f
});
;define("nomad-ui/transforms/string", ["exports", "@ember-data/serializer/-private"], function (_exports, _private) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _private.StringTransform;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@ember-data/serializer/-private"eaimeta@70e063a35619d71f
});
;define("nomad-ui/utils/add-to-path", ["exports"], function (_exports) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = addToPath;
  0; //eaimeta@70e063a35619d71feaimeta@70e063a35619d71f

  /**
   * Copyright (c) HashiCorp, Inc.
   * SPDX-License-Identifier: MPL-2.0
   */
  // Adds a string to the end of a URL path while being mindful of query params
  function addToPath(url) {
    let extension = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
    let additionalParams = arguments.length > 2 ? arguments[2] : undefined;
    const [path, params] = url.split('?');
    let newUrl = `${path}${extension}`;

    if (params) {
      newUrl += `?${params}`;
    }

    if (additionalParams) {
      if (params) {
        newUrl += `&${additionalParams}`;
      } else {
        newUrl += `?${additionalParams}`;
      }
    }

    return newUrl;
  }
});
;define("nomad-ui/utils/allocation-client-statuses", ["exports"], function (_exports) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.jobTypes = _exports.jobAllocStatuses = void 0;
  0; //eaimeta@70e063a35619d71feaimeta@70e063a35619d71f

  /**
   * Copyright (c) HashiCorp, Inc.
   * SPDX-License-Identifier: MPL-2.0
   */
  // @ts-check

  /**
   * @typedef {('running' | 'pending' | 'failed' | 'lost' | 'complete' | 'unplaced')[]} AllocationClientStatuses
   * @typedef {Object.<string, AllocationClientStatuses>} JobAllocStatuses
   */

  /**
   * @type {JobAllocStatuses}
   */
  const jobAllocStatuses = {
    service: ['running', 'pending', 'failed', 'lost', 'unplaced'],
    system: ['running', 'pending', 'failed', 'lost', 'unplaced'],
    batch: ['running', 'pending', 'complete', 'failed', 'lost', 'unplaced'],
    sysbatch: ['running', 'pending', 'complete', 'failed', 'lost', 'unplaced']
  };
  _exports.jobAllocStatuses = jobAllocStatuses;
  const jobTypes = ['service', 'system', 'batch', 'sysbatch'];
  _exports.jobTypes = jobTypes;
});
;define("nomad-ui/utils/calculate-position", ["exports", "ember-basic-dropdown/utils/calculate-position"], function (_exports, _calculatePosition) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _calculatePosition.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-basic-dropdown/utils/calculate-position"eaimeta@70e063a35619d71f
});
;define("nomad-ui/utils/classes/abstract-logger", ["exports", "@ember/debug", "@ember/object/mixin", "@ember/object", "ember-overridable-computed", "@ember/polyfills", "query-string"], function (_exports, _debug, _mixin, _object, _emberOverridableComputed, _polyfills, _queryString) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/debug",0,"@ember/object/mixin",0,"@ember/object",0,"ember-overridable-computed",0,"@ember/polyfills",0,"query-string"eaimeta@70e063a35619d71f

  const MAX_OUTPUT_LENGTH = 50000; // eslint-disable-next-line ember/no-new-mixins

  var _default = _mixin.default.create({
    url: '',
    params: (0, _emberOverridableComputed.computed)(() => ({})),

    logFetch() {
      (true && !(false) && (0, _debug.assert)('Loggers need a logFetch method, which should have an interface like window.fetch'));
    },

    endOffset: null,
    offsetParams: (0, _object.computed)('endOffset', function () {
      const endOffset = this.endOffset;
      return endOffset ? {
        origin: 'start',
        offset: endOffset
      } : {
        origin: 'end',
        offset: MAX_OUTPUT_LENGTH
      };
    }),
    additionalParams: (0, _emberOverridableComputed.computed)(() => ({})),
    fullUrl: (0, _object.computed)('url', 'params', 'offsetParams', 'additionalParams', function () {
      const queryParams = _queryString.default.stringify((0, _polyfills.assign)({}, this.params, this.offsetParams, this.additionalParams));

      return `${this.url}?${queryParams}`;
    })
  });

  _exports.default = _default;
});
;define("nomad-ui/utils/classes/abstract-stats-tracker", ["exports", "ember", "@ember/object/mixin", "@ember/debug", "ember-concurrency", "nomad-ui/utils/json-with-default"], function (_exports, _ember, _mixin, _debug, _emberConcurrency, _jsonWithDefault) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember",0,"@ember/object/mixin",0,"@ember/debug",0,"ember-concurrency",0,"nomad-ui/utils/json-with-default"eaimeta@70e063a35619d71f

  // eslint-disable-next-line ember/no-new-mixins
  var _default = _mixin.default.create({
    url: '',
    // The max number of data points tracked. Once the max is reached,
    // data points at the head of the list are removed in favor of new
    // data appended at the tail
    bufferSize: 500,
    // The number of consecutive request failures that can occur before an
    // empty frame is appended
    maxFrameMisses: 5,

    fetch() {
      (true && !(false) && (0, _debug.assert)('StatsTrackers need a fetch method, which should have an interface like window.fetch'));
    },

    append() {
      (true && !(false) && (0, _debug.assert)('StatsTrackers need an append method, which takes the JSON response from a request to url as an argument'));
    },

    pause() {
      (true && !(false) && (0, _debug.assert)('StatsTrackers need a pause method, which takes no arguments but adds a frame of data at the current timestamp with null as the value'));
    },

    frameMisses: 0,

    handleResponse(frame) {
      if (frame.error) {
        this.incrementProperty('frameMisses');

        if (this.frameMisses >= this.maxFrameMisses) {
          // Missing enough data consecutively is effectively a pause
          this.pause();
          this.set('frameMisses', 0);
        }

        return;
      } else {
        this.set('frameMisses', 0); // Only append non-error frames

        this.append(frame);
      }
    },

    // Uses EC as a form of debounce to prevent multiple
    // references to the same tracker from flooding the tracker,
    // but also avoiding the issue where different places where the
    // same tracker is used needs to coordinate.
    poll: (0, _emberConcurrency.task)(function* () {
      // Interrupt any pause attempt
      this.signalPause.cancelAll();

      try {
        const url = this.url;
        (true && !(url) && (0, _debug.assert)('Url must be defined', url));
        yield this.fetch(url).then((0, _jsonWithDefault.default)({
          error: true
        })).then(frame => this.handleResponse(frame));
      } catch (error) {
        throw new Error(error);
      }

      yield (0, _emberConcurrency.timeout)(_ember.default.testing ? 0 : 2000);
    }).drop(),
    signalPause: (0, _emberConcurrency.task)(function* () {
      // wait 2 seconds
      yield (0, _emberConcurrency.timeout)(_ember.default.testing ? 0 : 2000); // if no poll called in 2 seconds, pause

      this.pause();
    }).drop()
  });

  _exports.default = _default;
});
;define("nomad-ui/utils/classes/allocation-stats-tracker", ["exports", "@ember/object", "@ember/object/computed", "nomad-ui/utils/classes/rolling-array", "nomad-ui/utils/classes/abstract-stats-tracker"], function (_exports, _object, _computed, _rollingArray, _abstractStatsTracker) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.stats = stats;
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _dec6, _class, _class2, _descriptor, _descriptor2;

  0; //eaimeta@70e063a35619d71f0,"@ember/object",0,"@ember/object/computed",0,"nomad-ui/utils/classes/rolling-array",0,"nomad-ui/utils/classes/abstract-stats-tracker",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  const classic = __EMBER_CLASSIC_DECORATOR;

  const percent = (numerator, denominator) => {
    if (!numerator || !denominator) {
      return 0;
    }

    return numerator / denominator;
  };

  const empty = ts => ({
    timestamp: ts,
    used: null,
    percent: null
  }); // Tasks are sorted by their lifecycle phase in this order:


  const sortMap = ['main', 'prestart-sidecar', 'poststart-sidecar', 'prestart-ephemeral', 'poststart-ephemeral', 'poststop'].reduce((map, phase, index) => {
    map[phase] = index;
    return map;
  }, {});

  const taskPrioritySort = (a, b) => sortMap[a.lifecycleName] - sortMap[b.lifecycleName]; // Select the value for memory usage.
  // Must match logic in command/alloc_status.go.


  const memoryUsed = frame => frame.ResourceUsage.MemoryStats.RSS || frame.ResourceUsage.MemoryStats.Usage || 0;

  let AllocationStatsTracker = (_dec = (0, _object.computed)('allocation.id'), _dec2 = (0, _computed.alias)('allocation.taskGroup.reservedCPU'), _dec3 = (0, _computed.alias)('allocation.taskGroup.reservedMemory'), _dec4 = (0, _object.computed)('allocation', 'bufferSize'), _dec5 = (0, _object.computed)('allocation', 'bufferSize'), _dec6 = (0, _object.computed)('allocation.taskGroup.tasks', 'bufferSize'), classic(_class = (_class2 = class AllocationStatsTracker extends _object.default.extend(_abstractStatsTracker.default) {
    constructor() {
      super(...arguments);

      _defineProperty(this, "allocation", null);

      _initializerDefineProperty(this, "reservedCPU", _descriptor, this);

      _initializerDefineProperty(this, "reservedMemory", _descriptor2, this);
    }

    get url() {
      return `/v1/client/allocation/${this.get('allocation.id')}/stats`;
    }

    append(frame) {
      const timestamp = new Date(Math.floor(frame.Timestamp / 1000000));
      const cpuUsed = Math.floor(frame.ResourceUsage.CpuStats.TotalTicks) || 0;
      this.cpu.pushObject({
        timestamp,
        used: cpuUsed,
        percent: percent(cpuUsed, this.reservedCPU)
      });
      const memUsed = memoryUsed(frame);
      this.memory.pushObject({
        timestamp,
        used: memUsed,
        percent: percent(memUsed / 1024 / 1024, this.reservedMemory)
      });
      let aggregateCpu = 0;
      let aggregateMemory = 0;

      for (var stats of this.tasks) {
        const taskFrame = frame.Tasks[stats.task]; // If the task is not present in the frame data (because it hasn't started or
        // it has already stopped), just keep going.

        if (!taskFrame) continue;
        const frameTimestamp = new Date(Math.floor(taskFrame.Timestamp / 1000000));
        const taskCpuUsed = Math.floor(taskFrame.ResourceUsage.CpuStats.TotalTicks) || 0;
        const percentCpuTotal = percent(taskCpuUsed, this.reservedCPU);
        stats.cpu.pushObject({
          timestamp: frameTimestamp,
          used: taskCpuUsed,
          percent: percent(taskCpuUsed, stats.reservedCPU),
          percentTotal: percentCpuTotal,
          percentStack: percentCpuTotal + aggregateCpu
        });
        const taskMemoryUsed = memoryUsed(taskFrame);
        const percentMemoryTotal = percent(taskMemoryUsed / 1024 / 1024, this.reservedMemory);
        stats.memory.pushObject({
          timestamp: frameTimestamp,
          used: taskMemoryUsed,
          percent: percent(taskMemoryUsed / 1024 / 1024, stats.reservedMemory),
          percentTotal: percentMemoryTotal,
          percentStack: percentMemoryTotal + aggregateMemory
        });
        aggregateCpu += percentCpuTotal;
        aggregateMemory += percentMemoryTotal;
      }
    }

    pause() {
      const ts = new Date();
      this.memory.pushObject(empty(ts));
      this.cpu.pushObject(empty(ts));
      this.tasks.forEach(task => {
        task.memory.pushObject(empty(ts));
        task.cpu.pushObject(empty(ts));
      });
    } // Static figures, denominators for stats


    // Dynamic figures, collected over time
    // []{ timestamp: Date, used: Number, percent: Number }
    get cpu() {
      return (0, _rollingArray.default)(this.bufferSize);
    }

    get memory() {
      return (0, _rollingArray.default)(this.bufferSize);
    }

    get tasks() {
      const bufferSize = this.bufferSize;
      const tasks = this.get('allocation.taskGroup.tasks') || [];
      return tasks.slice().sort(taskPrioritySort).map(task => ({
        task: (0, _object.get)(task, 'name'),
        // Static figures, denominators for stats
        reservedCPU: (0, _object.get)(task, 'reservedCPU'),
        reservedMemory: (0, _object.get)(task, 'reservedMemory'),
        // Dynamic figures, collected over time
        // []{ timestamp: Date, used: Number, percent: Number }
        cpu: (0, _rollingArray.default)(bufferSize),
        memory: (0, _rollingArray.default)(bufferSize)
      }));
    }

  }, (_applyDecoratedDescriptor(_class2.prototype, "url", [_dec], Object.getOwnPropertyDescriptor(_class2.prototype, "url"), _class2.prototype), _descriptor = _applyDecoratedDescriptor(_class2.prototype, "reservedCPU", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "reservedMemory", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "cpu", [_dec4], Object.getOwnPropertyDescriptor(_class2.prototype, "cpu"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "memory", [_dec5], Object.getOwnPropertyDescriptor(_class2.prototype, "memory"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "tasks", [_dec6], Object.getOwnPropertyDescriptor(_class2.prototype, "tasks"), _class2.prototype)), _class2)) || _class);

  window.__CLASSIC_OWN_CLASSES__.set(AllocationStatsTracker, true);

  var _default = AllocationStatsTracker;
  _exports.default = _default;

  function stats(allocationProp, fetch) {
    return (0, _object.computed)(allocationProp, function () {
      return AllocationStatsTracker.create({
        fetch: fetch.call(this),
        allocation: this.get(allocationProp)
      });
    });
  }
});
;define("nomad-ui/utils/classes/exec-command-editor-xterm-adapter", ["exports", "nomad-ui/utils/keys"], function (_exports, _keys) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"nomad-ui/utils/keys"eaimeta@70e063a35619d71f

  const REVERSE_WRAPAROUND_MODE = '\x1b[?45h';
  const BACKSPACE_ONE_CHARACTER = '\x08 \x08'; // eslint-disable-next-line no-control-regex

  const UNPRINTABLE_CHARACTERS_REGEX = /[\x00-\x1F]/g;

  class ExecCommandEditorXtermAdapter {
    constructor(terminal, setCommandCallback, command) {
      this.terminal = terminal;
      this.setCommandCallback = setCommandCallback;
      this.command = command;
      this.dataListener = terminal.onData(data => {
        this.handleDataEvent(data);
      }); // Allows tests to bypass synthetic keyboard event restrictions

      terminal.simulateCommandDataEvent = this.handleDataEvent.bind(this);
      terminal.write(REVERSE_WRAPAROUND_MODE);
    }

    handleDataEvent(data) {
      if (data === _keys.default.LEFT_ARROW || data === _keys.default.UP_ARROW || data === _keys.default.RIGHT_ARROW || data === _keys.default.DOWN_ARROW) {// Ignore arrow keys
      } else if (data === _keys.default.CONTROL_U) {
        this.terminal.write(BACKSPACE_ONE_CHARACTER.repeat(this.command.length));
        this.command = '';
      } else if (data === _keys.default.ENTER) {
        this.terminal.writeln('');
        this.setCommandCallback(this.command);
        this.dataListener.dispose();
      } else if (data === _keys.default.DELETE) {
        if (this.command.length > 0) {
          this.terminal.write(BACKSPACE_ONE_CHARACTER);
          this.command = this.command.slice(0, -1);
        }
      } else if (data.length > 0) {
        const strippedData = data.replace(UNPRINTABLE_CHARACTERS_REGEX, '');
        this.terminal.write(strippedData);
        this.command = `${this.command}${strippedData}`;
      }
    }

    destroy() {
      this.dataListener.dispose();
    }

  }

  _exports.default = ExecCommandEditorXtermAdapter;

  window.__CLASSIC_HAS_CONSTRUCTOR__.set(ExecCommandEditorXtermAdapter, true);

  window.__CLASSIC_OWN_CLASSES__.set(ExecCommandEditorXtermAdapter, true);
});
;define("nomad-ui/utils/classes/exec-socket-xterm-adapter", ["exports", "nomad-ui/utils/encode"], function (_exports, _encode) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = _exports.HEARTBEAT_INTERVAL = void 0;
  0; //eaimeta@70e063a35619d71f0,"nomad-ui/utils/encode"eaimeta@70e063a35619d71f

  /**
   * Copyright (c) HashiCorp, Inc.
   * SPDX-License-Identifier: MPL-2.0
   */
  const ANSI_UI_GRAY_400 = '\x1b[38;2;142;150;163m';
  const HEARTBEAT_INTERVAL = 10000; // ten seconds

  _exports.HEARTBEAT_INTERVAL = HEARTBEAT_INTERVAL;

  class ExecSocketXtermAdapter {
    constructor(terminal, socket, token) {
      this.terminal = terminal;
      this.socket = socket;
      this.token = token;

      socket.onopen = () => {
        this.sendWsHandshake();
        this.sendTtySize();
        this.startHeartbeat();
        terminal.onData(data => {
          this.handleData(data);
        });
      };

      socket.onmessage = e => {
        let json = JSON.parse(e.data); // stderr messages will not be produced as the socket is opened with the tty flag

        if (json.stdout && json.stdout.data) {
          terminal.write((0, _encode.base64DecodeString)(json.stdout.data));
        }
      };

      socket.onclose = () => {
        this.stopHeartbeat();
        this.terminal.writeln('');
        this.terminal.write(ANSI_UI_GRAY_400);
        this.terminal.writeln('The connection has closed.'); // Issue to add interpretation of close events: https://github.com/hashicorp/nomad/issues/7464
      };

      terminal.resized = () => {
        this.sendTtySize();
      };
    }

    sendTtySize() {
      this.socket.send(JSON.stringify({
        tty_size: {
          width: this.terminal.cols,
          height: this.terminal.rows
        }
      }));
    }

    sendWsHandshake() {
      this.socket.send(JSON.stringify({
        version: 1,
        auth_token: this.token || ''
      }));
    }

    startHeartbeat() {
      this.heartbeatTimer = setInterval(() => {
        this.socket.send(JSON.stringify({}));
      }, HEARTBEAT_INTERVAL);
    }

    stopHeartbeat() {
      clearInterval(this.heartbeatTimer);
    }

    handleData(data) {
      this.socket.send(JSON.stringify({
        stdin: {
          data: (0, _encode.base64EncodeString)(data)
        }
      }));
    }

  }

  _exports.default = ExecSocketXtermAdapter;

  window.__CLASSIC_HAS_CONSTRUCTOR__.set(ExecSocketXtermAdapter, true);

  window.__CLASSIC_OWN_CLASSES__.set(ExecSocketXtermAdapter, true);
});
;define("nomad-ui/utils/classes/log", ["exports", "@ember/object/computed", "@ember/debug", "@ember/template", "@ember/object/evented", "@ember/object", "ember-overridable-computed", "@ember/polyfills", "query-string", "ember-concurrency", "nomad-ui/utils/classes/stream-logger", "nomad-ui/utils/classes/poll-logger", "nomad-ui/utils/stream-frames", "anser"], function (_exports, _computed, _debug, _template, _evented, _object, _emberOverridableComputed, _polyfills, _queryString, _emberConcurrency, _streamLogger, _pollLogger, _streamFrames, _anser) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.logger = logger;
  _exports.default = _exports.fetchFailure = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _class, _class2, _descriptor, _descriptor2, _descriptor3, _descriptor4;

  0; //eaimeta@70e063a35619d71f0,"@ember/object/computed",0,"@ember/debug",0,"@ember/template",0,"@ember/object/evented",0,"@ember/object",0,"ember-overridable-computed",0,"@ember/polyfills",0,"query-string",0,"ember-concurrency",0,"nomad-ui/utils/classes/stream-logger",0,"nomad-ui/utils/classes/poll-logger",0,"nomad-ui/utils/stream-frames",0,"anser",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;
  const MAX_OUTPUT_LENGTH = 50000; // eslint-disable-next-line

  const fetchFailure = url => () => console.warn(`LOG FETCH: Couldn't connect to ${url}`);

  _exports.fetchFailure = fetchFailure;
  let Log = (_dec = (0, _emberOverridableComputed.computed)(() => ({})), _dec2 = (0, _computed.alias)('logStreamer.poll.isRunning'), _dec3 = (0, _object.computed)('logPointer', 'head', 'tail'), _dec4 = (0, _emberConcurrency.task)(function* () {
    const logFetch = this.logFetch;

    const queryParams = _queryString.default.stringify((0, _polyfills.assign)({
      origin: 'start',
      offset: 0
    }, this.params));

    const url = `${this.url}?${queryParams}`;
    this.stop();
    const response = yield logFetch(url).then(res => res.text(), fetchFailure(url));
    let text = this.plainText ? response : (0, _streamFrames.decode)(response).message;

    if (text && text.length > MAX_OUTPUT_LENGTH) {
      text = text.substr(0, MAX_OUTPUT_LENGTH);
      text += '\n\n---------- TRUNCATED: Click "tail" to view the bottom of the log ----------';
    }

    this.set('head', text);
    this.set('logPointer', 'head');
  }), _dec5 = (0, _emberConcurrency.task)(function* () {
    const logFetch = this.logFetch;

    const queryParams = _queryString.default.stringify((0, _polyfills.assign)({
      origin: 'end',
      offset: MAX_OUTPUT_LENGTH
    }, this.params));

    const url = `${this.url}?${queryParams}`;
    this.stop();
    const response = yield logFetch(url).then(res => res.text(), fetchFailure(url));
    let text = this.plainText ? response : (0, _streamFrames.decode)(response).message;
    this.set('tail', text);
    this.set('logPointer', 'tail');
  }), classic(_class = (_class2 = class Log extends _object.default.extend(_evented.default) {
    constructor() {
      super(...arguments);

      _defineProperty(this, "url", '');

      _initializerDefineProperty(this, "params", _descriptor, this);

      _defineProperty(this, "plainText", false);

      _initializerDefineProperty(this, "isStreaming", _descriptor2, this);

      _defineProperty(this, "logPointer", null);

      _defineProperty(this, "logStreamer", null);

      _defineProperty(this, "head", '');

      _defineProperty(this, "tail", '');

      _initializerDefineProperty(this, "gotoHead", _descriptor3, this);

      _initializerDefineProperty(this, "gotoTail", _descriptor4, this);
    }

    logFetch() {
      (true && !(false) && (0, _debug.assert)('Log objects need a logFetch method, which should have an interface like window.fetch'));
    } // Read-only state


    // The top or bottom of the log, depending on whether
    // the logPointer is pointed at head or tail
    get output() {
      let logs = this.logPointer === 'head' ? this.head : this.tail;
      logs = logs.replace(/</g, '&lt;').replace(/>/g, '&gt;');

      let colouredLogs = _anser.default.ansiToHtml(logs);

      return (0, _template.htmlSafe)(colouredLogs);
    }

    init() {
      super.init();
      const args = this.getProperties('url', 'params', 'logFetch');

      args.write = chunk => {
        let newTail = this.tail + chunk;

        if (newTail.length > MAX_OUTPUT_LENGTH) {
          newTail = newTail.substr(newTail.length - MAX_OUTPUT_LENGTH);
        }

        this.set('tail', newTail);
        this.trigger('tick', chunk);
      };

      if (_streamLogger.default.isSupported) {
        this.set('logStreamer', _streamLogger.default.create(args));
      } else {
        this.set('logStreamer', _pollLogger.default.create(args));
      }
    }

    destroy() {
      this.stop();
      super.destroy();
    }

    startStreaming() {
      this.set('logPointer', 'tail');
      return this.logStreamer.start();
    }

    stop() {
      this.logStreamer.stop();
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "params", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "isStreaming", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "output", [_dec3], Object.getOwnPropertyDescriptor(_class2.prototype, "output"), _class2.prototype), _descriptor3 = _applyDecoratedDescriptor(_class2.prototype, "gotoHead", [_dec4], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor4 = _applyDecoratedDescriptor(_class2.prototype, "gotoTail", [_dec5], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class2)) || _class);

  window.__CLASSIC_OWN_CLASSES__.set(Log, true);

  var _default = Log;
  _exports.default = _default;

  function logger(urlProp, params, logFetch) {
    return (0, _object.computed)(urlProp, params, function () {
      return Log.create({
        logFetch: logFetch.call(this),
        params: this.get(params),
        url: this.get(urlProp)
      });
    });
  }
});
;define("nomad-ui/utils/classes/node-stats-tracker", ["exports", "@ember/object", "@ember/object/computed", "nomad-ui/utils/classes/rolling-array", "nomad-ui/utils/classes/abstract-stats-tracker"], function (_exports, _object, _computed, _rollingArray, _abstractStatsTracker) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.stats = stats;
  _exports.default = void 0;

  var _dec, _dec2, _dec3, _dec4, _dec5, _class, _class2, _descriptor, _descriptor2;

  0; //eaimeta@70e063a35619d71f0,"@ember/object",0,"@ember/object/computed",0,"nomad-ui/utils/classes/rolling-array",0,"nomad-ui/utils/classes/abstract-stats-tracker",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  const classic = __EMBER_CLASSIC_DECORATOR;

  const percent = (numerator, denominator) => {
    if (!numerator || !denominator) {
      return 0;
    }

    return numerator / denominator;
  };

  const empty = ts => ({
    timestamp: ts,
    used: null,
    percent: null
  });

  let NodeStatsTracker = (_dec = (0, _object.computed)('node.id'), _dec2 = (0, _computed.alias)('node.resources.cpu'), _dec3 = (0, _computed.alias)('node.resources.memory'), _dec4 = (0, _object.computed)('bufferSize', 'node'), _dec5 = (0, _object.computed)('bufferSize', 'node'), classic(_class = (_class2 = class NodeStatsTracker extends _object.default.extend(_abstractStatsTracker.default) {
    constructor() {
      super(...arguments);

      _defineProperty(this, "node", null);

      _initializerDefineProperty(this, "reservedCPU", _descriptor, this);

      _initializerDefineProperty(this, "reservedMemory", _descriptor2, this);
    }

    get url() {
      return `/v1/client/stats?node_id=${this.get('node.id')}`;
    }

    append(frame) {
      const timestamp = new Date(Math.floor(frame.Timestamp / 1000000));
      const cpuUsed = Math.floor(frame.CPUTicksConsumed) || 0;
      this.cpu.pushObject({
        timestamp,
        used: cpuUsed,
        percent: percent(cpuUsed, this.reservedCPU)
      });
      const memoryUsed = frame.Memory.Used;
      this.memory.pushObject({
        timestamp,
        used: memoryUsed,
        percent: percent(memoryUsed / 1024 / 1024, this.reservedMemory)
      });
    }

    pause() {
      const ts = new Date();
      this.memory.pushObject(empty(ts));
      this.cpu.pushObject(empty(ts));
    } // Static figures, denominators for stats


    // Dynamic figures, collected over time
    // []{ timestamp: Date, used: Number, percent: Number }
    get cpu() {
      return (0, _rollingArray.default)(this.bufferSize);
    }

    get memory() {
      return (0, _rollingArray.default)(this.bufferSize);
    }

  }, (_applyDecoratedDescriptor(_class2.prototype, "url", [_dec], Object.getOwnPropertyDescriptor(_class2.prototype, "url"), _class2.prototype), _descriptor = _applyDecoratedDescriptor(_class2.prototype, "reservedCPU", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, "reservedMemory", [_dec3], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  }), _applyDecoratedDescriptor(_class2.prototype, "cpu", [_dec4], Object.getOwnPropertyDescriptor(_class2.prototype, "cpu"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "memory", [_dec5], Object.getOwnPropertyDescriptor(_class2.prototype, "memory"), _class2.prototype)), _class2)) || _class);

  window.__CLASSIC_OWN_CLASSES__.set(NodeStatsTracker, true);

  var _default = NodeStatsTracker;
  _exports.default = _default;

  function stats(nodeProp, fetch) {
    return (0, _object.computed)(nodeProp, function () {
      return NodeStatsTracker.create({
        fetch: fetch.call(this),
        node: this.get(nodeProp)
      });
    });
  }
});
;define("nomad-ui/utils/classes/poll-logger", ["exports", "@ember/object", "ember-concurrency", "nomad-ui/utils/stream-frames", "nomad-ui/utils/classes/abstract-logger", "nomad-ui/utils/classes/log"], function (_exports, _object, _emberConcurrency, _streamFrames, _abstractLogger, _log) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _class, _class2, _descriptor;

  0; //eaimeta@70e063a35619d71f0,"@ember/object",0,"ember-concurrency",0,"nomad-ui/utils/stream-frames",0,"nomad-ui/utils/classes/abstract-logger",0,"nomad-ui/utils/classes/log",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let PollLogger = (_dec = (0, _emberConcurrency.task)(function* () {
    const {
      interval,
      logFetch
    } = this;

    while (true) {
      const url = this.fullUrl;
      let response = yield logFetch(url).then(res => res, (0, _log.fetchFailure)(url));

      if (!response) {
        return;
      }

      let text = yield response.text();

      if (text) {
        const {
          offset,
          message
        } = (0, _streamFrames.decode)(text);

        if (message) {
          this.set('endOffset', offset);
          this.write(message);
        }
      }

      yield (0, _emberConcurrency.timeout)(interval);
    }
  }), classic(_class = (_class2 = class PollLogger extends _object.default.extend(_abstractLogger.default) {
    constructor() {
      super(...arguments);

      _defineProperty(this, "interval", 1000);

      _initializerDefineProperty(this, "poll", _descriptor, this);
    }

    start() {
      return this.poll.linked().perform();
    }

    stop() {
      return this.poll.cancelAll();
    }

  }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, "poll", [_dec], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class2)) || _class);
  _exports.default = PollLogger;
});
;define("nomad-ui/utils/classes/promise-array", ["exports", "@ember/array/proxy", "@ember/object/promise-proxy-mixin"], function (_exports, _proxy, _promiseProxyMixin) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class;

  0; //eaimeta@70e063a35619d71f0,"@ember/array/proxy",0,"@ember/object/promise-proxy-mixin",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  const classic = __EMBER_CLASSIC_DECORATOR;

  let PromiseArray = classic(_class = class PromiseArray extends _proxy.default.extend(_promiseProxyMixin.default) {}) || _class;

  _exports.default = PromiseArray;
});
;define("nomad-ui/utils/classes/promise-object", ["exports", "@ember/object/proxy", "@ember/object/promise-proxy-mixin"], function (_exports, _proxy, _promiseProxyMixin) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _class;

  0; //eaimeta@70e063a35619d71f0,"@ember/object/proxy",0,"@ember/object/promise-proxy-mixin",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  const classic = __EMBER_CLASSIC_DECORATOR;

  let PromiseObject = classic(_class = class PromiseObject extends _proxy.default.extend(_promiseProxyMixin.default) {}) || _class;

  _exports.default = PromiseObject;
});
;define("nomad-ui/utils/classes/query-params", ["exports", "@ember/object"], function (_exports, _object) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = _exports.qpBuilder = void 0;

  var _class;

  0; //eaimeta@70e063a35619d71f0,"@ember/object",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  const classic = __EMBER_CLASSIC_DECORATOR;

  let QueryParams = classic(_class = class QueryParams extends _object.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "isQueryParams", true);

      _defineProperty(this, "values", null);
    }

  }) || _class;

  window.__CLASSIC_OWN_CLASSES__.set(QueryParams, true);

  const qpBuilder = values => QueryParams.create({
    values
  });

  _exports.qpBuilder = qpBuilder;
  var _default = QueryParams;
  _exports.default = _default;
});
;define("nomad-ui/utils/classes/rolling-array", ["exports"], function (_exports) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = RollingArray;
  0; //eaimeta@70e063a35619d71feaimeta@70e063a35619d71f

  /**
   * Copyright (c) HashiCorp, Inc.
   * SPDX-License-Identifier: MPL-2.0
   */
  // An array with a max length.
  //
  // When max length is surpassed, items are removed from
  // the front of the array.
  // Native array methods
  let {
    push,
    splice
  } = Array.prototype; // Ember array prototype extension

  let {
    insertAt
  } = Array.prototype; // Using Classes to extend Array is unsupported in Babel so this less
  // ideal approach is taken: https://babeljs.io/docs/en/caveats#classes

  function RollingArray(maxLength) {
    for (var _len = arguments.length, items = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
      items[_key - 1] = arguments[_key];
    }

    const array = new Array(...items);
    array.maxLength = maxLength; // Bring the length back down to maxLength by removing from the front

    array._limit = function () {
      const surplus = this.length - this.maxLength;

      if (surplus > 0) {
        this.splice(0, surplus);
      }
    };

    array.push = function () {
      for (var _len2 = arguments.length, items = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
        items[_key2] = arguments[_key2];
      }

      push.apply(this, items);

      this._limit();

      return this.length;
    };

    array.splice = function () {
      for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
        args[_key3] = arguments[_key3];
      }

      const returnValue = splice.apply(this, args);

      this._limit();

      return returnValue;
    }; // All mutable array methods build on top of insertAt


    array.insertAt = function () {
      for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
        args[_key4] = arguments[_key4];
      }

      const returnValue = insertAt.apply(this, args);

      this._limit();

      this.arrayContentDidChange();
      return returnValue;
    };

    array.unshift = function () {
      throw new Error('Cannot unshift onto a RollingArray');
    };

    return array;
  }
});
;define("nomad-ui/utils/classes/stream-logger", ["exports", "@ember/object", "ember-concurrency", "nomad-ui/utils/classes/text-decoder", "nomad-ui/utils/stream-frames", "nomad-ui/utils/classes/abstract-logger", "nomad-ui/utils/classes/log"], function (_exports, _object, _emberConcurrency, _textDecoder, _streamFrames, _abstractLogger, _log) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;

  var _dec, _dec2, _class, _class2, _descriptor;

  0; //eaimeta@70e063a35619d71f0,"@ember/object",0,"ember-concurrency",0,"nomad-ui/utils/classes/text-decoder",0,"nomad-ui/utils/stream-frames",0,"nomad-ui/utils/classes/abstract-logger",0,"nomad-ui/utils/classes/log",0,"ember-classic-decorator"eaimeta@70e063a35619d71f

  function _initializerDefineProperty(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that ' + 'proposal-class-properties is enabled and runs after the decorators transform.'); }

  function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object.keys(descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object.defineProperty(target, property, desc); desc = null; } return desc; }

  const classic = __EMBER_CLASSIC_DECORATOR;
  let StreamLogger = (_dec = (0, _object.computed)(), _dec2 = (0, _emberConcurrency.task)(function* () {
    const url = this.fullUrl;
    const logFetch = this.logFetch;
    const reader = yield logFetch(url).then(res => {
      const reader = res.body.getReader(); // It's possible that the logger was stopped between the time
      // polling was started and the log request responded.
      // If the logger was stopped, the reader needs to be immediately
      // canceled to prevent an endless request running in the background.

      if (this.poll.isRunning) {
        return reader;
      }

      reader.cancel();
    }, (0, _log.fetchFailure)(url));

    if (!reader) {
      return;
    }

    this.set('reader', reader);
    let streamClosed = false;
    let buffer = '';
    const decoder = new _textDecoder.default();

    while (!streamClosed) {
      yield reader.read().then(_ref => {
        let {
          value,
          done
        } = _ref;
        streamClosed = done; // There is no guarantee that value will be a complete JSON object,
        // so it needs to be buffered.

        buffer += decoder.decode(value, {
          stream: true
        }); // Only when the buffer contains a close bracket can we be sure the buffer
        // is in a complete state

        if (buffer.indexOf('}') !== -1) {
          // The buffer can be one or more complete frames with additional text for the
          // next frame
          const [, chunk, newBuffer] = buffer.match(/(.*\})(.*)$/); // Peel chunk off the front of the buffer (since it represents complete frames)
          // and set the buffer to be the remainder

          buffer = newBuffer; // Assuming the logs endpoint never returns nested JSON (it shouldn't), at this
          // point chunk is a series of valid JSON objects with no delimiter.

          const {
            offset,
            message
          } = (0, _streamFrames.decode)(chunk);

          if (message) {
            this.set('endOffset', offset);
            this.write(message);
          }
        }
      });
    }
  }), classic(_class = (_class2 = class StreamLogger extends _object.default.extend(_abstractLogger.default) {
    constructor() {
      super(...arguments);

      _defineProperty(this, "reader", null);

      _initializerDefineProperty(this, "poll", _descriptor, this);
    }

    static get isSupported() {
      return !!window.ReadableStream;
    }

    get additionalParams() {
      return {
        follow: true
      };
    }

    start() {
      return this.poll.perform();
    }

    stop() {
      const reader = this.reader;

      if (reader) {
        reader.cancel();
      }

      return this.poll.cancelAll();
    }

  }, (_applyDecoratedDescriptor(_class2.prototype, "additionalParams", [_dec], Object.getOwnPropertyDescriptor(_class2.prototype, "additionalParams"), _class2.prototype), _descriptor = _applyDecoratedDescriptor(_class2.prototype, "poll", [_dec2], {
    configurable: true,
    enumerable: true,
    writable: true,
    initializer: null
  })), _class2)) || _class);
  _exports.default = StreamLogger;
});
;define("nomad-ui/utils/classes/text-decoder", ["exports"], function (_exports) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71feaimeta@70e063a35619d71f

  /**
   * Copyright (c) HashiCorp, Inc.
   * SPDX-License-Identifier: MPL-2.0
   */
  // This is a very incomplete polyfill for TextDecoder used only
  // by browsers that don't provide one but still provide a ReadableStream
  // interface for fetch.
  // A complete polyfill exists if this becomes problematic:
  // https://github.com/inexorabletash/text-encoding
  var _default = window.TextDecoder || function () {
    this.decode = function (value) {
      let text = '';

      for (let i = 3; i < value.byteLength; i++) {
        text += String.fromCharCode(value[i]);
      }

      return text;
    };
  };

  _exports.default = _default;
});
;define("nomad-ui/utils/codes-for-error", ["exports"], function (_exports) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = codesForError;
  0; //eaimeta@70e063a35619d71feaimeta@70e063a35619d71f

  /**
   * Copyright (c) HashiCorp, Inc.
   * SPDX-License-Identifier: MPL-2.0
   */
  // Returns an array of error codes as strings for an Ember error object
  function codesForError(error) {
    const codes = [error.code];

    if (error.errors) {
      error.errors.forEach(err => {
        codes.push(err.status);
      });
    }

    return codes.compact().uniq().map(code => '' + code);
  }
});
;define("nomad-ui/utils/compact-path", ["exports"], function (_exports) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = compactPath;
  0; //eaimeta@70e063a35619d71feaimeta@70e063a35619d71f

  /**
   * Copyright (c) HashiCorp, Inc.
   * SPDX-License-Identifier: MPL-2.0
   */

  /**
   * Takes a branch created by our path-tree, and if it has only a single directory as descendent and no files, compacts it down to its terminal folder (the first descendent folder with either files or branching directories)
   * Uses tail recursion
   * @param {import("./path-tree").NestedPathTreeNode} branch
   * @returns
   */
  function compactPath(branch) {
    let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
    let {
      children,
      files
    } = branch;

    if (children && Object.keys(children).length === 1 && !files.length) {
      const [key] = Object.keys(children);
      const child = children[key];
      return compactPath(child, `${name}/${key}`);
    }

    return {
      name,
      data: branch
    };
  }
});
;define("nomad-ui/utils/default-job-templates", ["exports", "nomad-ui/utils/default_jobs/hello-world", "nomad-ui/utils/default_jobs/parameterized", "nomad-ui/utils/default_jobs/service-discovery", "nomad-ui/utils/default_jobs/variables"], function (_exports, _helloWorld, _parameterized, _serviceDiscovery, _variables) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"nomad-ui/utils/default_jobs/hello-world",0,"nomad-ui/utils/default_jobs/parameterized",0,"nomad-ui/utils/default_jobs/service-discovery",0,"nomad-ui/utils/default_jobs/variables"eaimeta@70e063a35619d71f

  var _default = [{
    id: 'nomad/job-templates/default/hello-world',
    keyValues: [{
      key: 'template',
      value: _helloWorld.default
    }, {
      key: 'description',
      value: 'A simple job that runs a single task on a single node'
    }]
  }, {
    id: 'nomad/job-templates/default/parameterized-job',
    keyValues: [{
      key: 'template',
      value: _parameterized.default
    }, {
      key: 'description',
      value: 'A job that can be dispatched multiple times with different payloads and meta values'
    }]
  }, {
    id: 'nomad/job-templates/default/service-discovery',
    keyValues: [{
      key: 'template',
      value: _serviceDiscovery.default
    }, {
      key: 'description',
      value: 'Registers a service in one group, and discovers it in another. Provides a recurring check to ensure the service is healthy'
    }]
  }, {
    id: 'nomad/job-templates/default/variables',
    keyValues: [{
      key: 'template',
      value: _variables.default
    }, {
      key: 'description',
      value: 'Use Nomad Variables to configure the output of a simple HTML page'
    }]
  }];
  _exports.default = _default;
});
;define("nomad-ui/utils/default_jobs/hello-world", ["exports"], function (_exports) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71feaimeta@70e063a35619d71f

  /**
   * Copyright (c) HashiCorp, Inc.
   * SPDX-License-Identifier: MPL-2.0
   */
  var _default = `job "hello-world" {
  // Specifies the datacenter where this job should be run
  // This can be omitted and it will default to ["*"]
  datacenters = ["*"]

  meta {
    // User-defined key/value pairs that can be used in your jobs.
    // You can also use this meta block within Group and Task levels.
    foo = "bar"
  }

  // A group defines a series of tasks that should be co-located
  // on the same client (host). All tasks within a group will be
  // placed on the same host.
  group "servers" {

    // Specifies the number of instances of this group that should be running.
    // Use this to scale or parallelize your job.
    // This can be omitted and it will default to 1.
    count = 1

    network {
      port "www" {
        to = 8001
      }
    }

    service {
      provider = "nomad"
      port     = "www"
    }

    // Tasks are individual units of work that are run by Nomad.
    task "web" {
      // This particular task starts a simple web server within a Docker container
      driver = "docker"

      config {
        image   = "busybox:1"
        command = "httpd"
        args    = ["-v", "-f", "-p", "\${NOMAD_PORT_www}", "-h", "/local"]
        ports   = ["www"]
      }

      template {
        data        = <<EOF
                        <h1>Hello, Nomad!</h1>
                        <ul>
                          <li>Task: {{env "NOMAD_TASK_NAME"}}</li>
                          <li>Group: {{env "NOMAD_GROUP_NAME"}}</li>
                          <li>Job: {{env "NOMAD_JOB_NAME"}}</li>
                          <li>Metadata value for foo: {{env "NOMAD_META_foo"}}</li>
                          <li>Currently running on port: {{env "NOMAD_PORT_www"}}</li>
                        </ul>
                      EOF
        destination = "local/index.html"
      }

      // Specify the maximum resources required to run the task
      resources {
        cpu    = 50
        memory = 64
      }
    }
  }
}`;
  _exports.default = _default;
});
;define("nomad-ui/utils/default_jobs/parameterized", ["exports"], function (_exports) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71feaimeta@70e063a35619d71f

  /**
   * Copyright (c) HashiCorp, Inc.
   * SPDX-License-Identifier: MPL-2.0
   */
  var _default = `job "parameterized-job" {
  // Specifies the datacenter where this job should be run
  // This can be omitted and it will default to ["*"]
  datacenters = ["*"]

  // Unlike service jobs, Batch jobs are intended to run until they exit successfully.
  type = "batch"

  // Run the job only on Linux or MacOS.
  constraint {
    attribute = "\${attr.kernel.name}"
    operator  = "set_contains_any"
    value     = "darwin,linux"
  }

  // Allow the job to be parameterized, and allow any meta key with
  // a name starting with "i" to be specified.
  parameterized {
    meta_optional = ["MY_META_KEY"]
  }

  group "group" {
    task "task" {
      driver = "docker"
      config {
        image   = "busybox:1"
        command = "/bin/sh"
        args    = ["-c", "cat local/template.out", "local/payload.txt"]
      }

      dispatch_payload {
        file = "payload.txt"
      }

      template {
        data = <<EOH
MY_META_KEY: {{env "NOMAD_META_MY_META_KEY"}}
  EOH

        destination = "local/template.out"
      }
    }
  }
}`;
  _exports.default = _default;
});
;define("nomad-ui/utils/default_jobs/service-discovery", ["exports"], function (_exports) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71feaimeta@70e063a35619d71f

  /**
   * Copyright (c) HashiCorp, Inc.
   * SPDX-License-Identifier: MPL-2.0
   */
  var _default = `job "service-discovery-example" {
  // Specifies the datacenter where this job should be run
  // This can be omitted and it will default to ["*"]
  datacenters = ["*"]

  group "client" {
    task "curl" {
      driver = "docker"

      config {
        image   = "curlimages/curl:7.87.0"
        command = "/bin/ash"
        args    = ["local/script.sh"]
      }

      template {
        data        = <<EOF
#!/usr/bin/env ash

while true; do
{{range nomadService "nomad-service-discovery-example-server"}}
  curl -L -v http://{{.Address}}:{{.Port}}/
{{end}}
  sleep 3
done
EOF
        destination = "local/script.sh"
      }

      resources {
        cpu    = 10
        memory = 50
      }
    }
  }

  group "server" {
    network {
      port "www" {
        to = 8001
      }
    }

    task "http" {
      driver = "docker"

      service {
        name     = "nomad-service-discovery-example-server"
        provider = "nomad"
        port     = "www"
        // If you're running Nomad in dev mode, uncomment the following address_mode line to allow this service to be discovered
        // address_mode = "driver"

        check {
          type     = "http"
          path     = "/"
          interval = "5s"
          timeout  = "1s"
        }
      }

      config {
        image   = "busybox:1"
        command = "httpd"
        args    = ["-v", "-f", "-p", "\${NOMAD_PORT_www}", "-h", "/local"]
        ports   = ["www"]
      }

      template {
        data        = <<EOF
hello world
EOF
        destination = "local/index.html"
      }

      resources {
        cpu    = 10
        memory = 50
      }
    }
  }
}`;
  _exports.default = _default;
});
;define("nomad-ui/utils/default_jobs/variables", ["exports"], function (_exports) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71feaimeta@70e063a35619d71f

  /**
   * Copyright (c) HashiCorp, Inc.
   * SPDX-License-Identifier: MPL-2.0
   */

  /* eslint-disable */
  var _default = `// Use Nomad Variables to modify this job's output:
// run "nomad var put nomad/jobs/variables-example name=YOUR_NAME" to get started

job "variables-example" {
  // Specifies the datacenter where this job should be run
  // This can be omitted and it will default to ["*"]
  datacenters = ["*"]

  group "web" {

    network {
      // Task group will have an isolated network namespace with
      // an interface that is bridged with the host
      port "www" {
        to = 8001
      }
    }

    service {
      provider = "nomad"
      port     = "www"
    }

    task "http" {

      driver = "docker"

      config {
        image   = "busybox:1"
        command = "httpd"
        args    = ["-v", "-f", "-p", "8001", "-h", "/local"]
        ports   = ["www"]
      }

      // Create a template resource that will be used to render the html file
      // using the Nomad variable at "nomad/jobs/variables-example"
      template {
        data        = "<html>hello, {{ with nomadVar \\" nomad/jobs/variables-example \\" }}{{ .name }}{{ end }}</html>"
        destination = "local/index.html"
      }

      resources {
        cpu    = 128
        memory = 128
      }

    }
  }
}`;
  _exports.default = _default;
});
;define("nomad-ui/utils/encode", ["exports", "base64-js", "text-encoder-lite"], function (_exports, _base64Js, _textEncoderLite) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.base64EncodeString = base64EncodeString;
  _exports.base64DecodeString = base64DecodeString;
  0; //eaimeta@70e063a35619d71f0,"base64-js",0,"text-encoder-lite"eaimeta@70e063a35619d71f

  function base64EncodeString(string) {
    if (!string) {
      string = '';
    }

    const encoded = new _textEncoderLite.TextEncoderLite('utf-8').encode(string);
    return _base64Js.default.fromByteArray(encoded);
  }

  function base64DecodeString(b64String) {
    if (!b64String) {
      b64String = base64EncodeString('');
    }

    const uint8array = _base64Js.default.toByteArray(b64String);

    return new _textEncoderLite.TextDecoderLite('utf-8').decode(uint8array);
  }
});
;define("nomad-ui/utils/escape-task-name", ["exports"], function (_exports) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = escapeTaskName;
  0; //eaimeta@70e063a35619d71feaimeta@70e063a35619d71f

  /**
   * Copyright (c) HashiCorp, Inc.
   * SPDX-License-Identifier: MPL-2.0
   */
  function escapeTaskName(taskName) {
    // Regular expression is taken from here: https://stackoverflow.com/a/20053121
    return taskName.replace(/[^a-zA-Z0-9,._+@%/-]/gu, '\\$&');
  }
});
;define("nomad-ui/utils/fetch", ["exports", "fetch", "nomad-ui/config/environment"], function (_exports, _fetch, _environment) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"fetch",0,"nomad-ui/config/environment"eaimeta@70e063a35619d71f

  // The ember-fetch polyfill does not provide streaming
  // Additionally, Mirage/Pretender does not support fetch
  const mirageEnabled = _environment.default.environment !== 'production' && _environment.default['ember-cli-mirage'] && _environment.default['ember-cli-mirage'].enabled !== false;
  const fetchToUse = mirageEnabled ? _fetch.default : window.fetch || _fetch.default;
  var _default = fetchToUse;
  _exports.default = _default;
});
;define("nomad-ui/utils/format-duration", ["exports", "moment", "ember-inflector"], function (_exports, _moment, _emberInflector) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = formatDuration;
  0; //eaimeta@70e063a35619d71f0,"moment",0,"ember-inflector"eaimeta@70e063a35619d71f

  /**
   * Metadata for all unit types
   * name: identifier for the unit. Also maps to moment methods when applicable
   * suffix: the preferred suffix for a unit
   * inMoment: whether or not moment can be used to compute this unit value
   * pluralizable: whether or not this suffix can be pluralized
   * longSuffix: the suffix to use instead of suffix when longForm is true
   */
  const allUnits = [{
    name: 'years',
    suffix: 'year',
    inMoment: true,
    pluralizable: true
  }, {
    name: 'months',
    suffix: 'month',
    inMoment: true,
    pluralizable: true
  }, {
    name: 'days',
    suffix: 'day',
    inMoment: true,
    pluralizable: true
  }, {
    name: 'hours',
    suffix: 'h',
    longSuffix: 'hour',
    inMoment: true,
    pluralizable: false
  }, {
    name: 'minutes',
    suffix: 'm',
    longSuffix: 'minute',
    inMoment: true,
    pluralizable: false
  }, {
    name: 'seconds',
    suffix: 's',
    longSuffix: 'second',
    inMoment: true,
    pluralizable: false
  }, {
    name: 'milliseconds',
    suffix: 'ms',
    inMoment: true,
    pluralizable: false
  }, {
    name: 'microseconds',
    suffix: 'µs',
    inMoment: false,
    pluralizable: false
  }, {
    name: 'nanoseconds',
    suffix: 'ns',
    inMoment: false,
    pluralizable: false
  }];

  const pluralizeUnits = (amount, unit, longForm) => {
    let suffix;

    if (longForm && unit.longSuffix) {
      // Long form means always using full words (seconds insteand of s) which means
      // pluralization is necessary.
      suffix = amount === 1 ? unit.longSuffix : (0, _emberInflector.pluralize)(unit.longSuffix);
    } else {
      // In the normal case, only pluralize based on the pluralizable flag
      suffix = amount === 1 || !unit.pluralizable ? unit.suffix : (0, _emberInflector.pluralize)(unit.suffix);
    } // A space should go between the value and the unit when the unit is a full word
    // 300ns vs. 1 hour


    const addSpace = unit.pluralizable || longForm && unit.longSuffix;
    return `${amount}${addSpace ? ' ' : ''}${suffix}`;
  };
  /**
   * Format a Duration at a preferred precision
   *
   * @param {Number} duration The duration to format
   * @param {String} units The units for the duration. Default to nanoseconds.
   * @param {Boolean} longForm Whether or not to expand single character suffixes,
   *   used to ensure screen readers correctly read units.
   */


  function formatDuration() {
    let duration = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
    let units = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'ns';
    let longForm = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
    const durationParts = {}; // Moment only handles up to millisecond precision.
    // Microseconds and nanoseconds need to be handled first,
    // then Moment can take over for all larger units.

    if (units === 'ns') {
      durationParts.nanoseconds = duration % 1000;
      durationParts.microseconds = Math.floor(duration % 1000000 / 1000);
      duration = Math.floor(duration / 1000000);
    } else if (units === 'mms') {
      durationParts.microseconds = duration % 1000;
      duration = Math.floor(duration / 1000);
    }

    let momentUnits = units;

    if (units === 'ns' || units === 'mms') {
      momentUnits = 'ms';
    }

    const momentDuration = _moment.default.duration(duration, momentUnits); // Get the count of each time unit that Moment handles


    allUnits.filterBy('inMoment').mapBy('name').forEach(unit => {
      durationParts[unit] = momentDuration[unit]();
    }); // Format each time time bucket as a string
    // e.g., { years: 5, seconds: 30 } -> [ '5 years', '30s' ]

    const displayParts = allUnits.reduce((parts, unitType) => {
      if (durationParts[unitType.name]) {
        const count = durationParts[unitType.name];
        parts.push(pluralizeUnits(count, unitType, longForm));
      }

      return parts;
    }, []);

    if (displayParts.length) {
      return displayParts.join(' ');
    } // When the duration is 0, show 0 in terms of `units`


    return pluralizeUnits(0, allUnits.findBy('suffix', units), longForm);
  }
});
;define("nomad-ui/utils/format-host", ["exports", "is-ip"], function (_exports, _isIp) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = formatHost;
  0; //eaimeta@70e063a35619d71f0,"is-ip"eaimeta@70e063a35619d71f

  function formatHost(address, port) {
    if (!address || !port) {
      return undefined;
    }

    if (_isIp.default.v6(address)) {
      return `[${address}]:${port}`;
    } else {
      return `${address}:${port}`;
    }
  }
});
;define("nomad-ui/utils/generate-exec-url", ["exports", "@ember/object"], function (_exports, _object) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = generateExecUrl;
  0; //eaimeta@70e063a35619d71f0,"@ember/object"eaimeta@70e063a35619d71f

  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }

  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  function generateExecUrl(router, _ref) {
    let {
      job,
      taskGroup,
      task,
      allocation
    } = _ref;
    const queryParams = {};
    const namespace = (0, _object.get)(job, 'namespace.name');
    const region = (0, _object.get)(job, 'region');

    if (namespace) {
      queryParams.namespace = namespace;
    }

    if (region) {
      queryParams.region = region;
    }

    if (task) {
      const queryParamsOptions = _objectSpread({}, queryParams);

      if (allocation) {
        queryParamsOptions.allocation = (0, _object.get)(allocation, 'shortId');
      }

      return router.urlFor('exec.task-group.task', (0, _object.get)(job, 'plainId'), (0, _object.get)(taskGroup, 'name'), (0, _object.get)(task, 'name'), {
        queryParams: queryParamsOptions
      });
    } else if (taskGroup) {
      return router.urlFor('exec.task-group', (0, _object.get)(job, 'plainId'), (0, _object.get)(taskGroup, 'name'), {
        queryParams
      });
    } else if (allocation) {
      if ((0, _object.get)(allocation, 'taskGroup.tasks.length') === 1) {
        return router.urlFor('exec.task-group.task', (0, _object.get)(job, 'plainId'), (0, _object.get)(allocation, 'taskGroup.name'), (0, _object.get)(allocation, 'taskGroup.tasks.firstObject.name'), {
          queryParams: _objectSpread({
            allocation: (0, _object.get)(allocation, 'shortId')
          }, queryParams)
        });
      } else {
        return router.urlFor('exec.task-group', (0, _object.get)(job, 'plainId'), (0, _object.get)(allocation, 'taskGroup.name'), {
          queryParams: _objectSpread({
            allocation: (0, _object.get)(allocation, 'shortId')
          }, queryParams)
        });
      }
    } else {
      return router.urlFor('exec', (0, _object.get)(job, 'plainId'), {
        queryParams
      });
    }
  }
});
;define("nomad-ui/utils/hds-get-element-id", ["exports", "@hashicorp/design-system-components/utils/hds-get-element-id"], function (_exports, _hdsGetElementId) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _hdsGetElementId.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/utils/hds-get-element-id"eaimeta@70e063a35619d71f
});
;define("nomad-ui/utils/hds-set-aria-described-by", ["exports", "@hashicorp/design-system-components/utils/hds-set-aria-described-by"], function (_exports, _hdsSetAriaDescribedBy) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _hdsSetAriaDescribedBy.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"@hashicorp/design-system-components/utils/hds-set-aria-described-by"eaimeta@70e063a35619d71f
});
;define("nomad-ui/utils/ip-parts", ["exports"], function (_exports) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = ipParts;
  0; //eaimeta@70e063a35619d71feaimeta@70e063a35619d71f

  /**
   * Copyright (c) HashiCorp, Inc.
   * SPDX-License-Identifier: MPL-2.0
   */
  // Splits any IP address into an address and a port
  function ipParts(ip) {
    const parts = ip ? ip.split(':') : [];

    if (parts.length === 0) {
      // ipv4, no port
      return {
        address: ip,
        port: undefined
      };
    } else if (parts.length === 2) {
      // ipv4, with port
      return {
        address: parts[0],
        port: parts[1]
      };
    } else if (ip.startsWith('[')) {
      // ipv6, with port
      return {
        address: parts.slice(0, parts.length - 1).join(':'),
        port: parts[parts.length - 1]
      };
    } else {
      // ipv6, no port
      return {
        address: ip,
        port: undefined
      };
    }
  }
});
;define("nomad-ui/utils/json-with-default", ["exports", "ember-copy"], function (_exports, _emberCopy) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"ember-copy"eaimeta@70e063a35619d71f

  // Used with fetch.
  // Fetch only goes into the promise catch if there is a network error.
  // This means that handling a 4xx or 5xx error is the responsibility
  // of the developer.
  const jsonWithDefault = defaultResponse => res => res.ok ? res.json() : (0, _emberCopy.copy)(defaultResponse, true);

  var _default = jsonWithDefault;
  _exports.default = _default;
});
;define("nomad-ui/utils/keys", ["exports"], function (_exports) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71feaimeta@70e063a35619d71f

  /**
   * Copyright (c) HashiCorp, Inc.
   * SPDX-License-Identifier: MPL-2.0
   */
  var _default = {
    LEFT_ARROW: '\x1b[D',
    UP_ARROW: '\x1b[A',
    RIGHT_ARROW: '\x1b[C',
    DOWN_ARROW: '\x1b[B',
    CONTROL_A: '\x01',
    CONTROL_U: '\x15',
    ENTER: '\r',
    DELETE: '\x7F'
  };
  _exports.default = _default;
});
;define("nomad-ui/utils/match-glob", ["exports"], function (_exports) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = matchGlob;
  0; //eaimeta@70e063a35619d71feaimeta@70e063a35619d71f

  /**
   * Copyright (c) HashiCorp, Inc.
   * SPDX-License-Identifier: MPL-2.0
   */
  // @ts-check
  const WILDCARD_GLOB = '*';
  /**
   *
   * @param {string} pattern
   * @param {string} comparable
   * @example matchGlob('foo', 'foo') // true
   * @example matchGlob('foo', 'bar') // false
   * @example matchGlob('foo*', 'footbar') // true
   * @example matchGlob('foo*', 'bar') // false
   * @example matchGlob('*foo', 'foobar') // false
   * @example matchGlob('*foo', 'barfoo') // true
   * @example matchGlob('foo*bar', 'footbar') // true
   * @returns {boolean}
   */

  function matchGlob(pattern, comparable) {
    const parts = pattern === null || pattern === void 0 ? void 0 : pattern.split(WILDCARD_GLOB);
    const hasLeadingGlob = pattern === null || pattern === void 0 ? void 0 : pattern.startsWith(WILDCARD_GLOB);
    const hasTrailingGlob = pattern === null || pattern === void 0 ? void 0 : pattern.endsWith(WILDCARD_GLOB);
    const lastPartOfPattern = parts[parts.length - 1];
    const isPatternWithoutGlob = parts.length === 1 && !hasLeadingGlob;

    if (!pattern || !comparable || isPatternWithoutGlob) {
      return pattern === comparable;
    }

    if (pattern === WILDCARD_GLOB) {
      return true;
    }

    let subStringToMatchOn = comparable;

    for (let i = 0; i < parts.length; i++) {
      var _subStringToMatchOn;

      const part = parts[i];
      const idx = (_subStringToMatchOn = subStringToMatchOn) === null || _subStringToMatchOn === void 0 ? void 0 : _subStringToMatchOn.indexOf(part);
      const doesStringIncludeSubPattern = idx > -1;
      const doesMatchOnFirstSubpattern = idx === 0;

      if (i === 0 && !hasLeadingGlob && !doesMatchOnFirstSubpattern) {
        return false;
      }

      if (!doesStringIncludeSubPattern) {
        return false;
      }

      subStringToMatchOn = subStringToMatchOn.slice(0, idx + comparable.length);
    }

    return hasTrailingGlob || comparable.endsWith(lastPartOfPattern);
  }
});
;define("nomad-ui/utils/message-from-adapter-error", ["exports", "@ember-data/adapter/error"], function (_exports, _error) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = messageFromAdapterError;
  0; //eaimeta@70e063a35619d71f0,"@ember-data/adapter/error"eaimeta@70e063a35619d71f

  // Returns a single string based on the response the adapter received
  function messageFromAdapterError(error, actionMessage) {
    var _error$errors;

    if (error instanceof _error.ForbiddenError) {
      return `Your ACL token does not grant permission to ${actionMessage}.`;
    }

    if ((_error$errors = error.errors) !== null && _error$errors !== void 0 && _error$errors.length) {
      return error.errors.mapBy('detail').join('\n\n');
    }

    return 'Unknown Error';
  }
});
;define("nomad-ui/utils/no-leader-error", ["exports", "@ember-data/adapter/error"], function (_exports, _error) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = _exports.NO_LEADER = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember-data/adapter/error"eaimeta@70e063a35619d71f

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  const NO_LEADER = 'No cluster leader';
  _exports.NO_LEADER = NO_LEADER;

  class NoLeaderError extends _error.default {
    constructor() {
      super(...arguments);

      _defineProperty(this, "message", NO_LEADER);
    }

  }

  _exports.default = NoLeaderError;

  window.__CLASSIC_OWN_CLASSES__.set(NoLeaderError, true);
});
;define("nomad-ui/utils/notify-conflict", ["exports", "@ember/object", "nomad-ui/utils/codes-for-error"], function (_exports, _object, _codesForError) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = notifyConflict;
  0; //eaimeta@70e063a35619d71f0,"@ember/object",0,"nomad-ui/utils/codes-for-error"eaimeta@70e063a35619d71f

  function notifyConflict(parent) {
    return error => {
      if ((0, _codesForError.default)(error).includes('409')) {
        (0, _object.set)(parent, 'hasConflict', true);
      } else {
        return error;
      }
    };
  }
});
;define("nomad-ui/utils/notify-error", ["exports"], function (_exports) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = notifyError;
  0; //eaimeta@70e063a35619d71feaimeta@70e063a35619d71f

  /**
   * Copyright (c) HashiCorp, Inc.
   * SPDX-License-Identifier: MPL-2.0
   */

  /* eslint-disable ember/no-controller-access-in-routes */
  // An error handler to provide to a promise catch to set an error
  // on the application controller.
  function notifyError(route) {
    return error => {
      route.controllerFor('application').set('error', error);
    };
  }
});
;define("nomad-ui/utils/notify-forbidden", ["exports", "nomad-ui/utils/codes-for-error"], function (_exports, _codesForError) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = notifyForbidden;
  0; //eaimeta@70e063a35619d71f0,"nomad-ui/utils/codes-for-error"eaimeta@70e063a35619d71f

  function notifyForbidden(route) {
    return error => {
      if ((0, _codesForError.default)(error).includes('403')) {
        route.set('isForbidden', true);
      } else {
        throw error;
      }
    };
  }
});
;define("nomad-ui/utils/open-exec-url", ["exports"], function (_exports) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = openExecUrl;
  0; //eaimeta@70e063a35619d71feaimeta@70e063a35619d71f

  /**
   * Copyright (c) HashiCorp, Inc.
   * SPDX-License-Identifier: MPL-2.0
   */
  function openExecUrl(url) {
    window.open(url, '_blank', 'width=973,height=490,location=1');
  }
});
;define("nomad-ui/utils/ott-exchange-error", ["exports"], function (_exports) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71feaimeta@70e063a35619d71f

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  /**
   * Copyright (c) HashiCorp, Inc.
   * SPDX-License-Identifier: MPL-2.0
   */
  class OTTExchangeError extends Error {
    constructor() {
      super(...arguments);

      _defineProperty(this, "message", 'Failed to exchange the one-time token.');
    }

  }

  _exports.default = OTTExchangeError;

  window.__CLASSIC_OWN_CLASSES__.set(OTTExchangeError, true);
});
;define("nomad-ui/utils/path-tree", ["exports", "nomad-ui/models/variable", "@ember/array/mutable", "nomad-ui/helpers/trim-path"], function (_exports, _variable, _mutable, _trimPath) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"nomad-ui/models/variable",0,"@ember/array/mutable",0,"nomad-ui/helpers/trim-path"eaimeta@70e063a35619d71f

  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

  //#region Types

  /**
   * @typedef {Object} VariableFile
   * @property {string} path - the folder path containing our "file", relative to parent
   * @property {string} name - the variable "file" name
   * @property {string} absoluteFilePath - the folder path containing our "file", absolute
   * @property {VariableModel} variable - the variable itself
   */

  /**
   * @typedef {Object} VariableFolder
   * @property {Array<VariableFile>} files
   * @property {NestedPathTreeNode} children
   * @property {string} absolutePath - the folder path containing our "file", absolute
   */

  /**
   * @typedef {Object.<string, VariableFolder>} NestedPathTreeNode
   */
  //#endregion Types

  /**
   * @returns {NestedPathTreeNode}
   */
  class PathTree {
    /**
     * @param {MutableArray<VariableModel>} variables
     */
    constructor(_variables) {
      var _this = this;

      _defineProperty(this, "root", {
        children: {},
        files: [],
        absolutePath: ''
      });

      _defineProperty(this, "generatePaths", variables => {
        variables.forEach(variable => {
          const path = (0, _trimPath.trimPath)([variable.path]).split('/');
          path.reduce((acc, segment, index, arr) => {
            if (index === arr.length - 1) {
              // If it's a file (end of the segment array)
              acc.files.push({
                name: segment,
                absoluteFilePath: path.join('/'),
                path: arr.slice(0, index + 1).join('/'),
                variable
              });
            } else {
              // Otherwise, it's a folder
              if (!acc.children[segment]) {
                acc.children[segment] = {
                  children: {},
                  files: [],
                  absolutePath: (0, _trimPath.trimPath)([`${acc.absolutePath || ''}/${segment}`])
                };
              }
            }

            return acc.children[segment];
          }, this.root);
        });
        return {
          root: this.root
        };
      });

      _defineProperty(this, "findPath", function (name) {
        let root = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _this.paths.root;

        if (root.absolutePath === name) {
          return root;
        }

        if (root.children) {
          return Object.keys(root.children).reduce((acc, cur) => {
            if (!acc) {
              return _this.findPath(name, root.children[cur]);
            }

            return acc;
          }, null);
        }
      });

      this.variables = _variables;
      this.paths = this.generatePaths(_variables);
    }
    /**
     * @type {VariableFolder}
     */


  }

  _exports.default = PathTree;

  window.__CLASSIC_HAS_CONSTRUCTOR__.set(PathTree, true);

  window.__CLASSIC_OWN_CLASSES__.set(PathTree, true);
});
;define("nomad-ui/utils/properties/glimmer-style-string", ["exports", "@ember/template"], function (_exports, _template) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = styleString;
  0; //eaimeta@70e063a35619d71f0,"@ember/template"eaimeta@70e063a35619d71f

  // A decorator for transforming an object into an html
  // compatible style attribute string.
  //
  // ex. @styleString
  //     get styleStr() {
  //       return { color: '#FF0', 'border-width': '1px' }
  //     }
  function styleString(target, name, descriptor) {
    if (!descriptor.get) throw new Error('styleString only works on getters');
    const orig = descriptor.get;

    descriptor.get = function () {
      const styles = orig.apply(this);
      let str = '';

      if (styles) {
        str = Object.keys(styles).reduce(function (arr, key) {
          const val = styles[key];
          arr.push(key + ':' + (typeof val === 'number' ? val.toFixed(2) + 'px' : val));
          return arr;
        }, []).join(';');
      }

      return (0, _template.htmlSafe)(str);
    };

    return descriptor;
  }
});
;define("nomad-ui/utils/properties/job-client-status", ["exports", "@ember/object", "nomad-ui/utils/match-glob"], function (_exports, _object, _matchGlob) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = jobClientStatus;
  0; //eaimeta@70e063a35619d71f0,"@ember/object",0,"nomad-ui/utils/match-glob"eaimeta@70e063a35619d71f

  const STATUS = ['queued', 'notScheduled', 'starting', 'running', 'complete', 'degraded', 'failed', 'lost', 'unknown']; // An Ember.Computed property that computes the aggregated status of a job in a
  // client based on the desiredStatus of each allocation placed in the client.
  //
  // ex. clientStaus: jobClientStatus('nodes', 'job'),

  function jobClientStatus(nodesKey, jobKey) {
    return (0, _object.computed)(`${nodesKey}.[]`, `${jobKey}.{datacenters,status,allocations.@each.clientStatus,taskGroups}`, function () {
      const job = this.get(jobKey);
      const nodes = this.get(nodesKey); // Filter nodes by the datacenters defined in the job.

      const filteredNodes = nodes.filter(n => {
        return job.datacenters.find(dc => {
          return !!(0, _matchGlob.default)(dc, n.datacenter);
        });
      });

      if (job.status === 'pending') {
        return allQueued(filteredNodes);
      } // Group the job allocations by the ID of the client that is running them.


      const allocsByNodeID = {};
      job.allocations.forEach(a => {
        const nodeId = a.belongsTo('node').id();

        if (!allocsByNodeID[nodeId]) {
          allocsByNodeID[nodeId] = [];
        }

        allocsByNodeID[nodeId].push(a);
      });
      const result = {
        byNode: {},
        byStatus: {},
        totalNodes: filteredNodes.length
      };
      filteredNodes.forEach(n => {
        const status = jobStatus(allocsByNodeID[n.id], job.taskGroups.length);
        result.byNode[n.id] = status;

        if (!result.byStatus[status]) {
          result.byStatus[status] = [];
        }

        result.byStatus[status].push(n.id);
      });
      result.byStatus = canonicalizeStatus(result.byStatus);
      return result;
    });
  }

  function allQueued(nodes) {
    const nodeIDs = nodes.map(n => n.id);
    return {
      byNode: Object.fromEntries(nodeIDs.map(id => [id, 'queued'])),
      byStatus: canonicalizeStatus({
        queued: nodeIDs
      }),
      totalNodes: nodes.length
    };
  } // canonicalizeStatus makes sure all possible statuses are present in the final
  // returned object. Statuses missing from the input will be assigned an emtpy
  // array.


  function canonicalizeStatus(status) {
    for (let i = 0; i < STATUS.length; i++) {
      const s = STATUS[i];

      if (!status[s]) {
        status[s] = [];
      }
    }

    return status;
  } // jobStatus computes the aggregated status of a job in a client.
  //
  // `allocs` are the list of allocations for a job that are placed in a specific
  // client.
  // `expected` is the number of allocations the client should have.


  function jobStatus(allocs, expected) {
    // The `pending` status has already been checked, so if at this point the
    // client doesn't have any allocations we assume that it was not considered
    // for scheduling for some reason.
    if (!allocs) {
      return 'notScheduled';
    } // If there are some allocations, but not how many we expected, the job is
    // considered `degraded` since it did fully run in this client.


    if (allocs.length < expected) {
      return 'degraded';
    } // Count how many allocations are in each `clientStatus` value.


    const summary = allocs.filter(a => !a.isOld).reduce((acc, a) => {
      const status = a.clientStatus;

      if (!acc[status]) {
        acc[status] = 0;
      }

      acc[status]++;
      return acc;
    }, {}); // Theses statuses are considered terminal, i.e., an allocation will never
    // move from this status to another.
    // If all of the expected allocations are in one of these statuses, the job
    // as a whole is considered to be in the same status.

    const terminalStatuses = ['failed', 'lost', 'complete'];

    for (let i = 0; i < terminalStatuses.length; i++) {
      const s = terminalStatuses[i];

      if (summary[s] === expected) {
        return s;
      }
    } // It only takes one allocation to be in one of these statuses for the
    // entire job to be considered in a given status.


    if (summary['failed'] > 0 || summary['lost'] > 0) {
      return 'degraded';
    }

    if (summary['running'] > 0) {
      return 'running';
    }

    if (summary['unknown'] > 0) {
      return 'unknown';
    }

    return 'starting';
  }
});
;define("nomad-ui/utils/properties/local-storage", ["exports", "@ember/object"], function (_exports, _object) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = localStorageProperty;
  0; //eaimeta@70e063a35619d71f0,"@ember/object"eaimeta@70e063a35619d71f

  // An Ember.Computed property that persists set values in localStorage
  // and will attempt to get its initial value from localStorage before
  // falling back to a default.
  //
  // ex. showTutorial: localStorageProperty('nomadTutorial', true),
  function localStorageProperty(localStorageKey, defaultValue) {
    return (0, _object.computed)({
      get() {
        const persistedValue = window.localStorage.getItem(localStorageKey);
        return persistedValue ? JSON.parse(persistedValue) : defaultValue;
      },

      set(key, value) {
        window.localStorage.setItem(localStorageKey, JSON.stringify(value));
        return value;
      }

    });
  }
});
;define("nomad-ui/utils/properties/short-uuid", ["exports", "@ember/object"], function (_exports, _object) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = shortUUIDProperty;
  0; //eaimeta@70e063a35619d71f0,"@ember/object"eaimeta@70e063a35619d71f

  // An Ember.Computed property for taking the first segment
  // of a uuid.
  //
  // ex. id: 123456-7890-abcd-efghijk
  //     short: shortUUIDProperty('id') // 123456
  function shortUUIDProperty(uuidKey) {
    return (0, _object.computed)(uuidKey, function () {
      var _this$get;

      return (_this$get = this.get(uuidKey)) === null || _this$get === void 0 ? void 0 : _this$get.split('-')[0];
    });
  }
});
;define("nomad-ui/utils/properties/style-string", ["exports", "@ember/object", "@ember/template"], function (_exports, _object, _template) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = styleStringProperty;
  0; //eaimeta@70e063a35619d71f0,"@ember/object",0,"@ember/template"eaimeta@70e063a35619d71f

  // An Ember.Computed property for transforming an object into an
  // html compatible style attribute
  //
  // ex. styleProps: { color: '#FF0', border-width: '1px' }
  //     styleStr: styleStringProperty('styleProps') // color:#FF0;border-width:1px
  function styleStringProperty(prop) {
    return (0, _object.computed)(prop, function () {
      const styles = (0, _object.get)(this, prop);
      let str = '';

      if (styles) {
        str = Object.keys(styles).reduce(function (arr, key) {
          const val = styles[key];
          arr.push(key + ':' + (typeof val === 'number' ? val.toFixed(2) + 'px' : val));
          return arr;
        }, []).join(';');
      }

      return (0, _template.htmlSafe)(str);
    });
  }
});
;define("nomad-ui/utils/properties/sum-aggregation", ["exports", "@ember/object"], function (_exports, _object) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = sumAggregationProperty;
  0; //eaimeta@70e063a35619d71f0,"@ember/object"eaimeta@70e063a35619d71f

  // An Ember.Computed property for summating all properties from a
  // set of objects.
  //
  // ex. list: [ { foo: 1 }, { foo: 3 } ]
  //     sum: sumAggregationProperty('list', 'foo') // 4
  function sumAggregationProperty(listKey, propKey) {
    return (0, _object.computed)(`${listKey}.@each.${propKey}`, function () {
      return this.get(listKey).mapBy(propKey).reduce((sum, count) => sum + count, 0);
    });
  }
});
;define("nomad-ui/utils/properties/uniquely", ["exports", "@ember/object", "@ember/object/internals"], function (_exports, _object, _internals) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = uniquely;
  0; //eaimeta@70e063a35619d71f0,"@ember/object",0,"@ember/object/internals"eaimeta@70e063a35619d71f

  // An Ember.Computed property for creating a unique string with a
  // common prefix (based on the guid of the object with the property)
  //
  // ex. @uniquely('name') // 'name-ember129383'
  function uniquely(prefix) {
    return (0, _object.computed)(function () {
      return `${prefix}-${(0, _internals.guidFor)(this)}`;
    });
  }
});
;define("nomad-ui/utils/properties/watch", ["exports", "ember", "@ember/object", "@ember/debug", "rsvp", "ember-concurrency", "fetch", "nomad-ui/utils/wait", "nomad-ui/adapters/watchable", "nomad-ui/config/environment"], function (_exports, _ember, _object, _debug, _rsvp, _emberConcurrency, _fetch, _wait, _watchable, _environment) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.watchRecord = watchRecord;
  _exports.watchRelationship = watchRelationship;
  _exports.watchNonStoreRecords = watchNonStoreRecords;
  _exports.watchAll = watchAll;
  _exports.watchQuery = watchQuery;
  0; //eaimeta@70e063a35619d71f0,"ember",0,"@ember/object",0,"@ember/debug",0,"rsvp",0,"ember-concurrency",0,"fetch",0,"nomad-ui/utils/wait",0,"nomad-ui/adapters/watchable",0,"nomad-ui/config/environment"eaimeta@70e063a35619d71f

  const isEnabled = _environment.default.APP.blockingQueries !== false;
  /**
   * @typedef watchRecordOptions
   * @property {boolean} [shouldSurfaceErrors=false] - If true, the task will throw errors instead of yielding them.
   */

  /**
   * @param {string} modelName - The name of the model to watch.
   * @param {watchRecordOptions} [options]
   */

  function watchRecord(modelName) {
    let {
      shouldSurfaceErrors = false
    } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
    return (0, _emberConcurrency.task)(function* (id) {
      let throttle = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2000;
      (true && !(this.store.adapterFor(modelName) instanceof _watchable.default) && (0, _debug.assert)('To watch a record, the record adapter MUST extend Watchable', this.store.adapterFor(modelName) instanceof _watchable.default));

      if (typeof id === 'object') {
        id = (0, _object.get)(id, 'id');
      }

      while (isEnabled && !_ember.default.testing) {
        const controller = new _fetch.AbortController();

        try {
          yield _rsvp.default.all([this.store.findRecord(modelName, id, {
            reload: true,
            adapterOptions: {
              watch: true,
              abortController: controller
            }
          }), (0, _wait.default)(throttle)]);
        } catch (e) {
          if (shouldSurfaceErrors) {
            throw e;
          }

          yield e;
          break;
        } finally {
          controller.abort();
        }
      }
    }).drop();
  }

  function watchRelationship(relationshipName) {
    let replace = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
    return (0, _emberConcurrency.task)(function* (model) {
      let throttle = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2000;
      (true && !(this.store.adapterFor(model.constructor.modelName) instanceof _watchable.default) && (0, _debug.assert)('To watch a relationship, the adapter of the model provided to the watchRelationship task MUST extend Watchable', this.store.adapterFor(model.constructor.modelName) instanceof _watchable.default));

      while (isEnabled && !_ember.default.testing) {
        const controller = new _fetch.AbortController();

        try {
          yield _rsvp.default.all([this.store.adapterFor(model.constructor.modelName).reloadRelationship(model, relationshipName, {
            watch: true,
            abortController: controller,
            replace
          }), (0, _wait.default)(throttle)]);
        } catch (e) {
          yield e;
          break;
        } finally {
          controller.abort();
        }
      }
    }).drop();
  }

  function watchNonStoreRecords(modelName) {
    return (0, _emberConcurrency.task)(function* (model, asyncCallbackName) {
      let throttle = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 5000;
      (true && !(this.store.adapterFor(modelName) instanceof _watchable.default) && (0, _debug.assert)('To watch a non-store records, the adapter of the model provided to the watchNonStoreRecords task MUST extend Watchable', this.store.adapterFor(modelName) instanceof _watchable.default));

      while (isEnabled && !_ember.default.testing) {
        const controller = new _fetch.AbortController();

        try {
          yield model[asyncCallbackName]();
          yield (0, _wait.default)(throttle);
        } catch (e) {
          yield e;
          break;
        } finally {
          controller.abort();
        }
      }
    }).drop();
  }

  function watchAll(modelName) {
    return (0, _emberConcurrency.task)(function* () {
      let throttle = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 2000;
      (true && !(this.store.adapterFor(modelName) instanceof _watchable.default) && (0, _debug.assert)('To watch all, the respective adapter MUST extend Watchable', this.store.adapterFor(modelName) instanceof _watchable.default));

      while (isEnabled && !_ember.default.testing) {
        const controller = new _fetch.AbortController();

        try {
          yield _rsvp.default.all([this.store.findAll(modelName, {
            reload: true,
            adapterOptions: {
              watch: true,
              abortController: controller
            }
          }), (0, _wait.default)(throttle)]);
        } catch (e) {
          yield e;
          break;
        } finally {
          controller.abort();
        }
      }
    }).drop();
  }

  function watchQuery(modelName) {
    return (0, _emberConcurrency.task)(function* (params) {
      let throttle = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 10000;
      (true && !(this.store.adapterFor(modelName) instanceof _watchable.default) && (0, _debug.assert)('To watch a query, the adapter for the type being queried MUST extend Watchable', this.store.adapterFor(modelName) instanceof _watchable.default));

      while (isEnabled && !_ember.default.testing) {
        const controller = new _fetch.AbortController();

        try {
          yield _rsvp.default.all([this.store.query(modelName, params, {
            reload: true,
            adapterOptions: {
              watch: true,
              abortController: controller
            }
          }), (0, _wait.default)(throttle)]);
        } catch (e) {
          yield e;
          break;
        } finally {
          controller.abort();
        }
      }
    }).drop();
  }
});
;define("nomad-ui/utils/qp-serialize", ["exports", "@ember/object"], function (_exports, _object) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.deserializedQueryParam = _exports.deserialize = _exports.serialize = void 0;
  0; //eaimeta@70e063a35619d71f0,"@ember/object"eaimeta@70e063a35619d71f

  // An unattractive but robust way to encode query params
  const serialize = val => {
    if (typeof val === 'string' || typeof val === 'number') return val;
    return val.length ? JSON.stringify(val) : '';
  };

  _exports.serialize = serialize;

  const deserialize = str => {
    try {
      return JSON.parse(str).compact().without('');
    } catch (e) {
      return [];
    }
  }; // A computed property macro for deserializing a query param


  _exports.deserialize = deserialize;

  const deserializedQueryParam = qpKey => (0, _object.computed)(qpKey, function () {
    return deserialize(this.get(qpKey));
  });

  _exports.deserializedQueryParam = deserializedQueryParam;
});
;define("nomad-ui/utils/remove-record", ["exports"], function (_exports) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = removeRecord;
  0; //eaimeta@70e063a35619d71feaimeta@70e063a35619d71f

  /**
   * Copyright (c) HashiCorp, Inc.
   * SPDX-License-Identifier: MPL-2.0
   */
  // Unlinks a record from all its relationships and unloads it from
  // the store.
  function removeRecord(store, record) {
    // Collect relationship property names and types
    const relationshipMeta = [];
    record.eachRelationship((key, _ref) => {
      let {
        kind
      } = _ref;
      relationshipMeta.push({
        key,
        kind
      });
    }); // Push an update to this record with the relationships nulled out.
    // This unlinks the relationship from the models that aren't about to
    // be unloaded.

    store.push({
      data: {
        id: record.get('id'),
        type: record.constructor.modelName,
        relationships: relationshipMeta.reduce((hash, rel) => {
          hash[rel.key] = {
            data: rel.kind === 'hasMany' ? [] : null
          };
          return hash;
        }, {})
      }
    }); // Now that the record has no attachments, it can be safely unloaded
    // from the store.

    store.unloadRecord(record);
  }
});
;define("nomad-ui/utils/resources-diffs", ["exports", "d3-format", "nomad-ui/utils/units"], function (_exports, _d3Format, _units) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71f0,"d3-format",0,"nomad-ui/utils/units"eaimeta@70e063a35619d71f

  const formatPercent = _d3Format.default.format('+.0%');

  const sumAggregate = (total, val) => total + val;

  class ResourcesDiffs {
    constructor(model, multiplier, recommendations, excludedRecommendations) {
      this.model = model;
      this.multiplier = multiplier;
      this.recommendations = recommendations;
      this.excludedRecommendations = excludedRecommendations.filter(r => recommendations.includes(r));
    }

    get cpu() {
      const included = this.includedRecommendations.filterBy('resource', 'CPU');
      const excluded = this.excludedRecommendations.filterBy('resource', 'CPU');
      return new ResourceDiffs(this.model.reservedCPU, 'reservedCPU', 'MHz', this.multiplier, included, excluded);
    }

    get memory() {
      const included = this.includedRecommendations.filterBy('resource', 'MemoryMB');
      const excluded = this.excludedRecommendations.filterBy('resource', 'MemoryMB');
      return new ResourceDiffs(this.model.reservedMemory, 'reservedMemory', 'MiB', this.multiplier, included, excluded);
    }

    get includedRecommendations() {
      return this.recommendations.reject(r => this.excludedRecommendations.includes(r));
    }

  }

  _exports.default = ResourcesDiffs;

  window.__CLASSIC_HAS_CONSTRUCTOR__.set(ResourcesDiffs, true);

  window.__CLASSIC_OWN_CLASSES__.set(ResourcesDiffs, true);

  class ResourceDiffs {
    constructor(base, baseTaskPropertyName, units, multiplier, includedRecommendations, excludedRecommendations) {
      this.base = base;
      this.baseTaskPropertyName = baseTaskPropertyName;
      this.units = units;
      this.multiplier = multiplier;
      this.included = includedRecommendations;
      this.excluded = excludedRecommendations;
    }

    get recommended() {
      if (this.included.length) {
        return this.included.mapBy('value').reduce(sumAggregate, 0) + this.excluded.mapBy(`task.${this.baseTaskPropertyName}`).reduce(sumAggregate, 0);
      } else {
        return this.base;
      }
    }

    get delta() {
      return this.recommended - this.base;
    }

    get aggregateDiff() {
      return this.delta * this.multiplier;
    }

    get absoluteAggregateDiff() {
      const delta = Math.abs(this.aggregateDiff);

      if (this.units === 'MiB') {
        return (0, _units.formatBytes)(delta, 'MiB');
      } else if (this.units === 'MHz') {
        return (0, _units.formatHertz)(delta, 'MHz');
      } else {
        return `${delta} ${this.units}`;
      }
    }

    get signedDiff() {
      const delta = this.aggregateDiff;
      return `${signForDelta(delta)}${this.absoluteAggregateDiff}`;
    }

    get percentDiff() {
      return formatPercent(this.delta / this.base);
    }

  }

  window.__CLASSIC_HAS_CONSTRUCTOR__.set(ResourceDiffs, true);

  window.__CLASSIC_OWN_CLASSES__.set(ResourceDiffs, true);

  function signForDelta(delta) {
    if (delta > 0) {
      return '+';
    } else if (delta < 0) {
      return '-';
    }

    return '';
  }
});
;define("nomad-ui/utils/statechart", ["exports", "ember-statecharts/utils/statechart"], function (_exports, _statechart) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _statechart.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-statecharts/utils/statechart"eaimeta@70e063a35619d71f
});
;define("nomad-ui/utils/stream-frames", ["exports", "text-encoder-lite", "base64-js"], function (_exports, _textEncoderLite, _base64Js) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.decode = decode;
  0; //eaimeta@70e063a35619d71f0,"text-encoder-lite",0,"base64-js"eaimeta@70e063a35619d71f

  const decoder = new _textEncoderLite.TextDecoderLite('utf-8');
  /**
   *
   * @param {string} chunk
   * Chunk is an undelimited string of valid JSON objects as returned by a streaming endpoint.
   * Each JSON object in a chunk contains two properties:
   *   Offset {number} The index from the beginning of the stream at which this JSON object starts
   *   Data {string} A base64 encoded string representing the contents of the stream this JSON
   *                 object represents.
   */

  function decode(chunk) {
    const lines = chunk.replace(/\}\{/g, '}\n{').split('\n').without('');
    const frames = lines.map(line => JSON.parse(line)).filter(frame => frame.Data);

    if (frames.length) {
      frames.forEach(frame => frame.Data = b64decode(frame.Data));
      return {
        offset: frames[frames.length - 1].Offset,
        message: frames.mapBy('Data').join('')
      };
    }

    return {};
  }

  function b64decode(str) {
    return decoder.decode(_base64Js.default.toByteArray(str));
  }
});
;define("nomad-ui/utils/styleguide/product-metadata", ["exports"], function (_exports) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = void 0;
  0; //eaimeta@70e063a35619d71feaimeta@70e063a35619d71f

  /**
   * Copyright (c) HashiCorp, Inc.
   * SPDX-License-Identifier: MPL-2.0
   */
  var _default = [{
    name: 'Nomad',
    lang: 'golang',
    desc: 'Nomad is a flexible, enterprise-grade cluster scheduler designed to easily integrate into existing workflows. Nomad can run a diverse workload of micro-service, batch, containerized and non-containerized applications.',
    link: 'https://www.nomadproject.io/'
  }, {
    name: 'Terraform',
    lang: 'golang',
    desc: 'Terraform is a tool for building, changing, and combining infrastructure safely and efficiently.',
    link: 'https://www.terraform.io/'
  }, {
    name: 'Vault',
    lang: 'golang',
    desc: 'A tool for secrets management, encryption as a service, and privileged access management',
    link: 'https://www.vaultproject.io/'
  }, {
    name: 'Consul',
    lang: 'golang',
    desc: 'Consul is a distributed, highly available, and data center aware solution to connect and configure applications across dynamic, distributed infrastructure.',
    link: 'https://www.consul.io/'
  }, {
    name: 'Vagrant',
    lang: 'ruby',
    desc: 'Vagrant is a tool for building and distributing development environments.',
    link: 'https://www.vagrantup.com/'
  }, {
    name: 'Packer',
    lang: 'golang',
    desc: 'Packer is a tool for creating identical machine images for multiple platforms from a single source configuration.',
    link: 'https://www.packer.io/'
  }];
  _exports.default = _default;
});
;define("nomad-ui/utils/timeout", ["exports", "rsvp"], function (_exports, _rsvp) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = timeout;
  0; //eaimeta@70e063a35619d71f0,"rsvp"eaimeta@70e063a35619d71f

  // An always failing promise used to race against other promises
  function timeout(duration) {
    return new _rsvp.default.Promise((resolve, reject) => {
      setTimeout(() => {
        reject(`Timeout of ${duration}ms exceeded`);
      }, duration);
    });
  }
});
;define("nomad-ui/utils/titleize", ["exports", "ember-cli-string-helpers/utils/titleize"], function (_exports, _titleize) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  Object.defineProperty(_exports, "default", {
    enumerable: true,
    get: function () {
      return _titleize.default;
    }
  });
  0; //eaimeta@70e063a35619d71f0,"ember-cli-string-helpers/utils/titleize"eaimeta@70e063a35619d71f
});
;define("nomad-ui/utils/units", ["exports"], function (_exports) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.reduceBytes = reduceBytes;
  _exports.reduceHertz = reduceHertz;
  _exports.formatBytes = formatBytes;
  _exports.formatHertz = formatHertz;
  _exports.formatScheduledBytes = formatScheduledBytes;
  _exports.formatScheduledHertz = formatScheduledHertz;
  _exports.replaceMinus = replaceMinus;
  _exports.HERTZ_UNITS = _exports.BYTES_UNITS = void 0;
  0; //eaimeta@70e063a35619d71feaimeta@70e063a35619d71f

  /**
   * Copyright (c) HashiCorp, Inc.
   * SPDX-License-Identifier: MPL-2.0
   */
  const BYTES_UNITS = ['Bytes', 'KiB', 'MiB', 'GiB', 'TiB', 'PiB'];
  _exports.BYTES_UNITS = BYTES_UNITS;
  const HERTZ_UNITS = ['Hz', 'KHz', 'MHz', 'GHz', 'THz', 'PHz'];
  _exports.HERTZ_UNITS = HERTZ_UNITS;
  const locale = window.navigator.locale || 'en';
  const decimalFormatter = new Intl.NumberFormat(locale, {
    maximumFractionDigits: 2
  });
  const roundFormatter = new Intl.NumberFormat(locale, {
    maximumFractionDigits: 0
  });

  const unitReducer = function () {
    let number = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
    let interval = arguments.length > 1 ? arguments[1] : undefined;
    let units = arguments.length > 2 ? arguments[2] : undefined;
    let maxUnit = arguments.length > 3 ? arguments[3] : undefined;
    let startingUnit = arguments.length > 4 ? arguments[4] : undefined;

    if (startingUnit && units.indexOf(startingUnit) !== -1) {
      units = units.slice(units.indexOf(startingUnit));
    }

    if (maxUnit && units.indexOf(maxUnit) !== -1) {
      units = units.slice(0, units.indexOf(maxUnit) + 1);
    } // Reduce negative numbers by temporarily flipping them positive.


    const negative = number < 0;

    if (negative) {
      number *= -1;
    }

    let unitIndex = 0;

    while (number >= interval && unitIndex < units.length - 1) {
      number /= interval;
      unitIndex++;
    }

    if (negative) {
      number *= -1;
    }

    return [number, units[unitIndex]];
  };

  function reduceBytes() {
    let bytes = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
    let maxUnitSize = arguments.length > 1 ? arguments[1] : undefined;
    let startingUnitSize = arguments.length > 2 ? arguments[2] : undefined;
    return unitReducer(bytes, 1024, BYTES_UNITS, maxUnitSize, startingUnitSize);
  }

  function reduceHertz() {
    let hertz = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
    let maxUnitSize = arguments.length > 1 ? arguments[1] : undefined;
    let startingUnitSize = arguments.length > 2 ? arguments[2] : undefined;
    return unitReducer(hertz, 1000, HERTZ_UNITS, maxUnitSize, startingUnitSize);
  } // General purpose formatters meant to reduce units as much
  // as possible.


  function formatBytes(bytes, startingUnitSize) {
    const [number, unit] = reduceBytes(bytes, null, startingUnitSize);
    return `${decimalFormatter.format(number)} ${unit}`;
  }

  function formatHertz(hertz, startingUnitSize) {
    const [number, unit] = reduceHertz(hertz, null, startingUnitSize);
    return `${decimalFormatter.format(number)} ${unit}`;
  } // Specialized formatters meant to reduce units to the resolution
  // the scheduler and job specs operate at.


  function formatScheduledBytes(bytes, startingUnitSize) {
    const [number, unit] = reduceBytes(bytes, 'MiB', startingUnitSize);
    return `${roundFormatter.format(number)} ${unit}`;
  }

  function formatScheduledHertz(hertz, startingUnitSize) {
    const [number, unit] = reduceHertz(hertz, 'MHz', startingUnitSize);
    return `${roundFormatter.format(number)} ${unit}`;
  } // Replaces the minus sign (−) with a hyphen (-).
  // https://github.com/d3/d3-format/releases/tag/v2.0.0


  function replaceMinus(input) {
    return input.replace('−', '-');
  }
});
;define("nomad-ui/utils/wait", ["exports", "rsvp"], function (_exports, _rsvp) {
  "use strict";

  Object.defineProperty(_exports, "__esModule", {
    value: true
  });
  _exports.default = wait;
  0; //eaimeta@70e063a35619d71f0,"rsvp"eaimeta@70e063a35619d71f

  // An always passing promise used to throttle other promises
  function wait(duration) {
    return new _rsvp.default.Promise(resolve => {
      setTimeout(() => {
        resolve(`Waited ${duration}ms`);
      }, duration);
    });
  }
});
;

;define('nomad-ui/config/environment', [], function() {
  var prefix = 'nomad-ui';
try {
  var metaName = prefix + '/config/environment';
  var rawConfig = document.querySelector('meta[name="' + metaName + '"]').getAttribute('content');
  var config = JSON.parse(decodeURIComponent(rawConfig));

  var exports = { 'default': config };

  Object.defineProperty(exports, '__esModule', { value: true });

  return exports;
}
catch(err) {
  throw new Error('Could not read config from meta tag with name "' + metaName + '".');
}

});

;
          if (!runningTests) {
            require("nomad-ui/app")["default"].create({"blockingQueries":true,"mirageScenario":"smallCluster","mirageWithNamespaces":true,"mirageWithTokens":true,"mirageWithRegions":true,"showStorybookLink":true});
          }
        
//# sourceMappingURL=nomad-ui.map
