@projectcaluma/ember-distribution 1.0.0-beta.1
Sign up to get free protection for your applications and to get access to all the features.
- package/CHANGELOG.md +38 -0
- package/addon/-private/decorator.js +24 -0
- package/addon/abilities/inquiry.js +39 -0
- package/addon/components/distribution-navigation/controls.hbs +21 -0
- package/addon/components/distribution-navigation/controls.js +45 -0
- package/addon/components/distribution-navigation/item.hbs +18 -0
- package/addon/components/distribution-navigation/item.js +17 -0
- package/addon/components/distribution-navigation/section.hbs +24 -0
- package/addon/components/distribution-navigation/section.js +25 -0
- package/addon/components/distribution-navigation/status-indicator.hbs +17 -0
- package/addon/components/distribution-navigation/status-indicator.js +19 -0
- package/addon/components/distribution-navigation.hbs +17 -0
- package/addon/components/distribution-navigation.js +81 -0
- package/addon/components/icon-button.hbs +20 -0
- package/addon/components/icon-button.js +22 -0
- package/addon/components/inquiry-answer-form.hbs +46 -0
- package/addon/components/inquiry-answer-form.js +75 -0
- package/addon/components/inquiry-dialog/inquiry-deadline.hbs +6 -0
- package/addon/components/inquiry-dialog/inquiry-deadline.js +10 -0
- package/addon/components/inquiry-dialog/inquiry-divider.hbs +7 -0
- package/addon/components/inquiry-dialog/inquiry-divider.js +13 -0
- package/addon/components/inquiry-dialog/inquiry-part.hbs +40 -0
- package/addon/components/inquiry-dialog/inquiry-part.js +20 -0
- package/addon/components/inquiry-dialog/inquiry.hbs +13 -0
- package/addon/components/inquiry-dialog/inquiry.js +7 -0
- package/addon/components/inquiry-dialog.hbs +9 -0
- package/addon/components/inquiry-dialog.js +42 -0
- package/addon/components/inquiry-edit-form.hbs +27 -0
- package/addon/components/inquiry-edit-form.js +53 -0
- package/addon/components/inquiry-new-form.hbs +110 -0
- package/addon/components/inquiry-new-form.js +154 -0
- package/addon/config.js +72 -0
- package/addon/controllers/distribution/new.js +22 -0
- package/addon/engine.js +18 -0
- package/addon/gql/fragments/inquiry.graphql +89 -0
- package/addon/gql/mutations/complete-inquiry-work-item.graphql +36 -0
- package/addon/gql/mutations/create-inquiry.graphql +5 -0
- package/addon/gql/mutations/resume-work-item.graphql +8 -0
- package/addon/gql/queries/control-work-items.graphql +37 -0
- package/addon/gql/queries/inquiry-answer.graphql +33 -0
- package/addon/gql/queries/inquiry-dialog.graphql +28 -0
- package/addon/gql/queries/inquiry-edit.graphql +18 -0
- package/addon/gql/queries/inquiry-navigation.graphql +56 -0
- package/addon/routes/distribution/index.js +41 -0
- package/addon/routes/distribution/inquiry/detail/answer.js +7 -0
- package/addon/routes/distribution/inquiry/detail/index.js +7 -0
- package/addon/routes/distribution/inquiry/detail.js +7 -0
- package/addon/routes/distribution/inquiry/index.js +10 -0
- package/addon/routes/distribution/inquiry.js +7 -0
- package/addon/routes/distribution/new.js +7 -0
- package/addon/routes/distribution.js +7 -0
- package/addon/routes.js +12 -0
- package/addon/templates/distribution/inquiry/detail/answer.hbs +1 -0
- package/addon/templates/distribution/inquiry/detail/index.hbs +1 -0
- package/addon/templates/distribution/inquiry/detail.hbs +1 -0
- package/addon/templates/distribution/inquiry/index.hbs +5 -0
- package/addon/templates/distribution/inquiry.hbs +1 -0
- package/addon/templates/distribution/new.hbs +7 -0
- package/addon/templates/distribution.hbs +8 -0
- package/addon/utils/inquiry-deadline.js +48 -0
- package/addon/utils/inquiry-status.js +68 -0
- package/addon/utils/unique-by-groups.js +17 -0
- package/app/abilities/inquiry.js +1 -0
- package/app/components/distribution-navigation/controls.js +1 -0
- package/app/components/distribution-navigation/item.js +1 -0
- package/app/components/distribution-navigation/section.js +1 -0
- package/app/components/distribution-navigation/status-indicator.js +1 -0
- package/app/components/distribution-navigation.js +1 -0
- package/app/components/icon-button.js +1 -0
- package/app/components/inquiry-answer-form.js +1 -0
- package/app/components/inquiry-dialog/inquiry-deadline.js +1 -0
- package/app/components/inquiry-dialog/inquiry-divider.js +1 -0
- package/app/components/inquiry-dialog/inquiry-part.js +1 -0
- package/app/components/inquiry-dialog/inquiry.js +1 -0
- package/app/components/inquiry-dialog.js +1 -0
- package/app/components/inquiry-edit-form.js +1 -0
- package/app/components/inquiry-new-form.js +1 -0
- package/app/styles/@projectcaluma/ember-distribution.scss +3 -0
- package/app/styles/_icon-button.scss +13 -0
- package/app/styles/_inquiry-divider.scss +49 -0
- package/app/styles/_status-indicator.scss +31 -0
- package/app/styles/app.scss +1 -0
- package/app/utils/inquiry-deadline.js +1 -0
- package/app/utils/inquiry-status.js +1 -0
- package/app/utils/unique-by-groups.js +1 -0
- package/config/environment.js +10 -0
- package/index.js +22 -0
- package/package.json +86 -0
- package/translations/de.yaml +42 -0
- package/translations/en.yaml +42 -0
- package/translations/fr.yaml +42 -0
@@ -0,0 +1,37 @@
|
|
1
|
+
query ControlWorkItems(
|
2
|
+
$createTask: ID!
|
3
|
+
$completeTask: ID!
|
4
|
+
$caseId: ID!
|
5
|
+
$currentGroup: String!
|
6
|
+
) {
|
7
|
+
create: allWorkItems(
|
8
|
+
filter: [
|
9
|
+
{ case: $caseId }
|
10
|
+
{ task: $createTask }
|
11
|
+
{ status: READY }
|
12
|
+
{ addressedGroups: [$currentGroup] }
|
13
|
+
]
|
14
|
+
first: 1
|
15
|
+
) {
|
16
|
+
edges {
|
17
|
+
node {
|
18
|
+
id
|
19
|
+
}
|
20
|
+
}
|
21
|
+
}
|
22
|
+
complete: allWorkItems(
|
23
|
+
filter: [
|
24
|
+
{ case: $caseId }
|
25
|
+
{ task: $completeTask }
|
26
|
+
{ status: READY }
|
27
|
+
{ addressedGroups: [$currentGroup] }
|
28
|
+
]
|
29
|
+
first: 1
|
30
|
+
) {
|
31
|
+
edges {
|
32
|
+
node {
|
33
|
+
id
|
34
|
+
}
|
35
|
+
}
|
36
|
+
}
|
37
|
+
}
|
@@ -0,0 +1,33 @@
|
|
1
|
+
query InquiryAnswer($inquiry: ID!, $buttonTasks: [String]!) {
|
2
|
+
allWorkItems(filter: [{ id: $inquiry }]) {
|
3
|
+
edges {
|
4
|
+
node {
|
5
|
+
id
|
6
|
+
status
|
7
|
+
addressedGroups
|
8
|
+
task {
|
9
|
+
id
|
10
|
+
slug
|
11
|
+
}
|
12
|
+
childCase {
|
13
|
+
id
|
14
|
+
status
|
15
|
+
document {
|
16
|
+
id
|
17
|
+
}
|
18
|
+
workItems(tasks: $buttonTasks, status: READY) {
|
19
|
+
edges {
|
20
|
+
node {
|
21
|
+
id
|
22
|
+
task {
|
23
|
+
id
|
24
|
+
slug
|
25
|
+
}
|
26
|
+
}
|
27
|
+
}
|
28
|
+
}
|
29
|
+
}
|
30
|
+
}
|
31
|
+
}
|
32
|
+
}
|
33
|
+
}
|
@@ -0,0 +1,28 @@
|
|
1
|
+
#import InquiryDialog, InquiryDeadlineDocument, InquiryStatusDocument from '../fragments/inquiry.graphql'
|
2
|
+
|
3
|
+
query InquiryDialog(
|
4
|
+
$task: ID!
|
5
|
+
$statusQuestion: ID!
|
6
|
+
$deadlineQuestion: ID!
|
7
|
+
$infoQuestion: ID!
|
8
|
+
$answerInfoQuestion: ID!
|
9
|
+
$from: [String]!
|
10
|
+
$to: [String]!
|
11
|
+
$caseId: ID!
|
12
|
+
) {
|
13
|
+
allWorkItems(
|
14
|
+
filter: [
|
15
|
+
{ case: $caseId }
|
16
|
+
{ task: $task }
|
17
|
+
{ controllingGroups: $from }
|
18
|
+
{ addressedGroups: $to }
|
19
|
+
]
|
20
|
+
order: [{ attribute: CREATED_AT, direction: DESC }]
|
21
|
+
) {
|
22
|
+
edges {
|
23
|
+
node {
|
24
|
+
...InquiryDialog
|
25
|
+
}
|
26
|
+
}
|
27
|
+
}
|
28
|
+
}
|
@@ -0,0 +1,56 @@
|
|
1
|
+
#import Inquiry, InquiryDeadlineDocument, InquiryStatusDocument from '../fragments/inquiry.graphql'
|
2
|
+
|
3
|
+
query InquiryNavigation(
|
4
|
+
$task: ID!
|
5
|
+
$statusQuestion: ID
|
6
|
+
$deadlineQuestion: ID
|
7
|
+
$currentGroup: String!
|
8
|
+
$caseId: ID!
|
9
|
+
$includeNavigationData: Boolean!
|
10
|
+
) {
|
11
|
+
controlling: allWorkItems(
|
12
|
+
filter: [
|
13
|
+
{ case: $caseId }
|
14
|
+
{ task: $task }
|
15
|
+
{ controllingGroups: [$currentGroup] }
|
16
|
+
]
|
17
|
+
order: [{ attribute: CREATED_AT, direction: DESC }]
|
18
|
+
) {
|
19
|
+
edges {
|
20
|
+
node {
|
21
|
+
...Inquiry
|
22
|
+
}
|
23
|
+
}
|
24
|
+
}
|
25
|
+
addressed: allWorkItems(
|
26
|
+
filter: [
|
27
|
+
{ case: $caseId }
|
28
|
+
{ task: $task }
|
29
|
+
{ addressedGroups: [$currentGroup] }
|
30
|
+
{ status: SUSPENDED, invert: true }
|
31
|
+
]
|
32
|
+
order: [{ attribute: CREATED_AT, direction: DESC }]
|
33
|
+
) {
|
34
|
+
edges {
|
35
|
+
node {
|
36
|
+
...Inquiry
|
37
|
+
}
|
38
|
+
}
|
39
|
+
}
|
40
|
+
more: allWorkItems(
|
41
|
+
filter: [
|
42
|
+
{ case: $caseId }
|
43
|
+
{ task: $task }
|
44
|
+
{ controllingGroups: [$currentGroup], invert: true }
|
45
|
+
{ addressedGroups: [$currentGroup], invert: true }
|
46
|
+
{ status: COMPLETED }
|
47
|
+
]
|
48
|
+
order: [{ attribute: CREATED_AT, direction: DESC }]
|
49
|
+
) {
|
50
|
+
edges {
|
51
|
+
node {
|
52
|
+
...Inquiry
|
53
|
+
}
|
54
|
+
}
|
55
|
+
}
|
56
|
+
}
|
@@ -0,0 +1,41 @@
|
|
1
|
+
import Route from "@ember/routing/route";
|
2
|
+
import { inject as service } from "@ember/service";
|
3
|
+
import { queryManager } from "ember-apollo-client";
|
4
|
+
|
5
|
+
import config from "@projectcaluma/ember-distribution/config";
|
6
|
+
import inquiryNavigationQuery from "@projectcaluma/ember-distribution/gql/queries/inquiry-navigation.graphql";
|
7
|
+
import uniqueByGroups from "@projectcaluma/ember-distribution/utils/unique-by-groups";
|
8
|
+
|
9
|
+
export default class DistributionIndexRoute extends Route {
|
10
|
+
@service router;
|
11
|
+
@service calumaOptions;
|
12
|
+
|
13
|
+
@config config;
|
14
|
+
|
15
|
+
@queryManager apollo;
|
16
|
+
|
17
|
+
async redirect(model) {
|
18
|
+
const response = await this.apollo.query({
|
19
|
+
query: inquiryNavigationQuery,
|
20
|
+
variables: {
|
21
|
+
caseId: model,
|
22
|
+
task: this.config.inquiry.task,
|
23
|
+
currentGroup: String(this.calumaOptions.currentGroupId),
|
24
|
+
includeNavigationData: false,
|
25
|
+
},
|
26
|
+
});
|
27
|
+
|
28
|
+
const models = Object.entries(response).flatMap(([, objects]) => {
|
29
|
+
return uniqueByGroups(objects.edges.map((edge) => edge.node)).map(
|
30
|
+
(inquiry) => ({
|
31
|
+
from: inquiry.controllingGroups[0],
|
32
|
+
to: inquiry.addressedGroups[0],
|
33
|
+
})
|
34
|
+
);
|
35
|
+
}, {});
|
36
|
+
|
37
|
+
if (models.length) {
|
38
|
+
return this.router.replaceWith("distribution.inquiry", models[0]);
|
39
|
+
}
|
40
|
+
}
|
41
|
+
}
|
package/addon/routes.js
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
import buildRoutes from "ember-engines/routes";
|
2
|
+
|
3
|
+
export default buildRoutes(function () {
|
4
|
+
this.route("distribution", { path: "/case/:case" }, function () {
|
5
|
+
this.route("new");
|
6
|
+
this.route("inquiry", { path: "/from/:from/to/:to" }, function () {
|
7
|
+
this.route("detail", { path: "/detail/:inquiry" }, function () {
|
8
|
+
this.route("answer");
|
9
|
+
});
|
10
|
+
});
|
11
|
+
});
|
12
|
+
});
|
@@ -0,0 +1 @@
|
|
1
|
+
<InquiryAnswerForm @inquiry={{@model}} />
|
@@ -0,0 +1 @@
|
|
1
|
+
<InquiryEditForm @inquiry={{@model}} />
|
@@ -0,0 +1 @@
|
|
1
|
+
{{outlet}}
|
@@ -0,0 +1 @@
|
|
1
|
+
{{outlet}}
|
@@ -0,0 +1,48 @@
|
|
1
|
+
import { assert } from "@ember/debug";
|
2
|
+
import { get } from "@ember/object";
|
3
|
+
import moment from "moment";
|
4
|
+
|
5
|
+
import { createDecorator } from "@projectcaluma/ember-distribution/-private/decorator";
|
6
|
+
|
7
|
+
function decorator(
|
8
|
+
target,
|
9
|
+
key,
|
10
|
+
desc,
|
11
|
+
{ inquiryProperty = "args.inquiry" } = {}
|
12
|
+
) {
|
13
|
+
assert(
|
14
|
+
`The @projectcaluma/ember-distribution config must be injected in order to use @inquiryDeadline: \`@config config\``,
|
15
|
+
Object.prototype.hasOwnProperty.call(target, "config")
|
16
|
+
);
|
17
|
+
|
18
|
+
return {
|
19
|
+
get() {
|
20
|
+
const inquiry = get(this, inquiryProperty);
|
21
|
+
const value = inquiry.document?.deadline.edges[0]?.node.value;
|
22
|
+
const isAnswered = inquiry.status === "COMPLETED";
|
23
|
+
|
24
|
+
const deadline = moment.utc(value);
|
25
|
+
const now = moment.utc();
|
26
|
+
|
27
|
+
const isOverdue = !isAnswered && now.isAfter(deadline, "day");
|
28
|
+
const isWarning =
|
29
|
+
!isAnswered &&
|
30
|
+
now.add(this.config.warningPeriod, "days").isAfter(deadline, "day");
|
31
|
+
|
32
|
+
return {
|
33
|
+
value,
|
34
|
+
isOverdue,
|
35
|
+
isWarning,
|
36
|
+
color: isAnswered
|
37
|
+
? "muted"
|
38
|
+
: isOverdue
|
39
|
+
? "danger"
|
40
|
+
: isWarning
|
41
|
+
? "warning"
|
42
|
+
: "emphasis",
|
43
|
+
};
|
44
|
+
},
|
45
|
+
};
|
46
|
+
}
|
47
|
+
|
48
|
+
export default createDecorator(decorator);
|
@@ -0,0 +1,68 @@
|
|
1
|
+
import { assert } from "@ember/debug";
|
2
|
+
import { get } from "@ember/object";
|
3
|
+
|
4
|
+
import { createDecorator } from "@projectcaluma/ember-distribution/-private/decorator";
|
5
|
+
import { INQUIRY_STATUS } from "@projectcaluma/ember-distribution/config";
|
6
|
+
|
7
|
+
export const ICON_MAP = {
|
8
|
+
[INQUIRY_STATUS.DRAFT]: "pencil-outline",
|
9
|
+
[INQUIRY_STATUS.SENT]: "paper-plane-outline",
|
10
|
+
[INQUIRY_STATUS.POSITIVE]: "checkmark-outline",
|
11
|
+
[INQUIRY_STATUS.NEGATIVE]: "close-outline",
|
12
|
+
[INQUIRY_STATUS.NEEDS_INTERACTION]: "repeat-outline",
|
13
|
+
};
|
14
|
+
|
15
|
+
export const COLOR_MAP = {
|
16
|
+
[INQUIRY_STATUS.DRAFT]: "muted",
|
17
|
+
[INQUIRY_STATUS.SENT]: "emphasis",
|
18
|
+
[INQUIRY_STATUS.POSITIVE]: "success",
|
19
|
+
[INQUIRY_STATUS.NEGATIVE]: "danger",
|
20
|
+
[INQUIRY_STATUS.NEEDS_INTERACTION]: "warning",
|
21
|
+
};
|
22
|
+
|
23
|
+
function decorator(
|
24
|
+
target,
|
25
|
+
key,
|
26
|
+
desc,
|
27
|
+
{ inquiryProperty = "args.inquiry", inquiryTypeProperty = "args.type" } = {}
|
28
|
+
) {
|
29
|
+
assert(
|
30
|
+
`The @projectcaluma/ember-distribution config must be injected in order to use @inquiryStatus: \`@config config\``,
|
31
|
+
Object.prototype.hasOwnProperty.call(target, "config")
|
32
|
+
);
|
33
|
+
|
34
|
+
assert(
|
35
|
+
`The intl service must be injected in order to use @inquiryStatus: \`@service intl\``,
|
36
|
+
Object.prototype.hasOwnProperty.call(target, "intl")
|
37
|
+
);
|
38
|
+
|
39
|
+
return {
|
40
|
+
get() {
|
41
|
+
const inquiry = get(this, inquiryProperty);
|
42
|
+
const isAddressed = get(this, inquiryTypeProperty) === "addressed";
|
43
|
+
const isDraft = isAddressed
|
44
|
+
? inquiry.status === "READY"
|
45
|
+
: inquiry.status === "SUSPENDED";
|
46
|
+
const isSent = !isAddressed && inquiry.status === "READY";
|
47
|
+
|
48
|
+
const answer = inquiry.childCase?.document.status.edges[0]?.node;
|
49
|
+
const slug = isDraft
|
50
|
+
? INQUIRY_STATUS.DRAFT
|
51
|
+
: isSent
|
52
|
+
? INQUIRY_STATUS.SENT
|
53
|
+
: this.config.inquiry.answer.statusMapping[answer.value];
|
54
|
+
|
55
|
+
return {
|
56
|
+
slug,
|
57
|
+
label:
|
58
|
+
!isDraft && !isSent
|
59
|
+
? answer?.selectedOption.label
|
60
|
+
: this.intl.t(`caluma.distribution.status.${slug}`),
|
61
|
+
color: COLOR_MAP[slug],
|
62
|
+
icon: ICON_MAP[slug],
|
63
|
+
};
|
64
|
+
},
|
65
|
+
};
|
66
|
+
}
|
67
|
+
|
68
|
+
export default createDecorator(decorator);
|
@@ -0,0 +1,17 @@
|
|
1
|
+
export default function uniqueByGroups(workItems) {
|
2
|
+
return [
|
3
|
+
...new Map(
|
4
|
+
workItems
|
5
|
+
.map((workItem) => {
|
6
|
+
return [
|
7
|
+
JSON.stringify({
|
8
|
+
from: workItem.controllingGroups,
|
9
|
+
to: workItem.addressedGroups,
|
10
|
+
}),
|
11
|
+
workItem,
|
12
|
+
];
|
13
|
+
})
|
14
|
+
.reverse()
|
15
|
+
).values(),
|
16
|
+
];
|
17
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
export { default } from "@projectcaluma/ember-distribution/abilities/inquiry";
|
@@ -0,0 +1 @@
|
|
1
|
+
export { default } from "@projectcaluma/ember-distribution/components/distribution-navigation/controls";
|
@@ -0,0 +1 @@
|
|
1
|
+
export { default } from "@projectcaluma/ember-distribution/components/distribution-navigation/item";
|
@@ -0,0 +1 @@
|
|
1
|
+
export { default } from "@projectcaluma/ember-distribution/components/distribution-navigation/section";
|
@@ -0,0 +1 @@
|
|
1
|
+
export { default } from "@projectcaluma/ember-distribution/components/distribution-navigation/status-indicator";
|
@@ -0,0 +1 @@
|
|
1
|
+
export { default } from "@projectcaluma/ember-distribution/components/distribution-navigation";
|
@@ -0,0 +1 @@
|
|
1
|
+
export { default } from "@projectcaluma/ember-distribution/components/icon-button";
|
@@ -0,0 +1 @@
|
|
1
|
+
export { default } from "@projectcaluma/ember-distribution/components/inquiry-answer-form";
|
@@ -0,0 +1 @@
|
|
1
|
+
export { default } from "@projectcaluma/ember-distribution/components/inquiry-dialog/inquiry-deadline";
|
@@ -0,0 +1 @@
|
|
1
|
+
export { default } from "@projectcaluma/ember-distribution/components/inquiry-dialog/inquiry-divider";
|
@@ -0,0 +1 @@
|
|
1
|
+
export { default } from "@projectcaluma/ember-distribution/components/inquiry-dialog/inquiry-part";
|
@@ -0,0 +1 @@
|
|
1
|
+
export { default } from "@projectcaluma/ember-distribution/components/inquiry-dialog/inquiry";
|
@@ -0,0 +1 @@
|
|
1
|
+
export { default } from "@projectcaluma/ember-distribution/components/inquiry-dialog";
|
@@ -0,0 +1 @@
|
|
1
|
+
export { default } from "@projectcaluma/ember-distribution/components/inquiry-edit-form";
|
@@ -0,0 +1 @@
|
|
1
|
+
export { default } from "@projectcaluma/ember-distribution/components/inquiry-new-form";
|
@@ -0,0 +1,13 @@
|
|
1
|
+
@import "ember-uikit/variables-theme";
|
2
|
+
|
3
|
+
@for $i from 1 through 8 {
|
4
|
+
@each $side in "top", "right", "bottom", "left" {
|
5
|
+
.uk-icon-button--gutter-#{$side}-#{$i} > svg {
|
6
|
+
margin-#{$side}: #{$i}px !important;
|
7
|
+
}
|
8
|
+
}
|
9
|
+
|
10
|
+
.uk-icon-button--gutter-#{$i} > svg {
|
11
|
+
margin: #{$i}px;
|
12
|
+
}
|
13
|
+
}
|
@@ -0,0 +1,49 @@
|
|
1
|
+
@import "ember-uikit/variables-theme";
|
2
|
+
|
3
|
+
$size: 36px;
|
4
|
+
$iconSize: $size * 0.6;
|
5
|
+
|
6
|
+
$colors: (
|
7
|
+
muted: $text-muted-color,
|
8
|
+
emphasis: $text-emphasis-color,
|
9
|
+
success: $text-success-color,
|
10
|
+
danger: $text-danger-color,
|
11
|
+
warning: $text-warning-color,
|
12
|
+
);
|
13
|
+
|
14
|
+
.inquiry-divider {
|
15
|
+
&::before,
|
16
|
+
&::after {
|
17
|
+
content: "";
|
18
|
+
display: block;
|
19
|
+
height: 2px;
|
20
|
+
width: calc(50% - #{$size * 0.5});
|
21
|
+
}
|
22
|
+
|
23
|
+
&__icon {
|
24
|
+
width: $size;
|
25
|
+
height: $size;
|
26
|
+
|
27
|
+
border-radius: 50%;
|
28
|
+
border-width: 2px;
|
29
|
+
border-style: solid;
|
30
|
+
|
31
|
+
> svg {
|
32
|
+
width: $iconSize;
|
33
|
+
height: $iconSize;
|
34
|
+
}
|
35
|
+
}
|
36
|
+
|
37
|
+
@each $colorName, $color in $colors {
|
38
|
+
&.uk-text-#{$colorName} {
|
39
|
+
> .inquiry-divider__icon {
|
40
|
+
border-color: $color;
|
41
|
+
}
|
42
|
+
|
43
|
+
&::before,
|
44
|
+
&::after {
|
45
|
+
background-color: $color;
|
46
|
+
}
|
47
|
+
}
|
48
|
+
}
|
49
|
+
}
|
@@ -0,0 +1,31 @@
|
|
1
|
+
@import "ember-uikit/variables-theme";
|
2
|
+
|
3
|
+
$size: $global-small-font-size * 1.2;
|
4
|
+
$iconSize: $global-small-font-size * 0.9;
|
5
|
+
|
6
|
+
$colors: (
|
7
|
+
muted: $text-muted-color,
|
8
|
+
emphasis: $text-emphasis-color,
|
9
|
+
success: $text-success-color,
|
10
|
+
danger: $text-danger-color,
|
11
|
+
warning: $text-warning-color,
|
12
|
+
);
|
13
|
+
|
14
|
+
.status-indicator {
|
15
|
+
width: $size;
|
16
|
+
height: $size;
|
17
|
+
border-width: 1px;
|
18
|
+
border-style: solid;
|
19
|
+
|
20
|
+
> svg {
|
21
|
+
width: $iconSize;
|
22
|
+
height: $iconSize;
|
23
|
+
}
|
24
|
+
|
25
|
+
@each $colorName, $color in $colors {
|
26
|
+
&.uk-text-#{$colorName} {
|
27
|
+
color: darken($color, 20%);
|
28
|
+
border-color: $color;
|
29
|
+
}
|
30
|
+
}
|
31
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
@import "ember-uikit";
|
@@ -0,0 +1 @@
|
|
1
|
+
export { default } from "@projectcaluma/ember-distribution/utils/inquiry-deadline";
|
@@ -0,0 +1 @@
|
|
1
|
+
export { default } from "@projectcaluma/ember-distribution/utils/inquiry-status";
|
@@ -0,0 +1 @@
|
|
1
|
+
export { default } from "@projectcaluma/ember-distribution/utils/unique-by-groups";
|