Merge branch 'main' into chore-resolutions-mout
This commit is contained in:
29 files changed
+393
-179
No files matched your search
@@ -1,5 +1,5 @@
|
||||
<nav ...attributes class="rose-nav-breadcrumbs" aria-label="breadcrumbs">
|
||||
{{yield (hash
|
||||
link=(component "link-to" class="rose-nav-breadcrumbs-link")
|
||||
link=(component "rose/nav/link")
|
||||
)}}
|
||||
</nav>
|
||||
@@ -0,0 +1,9 @@
|
||||
{{#if @model}}
|
||||
<LinkTo @route={{@route}} @model={{@model}} class="rose-nav-link">
|
||||
{{yield}}
|
||||
</LinkTo>
|
||||
{{else}}
|
||||
<LinkTo @route={{@route}} class="rose-nav-link">
|
||||
{{yield}}
|
||||
</LinkTo>
|
||||
{{/if}}
|
||||
@@ -0,0 +1,23 @@
|
||||
import { Meta, Story, Preview } from '@storybook/addon-docs/blocks';
|
||||
import { hbs } from 'ember-cli-htmlbars';
|
||||
import { action } from '@storybook/addon-actions';
|
||||
import { text, boolean, select } from '@storybook/addon-knobs';
|
||||
|
||||
<Meta title="Rose|Nav|Link" component="Nav/Link" />
|
||||
|
||||
# Generic Navigation Link
|
||||
|
||||
Proxies the built-in `LinkTo` component, applying a class `rose-nav-link`.
|
||||
|
||||
```html
|
||||
<Rose::Nav::Link @route='index'>Text</nav.link>
|
||||
```
|
||||
|
||||
<Preview>
|
||||
<Story name="Basic Nav Link">{{
|
||||
template: hbs`
|
||||
<Rose::Nav::Link @route='index'>Text</nav.link>
|
||||
`,
|
||||
context: {},
|
||||
}}</Story>
|
||||
</Preview>
|
||||
@@ -12,7 +12,7 @@
|
||||
{{/if}}
|
||||
|
||||
{{yield (hash
|
||||
link=(component "link-to" class="rose-nav-link")
|
||||
link=(component "rose/nav/link")
|
||||
)}}
|
||||
|
||||
</nav>
|
||||
@@ -3,7 +3,7 @@
|
||||
class="rose-nav-tabs">
|
||||
|
||||
{{yield (hash
|
||||
link=(component "link-to" class="rose-nav-link")
|
||||
link=(component "rose/nav/link")
|
||||
)}}
|
||||
|
||||
</nav>
|
||||
@@ -6,7 +6,7 @@
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
|
||||
.rose-nav-breadcrumbs-link {
|
||||
.rose-nav-link {
|
||||
--color: var(--ui-gray);
|
||||
color: var(--color);
|
||||
text-decoration: none;
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
export { default } from 'rose/components/rose/nav/link';
|
||||
@@ -34,7 +34,7 @@
|
||||
"ember-cli-htmlbars": "^5.7.1",
|
||||
"ember-focus-trap": "^0.7.0",
|
||||
"ember-named-blocks-polyfill": "^0.2.5",
|
||||
"ember-radio-button": "^2.0.1",
|
||||
"ember-radio-button": "github:yapplabs/ember-radio-button.git#b2ab65f",
|
||||
"ember-uuid": "^2.1.0",
|
||||
"emberx-select": "github:adopted-ember-addons/emberx-select#bc5f774"
|
||||
},
|
||||
@@ -44,7 +44,7 @@
|
||||
"@ember/test-helpers": "^2.6.0",
|
||||
"@glimmer/component": "^1.0.4",
|
||||
"@glimmer/tracking": "^1.0.4",
|
||||
"@hashicorp/flight-icons": "^2.0.1",
|
||||
"@hashicorp/flight-icons": "^2.1.0",
|
||||
"@storybook/addon-a11y": "^6.3.12",
|
||||
"@storybook/addon-actions": "^6.3.10",
|
||||
"@storybook/addon-docs": "^6.3.8",
|
||||
|
||||
@@ -54,7 +54,10 @@ module('Integration | Component | rose/form/radio/group', function (hooks) {
|
||||
|
||||
test('it reflects active radiofield value in @selectedValue and triggers a @changed function', async function (assert) {
|
||||
assert.expect(5);
|
||||
this.changed = (value) => assert.ok(value);
|
||||
this.changed = (value) => {
|
||||
this.selectedValue = value;
|
||||
assert.ok(value);
|
||||
};
|
||||
await render(hbs`
|
||||
<Rose::Form::Radio::Group
|
||||
@name="bird"
|
||||
|
||||
@@ -21,6 +21,6 @@ module('Integration | Component | rose/nav/breadcrumbs', function (hooks) {
|
||||
<breadcrumbs.link @route="index" />
|
||||
<breadcrumbs.link @route="index" />
|
||||
</Rose::Nav::Breadcrumbs>`);
|
||||
assert.equal(findAll('.rose-nav-breadcrumbs-link').length, 2);
|
||||
assert.equal(findAll('.rose-nav-link').length, 2);
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,18 @@
|
||||
import { module, test } from 'qunit';
|
||||
import { setupRenderingTest } from 'ember-qunit';
|
||||
import { render, find } from '@ember/test-helpers';
|
||||
import hbs from 'htmlbars-inline-precompile';
|
||||
|
||||
module('Integration | Component | rose/nav/link', function (hooks) {
|
||||
setupRenderingTest(hooks);
|
||||
|
||||
test('it renders', async function (assert) {
|
||||
assert.expect(1);
|
||||
await render(hbs`
|
||||
<Rose::Nav::Link @route="index">
|
||||
Item Name
|
||||
</Rose::Nav::Link>
|
||||
`);
|
||||
assert.equal(find('.rose-nav-link').textContent.trim(), 'Item Name');
|
||||
});
|
||||
});
|
||||
@@ -89,6 +89,8 @@
|
||||
"node-fetch": "^2.6.7",
|
||||
"shelljs": "^0.8.5",
|
||||
"ember-template-recast": "^6.0.0",
|
||||
"engine.io": "^5.2.1",
|
||||
"markdown-it": "^12.3.2",
|
||||
"mout": "^1.2.3"
|
||||
},
|
||||
"config": {
|
||||
|
||||
@@ -1,9 +1,118 @@
|
||||
import BreadCrumbsComponent from 'ember-breadcrumbs/components/bread-crumbs';
|
||||
import Component from '@glimmer/component';
|
||||
import EmberObject, { computed, get } from '@ember/object';
|
||||
import { inject as service } from '@ember/service';
|
||||
import { isBlank, isPresent } from '@ember/utils';
|
||||
import { A } from '@ember/array';
|
||||
|
||||
export default class crumbs extends BreadCrumbsComponent {
|
||||
// This component copies and modifies source from ember-breadcrumbs 0.2.3,
|
||||
// updating it for Ember v4 compatibility.
|
||||
|
||||
// The original copyright is below.
|
||||
|
||||
/*
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2014-2019 Chris Farber
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
*/
|
||||
|
||||
export default class BreadcrumbsComponent extends Component {
|
||||
// =services
|
||||
|
||||
@service session;
|
||||
@service scope;
|
||||
@service router;
|
||||
|
||||
// =properties
|
||||
|
||||
/* eslint-disable-next-line ember/require-computed-property-dependencies */
|
||||
@computed('router.currentRouteName')
|
||||
get routeInfos() {
|
||||
/* eslint-disable-next-line ember/no-private-routing-service */
|
||||
return this.router._router._routerMicrolib.currentRouteInfos;
|
||||
}
|
||||
|
||||
/*
|
||||
For the pathNames and controllers properties, we must be careful not to NOT
|
||||
specify the properties of the route in our dependent keys.
|
||||
|
||||
Observing the controller property of the route causes some serious problems:
|
||||
https://github.com/chrisfarber/ember-breadcrumbs/issues/21
|
||||
*/
|
||||
|
||||
@computed('routeInfos.[]')
|
||||
get pathNames() {
|
||||
return this.routeInfos.map(function (routeInfo) {
|
||||
return routeInfo.name;
|
||||
});
|
||||
}
|
||||
|
||||
@computed('routeInfos.[]')
|
||||
get controllers() {
|
||||
return this.routeInfos.map(function (routeInfo) {
|
||||
var route = routeInfo.route || routeInfo.handler;
|
||||
return route.controller;
|
||||
});
|
||||
}
|
||||
|
||||
@computed(
|
||||
'controllers.@each.{breadCrumbs,breadCrumb,breadCrumbPath,breadCrumbModel}',
|
||||
'pathNames.[]'
|
||||
)
|
||||
get breadCrumbs() {
|
||||
var controllers = this.controllers;
|
||||
var defaultPaths = this.pathNames;
|
||||
var breadCrumbs = A([]);
|
||||
|
||||
controllers.forEach(function (controller, index) {
|
||||
var crumbs = controller.breadCrumbs || A([]);
|
||||
var singleCrumb = controller.breadCrumb;
|
||||
|
||||
if (!isBlank(singleCrumb)) {
|
||||
crumbs.push({
|
||||
label: singleCrumb,
|
||||
path: controller.breadCrumbPath,
|
||||
model: controller.breadCrumbModel,
|
||||
});
|
||||
}
|
||||
|
||||
crumbs.forEach(function (crumb) {
|
||||
breadCrumbs.addObject(
|
||||
EmberObject.create({
|
||||
label: crumb.label,
|
||||
path: crumb.path || defaultPaths[index],
|
||||
model: crumb.model,
|
||||
linkable: isPresent(crumb.linkable)
|
||||
? crumb.linkable
|
||||
: crumb.path !== false,
|
||||
isCurrent: false,
|
||||
})
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
var deepestCrumb = get(breadCrumbs, 'lastObject');
|
||||
if (deepestCrumb) {
|
||||
deepestCrumb.isCurrent = true;
|
||||
}
|
||||
|
||||
return breadCrumbs;
|
||||
}
|
||||
}
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
import Controller from '@ember/controller';
|
||||
|
||||
export default class ScopesScopeHostCatalogsHostCatalogHostSetsHostSetHostsHostController extends Controller {
|
||||
// =attributes
|
||||
|
||||
/**
|
||||
* A role breadcrumb
|
||||
* @type {string}
|
||||
*/
|
||||
get breadCrumb() {
|
||||
return this.model.displayName;
|
||||
}
|
||||
}
|
||||
@@ -91,7 +91,9 @@ Router.map(function () {
|
||||
this.route('host-sets', function () {
|
||||
this.route('new');
|
||||
this.route('host-set', { path: ':host_set_id' }, function () {
|
||||
this.route('hosts');
|
||||
this.route('hosts', function () {
|
||||
this.route('host', { path: ':host_id' }, function () {});
|
||||
});
|
||||
this.route('add-hosts');
|
||||
this.route('create-and-add-host');
|
||||
});
|
||||
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
import Route from '@ember/routing/route';
|
||||
|
||||
export default class ScopesScopeHostCatalogsHostCatalogHostSetsHostSetHostsHostRoute extends Route {}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
import Route from '@ember/routing/route';
|
||||
|
||||
export default class ScopesScopeHostCatalogsHostCatalogHostSetsHostSetHostsHostIndexRoute extends Route {}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
import Route from '@ember/routing/route';
|
||||
|
||||
export default class ScopesScopeHostCatalogsHostCatalogHostSetsHostSetHostsIndexRoute extends Route {}
|
||||
+1
-81
@@ -1,83 +1,3 @@
|
||||
{{page-title (t 'resources.host.title_plural')}}
|
||||
|
||||
{{#if @model.hosts}}
|
||||
|
||||
<Rose::Table as |table|>
|
||||
<table.header as |header|>
|
||||
<header.row as |row|>
|
||||
<row.headerCell>{{t 'form.name.label'}}</row.headerCell>
|
||||
<row.headerCell>{{t 'form.type.label'}}</row.headerCell>
|
||||
<row.headerCell>{{t 'form.id.label'}}</row.headerCell>
|
||||
{{#if @model.isStatic}}
|
||||
<row.headerCell>{{t 'titles.actions'}}</row.headerCell>
|
||||
{{/if}}
|
||||
</header.row>
|
||||
</table.header>
|
||||
<table.body as |body|>
|
||||
{{#each @model.hosts as |host|}}
|
||||
<body.row as |row|>
|
||||
<row.headerCell>
|
||||
<LinkTo
|
||||
@route='scopes.scope.host-catalogs.host-catalog.hosts.host'
|
||||
@model={{host.id}}
|
||||
>
|
||||
{{host.displayName}}
|
||||
</LinkTo>
|
||||
<p>{{host.description}}</p>
|
||||
</row.headerCell>
|
||||
<row.cell>
|
||||
<HostCatalogTypeBadge @model={{host}} />
|
||||
</row.cell>
|
||||
<row.cell>
|
||||
<Copyable
|
||||
@text={{host.id}}
|
||||
@buttonText={{t 'actions.copy-to-clipboard'}}
|
||||
@acknowledgeText={{t 'states.copied'}}
|
||||
>
|
||||
<code>{{host.id}}</code>
|
||||
</Copyable>
|
||||
</row.cell>
|
||||
<row.cell>
|
||||
{{#if (can 'removeHosts hostSet' @model.hostSet)}}
|
||||
<Rose::Dropdown
|
||||
@icon='flight-icons/svg/more-horizontal-16'
|
||||
@iconOnly={{true}}
|
||||
@showCaret={{false}}
|
||||
@dropdownRight={{true}}
|
||||
@text='{{t 'actions.manage'}}'
|
||||
as |dropdown|
|
||||
>
|
||||
<dropdown.button
|
||||
@style='danger'
|
||||
{{on 'click' (route-action 'removeHost' @model.hostSet host)}}
|
||||
>
|
||||
{{t 'actions.remove'}}
|
||||
</dropdown.button>
|
||||
</Rose::Dropdown>
|
||||
{{/if}}
|
||||
</row.cell>
|
||||
</body.row>
|
||||
{{/each}}
|
||||
</table.body>
|
||||
</Rose::Table>
|
||||
|
||||
{{/if}}
|
||||
|
||||
{{#unless @model.hosts}}
|
||||
<Rose::Layout::Centered>
|
||||
<Rose::Message
|
||||
@title={{t 'resources.host-set.host.messages.none.title'}}
|
||||
as |message|
|
||||
>
|
||||
<message.description>
|
||||
{{t 'resources.host-set.host.messages.none.description'}}
|
||||
</message.description>
|
||||
{{!--
|
||||
<message.link @route="scopes.scope.host-catalogs.host-catalog.host-sets.host-set.create-and-add-host">
|
||||
<Rose::Icon @name="flight-icons/svg/plus-circle-16" />
|
||||
{{t "resources.host-set.actions.create-and-add-host"}}
|
||||
</message.link>
|
||||
--}}
|
||||
</Rose::Message>
|
||||
</Rose::Layout::Centered>
|
||||
{{/unless}}
|
||||
{{outlet}}
|
||||
+3
@@ -0,0 +1,3 @@
|
||||
{{page-title @model.displayName}}
|
||||
|
||||
{{outlet}}
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
<Form::Host @model={{@model}} />
|
||||
|
||||
{{!--
|
||||
<Form::Host
|
||||
@model={{@model}}
|
||||
@submit={{route-action 'save' @model}}
|
||||
@cancel={{route-action 'cancel' @model}}
|
||||
/>
|
||||
--}}
|
||||
+91
@@ -0,0 +1,91 @@
|
||||
{{#if @model.hosts}}
|
||||
|
||||
<Rose::Table as |table|>
|
||||
<table.header as |header|>
|
||||
<header.row as |row|>
|
||||
<row.headerCell>{{t 'form.name.label'}}</row.headerCell>
|
||||
<row.headerCell>{{t 'form.type.label'}}</row.headerCell>
|
||||
<row.headerCell>{{t 'form.id.label'}}</row.headerCell>
|
||||
{{#if @model.isStatic}}
|
||||
<row.headerCell>{{t 'titles.actions'}}</row.headerCell>
|
||||
{{/if}}
|
||||
</header.row>
|
||||
</table.header>
|
||||
<table.body as |body|>
|
||||
{{#each @model.hosts as |host|}}
|
||||
<body.row as |row|>
|
||||
<row.headerCell>
|
||||
{{#if host.isStatic}}
|
||||
<LinkTo
|
||||
@route='scopes.scope.host-catalogs.host-catalog.hosts.host'
|
||||
@model={{host.id}}
|
||||
>
|
||||
{{host.displayName}}
|
||||
</LinkTo>
|
||||
{{else}}
|
||||
{{! Link to a different subroute for dynamic/plugin hosts }}
|
||||
<LinkTo
|
||||
@route='scopes.scope.host-catalogs.host-catalog.host-sets.host-set.hosts.host'
|
||||
@model={{host.id}}
|
||||
>
|
||||
{{host.displayName}}
|
||||
</LinkTo>
|
||||
{{/if}}
|
||||
<p>{{host.description}}</p>
|
||||
</row.headerCell>
|
||||
<row.cell>
|
||||
<HostCatalogTypeBadge @model={{host}} />
|
||||
</row.cell>
|
||||
<row.cell>
|
||||
<Copyable
|
||||
@text={{host.id}}
|
||||
@buttonText={{t 'actions.copy-to-clipboard'}}
|
||||
@acknowledgeText={{t 'states.copied'}}
|
||||
>
|
||||
<code>{{host.id}}</code>
|
||||
</Copyable>
|
||||
</row.cell>
|
||||
<row.cell>
|
||||
{{#if (can 'removeHosts hostSet' @model.hostSet)}}
|
||||
<Rose::Dropdown
|
||||
@icon='flight-icons/svg/more-horizontal-16'
|
||||
@iconOnly={{true}}
|
||||
@showCaret={{false}}
|
||||
@dropdownRight={{true}}
|
||||
@text='{{t 'actions.manage'}}'
|
||||
as |dropdown|
|
||||
>
|
||||
<dropdown.button
|
||||
@style='danger'
|
||||
{{on 'click' (route-action 'removeHost' @model.hostSet host)}}
|
||||
>
|
||||
{{t 'actions.remove'}}
|
||||
</dropdown.button>
|
||||
</Rose::Dropdown>
|
||||
{{/if}}
|
||||
</row.cell>
|
||||
</body.row>
|
||||
{{/each}}
|
||||
</table.body>
|
||||
</Rose::Table>
|
||||
|
||||
{{/if}}
|
||||
|
||||
{{#unless @model.hosts}}
|
||||
<Rose::Layout::Centered>
|
||||
<Rose::Message
|
||||
@title={{t 'resources.host-set.host.messages.none.title'}}
|
||||
as |message|
|
||||
>
|
||||
<message.description>
|
||||
{{t 'resources.host-set.host.messages.none.description'}}
|
||||
</message.description>
|
||||
{{!--
|
||||
<message.link @route="scopes.scope.host-catalogs.host-catalog.host-sets.host-set.create-and-add-host">
|
||||
<Rose::Icon @name="flight-icons/svg/plus-circle-16" />
|
||||
{{t "resources.host-set.actions.create-and-add-host"}}
|
||||
</message.link>
|
||||
--}}
|
||||
</Rose::Message>
|
||||
</Rose::Layout::Centered>
|
||||
{{/unless}}
|
||||
@@ -49,7 +49,6 @@
|
||||
"doctoc": "^2.1.0",
|
||||
"ember-a11y-testing": "^4.2.0",
|
||||
"ember-auto-import": "^1.12.0",
|
||||
"ember-breadcrumbs": "^0.2.3",
|
||||
"ember-cli": "~4.1.0",
|
||||
"ember-cli-app-version": "^5.0.0",
|
||||
"ember-cli-babel": "^7.26.8",
|
||||
|
||||
@@ -64,7 +64,7 @@ module('Acceptance | auth methods | oidc', function (hooks) {
|
||||
await visit(urls.authMethod);
|
||||
await click('.rose-layout-page-actions .rose-dropdown-trigger');
|
||||
assert.equal(
|
||||
find('.rose-dropdown[open] input[aria-checked=true]').value,
|
||||
find('.rose-dropdown[open] input:checked').value,
|
||||
instances.authMethod.attributes.state
|
||||
);
|
||||
});
|
||||
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
import { module, test } from 'qunit';
|
||||
import { setupTest } from 'ember-qunit';
|
||||
|
||||
module(
|
||||
'Unit | Controller | scopes/scope/host-catalogs/host-catalog/host-sets/host-set/hosts/host',
|
||||
function (hooks) {
|
||||
setupTest(hooks);
|
||||
|
||||
// TODO: Replace this with your real tests.
|
||||
test('it exists', function (assert) {
|
||||
let controller = this.owner.lookup(
|
||||
'controller:scopes/scope/host-catalogs/host-catalog/host-sets/host-set/hosts/host'
|
||||
);
|
||||
assert.ok(controller);
|
||||
});
|
||||
}
|
||||
);
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
import { module, test } from 'qunit';
|
||||
import { setupTest } from 'ember-qunit';
|
||||
|
||||
module(
|
||||
'Unit | Route | scopes/scope/host-catalogs/host-catalog/host-sets/host-set/hosts/host',
|
||||
function (hooks) {
|
||||
setupTest(hooks);
|
||||
|
||||
test('it exists', function (assert) {
|
||||
let route = this.owner.lookup(
|
||||
'route:scopes/scope/host-catalogs/host-catalog/host-sets/host-set/hosts/host'
|
||||
);
|
||||
assert.ok(route);
|
||||
});
|
||||
}
|
||||
);
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
import { module, test } from 'qunit';
|
||||
import { setupTest } from 'ember-qunit';
|
||||
|
||||
module(
|
||||
'Unit | Route | scopes/scope/host-catalogs/host-catalog/host-sets/host-set/hosts/host/index',
|
||||
function (hooks) {
|
||||
setupTest(hooks);
|
||||
|
||||
test('it exists', function (assert) {
|
||||
let route = this.owner.lookup(
|
||||
'route:scopes/scope/host-catalogs/host-catalog/host-sets/host-set/hosts/host/index'
|
||||
);
|
||||
assert.ok(route);
|
||||
});
|
||||
}
|
||||
);
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
import { module, test } from 'qunit';
|
||||
import { setupTest } from 'ember-qunit';
|
||||
|
||||
module(
|
||||
'Unit | Route | scopes/scope/host-catalogs/host-catalog/host-sets/host-set/hosts/index',
|
||||
function (hooks) {
|
||||
setupTest(hooks);
|
||||
|
||||
test('it exists', function (assert) {
|
||||
let route = this.owner.lookup(
|
||||
'route:scopes/scope/host-catalogs/host-catalog/host-sets/host-set/hosts/index'
|
||||
);
|
||||
assert.ok(route);
|
||||
});
|
||||
}
|
||||
);
|
||||
@@ -3513,10 +3513,10 @@
|
||||
resolved "https://registry.yarnpkg.com/@handlebars/parser/-/parser-2.0.0.tgz#5e8b7298f31ff8f7b260e6b7363c7e9ceed7d9c5"
|
||||
integrity sha512-EP9uEDZv/L5Qh9IWuMUGJRfwhXJ4h1dqKTT4/3+tY0eu7sPis7xh23j61SYUnNF4vqCQvvUXpDo9Bh/+q1zASA==
|
||||
|
||||
"@hashicorp/flight-icons@^2.0.1":
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/@hashicorp/flight-icons/-/flight-icons-2.0.1.tgz#7e7370f1d45207409dd20ebdce7285370e7d9532"
|
||||
integrity sha512-445WEmL0ysOeVQDe2khCqGbmNm+/Rv5B35Q8FXvc+RuE+r9mNWL0ufe2cVa8Sqqt/VRg0lyTEhArNX9gYCX1Yg==
|
||||
"@hashicorp/flight-icons@^2.1.0":
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/@hashicorp/flight-icons/-/flight-icons-2.1.0.tgz#bda6c6942af0432d3342b1b1a2ff7f8da4c10f8a"
|
||||
integrity sha512-4HWwty+LNhMD7O30sBinn7OQo2KTSUEk1qm65hqFitfp2m8sEl8F+7gY4NcTJV9Y1eEe3C7bED5OOnsPVc60ww==
|
||||
|
||||
"@humanwhocodes/config-array@^0.5.0":
|
||||
version "0.5.0"
|
||||
@@ -6467,7 +6467,7 @@ are-we-there-yet@~1.1.2:
|
||||
delegates "^1.0.0"
|
||||
readable-stream "^2.0.6"
|
||||
|
||||
argparse@^1.0.7, argparse@~1.0.2:
|
||||
argparse@^1.0.7:
|
||||
version "1.0.10"
|
||||
resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
|
||||
integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
|
||||
@@ -7867,7 +7867,7 @@ broccoli-output-wrapper@^3.2.5:
|
||||
heimdalljs-logger "^0.1.10"
|
||||
symlink-or-copy "^1.2.0"
|
||||
|
||||
broccoli-persistent-filter@^1.0.3, broccoli-persistent-filter@^1.1.6, broccoli-persistent-filter@^1.4.3:
|
||||
broccoli-persistent-filter@^1.1.6, broccoli-persistent-filter@^1.4.3:
|
||||
version "1.4.6"
|
||||
resolved "https://registry.yarnpkg.com/broccoli-persistent-filter/-/broccoli-persistent-filter-1.4.6.tgz#80762d19000880a77da33c34373299c0f6a3e615"
|
||||
integrity sha512-0RejLwoC95kv4kta8KAa+FmECJCK78Qgm8SRDEK7YyU0N9Cx6KpY3UCDy9WELl3mCXLN8TokNxc7/hp3lL4lfw==
|
||||
@@ -10524,13 +10524,6 @@ ember-autofocus-modifier@^2.0.0:
|
||||
ember-cli-babel "^7.26.4"
|
||||
ember-modifier "^2.1.1"
|
||||
|
||||
ember-breadcrumbs@^0.2.3:
|
||||
version "0.2.3"
|
||||
resolved "https://registry.yarnpkg.com/ember-breadcrumbs/-/ember-breadcrumbs-0.2.3.tgz#a95e02b73fdc2150f3d552e84a479d6dc96a8b31"
|
||||
integrity sha512-QUiPXwAlTeiXykF5RnyilEgcj9NSFGciAawktImv6V6Lq9sNfmJHZAYZXAg8U/wA1tw7CG0fQl991K+jtuBTKQ==
|
||||
dependencies:
|
||||
ember-cli-babel "^7.10.0"
|
||||
|
||||
ember-browser-services@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/ember-browser-services/-/ember-browser-services-2.0.0.tgz#37481eccd3828e80b0ef3b97edd8ab0325cb6dc5"
|
||||
@@ -10576,7 +10569,7 @@ ember-cli-babel-plugin-helpers@^1.0.0, ember-cli-babel-plugin-helpers@^1.1.0, em
|
||||
resolved "https://registry.yarnpkg.com/ember-cli-babel-plugin-helpers/-/ember-cli-babel-plugin-helpers-1.1.1.tgz#5016b80cdef37036c4282eef2d863e1d73576879"
|
||||
integrity sha512-sKvOiPNHr5F/60NLd7SFzMpYPte/nnGkq/tMIfXejfKHIhaiIkYFqX8Z9UFTKWLLn+V7NOaby6niNPZUdvKCRw==
|
||||
|
||||
ember-cli-babel@^6.16.0, ember-cli-babel@^6.6.0, ember-cli-babel@^6.8.1, ember-cli-babel@^6.9.2, ember-cli-babel@^7.0.0, ember-cli-babel@^7.1.0, ember-cli-babel@^7.10.0, ember-cli-babel@^7.11.1, ember-cli-babel@^7.13.0, ember-cli-babel@^7.13.2, ember-cli-babel@^7.19.0, ember-cli-babel@^7.20.5, ember-cli-babel@^7.21.0, ember-cli-babel@^7.22.1, ember-cli-babel@^7.23.0, ember-cli-babel@^7.23.1, ember-cli-babel@^7.26.3, ember-cli-babel@^7.26.4, ember-cli-babel@^7.26.5, ember-cli-babel@^7.26.6, ember-cli-babel@^7.26.8, ember-cli-babel@^7.4.0, ember-cli-babel@^7.5.0, ember-cli-babel@^7.7.3:
|
||||
ember-cli-babel@^6.16.0, ember-cli-babel@^6.6.0, ember-cli-babel@^6.8.1, ember-cli-babel@^7.0.0, ember-cli-babel@^7.1.0, ember-cli-babel@^7.10.0, ember-cli-babel@^7.11.1, ember-cli-babel@^7.13.0, ember-cli-babel@^7.13.2, ember-cli-babel@^7.19.0, ember-cli-babel@^7.20.5, ember-cli-babel@^7.21.0, ember-cli-babel@^7.22.1, ember-cli-babel@^7.23.0, ember-cli-babel@^7.23.1, ember-cli-babel@^7.26.3, ember-cli-babel@^7.26.4, ember-cli-babel@^7.26.5, ember-cli-babel@^7.26.6, ember-cli-babel@^7.26.8, ember-cli-babel@^7.4.0, ember-cli-babel@^7.5.0, ember-cli-babel@^7.7.3:
|
||||
version "7.26.11"
|
||||
resolved "https://registry.yarnpkg.com/ember-cli-babel/-/ember-cli-babel-7.26.11.tgz#50da0fe4dcd99aada499843940fec75076249a9f"
|
||||
integrity sha512-JJYeYjiz/JTn34q7F5DSOjkkZqy8qwFOOxXfE6pe9yEJqWGu4qErKxlz8I22JoVEQ/aBUO+OcKTpmctvykM9YA==
|
||||
@@ -10651,17 +10644,6 @@ ember-cli-get-component-path-option@^1.0.0:
|
||||
resolved "https://registry.yarnpkg.com/ember-cli-get-component-path-option/-/ember-cli-get-component-path-option-1.0.0.tgz#0d7b595559e2f9050abed804f1d8eff1b08bc771"
|
||||
integrity sha1-DXtZVVni+QUKvtgE8djv8bCLx3E=
|
||||
|
||||
ember-cli-htmlbars@^1.1.1:
|
||||
version "1.3.5"
|
||||
resolved "https://registry.yarnpkg.com/ember-cli-htmlbars/-/ember-cli-htmlbars-1.3.5.tgz#65be9678b274b5e7861d7f75c188780af7ef9d13"
|
||||
integrity sha512-Qur/anb0Vk57qmIhGLkSzl8X1QIMoae6pLa14MRQ8+YD2N5fNs3qdhEFf0SDBquPOH1QxQtraiNQvji47QBJyg==
|
||||
dependencies:
|
||||
broccoli-persistent-filter "^1.0.3"
|
||||
ember-cli-version-checker "^1.0.2"
|
||||
hash-for-dep "^1.0.2"
|
||||
json-stable-stringify "^1.0.0"
|
||||
strip-bom "^2.0.0"
|
||||
|
||||
ember-cli-htmlbars@^3.0.0:
|
||||
version "3.1.0"
|
||||
resolved "https://registry.yarnpkg.com/ember-cli-htmlbars/-/ember-cli-htmlbars-3.1.0.tgz#87806c2a0bca2ab52d4fb8af8e2215c1ca718a99"
|
||||
@@ -10922,13 +10904,6 @@ ember-cli-typescript@^4.0.0, ember-cli-typescript@^4.1.0, ember-cli-typescript@^
|
||||
stagehand "^1.0.0"
|
||||
walk-sync "^2.2.0"
|
||||
|
||||
ember-cli-version-checker@^1.0.2:
|
||||
version "1.3.1"
|
||||
resolved "https://registry.yarnpkg.com/ember-cli-version-checker/-/ember-cli-version-checker-1.3.1.tgz#0bc2d134c830142da64bf9627a0eded10b61ae72"
|
||||
integrity sha1-C8LRNMgwFC2mS/lieg7e0QthrnI=
|
||||
dependencies:
|
||||
semver "^5.3.0"
|
||||
|
||||
ember-cli-version-checker@^2.1.0, ember-cli-version-checker@^2.1.2:
|
||||
version "2.2.0"
|
||||
resolved "https://registry.yarnpkg.com/ember-cli-version-checker/-/ember-cli-version-checker-2.2.0.tgz#47771b731fe0962705e27c8199a9e3825709f3b3"
|
||||
@@ -11449,13 +11424,12 @@ ember-qunit@^5.1.4:
|
||||
silent-error "^1.1.1"
|
||||
validate-peer-dependencies "^1.1.0"
|
||||
|
||||
ember-radio-button@^2.0.1:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/ember-radio-button/-/ember-radio-button-2.0.1.tgz#f081a44d581a4b1db88fef79ec5c47da712ab963"
|
||||
integrity sha512-cAAyFgNIM3PquowkWfa0lOSlq4PPst9vpkNiLi5yhd1LJ4lVtwgn6s+OpPXWKJLZdig2m31PWU8jxobcubge5w==
|
||||
"ember-radio-button@github:yapplabs/ember-radio-button.git#b2ab65f":
|
||||
version "0.0.0"
|
||||
resolved "https://codeload.github.com/yapplabs/ember-radio-button/tar.gz/b2ab65f81cae3b0f087cc99b8c01172b754cb181"
|
||||
dependencies:
|
||||
ember-cli-babel "^6.9.2"
|
||||
ember-cli-htmlbars "^1.1.1"
|
||||
ember-cli-babel "^7.26.3"
|
||||
ember-cli-htmlbars "^5.7.1"
|
||||
|
||||
ember-resolver@^8.0.3:
|
||||
version "8.0.3"
|
||||
@@ -11754,10 +11728,10 @@ engine.io-parser@~4.0.0:
|
||||
dependencies:
|
||||
base64-arraybuffer "0.1.4"
|
||||
|
||||
engine.io@~5.1.1:
|
||||
version "5.1.1"
|
||||
resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-5.1.1.tgz#a1f97e51ddf10cbd4db8b5ff4b165aad3760cdd3"
|
||||
integrity sha512-aMWot7H5aC8L4/T8qMYbLdvKlZOdJTH54FxfdFunTGvhMx1BHkJOntWArsVfgAZVwAO9LC2sryPWRcEeUzCe5w==
|
||||
engine.io@^5.2.1, engine.io@~5.1.1:
|
||||
version "5.2.1"
|
||||
resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-5.2.1.tgz#3f84baf13471d35a6f3284a4effcd04c2f73c8a1"
|
||||
integrity sha512-hyNxjVgWp619QMfqi/+/6/LQF+ueOIWeVOza3TeyvxUGjeT9U/xPkkHW/NJNuhbStrxMujEoMadoc2EY7DDEnw==
|
||||
dependencies:
|
||||
accepts "~1.3.4"
|
||||
base64id "2.0.0"
|
||||
@@ -11796,7 +11770,7 @@ ensure-posix-path@^1.0.0, ensure-posix-path@^1.0.1, ensure-posix-path@^1.0.2, en
|
||||
resolved "https://registry.yarnpkg.com/ensure-posix-path/-/ensure-posix-path-1.1.1.tgz#3c62bdb19fa4681544289edb2b382adc029179ce"
|
||||
integrity sha512-VWU0/zXzVbeJNXvME/5EmLuEj2TauvoaTz6aFYK1Z92JCBlDlZ3Gu0tuGR42kpW1754ywTs+QB0g5TP0oj9Zaw==
|
||||
|
||||
entities@^1.1.1, entities@~1.1.1:
|
||||
entities@^1.1.1:
|
||||
version "1.1.2"
|
||||
resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56"
|
||||
integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==
|
||||
@@ -16818,13 +16792,6 @@ lines-and-columns@^1.1.6:
|
||||
resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00"
|
||||
integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=
|
||||
|
||||
linkify-it@^2.0.0:
|
||||
version "2.2.0"
|
||||
resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-2.2.0.tgz#e3b54697e78bf915c70a38acd78fd09e0058b1cf"
|
||||
integrity sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==
|
||||
dependencies:
|
||||
uc.micro "^1.0.1"
|
||||
|
||||
linkify-it@^3.0.1:
|
||||
version "3.0.2"
|
||||
resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-3.0.2.tgz#f55eeb8bc1d3ae754049e124ab3bb56d97797fb8"
|
||||
@@ -16832,13 +16799,6 @@ linkify-it@^3.0.1:
|
||||
dependencies:
|
||||
uc.micro "^1.0.1"
|
||||
|
||||
linkify-it@~1.2.0:
|
||||
version "1.2.4"
|
||||
resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-1.2.4.tgz#0773526c317c8fd13bd534ee1d180ff88abf881a"
|
||||
integrity sha1-B3NSbDF8j9E71TTuHRgP+Iq/iBo=
|
||||
dependencies:
|
||||
uc.micro "^1.0.1"
|
||||
|
||||
livereload-js@^3.3.1:
|
||||
version "3.3.2"
|
||||
resolved "https://registry.yarnpkg.com/livereload-js/-/livereload-js-3.3.2.tgz#c88b009c6e466b15b91faa26fd7c99d620e12651"
|
||||
@@ -17535,10 +17495,10 @@ markdown-it-terminal@0.2.1:
|
||||
lodash.merge "^4.6.2"
|
||||
markdown-it "^8.3.1"
|
||||
|
||||
markdown-it@^12.0.4:
|
||||
version "12.2.0"
|
||||
resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-12.2.0.tgz#091f720fd5db206f80de7a8d1f1a7035fd0d38db"
|
||||
integrity sha512-Wjws+uCrVQRqOoJvze4HCqkKl1AsSh95iFAeQDwnyfxM09divCBSXlDR1uTvyUP3Grzpn4Ru8GeCxYPM8vkCQg==
|
||||
markdown-it@^12.0.4, markdown-it@^12.3.2, markdown-it@^4.3.0, markdown-it@^8.3.1:
|
||||
version "12.3.2"
|
||||
resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-12.3.2.tgz#bf92ac92283fe983fe4de8ff8abfb5ad72cd0c90"
|
||||
integrity sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==
|
||||
dependencies:
|
||||
argparse "^2.0.1"
|
||||
entities "~2.1.0"
|
||||
@@ -17546,28 +17506,6 @@ markdown-it@^12.0.4:
|
||||
mdurl "^1.0.1"
|
||||
uc.micro "^1.0.5"
|
||||
|
||||
markdown-it@^4.3.0:
|
||||
version "4.4.0"
|
||||
resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-4.4.0.tgz#3df373dbea587a9a7fef3e56311b68908f75c414"
|
||||
integrity sha1-PfNz2+pYepp/7z5WMRtokI91xBQ=
|
||||
dependencies:
|
||||
argparse "~1.0.2"
|
||||
entities "~1.1.1"
|
||||
linkify-it "~1.2.0"
|
||||
mdurl "~1.0.0"
|
||||
uc.micro "^1.0.0"
|
||||
|
||||
markdown-it@^8.3.1:
|
||||
version "8.4.2"
|
||||
resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-8.4.2.tgz#386f98998dc15a37722aa7722084f4020bdd9b54"
|
||||
integrity sha512-GcRz3AWTqSUphY3vsUqQSFMbgR38a4Lh3GWlHRh/7MRwz8mcu9n2IO7HOh+bXHrR9kOPDl5RNCaEsrneb+xhHQ==
|
||||
dependencies:
|
||||
argparse "^1.0.7"
|
||||
entities "~1.1.1"
|
||||
linkify-it "^2.0.0"
|
||||
mdurl "^1.0.1"
|
||||
uc.micro "^1.0.5"
|
||||
|
||||
markdown-to-jsx@^6.11.4:
|
||||
version "6.11.4"
|
||||
resolved "https://registry.yarnpkg.com/markdown-to-jsx/-/markdown-to-jsx-6.11.4.tgz#b4528b1ab668aef7fe61c1535c27e837819392c5"
|
||||
@@ -17700,7 +17638,7 @@ mdn-links@^0.1.0:
|
||||
resolved "https://registry.yarnpkg.com/mdn-links/-/mdn-links-0.1.0.tgz#e24c83b97cb4c5886cc39f2f780705fbfe273aa5"
|
||||
integrity sha1-4kyDuXy0xYhsw58veAcF+/4nOqU=
|
||||
|
||||
mdurl@^1.0.0, mdurl@^1.0.1, mdurl@~1.0.0:
|
||||
mdurl@^1.0.0, mdurl@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e"
|
||||
integrity sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=
|
||||
@@ -23670,7 +23608,7 @@ typescript@~4.2.4:
|
||||
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.2.4.tgz#8610b59747de028fda898a8aef0e103f156d0961"
|
||||
integrity sha512-V+evlYHZnQkaz8TRBuxTA92yZBPotr5H+WhQ7bD3hZUndx5tGOa1fuCgeSjxAzM1RiN5IzvadIXTVefuuwZCRg==
|
||||
|
||||
uc.micro@^1.0.0, uc.micro@^1.0.1, uc.micro@^1.0.5:
|
||||
uc.micro@^1.0.1, uc.micro@^1.0.5:
|
||||
version "1.0.6"
|
||||
resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac"
|
||||
integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==
|
||||
|
||||
Reference in new issue
Block a user