@registrucentras/rc-ses-angular-components 0.2.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (133) hide show
  1. package/README.md +31 -31
  2. package/esm2022/lib/components/accordion/accordion.mjs +40 -0
  3. package/esm2022/lib/components/breadcrumbs/breadcrumbs.mjs +43 -0
  4. package/esm2022/lib/components/button/button.mjs +43 -0
  5. package/esm2022/lib/components/divider/divider.mjs +23 -0
  6. package/esm2022/lib/components/form/form-field/form-field.mjs +105 -0
  7. package/esm2022/lib/components/form/input/agreement-checkbox/agreement-checkbox.mjs +102 -0
  8. package/esm2022/lib/components/form/input/input/input.mjs +38 -0
  9. package/esm2022/lib/components/form/input/number-stepper/number-stepper.mjs +112 -0
  10. package/esm2022/lib/components/form/input/radio-button-group/radio-button-group.mjs +111 -0
  11. package/esm2022/lib/components/form/input/select/select.mjs +164 -0
  12. package/esm2022/lib/components/icons/icons.module.mjs +33 -0
  13. package/esm2022/lib/components/layout/service-form-actions/service-form-actions.mjs +48 -0
  14. package/esm2022/lib/components/layout/service-form-container/service-form-container.mjs +48 -0
  15. package/esm2022/lib/components/layout/service-header/service-header.mjs +50 -0
  16. package/esm2022/lib/components/layout/service-page/service-page.mjs +41 -0
  17. package/esm2022/lib/components/layout/service-wizard-steps/service-wizard-steps.mjs +43 -0
  18. package/esm2022/lib/components/message/message.mjs +62 -0
  19. package/esm2022/public-api.mjs +19 -0
  20. package/esm2022/registrucentras-rc-ses-angular-components.mjs +5 -0
  21. package/fesm2022/registrucentras-rc-ses-angular-components.mjs +1008 -0
  22. package/fesm2022/registrucentras-rc-ses-angular-components.mjs.map +1 -0
  23. package/index.d.ts +5 -0
  24. package/lib/components/accordion/accordion.d.ts +18 -0
  25. package/lib/components/breadcrumbs/breadcrumbs.d.ts +18 -0
  26. package/lib/components/button/button.d.ts +15 -0
  27. package/lib/components/divider/divider.d.ts +5 -0
  28. package/lib/components/form/form-field/form-field.d.ts +29 -0
  29. package/lib/components/form/input/agreement-checkbox/agreement-checkbox.d.ts +28 -0
  30. package/lib/components/form/input/input/input.d.ts +14 -0
  31. package/lib/components/form/input/number-stepper/number-stepper.d.ts +33 -0
  32. package/lib/components/form/input/radio-button-group/radio-button-group.d.ts +38 -0
  33. package/lib/components/form/input/select/select.d.ts +47 -0
  34. package/lib/components/icons/icons.module.d.ts +10 -0
  35. package/lib/components/layout/service-form-actions/service-form-actions.d.ts +16 -0
  36. package/lib/components/layout/service-form-container/service-form-container.d.ts +18 -0
  37. package/lib/components/layout/service-header/service-header.d.ts +23 -0
  38. package/lib/components/layout/service-page/service-page.d.ts +16 -0
  39. package/lib/components/layout/service-wizard-steps/service-wizard-steps.d.ts +18 -0
  40. package/lib/components/message/message.d.ts +23 -0
  41. package/package.json +39 -36
  42. package/{projects/rc-ses/angular-components/src/public-api.ts → public-api.d.ts} +15 -22
  43. package/{projects/rc-ses/angular-components/src → src}/lib/theme/index.scss +65 -65
  44. package/{projects/rc-ses/angular-components/src → src}/lib/theme/palette.scss +183 -183
  45. package/{projects/rc-ses/angular-components/src → src}/lib/theme/theme.scss +24 -24
  46. package/{projects/rc-ses/angular-components/src → src}/lib/theme/typography.scss +63 -63
  47. package/.editorconfig +0 -17
  48. package/.gitattributes +0 -1
  49. package/.github/workflows/build-and-publish.yml +0 -50
  50. package/.vscode/extensions.json +0 -4
  51. package/.vscode/launch.json +0 -20
  52. package/.vscode/tasks.json +0 -42
  53. package/RELEASE_NOTES.md +0 -29
  54. package/angular.json +0 -173
  55. package/karma.conf.js +0 -53
  56. package/projects/app/public/favicon.ico +0 -0
  57. package/projects/app/src/app/app.component.html +0 -3
  58. package/projects/app/src/app/app.component.scss +0 -0
  59. package/projects/app/src/app/app.component.ts +0 -20
  60. package/projects/app/src/app/app.config.ts +0 -33
  61. package/projects/app/src/app/app.routes.ts +0 -16
  62. package/projects/app/src/app/landing-page/landing-page.html +0 -20
  63. package/projects/app/src/app/landing-page/landing-page.scss +0 -0
  64. package/projects/app/src/app/landing-page/landing-page.ts +0 -37
  65. package/projects/app/src/app/sample-form-multiple-steps/sample-form-multiple-steps.html +0 -283
  66. package/projects/app/src/app/sample-form-multiple-steps/sample-form-multiple-steps.scss +0 -0
  67. package/projects/app/src/app/sample-form-multiple-steps/sample-form-multiple-steps.ts +0 -223
  68. package/projects/app/src/app/sample-form-single-step/sample-form-single-step.html +0 -271
  69. package/projects/app/src/app/sample-form-single-step/sample-form-single-step.scss +0 -0
  70. package/projects/app/src/app/sample-form-single-step/sample-form-single-step.ts +0 -142
  71. package/projects/app/src/index.html +0 -18
  72. package/projects/app/src/main.ts +0 -6
  73. package/projects/app/tsconfig.app.json +0 -15
  74. package/projects/app/tsconfig.spec.json +0 -15
  75. package/projects/rc-ses/angular-components/README.md +0 -31
  76. package/projects/rc-ses/angular-components/ng-package.json +0 -13
  77. package/projects/rc-ses/angular-components/package-lock.json +0 -224
  78. package/projects/rc-ses/angular-components/package.json +0 -40
  79. package/projects/rc-ses/angular-components/src/lib/components/accordion/accordion.scss +0 -71
  80. package/projects/rc-ses/angular-components/src/lib/components/accordion/accordion.ts +0 -31
  81. package/projects/rc-ses/angular-components/src/lib/components/breadcrumbs/breadcrumbs.html +0 -7
  82. package/projects/rc-ses/angular-components/src/lib/components/breadcrumbs/breadcrumbs.scss +0 -54
  83. package/projects/rc-ses/angular-components/src/lib/components/breadcrumbs/breadcrumbs.ts +0 -40
  84. package/projects/rc-ses/angular-components/src/lib/components/button/button.scss +0 -248
  85. package/projects/rc-ses/angular-components/src/lib/components/button/button.spec.ts +0 -46
  86. package/projects/rc-ses/angular-components/src/lib/components/button/button.ts +0 -34
  87. package/projects/rc-ses/angular-components/src/lib/components/divider/divider.scss +0 -18
  88. package/projects/rc-ses/angular-components/src/lib/components/divider/divider.ts +0 -16
  89. package/projects/rc-ses/angular-components/src/lib/components/form/form-field/form-field.html +0 -11
  90. package/projects/rc-ses/angular-components/src/lib/components/form/form-field/form-field.scss +0 -149
  91. package/projects/rc-ses/angular-components/src/lib/components/form/form-field/form-field.ts +0 -87
  92. package/projects/rc-ses/angular-components/src/lib/components/form/input/agreement-checkbox/agreement-checkbox.html +0 -10
  93. package/projects/rc-ses/angular-components/src/lib/components/form/input/agreement-checkbox/agreement-checkbox.scss +0 -36
  94. package/projects/rc-ses/angular-components/src/lib/components/form/input/agreement-checkbox/agreement-checkbox.ts +0 -89
  95. package/projects/rc-ses/angular-components/src/lib/components/form/input/checkbox/checkbox.scss +0 -132
  96. package/projects/rc-ses/angular-components/src/lib/components/form/input/datepicker/datepicker.scss +0 -18
  97. package/projects/rc-ses/angular-components/src/lib/components/form/input/input/input.scss +0 -66
  98. package/projects/rc-ses/angular-components/src/lib/components/form/input/input/input.ts +0 -31
  99. package/projects/rc-ses/angular-components/src/lib/components/form/input/number-stepper/number-stepper.html +0 -30
  100. package/projects/rc-ses/angular-components/src/lib/components/form/input/number-stepper/number-stepper.scss +0 -88
  101. package/projects/rc-ses/angular-components/src/lib/components/form/input/number-stepper/number-stepper.ts +0 -103
  102. package/projects/rc-ses/angular-components/src/lib/components/form/input/radio/radio.scss +0 -85
  103. package/projects/rc-ses/angular-components/src/lib/components/form/input/radio-button-group/radio-button-group.html +0 -7
  104. package/projects/rc-ses/angular-components/src/lib/components/form/input/radio-button-group/radio-button-group.scss +0 -87
  105. package/projects/rc-ses/angular-components/src/lib/components/form/input/radio-button-group/radio-button-group.ts +0 -101
  106. package/projects/rc-ses/angular-components/src/lib/components/form/input/select/select.html +0 -40
  107. package/projects/rc-ses/angular-components/src/lib/components/form/input/select/select.scss +0 -153
  108. package/projects/rc-ses/angular-components/src/lib/components/form/input/select/select.ts +0 -155
  109. package/projects/rc-ses/angular-components/src/lib/components/icons/icons.module.ts +0 -61
  110. package/projects/rc-ses/angular-components/src/lib/components/layout/service-form-actions/service-form-actions.html +0 -19
  111. package/projects/rc-ses/angular-components/src/lib/components/layout/service-form-actions/service-form-actions.scss +0 -64
  112. package/projects/rc-ses/angular-components/src/lib/components/layout/service-form-actions/service-form-actions.ts +0 -45
  113. package/projects/rc-ses/angular-components/src/lib/components/layout/service-form-container/service-form-container.html +0 -16
  114. package/projects/rc-ses/angular-components/src/lib/components/layout/service-form-container/service-form-container.scss +0 -32
  115. package/projects/rc-ses/angular-components/src/lib/components/layout/service-form-container/service-form-container.ts +0 -43
  116. package/projects/rc-ses/angular-components/src/lib/components/layout/service-header/service-header.html +0 -5
  117. package/projects/rc-ses/angular-components/src/lib/components/layout/service-header/service-header.scss +0 -35
  118. package/projects/rc-ses/angular-components/src/lib/components/layout/service-header/service-header.ts +0 -48
  119. package/projects/rc-ses/angular-components/src/lib/components/layout/service-page/service-page.html +0 -14
  120. package/projects/rc-ses/angular-components/src/lib/components/layout/service-page/service-page.scss +0 -38
  121. package/projects/rc-ses/angular-components/src/lib/components/layout/service-page/service-page.ts +0 -37
  122. package/projects/rc-ses/angular-components/src/lib/components/layout/service-wizard-steps/service-wizard-steps.html +0 -18
  123. package/projects/rc-ses/angular-components/src/lib/components/layout/service-wizard-steps/service-wizard-steps.scss +0 -93
  124. package/projects/rc-ses/angular-components/src/lib/components/layout/service-wizard-steps/service-wizard-steps.ts +0 -41
  125. package/projects/rc-ses/angular-components/src/lib/components/message/message.html +0 -39
  126. package/projects/rc-ses/angular-components/src/lib/components/message/message.scss +0 -141
  127. package/projects/rc-ses/angular-components/src/lib/components/message/message.ts +0 -52
  128. package/projects/rc-ses/angular-components/src/styles.scss +0 -40
  129. package/projects/rc-ses/angular-components/src/test.ts +0 -14
  130. package/projects/rc-ses/angular-components/tsconfig.lib.json +0 -15
  131. package/projects/rc-ses/angular-components/tsconfig.lib.prod.json +0 -11
  132. package/tsconfig.json +0 -37
  133. package/tsconfig.spec.json +0 -18
@@ -1,87 +0,0 @@
1
- @use 'sass:color';
2
- @use '@angular/material' as mat;
3
-
4
- @mixin bootstrap($theme, $typography) {
5
- @layer rc-ses {
6
- .rc-ses-radio-button-group {
7
- border: 1px solid #{mat.get-theme-color($theme, neutral, 50)};
8
- border-radius: .1875rem;
9
- display: block;
10
- padding: .375rem;
11
-
12
- &--has-background {
13
- background-color: mat.get-theme-color($theme, neutral, 98);
14
- border: none !important;
15
- }
16
-
17
- &--radio-as-buttons {
18
- background-color: transparent !important;
19
- border: none !important;
20
- padding: 0;
21
-
22
- .mat-mdc-radio-group {
23
- display: flex;
24
- flex-wrap: wrap;
25
- justify-content: stretch;
26
- margin: -.25rem;
27
- }
28
-
29
- .mat-mdc-radio-button {
30
- background-color: var(--mdc-outlined-button-container-color);
31
- border-color: var(--mdc-outlined-text-field-outline-color);
32
- border-style: solid;
33
- border-radius: var(--mdc-outlined-button-container-shape);
34
- border-width: 1px;
35
- display: flex;
36
- flex: 0 0 0%;
37
- justify-content: center;
38
- margin: .25rem;
39
- padding: 0 !important;
40
-
41
- .mdc-radio {
42
- position: absolute !important;
43
- opacity: 0 !important;
44
- padding: 0 !important;
45
- z-index: -1;
46
- }
47
-
48
- .mdc-label {
49
- cursor: pointer;
50
- font-size: var(--mdc-text-button-label-text-size);
51
- font-weight: 600;
52
- line-height: 1.125rem;
53
- padding: .8125rem 1rem !important;
54
- text-wrap: nowrap;
55
- }
56
-
57
- &:hover {
58
- border-color: mat.get-theme-color($theme, neutral, 25);
59
- background-color: mat.get-theme-color($theme, neutral, 98);
60
- }
61
-
62
- &:active {
63
- border-color: mat.get-theme-color($theme, neutral, 20);
64
- background-color: mat.get-theme-color($theme, neutral, 95);
65
- }
66
-
67
- &:focus-within:not(:hover) {
68
- outline: 2px solid #{mat.get-theme-color($theme, neutral, 0)} !important;
69
- outline-offset: 2px;
70
- }
71
-
72
- &.mat-mdc-radio-checked {
73
- border-color: mat.get-theme-color($theme, primary, 90);
74
- background-color: mat.get-theme-color($theme, primary, 95);
75
- }
76
- }
77
- }
78
-
79
- }
80
- }
81
-
82
- @layer rc-ses-variables {
83
- :root {
84
-
85
- }
86
- }
87
- }
@@ -1,101 +0,0 @@
1
- import { CommonModule, DOCUMENT } from "@angular/common";
2
- import { Component, AfterViewInit, OnDestroy, ElementRef, Inject, Renderer2, Input, ContentChildren, QueryList, OnChanges, SimpleChanges, OnInit, forwardRef, ViewChild, Injector, booleanAttribute } from "@angular/core";
3
- import { ControlContainer, ControlValueAccessor, FormControl, FormControlDirective, FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule } from "@angular/forms";
4
- import { MatButtonModule } from "@angular/material/button";
5
- import { MatCommonModule } from "@angular/material/core";
6
- import { MatFormFieldModule } from "@angular/material/form-field";
7
- import { MatRadioButton, MatRadioModule } from "@angular/material/radio";
8
- import { RcSesButtonDirective } from "../../../button/button";
9
-
10
- type Option = { value: string, label: string };
11
- type Options = Option[];
12
-
13
- @Component({
14
- selector: 'rc-ses-radio-button-group',
15
- standalone: true,
16
- templateUrl: 'radio-button-group.html',
17
- imports: [
18
- CommonModule,
19
- FormsModule,
20
- ReactiveFormsModule,
21
-
22
- MatButtonModule,
23
- MatCommonModule,
24
- MatFormFieldModule,
25
- MatRadioModule,
26
-
27
- RcSesButtonDirective,
28
- ],
29
- host: {
30
- class: 'rc-ses-element rc-ses-radio-button-group'
31
- },
32
- providers: [
33
- {
34
- provide: NG_VALUE_ACCESSOR,
35
- useExisting: forwardRef(() => RcSesRadioButtonGroupComponent),
36
- multi: true
37
- }
38
- ]
39
- })
40
- export class RcSesRadioButtonGroupComponent implements ControlValueAccessor, AfterViewInit, OnChanges, OnInit, OnDestroy {
41
- @ContentChildren(MatRadioButton)
42
- queryOptions!: QueryList<MatRadioButton>;
43
-
44
- @ViewChild(FormControlDirective, {static: true})
45
- formControlDirective: FormControlDirective | undefined;
46
-
47
- @Input() formControl!: FormControl;
48
- @Input() formControlName: string | undefined;
49
- @Input() options!: Options;
50
-
51
- @Input({ transform: booleanAttribute }) displayAsButtons: boolean = false;
52
- @Input({ transform: booleanAttribute }) hasBackground: boolean = false;
53
-
54
- initialized: boolean = false;
55
-
56
- constructor(
57
- @Inject(DOCUMENT) private _document: Document,
58
- public _element: ElementRef,
59
- private _renderer: Renderer2,
60
- private injector: Injector,
61
- ) {}
62
-
63
- get controlContainer() {
64
- return this.injector.get(ControlContainer);
65
- }
66
-
67
- get control() {
68
- return this.formControl ||
69
- (this.formControlName && this.controlContainer.control?.get(this.formControlName));
70
- }
71
-
72
- writeValue(obj: any): void {
73
- this.formControlDirective?.valueAccessor?.writeValue(obj);
74
- }
75
-
76
- registerOnChange(fn: any): void {
77
- this.formControlDirective?.valueAccessor?.registerOnChange(fn);
78
- }
79
-
80
- registerOnTouched(fn: any): void {
81
- this.formControlDirective?.valueAccessor?.registerOnTouched(fn);
82
- }
83
-
84
- ngOnChanges(_changes: SimpleChanges): void {}
85
-
86
- ngOnInit() {
87
- if (this.displayAsButtons)
88
- this._renderer.addClass(this._element.nativeElement, 'rc-ses-radio-button-group--radio-as-buttons');
89
-
90
- if (this.hasBackground)
91
- this._renderer.addClass(this._element.nativeElement, 'rc-ses-radio-button-group--has-background');
92
- }
93
-
94
- ngAfterViewInit() {
95
- this.initialized = true;
96
- }
97
-
98
- ngOnDestroy() {
99
- this.initialized = false;
100
- }
101
- }
@@ -1,40 +0,0 @@
1
- <mat-form-field>
2
- <mat-select
3
- [formControl]="control"
4
- [placeholder]="placeholder"
5
- [multiple]="multiple"
6
- [panelWidth]="panelWidth"
7
- hideSingleSelectionIndicator
8
- disableRipple
9
- >
10
- @if (searchable) {
11
- <div class="rc-ses-select-search-wrapper">
12
- @if (multiple) {
13
- <mat-checkbox
14
- [checked]="isFullSelection()"
15
- [indeterminate]="isPartialSelection()"
16
- (change)="handleSelectAllChange($event.checked)"
17
- />
18
- }
19
- <mat-form-field>
20
- <mat-icon matPrefix>search</mat-icon>
21
- <input
22
- rc-ses-input
23
- matInput
24
- type="text"
25
- placeholder="Ieškoti"
26
- (keyup)="filterOptions($event)"
27
- />
28
- </mat-form-field>
29
- </div>
30
- }
31
- @for (option of filteredOptions; track option.value) {
32
- <mat-option [value]="option.value">
33
- {{ option.label }}
34
- @if (option.description) {
35
- <div class="description">{{ option.description }}</div>
36
- }
37
- </mat-option>
38
- }
39
- </mat-select>
40
- </mat-form-field>
@@ -1,153 +0,0 @@
1
- @use 'sass:color';
2
- @use '@angular/material' as mat;
3
-
4
- @mixin bootstrap($theme, $typography) {
5
- @layer rc-ses {
6
- .rc-ses-select {
7
- display: block;
8
- flex-grow: 1;
9
-
10
- .mat-mdc-form-field {
11
- width: 100%;
12
- }
13
-
14
- .mat-mdc-select-arrow-wrapper {
15
- height: #{map-get($typography, 'body-2', 'line-height')} !important;
16
- }
17
- }
18
-
19
- .cdk-overlay-pane {
20
-
21
- .rc-ses-select-search-wrapper {
22
- background-color: mat.get-theme-color($theme, neutral, 100);
23
- border-bottom: 1px solid mat.get-theme-color($theme, neutral, 90);
24
- border-top-left-radius: .25rem;
25
- border-top-right-radius: .25rem;
26
- display: flex;
27
- margin-bottom: .375rem;
28
- margin-top: -.375rem;
29
- padding: .75rem 1rem;
30
- position: sticky;
31
- top: -.375rem;
32
- z-index: 1;
33
-
34
- .mat-mdc-checkbox {
35
- margin-left: -.375rem;
36
- margin-right: .5rem;
37
- margin-top: .125rem;
38
- vertical-align: top;
39
- }
40
-
41
- .mat-mdc-form-field {
42
- flex-grow: 1;
43
- }
44
- }
45
-
46
- div.mat-mdc-select-panel {
47
- --mdc-list-list-item-container-shape: .1875rem !important;
48
-
49
- border-radius: .25rem !important;
50
- padding-bottom: .375rem !important;
51
- padding-top: .375rem !important;
52
- scrollbar-width: thin;
53
-
54
- .mat-mdc-optgroup-label {
55
- padding-left: .75rem !important;
56
- padding-right: .75rem !important;
57
-
58
- .mdc-list-item__primary-text {
59
- color: mat.get-theme-color($theme, primary, 40) !important;
60
- letter-spacing: .01em !important;
61
- text-transform: uppercase !important;
62
- }
63
- }
64
-
65
- .mdc-list-item {
66
- margin-left: .375rem;
67
- margin-right: .375rem;
68
- padding: .8125rem .75rem !important;
69
-
70
- &--disabled {
71
- background-color: transparent !important;
72
-
73
- &:before {
74
- background-color: transparent !important;
75
- }
76
-
77
- .mat-pseudo-checkbox {
78
- display: none !important;
79
- }
80
- }
81
-
82
- &--selected {
83
-
84
- &.mat-mdc-option-active:not(.mdc-list-item--disabled):not(.mat-mdc-option-multiple) {
85
- background-color: mat.get-theme-color($theme, neutral, 98) !important;
86
- }
87
- }
88
- }
89
-
90
- .mat-mdc-option {
91
- min-height: 1.125rem !important;
92
-
93
- &-multiple {
94
-
95
- .mat-pseudo-checkbox {
96
- margin-bottom: -.25rem;
97
- margin-top: -.25rem;
98
- }
99
- }
100
-
101
- .description {
102
- color: mat.get-theme-color($theme, neutral, 40) !important;
103
- font-size: map-get($typography, 'body-2', 'font-size');
104
- font-style: italic;
105
- }
106
-
107
- .mat-pseudo-checkbox-checked::after {
108
- content: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="none"><path fill="%23087fb2" d="m14.533 5.031-8 8a.751.751 0 0 1-1.063 0l-3.5-3.5A.751.751 0 0 1 3.033 8.47l2.969 2.97 7.47-7.469a.751.751 0 0 1 1.062 1.063l-.001-.002Z"/></svg>') !important;
109
- }
110
- }
111
-
112
- .mat-mdc-form-field-icon-prefix .mat-icon {
113
- padding: 0 !important;
114
- }
115
- }
116
-
117
- &:not(.mat-mdc-select-panel-above) {
118
-
119
- div.mat-mdc-select-panel {
120
- margin-top: .25rem;
121
- }
122
- }
123
- }
124
- }
125
-
126
- @layer rc-ses-variables {
127
- :root {
128
- --mdc-list-list-item-label-text-color: #{mat.get-theme-color($theme, neutral, 20)};
129
- --mdc-list-list-item-label-text-line-height: #{map-get($typography, 'body-2', 'line-height')};
130
- --mdc-list-list-item-label-text-size: #{map-get($typography, 'body-2', 'font-size')};
131
-
132
- --mat-optgroup-label-text-color: #{mat.get-theme-color($theme, primary, 40)};
133
- --mat-optgroup-label-text-line-height: 1.0625rem;
134
- --mat-optgroup-label-text-size: .75rem;
135
- --mat-optgroup-label-text-weight: 500;
136
-
137
- --mat-option-hover-state-layer-color: #{mat.get-theme-color($theme, neutral, 98)};
138
- --mat-option-focus-state-layer-color: #{mat.get-theme-color($theme, neutral, 98)};
139
- --mat-option-label-text-line-height: #{map-get($typography, 'body-2', 'line-height')};
140
- --mat-option-label-text-size: #{map-get($typography, 'body-2', 'font-size')};
141
- --mat-option-selected-state-layer-color: transparent;
142
- --mat-option-selected-state-label-text-color: #{mat.get-theme-color($theme, neutral, 20)};
143
-
144
- --mat-select-container-elevation-shadow:
145
- 0px 4px 16px 0px #{color.adjust(#091e42, $alpha: -0.76)},
146
- 0px 8px 16px 0px #{color.adjust(#091e42, $alpha: -0.90)};
147
- --mat-select-trigger-text-size: #{map-get($typography, 'body-2', 'font-size')};
148
- --mat-select-trigger-text-line-height: #{map-get($typography, 'body-2', 'line-height')};
149
- --mat-select-panel-background-color: white;
150
- --mat-select-placeholder-text-color: #{mat.get-theme-color($theme, neutral, 40)};
151
- }
152
- }
153
- }
@@ -1,155 +0,0 @@
1
- import { CommonModule, DOCUMENT } from "@angular/common";
2
- import { Component, AfterViewInit, OnDestroy, ElementRef, Inject, Renderer2, Input, ContentChildren, QueryList, ChangeDetectorRef, model, OnChanges, SimpleChanges, OnInit, forwardRef, ViewChild, Injector, booleanAttribute } from "@angular/core";
3
- import { ControlContainer, ControlValueAccessor, FormControl, FormControlDirective, FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule } from "@angular/forms";
4
- import { MatButtonModule } from "@angular/material/button";
5
- import { MatCheckboxModule } from "@angular/material/checkbox";
6
- import { MatCommonModule, MatOption, MatOptionModule } from "@angular/material/core";
7
- import { MatExpansionModule } from "@angular/material/expansion";
8
- import { MatFormFieldModule } from "@angular/material/form-field";
9
- import { MatIconModule } from "@angular/material/icon";
10
- import { MatInputModule } from "@angular/material/input";
11
- import { MatSelectModule } from "@angular/material/select";
12
-
13
- type Option = { value: string, label: string, description?: string };
14
- type Options = Option[];
15
-
16
- @Component({
17
- selector: 'rc-ses-select',
18
- standalone: true,
19
- templateUrl: 'select.html',
20
- imports: [
21
- CommonModule,
22
- FormsModule,
23
- ReactiveFormsModule,
24
-
25
- MatButtonModule,
26
- MatCheckboxModule,
27
- MatCommonModule,
28
- MatExpansionModule,
29
- MatFormFieldModule,
30
- MatIconModule,
31
- MatInputModule,
32
- MatOptionModule,
33
- MatSelectModule,
34
- ],
35
- host: {
36
- class: 'rc-ses-element rc-ses-select'
37
- },
38
- providers: [
39
- {
40
- provide: NG_VALUE_ACCESSOR,
41
- useExisting: forwardRef(() => RcSesSelectComponent),
42
- multi: true
43
- }
44
- ]
45
- })
46
- export class RcSesSelectComponent implements ControlValueAccessor, AfterViewInit, OnChanges, OnInit, OnDestroy {
47
- @ContentChildren(MatOption)
48
- queryOptions!: QueryList<MatOption>;
49
-
50
- @ViewChild(FormControlDirective, {static: true})
51
- formControlDirective: FormControlDirective | undefined;
52
-
53
- @Input() formControl!: FormControl;
54
- @Input() formControlName: string | undefined;
55
-
56
- @Input() options!: Options;
57
-
58
- @Input({ transform: booleanAttribute }) multiple: boolean = false;
59
- @Input({ transform: booleanAttribute }) searchable: boolean | '' = false;
60
- @Input() panelWidth: 'auto' | 'dynamic' | null = 'auto';
61
- @Input() placeholder: string = '';
62
-
63
- filteredOptions: Options = [];
64
-
65
- initialized: boolean = false;
66
-
67
- readonly selectAll = model(false);
68
-
69
- constructor(
70
- @Inject(DOCUMENT) private _document: Document,
71
- public _element: ElementRef,
72
- private _renderer: Renderer2,
73
- private injector: Injector,
74
- ) {}
75
-
76
- get controlContainer() {
77
- return this.injector.get(ControlContainer);
78
- }
79
-
80
- get control() {
81
- return this.formControl ||
82
- (this.formControlName && this.controlContainer.control?.get(this.formControlName));
83
- }
84
-
85
- writeValue(obj: any): void {
86
- this.formControlDirective?.valueAccessor?.writeValue(obj);
87
- }
88
-
89
- registerOnChange(fn: any): void {
90
- this.formControlDirective?.valueAccessor?.registerOnChange(fn);
91
- }
92
-
93
- registerOnTouched(fn: any): void {
94
- this.formControlDirective?.valueAccessor?.registerOnTouched(fn);
95
- }
96
-
97
- ngOnChanges(changes: SimpleChanges): void {
98
- this.filteredOptions = changes['options'].currentValue
99
- ? changes['options'].currentValue
100
- : []
101
- }
102
-
103
- ngOnInit() {
104
- if (this.searchable)
105
- this._renderer.addClass(this._element.nativeElement, 'rc-ses-select-searchable');
106
-
107
- if (this.multiple)
108
- this._renderer.addClass(this._element.nativeElement, 'rc-ses-select-multiple');
109
- }
110
-
111
- ngAfterViewInit() {
112
- this.initialized = true;
113
- }
114
-
115
- ngOnDestroy() {
116
- this.initialized = false;
117
- }
118
-
119
- filterOptions = ($event: KeyboardEvent) => {
120
- $event.stopPropagation();
121
- const query = ($event.target as HTMLInputElement).value;
122
-
123
- this.filteredOptions = !query?.length
124
- ? this.options
125
- : this.options.filter((o) => o.label.indexOf(query) !== -1);
126
- }
127
-
128
- handleSelectAllChange = (checked: boolean) => {
129
- const filteredOptionValues: Option['value'][] = this.filteredOptions.map((o) => o.value) || [];
130
-
131
- if (checked) {
132
- this.control.setValue(filteredOptionValues)
133
- } else {
134
- const currentSelection: Option['value'][] = this.control.value || [];
135
- this.control.setValue(currentSelection.filter((c) => !filteredOptionValues.includes(c)))
136
- }
137
- }
138
-
139
- isFullSelection = () => {
140
- const currentSelection: Option['value'][] = this.control.value || [];
141
-
142
- if (this.filteredOptions.length === 0 || currentSelection.length === 0)
143
- return false;
144
-
145
- return this.filteredOptions.every((o) => currentSelection.includes(o.value));
146
- }
147
-
148
- isPartialSelection = () => {
149
- if (!this.filteredOptions.length || !this.control.value.length)
150
- return false;
151
-
152
- const currentSelection: Option['value'][] = this.control.value || [];
153
- return !this.isFullSelection() && this.filteredOptions.some((o) => currentSelection.includes(o.value));
154
- }
155
- }
@@ -1,61 +0,0 @@
1
- import { DomSanitizer } from '@angular/platform-browser';
2
- import { NgModule } from '@angular/core';
3
- import { MatIconModule, MatIconRegistry } from "@angular/material/icon";
4
-
5
- @NgModule({
6
- imports: [
7
- MatIconModule,
8
- MatIconModule,
9
- ],
10
- })
11
- export class RcSesIconsModule {
12
- constructor(
13
- iconRegistry: MatIconRegistry,
14
- sanitizer: DomSanitizer,
15
- ) {
16
- iconRegistry.addSvgIconLiteral(
17
- 'rc-ses-arrow-right',
18
- sanitizer.bypassSecurityTrustHtml(`<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="#1F2733" d="m20.78 12.531-6.75 6.75a.75.75 0 1 1-1.06-1.061l5.47-5.47H3.75a.75.75 0 1 1 0-1.5h14.69l-5.47-5.469a.75.75 0 1 1 1.06-1.061l6.75 6.75a.748.748 0 0 1 0 1.061Z"/></svg>`)
19
- );
20
-
21
- iconRegistry.addSvgIconLiteral(
22
- 'rc-ses-caret-left',
23
- sanitizer.bypassSecurityTrustHtml(`<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16"><path fill="#0E6790" d="M10.354 12.646a.501.501 0 0 1-.707.708l-5-5a.5.5 0 0 1 0-.707l5-5a.5.5 0 1 1 .707.707L5.707 8l4.647 4.646Z"/></svg>`)
24
- );
25
-
26
- iconRegistry.addSvgIconLiteral(
27
- 'rc-ses-circle',
28
- sanitizer.bypassSecurityTrustHtml(`<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><circle cx="12" cy="12" r="12" fill="#1f2733"/></svg>`)
29
- );
30
-
31
- iconRegistry.addSvgIconLiteral(
32
- 'rc-ses-check-circle',
33
- sanitizer.bypassSecurityTrustHtml(`<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><circle cx="12" cy="12" r="12" fill="#00a879"/><path fill="#fff" d="m18.533 9.03-8 8a.751.751 0 0 1-1.063 0l-3.5-3.5a.751.751 0 1 1 1.063-1.062l2.969 2.97 7.47-7.469a.751.751 0 0 1 1.062 1.063l-.001-.002Z"/></svg>`)
34
- );
35
-
36
- iconRegistry.addSvgIconLiteral(
37
- 'rc-ses-check-circle-fill',
38
- sanitizer.bypassSecurityTrustHtml(`<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24"><path d="M12 2.25A9.75 9.75 0 1 0 21.75 12 9.76 9.76 0 0 0 12 2.25Zm4.28 8.03-5.25 5.25a.747.747 0 0 1-1.06 0l-2.25-2.25a.75.75 0 1 1 1.06-1.06l1.72 1.72 4.72-4.72a.751.751 0 0 1 1.06 1.06Z"/></svg>`)
39
- );
40
-
41
- iconRegistry.addSvgIconLiteral(
42
- 'rc-ses-info-fill',
43
- sanitizer.bypassSecurityTrustHtml(`<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24"><path d="M12 2.25A9.75 9.75 0 1 0 21.75 12 9.76 9.76 0 0 0 12 2.25Zm-.375 4.5a1.125 1.125 0 1 1 0 2.25 1.125 1.125 0 0 1 0-2.25Zm1.125 10.5a1.5 1.5 0 0 1-1.5-1.5V12a.75.75 0 1 1 0-1.5 1.5 1.5 0 0 1 1.5 1.5v3.75a.75.75 0 1 1 0 1.5Z"/></svg>`)
44
- );
45
-
46
- iconRegistry.addSvgIconLiteral(
47
- 'rc-ses-scroll',
48
- sanitizer.bypassSecurityTrustHtml(`<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24"><path d="M9 9.75A.75.75 0 0 1 9.75 9h6a.75.75 0 1 1 0 1.5h-6A.75.75 0 0 1 9 9.75Zm.75 3.75h6a.75.75 0 1 0 0-1.5h-6a.75.75 0 1 0 0 1.5Zm12 4.5a3 3 0 0 1-3 3H8.25a3 3 0 0 1-3-3V6a1.5 1.5 0 0 0-3 0c0 .538.453.902.458.906A.75.75 0 0 1 1.8 8.099C1.692 8.02.75 7.276.75 6a3 3 0 0 1 3-3H16.5a3 3 0 0 1 3 3v9.75h.75a.75.75 0 0 1 .45.15c.113.08 1.05.824 1.05 2.1ZM9.024 16.264a.757.757 0 0 1 .726-.514H18V6a1.5 1.5 0 0 0-1.5-1.5H6.346c.265.455.405.973.404 1.5v12a1.5 1.5 0 0 0 3 0c0-.538-.453-.902-.457-.906a.733.733 0 0 1-.269-.83ZM20.25 18a1.18 1.18 0 0 0-.303-.75h-8.812c.075.243.113.496.113.75 0 .527-.138 1.044-.402 1.5h7.904a1.5 1.5 0 0 0 1.5-1.5Z"/></svg>`)
49
- );
50
-
51
- iconRegistry.addSvgIconLiteral(
52
- 'rc-ses-warning-diamond-fill',
53
- sanitizer.bypassSecurityTrustHtml(`<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24"><path d="m22.064 10.942-9.005-9.006a1.5 1.5 0 0 0-2.115 0l-9 9.006a1.5 1.5 0 0 0 0 2.115l9.005 9.005a1.5 1.5 0 0 0 2.115 0l9.004-9.005a1.5 1.5 0 0 0 0-2.115h-.004ZM11.25 7.499a.75.75 0 1 1 1.5 0v5.25a.75.75 0 1 1-1.5 0V7.5Zm.75 9.75a1.125 1.125 0 1 1 0-2.25 1.125 1.125 0 0 1 0 2.25Z"/></svg>`)
54
- );
55
-
56
- iconRegistry.addSvgIconLiteral(
57
- 'rc-ses-warning-fill',
58
- sanitizer.bypassSecurityTrustHtml(`<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24"><path d="M22.201 17.634 14.003 3.396a2.322 2.322 0 0 0-4.004 0L1.801 17.634a2.204 2.204 0 0 0 0 2.223A2.282 2.282 0 0 0 3.803 21h16.396a2.284 2.284 0 0 0 2-1.143 2.205 2.205 0 0 0 .002-2.223ZM11.251 9.75a.75.75 0 1 1 1.5 0v3.75a.75.75 0 0 1-1.5 0V9.75Zm.75 8.25a1.125 1.125 0 1 1 0-2.25 1.125 1.125 0 0 1 0 2.25Z"/></svg>`)
59
- );
60
- }
61
- }
@@ -1,19 +0,0 @@
1
- <mat-card appearance="outlined">
2
- <mat-card-content>
3
- <button rc-ses-button mat-button type="button">
4
- <mat-icon matListItemIcon svgIcon="rc-ses-caret-left" aria-hidden="false" />
5
- Baigti pildyti vėliau
6
- </button>
7
-
8
- <button rc-ses-button mat-flat-button type="submit">
9
- Baigti pildyti ir pridėti į krepšelį
10
- <mat-icon matListItemIcon svgIcon="rc-ses-arrow-right" aria-hidden="false" />
11
- </button>
12
- </mat-card-content>
13
- </mat-card>
14
-
15
- <div class="rc-ses-footer-actions">
16
- <button rc-ses-button mat-button color="neutral" type="button">
17
- Atšaukti pildymą ir ištrinti formos duomenis
18
- </button>
19
- </div>
@@ -1,64 +0,0 @@
1
- @use '@angular/material' as mat;
2
-
3
- @mixin bootstrap($theme, $typography) {
4
- @layer rc-ses {
5
- .rc-ses-service-form-actions {
6
- color: mat.get-theme-color($theme, primary, 30);
7
-
8
- .mat-mdc-card-content {
9
- align-items: center;
10
- display: flex !important;
11
- justify-content: space-between;
12
- padding: 2rem !important;
13
- }
14
-
15
- button[type="submit"] {
16
- --mdc-filled-button-container-height: 3.375rem;
17
- --mat-filled-button-horizontal-padding: 2.25rem;
18
- display: flex !important;
19
- flex-direction: row-reverse;
20
- flex-wrap: nowrap;
21
-
22
- .mat-icon {
23
- margin-left: .5rem !important;
24
- margin-right: 0 !important;
25
- }
26
- }
27
-
28
- .rc-ses-footer-actions {
29
- display: flex;
30
- justify-content: center;
31
- margin-top: 1rem;
32
- padding: .875rem 0;
33
-
34
- .mdc-button {
35
- text-decoration: underline !important;
36
-
37
- &__label {
38
- color: mat.get-theme-color($theme, neutral, 40) !important;
39
- }
40
-
41
- &:hover {
42
- text-decoration: none !important;
43
-
44
- .mdc-button__label {
45
- color: mat.get-theme-color($theme, primary, 30) !important;
46
- }
47
- }
48
- }
49
- }
50
- }
51
- }
52
-
53
- @layer rc-ses-variables {
54
- :root {
55
-
56
- .rc-ses-service-form-actions {
57
- --mdc-outlined-card-container-shape: .375rem;
58
- --mdc-outlined-card-container-color: #{mat.get-theme-color($theme, primary, 100)};
59
- --mdc-outlined-card-outline-color: #{mat.get-theme-color($theme, primary, 90)};
60
- --mdc-outlined-card-container-elevation: unset;
61
- }
62
- }
63
- }
64
- }