myrtex-mf-competition 1.0.72 → 1.0.73

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 (70) hide show
  1. package/.browserslistrc +16 -0
  2. package/karma.conf.js +44 -0
  3. package/ng-package.json +7 -0
  4. package/package.json +13 -33
  5. package/src/lib/modules/competition-header/competition-header.module.ts +47 -0
  6. package/src/lib/modules/competition-header/components/competition-header.component.html +164 -0
  7. package/src/lib/modules/competition-header/components/competition-header.component.ts +584 -0
  8. package/src/lib/modules/competition-header/constants.ts +1 -0
  9. package/src/lib/modules/competition-header/directives/competition-header-custom-buttons.directive.ts +10 -0
  10. package/src/lib/modules/competition-header/directives/index.ts +1 -0
  11. package/{lib/modules/competition-header/index.d.ts → src/lib/modules/competition-header/index.ts} +1 -1
  12. package/src/lib/modules/competition-header/models/competition-header-version.model.ts +13 -0
  13. package/src/lib/modules/competition-header/models/competition-rejection.model.ts +5 -0
  14. package/{lib/modules/competition-header/models/competition-status.model.d.ts → src/lib/modules/competition-header/models/competition-status.model.ts} +4 -3
  15. package/src/lib/modules/competition-header/models/competition-version.model.ts +12 -0
  16. package/{lib/modules/competition-header/models/eb-links.model.d.ts → src/lib/modules/competition-header/models/eb-links.model.ts} +1 -1
  17. package/src/lib/modules/competition-header/services/competition-header.service.ts +47 -0
  18. package/src/lib/modules/competition-header/services/settings.service.ts +17 -0
  19. package/src/lib/modules/competition-header/store/competition-header.actions.ts +102 -0
  20. package/src/lib/modules/competition-header/store/competition-header.effects.ts +193 -0
  21. package/src/lib/modules/competition-header/store/competition-header.reducers.ts +39 -0
  22. package/src/lib/modules/competition-header/store/competition-header.selector.ts +45 -0
  23. package/src/lib/modules/competition-header/store/competition-header.state.ts +21 -0
  24. package/{public-api.d.ts → src/public-api.ts} +4 -0
  25. package/src/test.ts +27 -0
  26. package/tsconfig.lib.json +15 -0
  27. package/tsconfig.lib.prod.json +10 -0
  28. package/tsconfig.spec.json +17 -0
  29. package/esm2020/lib/modules/competition-header/competition-header.module.mjs +0 -76
  30. package/esm2020/lib/modules/competition-header/components/competition-header.component.mjs +0 -495
  31. package/esm2020/lib/modules/competition-header/constants.mjs +0 -2
  32. package/esm2020/lib/modules/competition-header/directives/competition-header-custom-buttons.directive.mjs +0 -16
  33. package/esm2020/lib/modules/competition-header/directives/index.mjs +0 -2
  34. package/esm2020/lib/modules/competition-header/index.mjs +0 -5
  35. package/esm2020/lib/modules/competition-header/models/competition-header-version.model.mjs +0 -2
  36. package/esm2020/lib/modules/competition-header/models/competition-rejection.model.mjs +0 -2
  37. package/esm2020/lib/modules/competition-header/models/competition-status.model.mjs +0 -2
  38. package/esm2020/lib/modules/competition-header/models/competition-version.model.mjs +0 -2
  39. package/esm2020/lib/modules/competition-header/models/eb-links.model.mjs +0 -2
  40. package/esm2020/lib/modules/competition-header/models/index.mjs +0 -2
  41. package/esm2020/lib/modules/competition-header/services/competition-header.service.mjs +0 -40
  42. package/esm2020/lib/modules/competition-header/services/settings.service.mjs +0 -20
  43. package/esm2020/lib/modules/competition-header/store/competition-header.actions.mjs +0 -37
  44. package/esm2020/lib/modules/competition-header/store/competition-header.effects.mjs +0 -96
  45. package/esm2020/lib/modules/competition-header/store/competition-header.reducers.mjs +0 -31
  46. package/esm2020/lib/modules/competition-header/store/competition-header.selector.mjs +0 -14
  47. package/esm2020/lib/modules/competition-header/store/competition-header.state.mjs +0 -9
  48. package/esm2020/myrtex-mf-competition.mjs +0 -5
  49. package/esm2020/public-api.mjs +0 -6
  50. package/fesm2015/myrtex-mf-competition.mjs +0 -811
  51. package/fesm2015/myrtex-mf-competition.mjs.map +0 -1
  52. package/fesm2020/myrtex-mf-competition.mjs +0 -804
  53. package/fesm2020/myrtex-mf-competition.mjs.map +0 -1
  54. package/lib/modules/competition-header/competition-header.module.d.ts +0 -16
  55. package/lib/modules/competition-header/components/competition-header.component.d.ts +0 -89
  56. package/lib/modules/competition-header/constants.d.ts +0 -1
  57. package/lib/modules/competition-header/directives/competition-header-custom-buttons.directive.d.ts +0 -8
  58. package/lib/modules/competition-header/directives/index.d.ts +0 -1
  59. package/lib/modules/competition-header/models/competition-header-version.model.d.ts +0 -11
  60. package/lib/modules/competition-header/models/competition-rejection.model.d.ts +0 -5
  61. package/lib/modules/competition-header/models/competition-version.model.d.ts +0 -11
  62. package/lib/modules/competition-header/services/competition-header.service.d.ts +0 -20
  63. package/lib/modules/competition-header/services/settings.service.d.ts +0 -14
  64. package/lib/modules/competition-header/store/competition-header.actions.d.ts +0 -78
  65. package/lib/modules/competition-header/store/competition-header.effects.d.ts +0 -42
  66. package/lib/modules/competition-header/store/competition-header.reducers.d.ts +0 -3
  67. package/lib/modules/competition-header/store/competition-header.selector.d.ts +0 -7
  68. package/lib/modules/competition-header/store/competition-header.state.d.ts +0 -12
  69. package/myrtex-mf-competition.d.ts +0 -5
  70. /package/{lib/modules/competition-header/models/index.d.ts → src/lib/modules/competition-header/models/index.ts} +0 -0
@@ -0,0 +1,16 @@
1
+ # This file is used by the build system to adjust CSS and JS output to support the specified browsers below.
2
+ # For additional information regarding the format and rule options, please see:
3
+ # https://github.com/browserslist/browserslist#queries
4
+
5
+ # For the full list of supported browsers by the Angular framework, please see:
6
+ # https://angular.io/guide/browser-support
7
+
8
+ # You can see what browsers were selected by your queries by running:
9
+ # npx browserslist
10
+
11
+ last 1 Chrome version
12
+ last 1 Firefox version
13
+ last 2 Edge major versions
14
+ last 2 Safari major versions
15
+ last 2 iOS major versions
16
+ Firefox ESR
package/karma.conf.js ADDED
@@ -0,0 +1,44 @@
1
+ // Karma configuration file, see link for more information
2
+ // https://karma-runner.github.io/1.0/config/configuration-file.html
3
+
4
+ module.exports = function (config) {
5
+ config.set({
6
+ basePath: '',
7
+ frameworks: ['jasmine', '@angular-devkit/build-angular'],
8
+ plugins: [
9
+ require('karma-jasmine'),
10
+ require('karma-chrome-launcher'),
11
+ require('karma-jasmine-html-reporter'),
12
+ require('karma-coverage'),
13
+ require('@angular-devkit/build-angular/plugins/karma')
14
+ ],
15
+ client: {
16
+ jasmine: {
17
+ // you can add configuration options for Jasmine here
18
+ // the possible options are listed at https://jasmine.github.io/api/edge/Configuration.html
19
+ // for example, you can disable the random execution with `random: false`
20
+ // or set a specific seed with `seed: 4321`
21
+ },
22
+ clearContext: false // leave Jasmine Spec Runner output visible in browser
23
+ },
24
+ jasmineHtmlReporter: {
25
+ suppressAll: true // removes the duplicated traces
26
+ },
27
+ coverageReporter: {
28
+ dir: require('path').join(__dirname, '../../coverage/myrtex-mf-competition'),
29
+ subdir: '.',
30
+ reporters: [
31
+ { type: 'html' },
32
+ { type: 'text-summary' }
33
+ ]
34
+ },
35
+ reporters: ['progress', 'kjhtml'],
36
+ port: 9876,
37
+ colors: true,
38
+ logLevel: config.LOG_INFO,
39
+ autoWatch: true,
40
+ browsers: ['Chrome'],
41
+ singleRun: false,
42
+ restartOnFileChange: true
43
+ });
44
+ };
@@ -0,0 +1,7 @@
1
+ {
2
+ "$schema": "../../node_modules/ng-packagr/ng-package.schema.json",
3
+ "dest": "../../dist/myrtex-mf-competition",
4
+ "lib": {
5
+ "entryFile": "src/public-api.ts"
6
+ }
7
+ }
package/package.json CHANGED
@@ -1,33 +1,13 @@
1
- {
2
- "name": "myrtex-mf-competition",
3
- "version": "1.0.72",
4
- "peerDependencies": {
5
- "@angular/common": "^13.3.0",
6
- "@angular/core": "^13.3.0",
7
- "myrtex-mf-ui-composite": "1.1.42",
8
- "myrtex-mf-signer": "1.1.80"
9
- },
10
- "dependencies": {
11
- "tslib": "^2.3.0"
12
- },
13
- "module": "fesm2015/myrtex-mf-competition.mjs",
14
- "es2020": "fesm2020/myrtex-mf-competition.mjs",
15
- "esm2020": "esm2020/myrtex-mf-competition.mjs",
16
- "fesm2020": "fesm2020/myrtex-mf-competition.mjs",
17
- "fesm2015": "fesm2015/myrtex-mf-competition.mjs",
18
- "typings": "myrtex-mf-competition.d.ts",
19
- "exports": {
20
- "./package.json": {
21
- "default": "./package.json"
22
- },
23
- ".": {
24
- "types": "./myrtex-mf-competition.d.ts",
25
- "esm2020": "./esm2020/myrtex-mf-competition.mjs",
26
- "es2020": "./fesm2020/myrtex-mf-competition.mjs",
27
- "es2015": "./fesm2015/myrtex-mf-competition.mjs",
28
- "node": "./fesm2015/myrtex-mf-competition.mjs",
29
- "default": "./fesm2020/myrtex-mf-competition.mjs"
30
- }
31
- },
32
- "sideEffects": false
33
- }
1
+ {
2
+ "name": "myrtex-mf-competition",
3
+ "version": "1.0.73",
4
+ "peerDependencies": {
5
+ "@angular/common": "^13.3.0",
6
+ "@angular/core": "^13.3.0",
7
+ "myrtex-mf-ui-composite": "1.1.42",
8
+ "myrtex-mf-signer": "1.1.80"
9
+ },
10
+ "dependencies": {
11
+ "tslib": "^2.3.0"
12
+ }
13
+ }
@@ -0,0 +1,47 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { EffectsModule } from '@ngrx/effects';
4
+ import { StoreModule } from '@ngrx/store';
5
+ import { CompetitionHeaderComponent } from './components/competition-header.component';
6
+ import { FormsModule } from '@angular/forms';
7
+ import { COMPETITION_HEADER_FEATURE_NAME } from './constants';
8
+ import { competitionHeaderReducer } from './store/competition-header.reducers';
9
+ import { CompetitionHeaderService } from './services/competition-header.service';
10
+ import { CompetitionHeaderCustomButtonsDirective } from './directives/competition-header-custom-buttons.directive';
11
+ import { NgSelectModule } from '@ng-select/ng-select';
12
+ import { MyrtexMfUiCompositeModule, MyrtexUiComponentsModule, TenantSettingsModule } from 'myrtex-mf-ui-composite';
13
+ import { MyrtexSignerModule } from 'myrtex-mf-signer';
14
+ import { CompetitionHeaderEffects } from './store/competition-header.effects';
15
+ import { SettingsService } from './services/settings.service';
16
+ import { DropdownModule } from 'myrta-ui';
17
+ import { CdkTooltipModule } from 'myrtex-mf-ui';
18
+
19
+ @NgModule({
20
+ declarations: [
21
+ CompetitionHeaderComponent,
22
+ CompetitionHeaderCustomButtonsDirective,
23
+ ],
24
+ imports: [
25
+ CommonModule,
26
+ EffectsModule.forFeature([CompetitionHeaderEffects]),
27
+ StoreModule.forFeature(COMPETITION_HEADER_FEATURE_NAME, competitionHeaderReducer),
28
+ TenantSettingsModule,
29
+ FormsModule,
30
+ MyrtexUiComponentsModule,
31
+ MyrtexMfUiCompositeModule,
32
+ MyrtexSignerModule,
33
+ NgSelectModule,
34
+ DropdownModule,
35
+ CdkTooltipModule
36
+ ],
37
+ providers: [
38
+ CompetitionHeaderService,
39
+ SettingsService
40
+ ],
41
+ exports: [
42
+ CompetitionHeaderComponent,
43
+ CompetitionHeaderCustomButtonsDirective,
44
+ ]
45
+ })
46
+ export class CompetitionHeaderModule {
47
+ }
@@ -0,0 +1,164 @@
1
+ <div class="info-banner" *ngIf="selected">
2
+ <div class="info-banner-body">
3
+ <div class="info-banner-block">
4
+ <!-- Название субсидии/отбора -->
5
+ <div class="info-banner-item wpx-160 mr-3">
6
+ <!-- вставить название сущности, либо "Субсидия" либо "Отбор" -->
7
+ <span class="info-banner-item__title" myCompetitionLabel>
8
+
9
+ </span>
10
+ <!-- название субсидии/отбора -->
11
+ <!-- ограничить длину названия в 44 символов -->
12
+ <!-- вставить в тултип полное название субсидии/отбора -->
13
+ <span class="info-banner-item__text text-normal" [mrxCdkTooltip]="selected.name" [tooltipMaxWidth]="320">
14
+ {{ selected.shortName ? selected.shortName : 'Не указан' }}
15
+ </span>
16
+ </div>
17
+ <!-- статус субсидии/отбора -->
18
+ <div class="info-banner-item wpx-110">
19
+ <span class="info-banner-item__title">
20
+ Статус
21
+ </span>
22
+ <!-- статус субсидии/отбора -->
23
+ <!-- для задания цвета добавлять классы: оранжевый - "color-orange", зеленый - "color-green" -->
24
+ <span class="info-banner-item__text" [ngClass]="competitionAggregateStatusCssClass">
25
+ {{ competitionAggregateStatusEnumLabel }}
26
+ </span>
27
+ </div>
28
+ </div>
29
+ <!-- селект с выбором версии -->
30
+ <div class="info-banner-item info-banner-item_input wpx-260 mr-3" *ngIf="versions && versions.length > 1">
31
+ <div class="inputbox inputbox-md mb-0">
32
+ <ng-select [items]="versions" [ngModel]="selected.id"
33
+ (ngModelChange)="selectVersion($event)"
34
+ [clearable]="false"
35
+ bindValue="id"
36
+ bindLabel="name"
37
+ groupBy="status"
38
+ notFoundText="Не найдено">
39
+ <ng-template ng-optgroup-tmp let-item="item" let-index="index">
40
+ {{getCompetitionVersionStatusGrouppingLabel(item.status)}}
41
+ </ng-template>
42
+ <ng-template ng-option-tmp let-item="item" let-index="index" let-search="searchTerm">
43
+ Версия {{item.num}} от {{item.createdDate}}
44
+ </ng-template>
45
+ <ng-template ng-label-tmp let-item="item">
46
+ Версия {{item.num}} от {{item.createdDate}}
47
+ </ng-template>
48
+ </ng-select>
49
+ </div>
50
+ </div>
51
+ <!-- статаус версии -->
52
+ <!-- не показывать, если нет версий -->
53
+ <div class="info-banner-item wpx-110" *ngIf="versions && versions.length > 1">
54
+ <span class="info-banner-item__title">
55
+ Статус версии
56
+ </span>
57
+ <!-- статус версии -->
58
+ <!-- для задания цвета добавлять классы: оранжевый - "color-orange", зеленый - "color-green" -->
59
+ <span class="info-banner-item__text" *ngIf="selected" [ngClass]="versionStatusClass">
60
+ {{ getCompetitionVersionStatusEnumLabel(selected.status) }}
61
+ </span>
62
+ </div>
63
+ <!-- удаление, вызов модалки, предупреждение об внесении изменений -->
64
+ <div class="info-banner-item">
65
+ <!-- не показывать, если не требуется -->
66
+ <!-- "конверт" -->
67
+ <div class="info-banner-item__icon" *ngIf="showRejectionReason"
68
+ myTooltip
69
+ [tooltip]="'Посмотреть причину отклонения'"
70
+ (click)="showRejection(selected.rejectionReason)">
71
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
72
+ <rect x="3" y="6" width="18" height="12" rx="1" stroke="#282828" stroke-width="1.5"/>
73
+ <path d="M3 6.25L11.3356 13.6595C11.7145 13.9962 12.2855 13.9962 12.6644 13.6595L21 6.25" stroke="#282828" stroke-width="1.5"/>
74
+ <path d="M3 18L7.5 14L9.75 12M21 18L16.5 14L14.25 12" stroke="#282828" stroke-width="1.5"/>
75
+ </svg>
76
+ </div>
77
+ <!-- удаление версии -->
78
+ <div *ngIf="canDeleteVersion" (click)="removeVersion()" class="info-banner-item__icon" myTooltip [tooltip]="'Удалить версию'">
79
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
80
+ <path d="M3 6H5H21" stroke="#D14114" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
81
+ <path d="M8 6V4C8 3.46957 8.21071 2.96086 8.58579 2.58579C8.96086 2.21071 9.46957 2 10 2H14C14.5304 2 15.0391 2.21071 15.4142 2.58579C15.7893 2.96086 16 3.46957 16 4V6M19 6V20C19 20.5304 18.7893 21.0391 18.4142 21.4142C18.0391 21.7893 17.5304 22 17 22H7C6.46957 22 5.96086 21.7893 5.58579 21.4142C5.21071 21.0391 5 20.5304 5 20V6H19Z" stroke="#D14114" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
82
+ <path d="M10 11V17" stroke="#D14114" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
83
+ <path d="M14 11V17" stroke="#D14114" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
84
+ </svg>
85
+ </div>
86
+ <!-- восклицательный знак -->
87
+ <div *ngIf="!isLastVersion" class="info-banner-item__icon" myTooltip [tooltip]="'Внесение изменений доступно на последней версии'">
88
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
89
+ <path d="M12.2302 18V17M12.2302 14V10M4.00298 21.25H20.4575C21.9971 21.25 22.9593 19.5833 22.1895 18.25L13.9623 4C13.1925 2.66667 11.268 2.66667 10.4982 4L2.27093 18.25C1.50113 19.5833 2.46338 21.25 4.00298 21.25Z" stroke="#D57B1C" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
90
+ </svg>
91
+ </div>
92
+ </div>
93
+ <div class="info-banner-control">
94
+ <div *ngIf="!!customButtonsTemplate">
95
+ <ng-container *ngTemplateOutlet="customButtonsTemplate.templateRef;context:customButtonsTemplateContext"></ng-container>
96
+ </div>
97
+ <button class="btn btn-md green"
98
+ (click)="createVersion()"
99
+ *ngIf="canCreateVersion"
100
+ [disabled]="createVersionDisabled">
101
+ Сформировать изменения
102
+ </button>
103
+ <button class="btn btn-md green"
104
+ (click)="activateVersion()"
105
+ *ngIf="canActivateVersion"
106
+ [disabled]="activateVersionDisabled">
107
+ Опубликовать
108
+ </button>
109
+ <button class="btn btn-md"
110
+ (click)="validateVersion()"
111
+ *ngIf="canValidateVersion"
112
+ [disabled]="validateVersionDisabled">
113
+ Согласование
114
+ </button>
115
+ <button *ngIf="canReturnToEdit" class="btn btn-md"
116
+ (click)="backToEdit()"
117
+ [disabled]="backToEditDisabled">
118
+ Редактировать
119
+ </button>
120
+ <!-- управление статусом/отбором -->
121
+ <!-- не показывать если не требуется -->
122
+ <div class="info-banner-control__action"
123
+ *ngIf="competition && showEbLink">
124
+ <mrx-dropdown [mainPlacement]="'bottom-end'" [fallbackPlacements]="['top-end']">
125
+ <ng-template #dropdownToggle>
126
+ <span class="mrx-icon icon-more-vertical icon-font-24"></span>
127
+ </ng-template>
128
+ <ng-template #dropdownMenu>
129
+ <button mrxHideAfterClick (click)="redirectToEb()">
130
+ <span class="mrx-icon icon-link icon-font-24 mr-2"></span>
131
+ <span>Перейти в подсистему бюджетного планирования ГИИС «ЭБ»</span>
132
+ </button>
133
+
134
+ <button mrxHideAfterClick (click)="pause()"
135
+ *ngIf="competition.status == competitionStatusEnum.Active && canManageCompetition">
136
+ <span class="mrx-icon icon-pause-filled icon-font-24 mr-2"></span>
137
+ <span>Приостановить</span>
138
+ </button>
139
+
140
+ <button mrxHideAfterClick (click)="restore()"
141
+ *ngIf="competition.status == competitionStatusEnum.Staying && canManageCompetition">
142
+ <span class="mrx-icon icon-play-filled icon-font-24 mr-2"></span>
143
+ <span>{{restoreButtonName}}</span>
144
+ </button>
145
+
146
+ <button mrxHideAfterClick
147
+ *ngIf="canCompleteCompetition && canManageCompetition"
148
+ (click)="complete()">
149
+ <span class="mrx-icon icon-stop-filled icon-font-24 mr-2"></span>
150
+ <span>Завершить</span>
151
+ </button>
152
+
153
+ <button mrxHideAfterClick
154
+ *ngIf="canCancelCompetition && canManageCompetition"
155
+ (click)="cancel()">
156
+ <span class="mrx-icon icon-close icon-font-24 mr-2"></span>
157
+ <span>{{cancelCompetitionButtonLabel}}</span>
158
+ </button>
159
+ </ng-template>
160
+ </mrx-dropdown>
161
+ </div>
162
+ </div>
163
+ </div>
164
+ </div>