@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.
Files changed (91) hide show
  1. package/CHANGELOG.md +38 -0
  2. package/addon/-private/decorator.js +24 -0
  3. package/addon/abilities/inquiry.js +39 -0
  4. package/addon/components/distribution-navigation/controls.hbs +21 -0
  5. package/addon/components/distribution-navigation/controls.js +45 -0
  6. package/addon/components/distribution-navigation/item.hbs +18 -0
  7. package/addon/components/distribution-navigation/item.js +17 -0
  8. package/addon/components/distribution-navigation/section.hbs +24 -0
  9. package/addon/components/distribution-navigation/section.js +25 -0
  10. package/addon/components/distribution-navigation/status-indicator.hbs +17 -0
  11. package/addon/components/distribution-navigation/status-indicator.js +19 -0
  12. package/addon/components/distribution-navigation.hbs +17 -0
  13. package/addon/components/distribution-navigation.js +81 -0
  14. package/addon/components/icon-button.hbs +20 -0
  15. package/addon/components/icon-button.js +22 -0
  16. package/addon/components/inquiry-answer-form.hbs +46 -0
  17. package/addon/components/inquiry-answer-form.js +75 -0
  18. package/addon/components/inquiry-dialog/inquiry-deadline.hbs +6 -0
  19. package/addon/components/inquiry-dialog/inquiry-deadline.js +10 -0
  20. package/addon/components/inquiry-dialog/inquiry-divider.hbs +7 -0
  21. package/addon/components/inquiry-dialog/inquiry-divider.js +13 -0
  22. package/addon/components/inquiry-dialog/inquiry-part.hbs +40 -0
  23. package/addon/components/inquiry-dialog/inquiry-part.js +20 -0
  24. package/addon/components/inquiry-dialog/inquiry.hbs +13 -0
  25. package/addon/components/inquiry-dialog/inquiry.js +7 -0
  26. package/addon/components/inquiry-dialog.hbs +9 -0
  27. package/addon/components/inquiry-dialog.js +42 -0
  28. package/addon/components/inquiry-edit-form.hbs +27 -0
  29. package/addon/components/inquiry-edit-form.js +53 -0
  30. package/addon/components/inquiry-new-form.hbs +110 -0
  31. package/addon/components/inquiry-new-form.js +154 -0
  32. package/addon/config.js +72 -0
  33. package/addon/controllers/distribution/new.js +22 -0
  34. package/addon/engine.js +18 -0
  35. package/addon/gql/fragments/inquiry.graphql +89 -0
  36. package/addon/gql/mutations/complete-inquiry-work-item.graphql +36 -0
  37. package/addon/gql/mutations/create-inquiry.graphql +5 -0
  38. package/addon/gql/mutations/resume-work-item.graphql +8 -0
  39. package/addon/gql/queries/control-work-items.graphql +37 -0
  40. package/addon/gql/queries/inquiry-answer.graphql +33 -0
  41. package/addon/gql/queries/inquiry-dialog.graphql +28 -0
  42. package/addon/gql/queries/inquiry-edit.graphql +18 -0
  43. package/addon/gql/queries/inquiry-navigation.graphql +56 -0
  44. package/addon/routes/distribution/index.js +41 -0
  45. package/addon/routes/distribution/inquiry/detail/answer.js +7 -0
  46. package/addon/routes/distribution/inquiry/detail/index.js +7 -0
  47. package/addon/routes/distribution/inquiry/detail.js +7 -0
  48. package/addon/routes/distribution/inquiry/index.js +10 -0
  49. package/addon/routes/distribution/inquiry.js +7 -0
  50. package/addon/routes/distribution/new.js +7 -0
  51. package/addon/routes/distribution.js +7 -0
  52. package/addon/routes.js +12 -0
  53. package/addon/templates/distribution/inquiry/detail/answer.hbs +1 -0
  54. package/addon/templates/distribution/inquiry/detail/index.hbs +1 -0
  55. package/addon/templates/distribution/inquiry/detail.hbs +1 -0
  56. package/addon/templates/distribution/inquiry/index.hbs +5 -0
  57. package/addon/templates/distribution/inquiry.hbs +1 -0
  58. package/addon/templates/distribution/new.hbs +7 -0
  59. package/addon/templates/distribution.hbs +8 -0
  60. package/addon/utils/inquiry-deadline.js +48 -0
  61. package/addon/utils/inquiry-status.js +68 -0
  62. package/addon/utils/unique-by-groups.js +17 -0
  63. package/app/abilities/inquiry.js +1 -0
  64. package/app/components/distribution-navigation/controls.js +1 -0
  65. package/app/components/distribution-navigation/item.js +1 -0
  66. package/app/components/distribution-navigation/section.js +1 -0
  67. package/app/components/distribution-navigation/status-indicator.js +1 -0
  68. package/app/components/distribution-navigation.js +1 -0
  69. package/app/components/icon-button.js +1 -0
  70. package/app/components/inquiry-answer-form.js +1 -0
  71. package/app/components/inquiry-dialog/inquiry-deadline.js +1 -0
  72. package/app/components/inquiry-dialog/inquiry-divider.js +1 -0
  73. package/app/components/inquiry-dialog/inquiry-part.js +1 -0
  74. package/app/components/inquiry-dialog/inquiry.js +1 -0
  75. package/app/components/inquiry-dialog.js +1 -0
  76. package/app/components/inquiry-edit-form.js +1 -0
  77. package/app/components/inquiry-new-form.js +1 -0
  78. package/app/styles/@projectcaluma/ember-distribution.scss +3 -0
  79. package/app/styles/_icon-button.scss +13 -0
  80. package/app/styles/_inquiry-divider.scss +49 -0
  81. package/app/styles/_status-indicator.scss +31 -0
  82. package/app/styles/app.scss +1 -0
  83. package/app/utils/inquiry-deadline.js +1 -0
  84. package/app/utils/inquiry-status.js +1 -0
  85. package/app/utils/unique-by-groups.js +1 -0
  86. package/config/environment.js +10 -0
  87. package/index.js +22 -0
  88. package/package.json +86 -0
  89. package/translations/de.yaml +42 -0
  90. package/translations/en.yaml +42 -0
  91. 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,18 @@
1
+ query InquiryEdit($inquiry: ID!) {
2
+ allWorkItems(filter: [{ id: $inquiry }]) {
3
+ edges {
4
+ node {
5
+ id
6
+ status
7
+ controllingGroups
8
+ task {
9
+ id
10
+ slug
11
+ }
12
+ document {
13
+ id
14
+ }
15
+ }
16
+ }
17
+ }
18
+ }
@@ -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
+ }
@@ -0,0 +1,7 @@
1
+ import Route from "@ember/routing/route";
2
+
3
+ export default class DistributionInquiryDetailAnswerRoute extends Route {
4
+ model() {
5
+ return this.modelFor("distribution.inquiry.detail");
6
+ }
7
+ }
@@ -0,0 +1,7 @@
1
+ import Route from "@ember/routing/route";
2
+
3
+ export default class DistributionInquiryDetailIndexRoute extends Route {
4
+ model() {
5
+ return this.modelFor("distribution.inquiry.detail");
6
+ }
7
+ }
@@ -0,0 +1,7 @@
1
+ import Route from "@ember/routing/route";
2
+
3
+ export default class DistributionInquiryDetailRoute extends Route {
4
+ model({ inquiry }) {
5
+ return inquiry;
6
+ }
7
+ }
@@ -0,0 +1,10 @@
1
+ import Route from "@ember/routing/route";
2
+
3
+ export default class DistributionInquiryIndexRoute extends Route {
4
+ model() {
5
+ return {
6
+ ...this.modelFor("distribution.inquiry"),
7
+ case: this.modelFor("distribution"),
8
+ };
9
+ }
10
+ }
@@ -0,0 +1,7 @@
1
+ import Route from "@ember/routing/route";
2
+
3
+ export default class DistributionInquiryRoute extends Route {
4
+ model({ from, to }) {
5
+ return { from, to };
6
+ }
7
+ }
@@ -0,0 +1,7 @@
1
+ import Route from "@ember/routing/route";
2
+
3
+ export default class DistributionNewRoute extends Route {
4
+ model() {
5
+ return this.modelFor("distribution");
6
+ }
7
+ }
@@ -0,0 +1,7 @@
1
+ import Route from "@ember/routing/route";
2
+
3
+ export default class DistributionRoute extends Route {
4
+ model(params) {
5
+ return params.case;
6
+ }
7
+ }
@@ -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,5 @@
1
+ <InquiryDialog
2
+ @from={{@model.from}}
3
+ @to={{@model.to}}
4
+ @caseId={{@model.case}}
5
+ />
@@ -0,0 +1 @@
1
+ {{outlet}}
@@ -0,0 +1,7 @@
1
+ <InquiryNewForm
2
+ @selectedTypes={{this.selectedTypes}}
3
+ @search={{this.search}}
4
+ @caseId={{@model}}
5
+ @onChangeSelectedTypes={{fn (mut this.selectedTypes)}}
6
+ @onChangeSearch={{fn (mut this.search)}}
7
+ />
@@ -0,0 +1,8 @@
1
+ <div uk-grid>
2
+ <div class="uk-width-1-3">
3
+ <DistributionNavigation @caseId={{@model}} />
4
+ </div>
5
+ <div class="uk-width-2-3">
6
+ {{outlet}}
7
+ </div>
8
+ </div>
@@ -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,3 @@
1
+ @import "../icon-button";
2
+ @import "../inquiry-divider";
3
+ @import "../status-indicator";
@@ -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";
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ module.exports = function (environment) {
4
+ const ENV = {
5
+ modulePrefix: require("../package.json").name,
6
+ environment,
7
+ };
8
+
9
+ return ENV;
10
+ };