mirror of
https://github.com/valitydev/control-center.git
synced 2024-11-06 02:25:17 +00:00
IMP-58: Move to Ng Core Lib (#214)
This commit is contained in:
parent
3d60afc0ea
commit
910baa9fd7
17
.github/workflows/pr.yaml
vendored
17
.github/workflows/pr.yaml
vendored
@ -9,8 +9,6 @@ jobs:
|
|||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
- uses: ./.github/actions/init
|
- uses: ./.github/actions/init
|
||||||
- name: Building libraries
|
|
||||||
run: npm run build-libs
|
|
||||||
- name: Cache all
|
- name: Cache all
|
||||||
uses: actions/cache@v3
|
uses: actions/cache@v3
|
||||||
id: cache
|
id: cache
|
||||||
@ -30,19 +28,6 @@ jobs:
|
|||||||
key: ${{ github.sha }}
|
key: ${{ github.sha }}
|
||||||
- name: Check
|
- name: Check
|
||||||
run: npm run lint
|
run: npm run lint
|
||||||
eslint-libs:
|
|
||||||
name: ESLint Libs
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
needs: [init]
|
|
||||||
steps:
|
|
||||||
- name: Cache all
|
|
||||||
uses: actions/cache@v3
|
|
||||||
id: cache
|
|
||||||
with:
|
|
||||||
path: ./*
|
|
||||||
key: ${{ github.sha }}
|
|
||||||
- name: Check
|
|
||||||
run: npm run lint-libs
|
|
||||||
prettier:
|
prettier:
|
||||||
name: Prettier
|
name: Prettier
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
@ -68,4 +53,4 @@ jobs:
|
|||||||
path: ./*
|
path: ./*
|
||||||
key: ${{ github.sha }}
|
key: ${{ github.sha }}
|
||||||
- name: Build
|
- name: Build
|
||||||
run: npm run build-app
|
run: npm run build
|
||||||
|
24
.vscode/settings.json
vendored
24
.vscode/settings.json
vendored
@ -1,24 +0,0 @@
|
|||||||
{
|
|
||||||
"workbench.colorCustomizations": {
|
|
||||||
"activityBar.activeBackground": "#ab307e",
|
|
||||||
"activityBar.activeBorder": "#25320e",
|
|
||||||
"activityBar.background": "#ab307e",
|
|
||||||
"activityBar.foreground": "#e7e7e7",
|
|
||||||
"activityBar.inactiveForeground": "#e7e7e799",
|
|
||||||
"activityBarBadge.background": "#25320e",
|
|
||||||
"activityBarBadge.foreground": "#e7e7e7",
|
|
||||||
"sash.hoverBorder": "#ab307e",
|
|
||||||
"statusBar.background": "#832561",
|
|
||||||
"statusBar.foreground": "#e7e7e7",
|
|
||||||
"statusBarItem.hoverBackground": "#ab307e",
|
|
||||||
"statusBarItem.remoteBackground": "#832561",
|
|
||||||
"statusBarItem.remoteForeground": "#e7e7e7",
|
|
||||||
"titleBar.activeBackground": "#832561",
|
|
||||||
"titleBar.activeForeground": "#e7e7e7",
|
|
||||||
"titleBar.inactiveBackground": "#83256199",
|
|
||||||
"titleBar.inactiveForeground": "#e7e7e799",
|
|
||||||
"commandCenter.border": "#e7e7e799"
|
|
||||||
},
|
|
||||||
"peacock.color": "#832561",
|
|
||||||
"tasksStatusbar.taskLabelFilter": "Start"
|
|
||||||
}
|
|
41
.vscode/tasks.json
vendored
41
.vscode/tasks.json
vendored
@ -1,41 +0,0 @@
|
|||||||
{
|
|
||||||
// See https://go.microsoft.com/fwlink/?LinkId=733558
|
|
||||||
// for the documentation about the tasks.json format
|
|
||||||
"version": "2.0.0",
|
|
||||||
"tasks": [
|
|
||||||
{
|
|
||||||
"label": "Libs",
|
|
||||||
"type": "shell",
|
|
||||||
"command": "npm run dev-libs",
|
|
||||||
"presentation": {
|
|
||||||
"group": "stage"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "Stage",
|
|
||||||
"type": "shell",
|
|
||||||
"command": "sleep 0.5 && npm run stage",
|
|
||||||
"presentation": {
|
|
||||||
"group": "stage"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "Dev",
|
|
||||||
"type": "shell",
|
|
||||||
"command": "sleep 0.5 && npm run dev",
|
|
||||||
"presentation": {
|
|
||||||
"group": "stage"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "Start stage & libs",
|
|
||||||
"dependsOn": ["Libs", "Stage"],
|
|
||||||
"problemMatcher": []
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"label": "Start dev & libs",
|
|
||||||
"dependsOn": ["Libs", "Dev"],
|
|
||||||
"problemMatcher": []
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
31
angular.json
31
angular.json
@ -155,37 +155,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
|
||||||
"ng-core": {
|
|
||||||
"projectType": "library",
|
|
||||||
"root": "projects/ng-core",
|
|
||||||
"sourceRoot": "projects/ng-core/src",
|
|
||||||
"prefix": "v",
|
|
||||||
"architect": {
|
|
||||||
"build": {
|
|
||||||
"builder": "@angular-devkit/build-angular:ng-packagr",
|
|
||||||
"options": {
|
|
||||||
"project": "projects/ng-core/ng-package.json"
|
|
||||||
},
|
|
||||||
"configurations": {
|
|
||||||
"production": {
|
|
||||||
"tsConfig": "projects/ng-core/tsconfig.lib.prod.json"
|
|
||||||
},
|
|
||||||
"development": {
|
|
||||||
"tsConfig": "projects/ng-core/tsconfig.lib.json"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"defaultConfiguration": "production"
|
|
||||||
},
|
|
||||||
"test": {
|
|
||||||
"builder": "@angular-devkit/build-angular:karma",
|
|
||||||
"options": {
|
|
||||||
"main": "projects/ng-core/src/test.ts",
|
|
||||||
"tsConfig": "projects/ng-core/tsconfig.spec.json",
|
|
||||||
"karmaConfig": "projects/ng-core/karma.conf.js"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"cli": {
|
"cli": {
|
||||||
|
155
package-lock.json
generated
155
package-lock.json
generated
@ -34,12 +34,13 @@
|
|||||||
"@vality/dominant-cache-proto": "2.0.1-99f38c9.0",
|
"@vality/dominant-cache-proto": "2.0.1-99f38c9.0",
|
||||||
"@vality/fistful-proto": "2.0.1-4ff4ea3.0",
|
"@vality/fistful-proto": "2.0.1-4ff4ea3.0",
|
||||||
"@vality/magista-proto": "2.0.1-cf0eff8.0",
|
"@vality/magista-proto": "2.0.1-cf0eff8.0",
|
||||||
|
"@vality/ng-core": "0.3.1-pr-7-478c28d.0",
|
||||||
"@vality/payout-manager-proto": "2.0.1-b079679.0",
|
"@vality/payout-manager-proto": "2.0.1-b079679.0",
|
||||||
"@vality/repairer-proto": "2.0.1-8f7973d.0",
|
"@vality/repairer-proto": "2.0.1-8f7973d.0",
|
||||||
"@vality/thrift-ts": "2.4.1-8ad5123.0",
|
"@vality/thrift-ts": "2.4.1-8ad5123.0",
|
||||||
"@vality/woody": "0.1.1",
|
"@vality/woody": "0.1.1",
|
||||||
"angular2-prettyjson": "3.0.1",
|
"angular2-prettyjson": "3.0.1",
|
||||||
"coerce-property": "0.3.2",
|
"coerce-property": "15.0.1",
|
||||||
"css-element-queries": "1.2.3",
|
"css-element-queries": "1.2.3",
|
||||||
"element-resize-detector": "1.2.4",
|
"element-resize-detector": "1.2.4",
|
||||||
"humanize-duration": "3.21.0",
|
"humanize-duration": "3.21.0",
|
||||||
@ -76,7 +77,6 @@
|
|||||||
"@types/uuid": "3.4.3",
|
"@types/uuid": "3.4.3",
|
||||||
"@typescript-eslint/eslint-plugin": "5.46.1",
|
"@typescript-eslint/eslint-plugin": "5.46.1",
|
||||||
"@typescript-eslint/parser": "5.46.1",
|
"@typescript-eslint/parser": "5.46.1",
|
||||||
"concurrently": "7.3.0",
|
|
||||||
"cross-env": "7.0.3",
|
"cross-env": "7.0.3",
|
||||||
"dotenv": "16.0.0",
|
"dotenv": "16.0.0",
|
||||||
"eslint": "8.29.0",
|
"eslint": "8.29.0",
|
||||||
@ -5221,6 +5221,23 @@
|
|||||||
"resolved": "https://registry.npmjs.org/@vality/magista-proto/-/magista-proto-2.0.1-cf0eff8.0.tgz",
|
"resolved": "https://registry.npmjs.org/@vality/magista-proto/-/magista-proto-2.0.1-cf0eff8.0.tgz",
|
||||||
"integrity": "sha512-59ncaJpt7tXFLOq9KrDu4OgrDQr9vTQ3j30T0hjN+ZIsPBsE+lld/pGKASWLLQfwvTtvp9laAuKgQGX9GuvIiQ=="
|
"integrity": "sha512-59ncaJpt7tXFLOq9KrDu4OgrDQr9vTQ3j30T0hjN+ZIsPBsE+lld/pGKASWLLQfwvTtvp9laAuKgQGX9GuvIiQ=="
|
||||||
},
|
},
|
||||||
|
"node_modules/@vality/ng-core": {
|
||||||
|
"version": "0.3.1-pr-7-478c28d.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@vality/ng-core/-/ng-core-0.3.1-pr-7-478c28d.0.tgz",
|
||||||
|
"integrity": "sha512-p5E6pw14mj7pwxmXX3AbYPdWYbMlPMiZklE1zDRFGoSSQMYLI7knUT4/ap1btgKXC2xdf7RARBcBdujg7ugWgA==",
|
||||||
|
"dependencies": {
|
||||||
|
"tslib": "^2.3.0"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"@angular/cdk": ">=15.0.0",
|
||||||
|
"@angular/common": ">=15.0.0",
|
||||||
|
"@angular/core": ">=15.0.0",
|
||||||
|
"@angular/material": ">=15.0.0",
|
||||||
|
"coerce-property": ">=0.3.2",
|
||||||
|
"lodash-es": "^4.0.0",
|
||||||
|
"utility-types": ">=3.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/@vality/payout-manager-proto": {
|
"node_modules/@vality/payout-manager-proto": {
|
||||||
"version": "2.0.1-b079679.0",
|
"version": "2.0.1-b079679.0",
|
||||||
"resolved": "https://registry.npmjs.org/@vality/payout-manager-proto/-/payout-manager-proto-2.0.1-b079679.0.tgz",
|
"resolved": "https://registry.npmjs.org/@vality/payout-manager-proto/-/payout-manager-proto-2.0.1-b079679.0.tgz",
|
||||||
@ -8191,10 +8208,16 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/coerce-property": {
|
"node_modules/coerce-property": {
|
||||||
"version": "0.3.2",
|
"version": "15.0.1",
|
||||||
"license": "MIT",
|
"resolved": "https://registry.npmjs.org/coerce-property/-/coerce-property-15.0.1.tgz",
|
||||||
|
"integrity": "sha512-BFuCajc/anzod6ExgyfEm2jaAE0OhSHEIBsmFj0bB7rQIrhgBiLPxpo3XWi7AyE5VVlFsLpkgIEGrDIWzJWc1Q==",
|
||||||
|
"dependencies": {
|
||||||
|
"tslib": "^2.3.0"
|
||||||
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"@angular/cdk": ">=7.3.0"
|
"@angular/cdk": ">=15.0.0",
|
||||||
|
"@angular/common": ">=15.0.0",
|
||||||
|
"@angular/core": ">=15.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/collection-visit": {
|
"node_modules/collection-visit": {
|
||||||
@ -8314,50 +8337,6 @@
|
|||||||
"typedarray": "^0.0.6"
|
"typedarray": "^0.0.6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/concurrently": {
|
|
||||||
"version": "7.3.0",
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"chalk": "^4.1.0",
|
|
||||||
"date-fns": "^2.16.1",
|
|
||||||
"lodash": "^4.17.21",
|
|
||||||
"rxjs": "^7.0.0",
|
|
||||||
"shell-quote": "^1.7.3",
|
|
||||||
"spawn-command": "^0.0.2-1",
|
|
||||||
"supports-color": "^8.1.0",
|
|
||||||
"tree-kill": "^1.2.2",
|
|
||||||
"yargs": "^17.3.1"
|
|
||||||
},
|
|
||||||
"bin": {
|
|
||||||
"concurrently": "dist/bin/concurrently.js"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": "^12.20.0 || ^14.13.0 || >=16.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/concurrently/node_modules/has-flag": {
|
|
||||||
"version": "4.0.0",
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT",
|
|
||||||
"engines": {
|
|
||||||
"node": ">=8"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/concurrently/node_modules/supports-color": {
|
|
||||||
"version": "8.1.1",
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"has-flag": "^4.0.0"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=10"
|
|
||||||
},
|
|
||||||
"funding": {
|
|
||||||
"url": "https://github.com/chalk/supports-color?sponsor=1"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/connect": {
|
"node_modules/connect": {
|
||||||
"version": "3.7.0",
|
"version": "3.7.0",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
@ -8874,18 +8853,6 @@
|
|||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/date-fns": {
|
|
||||||
"version": "2.29.1",
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT",
|
|
||||||
"engines": {
|
|
||||||
"node": ">=0.11"
|
|
||||||
},
|
|
||||||
"funding": {
|
|
||||||
"type": "opencollective",
|
|
||||||
"url": "https://opencollective.com/date-fns"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/date-format": {
|
"node_modules/date-format": {
|
||||||
"version": "4.0.11",
|
"version": "4.0.11",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
@ -17090,11 +17057,6 @@
|
|||||||
"node": ">=0.10.0"
|
"node": ">=0.10.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/shell-quote": {
|
|
||||||
"version": "1.7.3",
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT"
|
|
||||||
},
|
|
||||||
"node_modules/short-uuid": {
|
"node_modules/short-uuid": {
|
||||||
"version": "4.1.0",
|
"version": "4.1.0",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
@ -17483,11 +17445,6 @@
|
|||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/spawn-command": {
|
|
||||||
"version": "0.0.2-1",
|
|
||||||
"dev": true,
|
|
||||||
"license": "MIT"
|
|
||||||
},
|
|
||||||
"node_modules/spdx-correct": {
|
"node_modules/spdx-correct": {
|
||||||
"version": "3.1.1",
|
"version": "3.1.1",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
@ -22975,6 +22932,14 @@
|
|||||||
"resolved": "https://registry.npmjs.org/@vality/magista-proto/-/magista-proto-2.0.1-cf0eff8.0.tgz",
|
"resolved": "https://registry.npmjs.org/@vality/magista-proto/-/magista-proto-2.0.1-cf0eff8.0.tgz",
|
||||||
"integrity": "sha512-59ncaJpt7tXFLOq9KrDu4OgrDQr9vTQ3j30T0hjN+ZIsPBsE+lld/pGKASWLLQfwvTtvp9laAuKgQGX9GuvIiQ=="
|
"integrity": "sha512-59ncaJpt7tXFLOq9KrDu4OgrDQr9vTQ3j30T0hjN+ZIsPBsE+lld/pGKASWLLQfwvTtvp9laAuKgQGX9GuvIiQ=="
|
||||||
},
|
},
|
||||||
|
"@vality/ng-core": {
|
||||||
|
"version": "0.3.1-pr-7-478c28d.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@vality/ng-core/-/ng-core-0.3.1-pr-7-478c28d.0.tgz",
|
||||||
|
"integrity": "sha512-p5E6pw14mj7pwxmXX3AbYPdWYbMlPMiZklE1zDRFGoSSQMYLI7knUT4/ap1btgKXC2xdf7RARBcBdujg7ugWgA==",
|
||||||
|
"requires": {
|
||||||
|
"tslib": "^2.3.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"@vality/payout-manager-proto": {
|
"@vality/payout-manager-proto": {
|
||||||
"version": "2.0.1-b079679.0",
|
"version": "2.0.1-b079679.0",
|
||||||
"resolved": "https://registry.npmjs.org/@vality/payout-manager-proto/-/payout-manager-proto-2.0.1-b079679.0.tgz",
|
"resolved": "https://registry.npmjs.org/@vality/payout-manager-proto/-/payout-manager-proto-2.0.1-b079679.0.tgz",
|
||||||
@ -25094,8 +25059,12 @@
|
|||||||
"version": "1.1.0"
|
"version": "1.1.0"
|
||||||
},
|
},
|
||||||
"coerce-property": {
|
"coerce-property": {
|
||||||
"version": "0.3.2",
|
"version": "15.0.1",
|
||||||
"requires": {}
|
"resolved": "https://registry.npmjs.org/coerce-property/-/coerce-property-15.0.1.tgz",
|
||||||
|
"integrity": "sha512-BFuCajc/anzod6ExgyfEm2jaAE0OhSHEIBsmFj0bB7rQIrhgBiLPxpo3XWi7AyE5VVlFsLpkgIEGrDIWzJWc1Q==",
|
||||||
|
"requires": {
|
||||||
|
"tslib": "^2.3.0"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"collection-visit": {
|
"collection-visit": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
@ -25177,34 +25146,6 @@
|
|||||||
"typedarray": "^0.0.6"
|
"typedarray": "^0.0.6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"concurrently": {
|
|
||||||
"version": "7.3.0",
|
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
|
||||||
"chalk": "^4.1.0",
|
|
||||||
"date-fns": "^2.16.1",
|
|
||||||
"lodash": "^4.17.21",
|
|
||||||
"rxjs": "^7.0.0",
|
|
||||||
"shell-quote": "^1.7.3",
|
|
||||||
"spawn-command": "^0.0.2-1",
|
|
||||||
"supports-color": "^8.1.0",
|
|
||||||
"tree-kill": "^1.2.2",
|
|
||||||
"yargs": "^17.3.1"
|
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"has-flag": {
|
|
||||||
"version": "4.0.0",
|
|
||||||
"dev": true
|
|
||||||
},
|
|
||||||
"supports-color": {
|
|
||||||
"version": "8.1.1",
|
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
|
||||||
"has-flag": "^4.0.0"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"connect": {
|
"connect": {
|
||||||
"version": "3.7.0",
|
"version": "3.7.0",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
@ -25544,10 +25485,6 @@
|
|||||||
"cyclist": {
|
"cyclist": {
|
||||||
"version": "1.0.1"
|
"version": "1.0.1"
|
||||||
},
|
},
|
||||||
"date-fns": {
|
|
||||||
"version": "2.29.1",
|
|
||||||
"dev": true
|
|
||||||
},
|
|
||||||
"date-format": {
|
"date-format": {
|
||||||
"version": "4.0.11",
|
"version": "4.0.11",
|
||||||
"dev": true
|
"dev": true
|
||||||
@ -30817,10 +30754,6 @@
|
|||||||
"shebang-regex": {
|
"shebang-regex": {
|
||||||
"version": "1.0.0"
|
"version": "1.0.0"
|
||||||
},
|
},
|
||||||
"shell-quote": {
|
|
||||||
"version": "1.7.3",
|
|
||||||
"dev": true
|
|
||||||
},
|
|
||||||
"short-uuid": {
|
"short-uuid": {
|
||||||
"version": "4.1.0",
|
"version": "4.1.0",
|
||||||
"requires": {
|
"requires": {
|
||||||
@ -31082,10 +31015,6 @@
|
|||||||
"version": "1.4.8",
|
"version": "1.4.8",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"spawn-command": {
|
|
||||||
"version": "0.0.2-1",
|
|
||||||
"dev": true
|
|
||||||
},
|
|
||||||
"spdx-correct": {
|
"spdx-correct": {
|
||||||
"version": "3.1.1",
|
"version": "3.1.1",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
16
package.json
16
package.json
@ -4,23 +4,17 @@
|
|||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"postinstall": "ngcc",
|
"postinstall": "ngcc",
|
||||||
"start": "concurrently -n LIB,APP -c magenta,cyan npm:dev-libs \"sleep 0.5 && npm run dev\"",
|
"start": "ng serve --proxy-config proxy.conf.js --port 4200",
|
||||||
"dev": "ng serve --proxy-config proxy.conf.js --port 4200",
|
|
||||||
"stage": "cross-env NODE_ENV=stage ng serve --proxy-config proxy.conf.js --port 4201 --configuration=stage",
|
"stage": "cross-env NODE_ENV=stage ng serve --proxy-config proxy.conf.js --port 4201 --configuration=stage",
|
||||||
"dev-libs": "ng build ng-core --watch",
|
"build": "ng build --extra-webpack-config webpack.extra.js",
|
||||||
"build-app": "ng build --extra-webpack-config webpack.extra.js",
|
|
||||||
"build-libs": "ng build ng-core",
|
|
||||||
"build": "npm run build-libs && npm run build-app",
|
|
||||||
"test": "ng test",
|
"test": "ng test",
|
||||||
"lint": "eslint \"src/**/*.{ts,js,html}\" --max-warnings 420",
|
"lint": "eslint \"src/**/*.{ts,js,html}\" --max-warnings 420",
|
||||||
"lint-fix": "npm run lint -- --fix",
|
"lint-fix": "npm run lint -- --fix",
|
||||||
"lint-errors": "npm run lint -- --quiet",
|
"lint-errors": "npm run lint -- --quiet",
|
||||||
"lint-libs": "eslint \"projects/**/*.{ts,js,html}\" --max-warnings 0",
|
|
||||||
"lint-libs-fix": "npm run lint-libs -- --fix",
|
|
||||||
"prettier-preset": "prettier \"**/*.{html,js,ts,css,scss,md,json,prettierrc,svg,huskyrc,yml,yaml}\"",
|
"prettier-preset": "prettier \"**/*.{html,js,ts,css,scss,md,json,prettierrc,svg,huskyrc,yml,yaml}\"",
|
||||||
"prettier": "npm run prettier-preset -- --list-different",
|
"prettier": "npm run prettier-preset -- --list-different",
|
||||||
"prettier-fix": "npm run prettier-preset -- --write",
|
"prettier-fix": "npm run prettier-preset -- --write",
|
||||||
"fix": "concurrently -n LIB,APP -c magenta,cyan npm:lint-libs-fix npm:lint-fix && npm run prettier-fix"
|
"fix": "npm:lint-fix && npm run prettier-fix"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@angular/animations": "15.0.3",
|
"@angular/animations": "15.0.3",
|
||||||
@ -48,12 +42,13 @@
|
|||||||
"@vality/dominant-cache-proto": "2.0.1-99f38c9.0",
|
"@vality/dominant-cache-proto": "2.0.1-99f38c9.0",
|
||||||
"@vality/fistful-proto": "2.0.1-4ff4ea3.0",
|
"@vality/fistful-proto": "2.0.1-4ff4ea3.0",
|
||||||
"@vality/magista-proto": "2.0.1-cf0eff8.0",
|
"@vality/magista-proto": "2.0.1-cf0eff8.0",
|
||||||
|
"@vality/ng-core": "0.3.1-pr-7-478c28d.0",
|
||||||
"@vality/payout-manager-proto": "2.0.1-b079679.0",
|
"@vality/payout-manager-proto": "2.0.1-b079679.0",
|
||||||
"@vality/repairer-proto": "2.0.1-8f7973d.0",
|
"@vality/repairer-proto": "2.0.1-8f7973d.0",
|
||||||
"@vality/thrift-ts": "2.4.1-8ad5123.0",
|
"@vality/thrift-ts": "2.4.1-8ad5123.0",
|
||||||
"@vality/woody": "0.1.1",
|
"@vality/woody": "0.1.1",
|
||||||
"angular2-prettyjson": "3.0.1",
|
"angular2-prettyjson": "3.0.1",
|
||||||
"coerce-property": "0.3.2",
|
"coerce-property": "15.0.1",
|
||||||
"css-element-queries": "1.2.3",
|
"css-element-queries": "1.2.3",
|
||||||
"element-resize-detector": "1.2.4",
|
"element-resize-detector": "1.2.4",
|
||||||
"humanize-duration": "3.21.0",
|
"humanize-duration": "3.21.0",
|
||||||
@ -90,7 +85,6 @@
|
|||||||
"@types/uuid": "3.4.3",
|
"@types/uuid": "3.4.3",
|
||||||
"@typescript-eslint/eslint-plugin": "5.46.1",
|
"@typescript-eslint/eslint-plugin": "5.46.1",
|
||||||
"@typescript-eslint/parser": "5.46.1",
|
"@typescript-eslint/parser": "5.46.1",
|
||||||
"concurrently": "7.3.0",
|
|
||||||
"cross-env": "7.0.3",
|
"cross-env": "7.0.3",
|
||||||
"dotenv": "16.0.0",
|
"dotenv": "16.0.0",
|
||||||
"eslint": "8.29.0",
|
"eslint": "8.29.0",
|
||||||
|
@ -1 +0,0 @@
|
|||||||
package.json
|
|
@ -1,25 +0,0 @@
|
|||||||
# NgCore
|
|
||||||
|
|
||||||
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 14.0.0.
|
|
||||||
|
|
||||||
## Code scaffolding
|
|
||||||
|
|
||||||
Run `ng generate component component-name --project ng-core` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project ng-core`.
|
|
||||||
|
|
||||||
> Note: Don't forget to add `--project ng-core` or else it will be added to the default project in your `angular.json` file.
|
|
||||||
|
|
||||||
## Build
|
|
||||||
|
|
||||||
Run `ng build ng-core` to build the project. The build artifacts will be stored in the `dist/` directory.
|
|
||||||
|
|
||||||
## Publishing
|
|
||||||
|
|
||||||
After building your library with `ng build ng-core`, go to the dist folder `cd dist/ng-core` and run `npm publish`.
|
|
||||||
|
|
||||||
## Running unit tests
|
|
||||||
|
|
||||||
Run `ng test ng-core` to execute the unit tests via [Karma](https://karma-runner.github.io).
|
|
||||||
|
|
||||||
## Further help
|
|
||||||
|
|
||||||
To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
|
|
@ -1,41 +0,0 @@
|
|||||||
// Karma configuration file, see link for more information
|
|
||||||
// https://karma-runner.github.io/1.0/config/configuration-file.html
|
|
||||||
|
|
||||||
module.exports = function (config) {
|
|
||||||
config.set({
|
|
||||||
basePath: '',
|
|
||||||
frameworks: ['jasmine', '@angular-devkit/build-angular'],
|
|
||||||
plugins: [
|
|
||||||
require('karma-jasmine'),
|
|
||||||
require('karma-chrome-launcher'),
|
|
||||||
require('karma-jasmine-html-reporter'),
|
|
||||||
require('karma-coverage'),
|
|
||||||
require('@angular-devkit/build-angular/plugins/karma'),
|
|
||||||
],
|
|
||||||
client: {
|
|
||||||
jasmine: {
|
|
||||||
// you can add configuration options for Jasmine here
|
|
||||||
// the possible options are listed at https://jasmine.github.io/api/edge/Configuration.html
|
|
||||||
// for example, you can disable the random execution with `random: false`
|
|
||||||
// or set a specific seed with `seed: 4321`
|
|
||||||
},
|
|
||||||
clearContext: false, // leave Jasmine Spec Runner output visible in browser
|
|
||||||
},
|
|
||||||
jasmineHtmlReporter: {
|
|
||||||
suppressAll: true, // removes the duplicated traces
|
|
||||||
},
|
|
||||||
coverageReporter: {
|
|
||||||
dir: require('path').join(__dirname, '../../coverage/ng-core'),
|
|
||||||
subdir: '.',
|
|
||||||
reporters: [{ type: 'html' }, { type: 'text-summary' }],
|
|
||||||
},
|
|
||||||
reporters: ['progress', 'kjhtml'],
|
|
||||||
port: 9876,
|
|
||||||
colors: true,
|
|
||||||
logLevel: config.LOG_INFO,
|
|
||||||
autoWatch: true,
|
|
||||||
browsers: ['Chrome'],
|
|
||||||
singleRun: false,
|
|
||||||
restartOnFileChange: true,
|
|
||||||
});
|
|
||||||
};
|
|
@ -1,7 +0,0 @@
|
|||||||
{
|
|
||||||
"$schema": "../../node_modules/ng-packagr/ng-package.schema.json",
|
|
||||||
"dest": "../../dist/ng-core",
|
|
||||||
"lib": {
|
|
||||||
"entryFile": "src/public-api.ts"
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,11 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "@vality/ng-core",
|
|
||||||
"version": "0.0.1",
|
|
||||||
"peerDependencies": {
|
|
||||||
"@angular/common": "^14.0.0",
|
|
||||||
"@angular/core": "^14.0.0"
|
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"tslib": "^2.3.0"
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,10 +0,0 @@
|
|||||||
<div
|
|
||||||
class="cc-actions"
|
|
||||||
fxFlex="grow"
|
|
||||||
fxLayout="column"
|
|
||||||
fxLayout.gt-sm="row"
|
|
||||||
fxLayoutAlign="space-between center"
|
|
||||||
fxLayoutGap="24px"
|
|
||||||
>
|
|
||||||
<ng-content></ng-content>
|
|
||||||
</div>
|
|
@ -1,14 +0,0 @@
|
|||||||
::ng-deep .cc-actions {
|
|
||||||
& > *:first-child:not(:last-child) {
|
|
||||||
margin-right: auto !important;
|
|
||||||
@media screen and (max-width: 959px) {
|
|
||||||
margin-right: initial !important;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
& > *:first-child:last-child {
|
|
||||||
margin-left: auto !important;
|
|
||||||
@media screen and (max-width: 959px) {
|
|
||||||
margin-left: initial !important;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,9 +0,0 @@
|
|||||||
import { Component, ChangeDetectionStrategy } from '@angular/core';
|
|
||||||
|
|
||||||
@Component({
|
|
||||||
selector: 'cc-actions',
|
|
||||||
templateUrl: 'actions.component.html',
|
|
||||||
styleUrls: ['actions.component.scss'],
|
|
||||||
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
||||||
})
|
|
||||||
export class ActionsComponent {}
|
|
@ -1,11 +0,0 @@
|
|||||||
import { NgModule } from '@angular/core';
|
|
||||||
import { FlexLayoutModule } from '@angular/flex-layout';
|
|
||||||
|
|
||||||
import { ActionsComponent } from './actions.component';
|
|
||||||
|
|
||||||
@NgModule({
|
|
||||||
imports: [FlexLayoutModule],
|
|
||||||
declarations: [ActionsComponent],
|
|
||||||
exports: [ActionsComponent],
|
|
||||||
})
|
|
||||||
export class ActionsModule {}
|
|
@ -1,2 +0,0 @@
|
|||||||
export * from './actions.module';
|
|
||||||
export * from './actions.component';
|
|
@ -1,32 +0,0 @@
|
|||||||
<div class="base-dialog" fxFlex="grow" fxLayout="column">
|
|
||||||
<div class="base-dialog-title" fxLayout="row" fxLayoutAlign="space-between center">
|
|
||||||
<div class="cc-headline">{{ title }}</div>
|
|
||||||
<mat-icon
|
|
||||||
[matDialogClose]="cancelData"
|
|
||||||
class="base-dialog-title-close"
|
|
||||||
inline
|
|
||||||
(click)="cancelDialog()"
|
|
||||||
>clear</mat-icon
|
|
||||||
>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<ng-container *ngIf="!noContent">
|
|
||||||
<mat-divider *ngIf="hasDivider"></mat-divider>
|
|
||||||
<div class="base-dialog-content">
|
|
||||||
<ng-content></ng-content>
|
|
||||||
</div>
|
|
||||||
</ng-container>
|
|
||||||
|
|
||||||
<ng-container *ngIf="!noActions">
|
|
||||||
<mat-divider *ngIf="hasDivider"></mat-divider>
|
|
||||||
<div class="base-dialog-actions">
|
|
||||||
<ng-content select="cc-base-dialog-actions"></ng-content>
|
|
||||||
</div>
|
|
||||||
</ng-container>
|
|
||||||
|
|
||||||
<mat-progress-bar
|
|
||||||
*ngIf="inProgress || progress"
|
|
||||||
[mode]="inProgress ? 'indeterminate' : 'determinate'"
|
|
||||||
[value]="progress"
|
|
||||||
></mat-progress-bar>
|
|
||||||
</div>
|
|
@ -1,43 +0,0 @@
|
|||||||
$base-padding: 24px;
|
|
||||||
$max-height-mobile: 100vh;
|
|
||||||
$max-height-desktop: 90vh;
|
|
||||||
|
|
||||||
:host {
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
flex-grow: 1;
|
|
||||||
height: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.base-dialog {
|
|
||||||
max-height: calc(#{$max-height-desktop} - #{$base-padding * 2}) !important;
|
|
||||||
|
|
||||||
@media screen and (max-width: 959px) {
|
|
||||||
max-height: calc(#{$max-height-mobile} - #{$base-padding * 2}) !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
&-title {
|
|
||||||
padding: $base-padding;
|
|
||||||
|
|
||||||
&-close {
|
|
||||||
cursor: pointer;
|
|
||||||
font-size: 24px;
|
|
||||||
|
|
||||||
&:hover {
|
|
||||||
opacity: 0.5;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
&-content {
|
|
||||||
// instead of flex="grow". Don't need wrong rule "max-height": 100% to support scroll content
|
|
||||||
flex: 1 1 100%;
|
|
||||||
box-sizing: border-box;
|
|
||||||
padding: $base-padding;
|
|
||||||
overflow: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
&-actions {
|
|
||||||
padding: $base-padding;
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,32 +0,0 @@
|
|||||||
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
||||||
import { coerceBoolean } from 'coerce-property';
|
|
||||||
|
|
||||||
import { BaseDialogResponseStatus } from './types/base-dialog-response-status';
|
|
||||||
|
|
||||||
@Component({
|
|
||||||
selector: 'cc-base-dialog',
|
|
||||||
templateUrl: 'base-dialog.component.html',
|
|
||||||
styleUrls: ['base-dialog.component.scss'],
|
|
||||||
})
|
|
||||||
export class BaseDialogComponent {
|
|
||||||
@Input() title!: string;
|
|
||||||
|
|
||||||
@coerceBoolean @Input() disabled = false;
|
|
||||||
@coerceBoolean @Input() inProgress = false;
|
|
||||||
@Input() progress?: number;
|
|
||||||
|
|
||||||
@coerceBoolean @Input() hasDivider = true;
|
|
||||||
|
|
||||||
@coerceBoolean @Input() noContent = false;
|
|
||||||
@coerceBoolean @Input() noActions = false;
|
|
||||||
|
|
||||||
@Output() cancel = new EventEmitter<void>();
|
|
||||||
|
|
||||||
cancelData = {
|
|
||||||
status: BaseDialogResponseStatus.Cancelled,
|
|
||||||
};
|
|
||||||
|
|
||||||
cancelDialog(): void {
|
|
||||||
this.cancel.emit();
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,30 +0,0 @@
|
|||||||
import { CommonModule } from '@angular/common';
|
|
||||||
import { NgModule } from '@angular/core';
|
|
||||||
import { FlexLayoutModule } from '@angular/flex-layout';
|
|
||||||
import { MatButtonModule } from '@angular/material/button';
|
|
||||||
import { MatDialogModule } from '@angular/material/dialog';
|
|
||||||
import { MatDividerModule } from '@angular/material/divider';
|
|
||||||
import { MatIconModule } from '@angular/material/icon';
|
|
||||||
import { MatProgressBarModule } from '@angular/material/progress-bar';
|
|
||||||
|
|
||||||
import { ActionsModule } from '../actions';
|
|
||||||
import { BaseDialogComponent } from './base-dialog.component';
|
|
||||||
import { BaseDialogActionsComponent } from './components/base-dialog-actions/base-dialog-actions.component';
|
|
||||||
|
|
||||||
const SHARED_DECLARATIONS = [BaseDialogComponent, BaseDialogActionsComponent];
|
|
||||||
|
|
||||||
@NgModule({
|
|
||||||
imports: [
|
|
||||||
CommonModule,
|
|
||||||
FlexLayoutModule,
|
|
||||||
MatDividerModule,
|
|
||||||
MatButtonModule,
|
|
||||||
ActionsModule,
|
|
||||||
MatIconModule,
|
|
||||||
MatProgressBarModule,
|
|
||||||
MatDialogModule,
|
|
||||||
],
|
|
||||||
declarations: SHARED_DECLARATIONS,
|
|
||||||
exports: SHARED_DECLARATIONS,
|
|
||||||
})
|
|
||||||
export class BaseDialogModule {}
|
|
@ -1 +0,0 @@
|
|||||||
<cc-actions><ng-content></ng-content></cc-actions>
|
|
@ -1,7 +0,0 @@
|
|||||||
import { Component } from '@angular/core';
|
|
||||||
|
|
||||||
@Component({
|
|
||||||
selector: 'cc-base-dialog-actions',
|
|
||||||
templateUrl: './base-dialog-actions.component.html',
|
|
||||||
})
|
|
||||||
export class BaseDialogActionsComponent {}
|
|
@ -1,8 +0,0 @@
|
|||||||
export * from './base-dialog.module';
|
|
||||||
export * from './types/base-dialog-response-status';
|
|
||||||
export * from './types/base-dialog-response';
|
|
||||||
export * from './utils/base-dialog-superclass';
|
|
||||||
export * from './tokens';
|
|
||||||
export * from './base-dialog.component';
|
|
||||||
export * from './components/base-dialog-actions/base-dialog-actions.component';
|
|
||||||
export * from './services/base-dialog.service';
|
|
@ -1,45 +0,0 @@
|
|||||||
import { ComponentType } from '@angular/cdk/overlay';
|
|
||||||
import { Inject, Injectable, Optional } from '@angular/core';
|
|
||||||
import { MatDialog, MatDialogConfig, MatDialogRef } from '@angular/material/dialog';
|
|
||||||
|
|
||||||
import { DEFAULT_DIALOG_CONFIG, DIALOG_CONFIG, DialogConfig } from '../tokens';
|
|
||||||
import { BaseDialogResponse } from '../types/base-dialog-response';
|
|
||||||
import { BaseDialogSuperclass } from '../utils/base-dialog-superclass';
|
|
||||||
|
|
||||||
@Injectable({
|
|
||||||
providedIn: 'root',
|
|
||||||
})
|
|
||||||
export class BaseDialogService {
|
|
||||||
constructor(
|
|
||||||
private dialog: MatDialog,
|
|
||||||
@Optional()
|
|
||||||
@Inject(DIALOG_CONFIG)
|
|
||||||
private readonly dialogConfig: DialogConfig
|
|
||||||
) {
|
|
||||||
if (!dialogConfig) this.dialogConfig = DEFAULT_DIALOG_CONFIG;
|
|
||||||
}
|
|
||||||
|
|
||||||
open<C, D, R, S>(
|
|
||||||
dialogComponent: ComponentType<BaseDialogSuperclass<C, D, R, S>>,
|
|
||||||
/**
|
|
||||||
* Workaround when both conditions for the 'data' argument must be true:
|
|
||||||
* - typing did not require passing when it is optional (for example: {param: number} | void)
|
|
||||||
* - typing required to pass when it is required (for example: {param: number})
|
|
||||||
*/
|
|
||||||
...[data, configOrConfigName]: D extends void
|
|
||||||
? []
|
|
||||||
: [data: D, configOrConfigName?: Omit<MatDialogConfig<D>, 'data'> | keyof DialogConfig]
|
|
||||||
): MatDialogRef<C, BaseDialogResponse<R, S>> {
|
|
||||||
let config: Partial<MatDialogConfig<D>>;
|
|
||||||
if (!configOrConfigName) config = {};
|
|
||||||
else if (typeof configOrConfigName === 'string')
|
|
||||||
config = this.dialogConfig[configOrConfigName];
|
|
||||||
else config = configOrConfigName;
|
|
||||||
|
|
||||||
return this.dialog.open(dialogComponent as never, {
|
|
||||||
data,
|
|
||||||
...(dialogComponent as typeof BaseDialogSuperclass).defaultDialogConfig,
|
|
||||||
...config,
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,20 +0,0 @@
|
|||||||
import { InjectionToken } from '@angular/core';
|
|
||||||
import { MatDialogConfig } from '@angular/material/dialog';
|
|
||||||
import { ValuesType } from 'utility-types';
|
|
||||||
|
|
||||||
export type DialogConfig = Record<'small' | 'medium' | 'large', MatDialogConfig<undefined>>;
|
|
||||||
|
|
||||||
export const DIALOG_CONFIG = new InjectionToken<DialogConfig>('dialogConfig');
|
|
||||||
|
|
||||||
export const BASE_CONFIG: ValuesType<DialogConfig> = {
|
|
||||||
maxHeight: '90vh',
|
|
||||||
disableClose: true,
|
|
||||||
autoFocus: false,
|
|
||||||
width: '552px',
|
|
||||||
};
|
|
||||||
|
|
||||||
export const DEFAULT_DIALOG_CONFIG: DialogConfig = {
|
|
||||||
small: { ...BASE_CONFIG, width: '360px' },
|
|
||||||
medium: BASE_CONFIG,
|
|
||||||
large: { ...BASE_CONFIG, width: '800px' },
|
|
||||||
};
|
|
@ -1,5 +0,0 @@
|
|||||||
export enum BaseDialogResponseStatus {
|
|
||||||
Success = 'success',
|
|
||||||
Error = 'error',
|
|
||||||
Cancelled = 'canceled',
|
|
||||||
}
|
|
@ -1,7 +0,0 @@
|
|||||||
import { BaseDialogResponseStatus } from './base-dialog-response-status';
|
|
||||||
|
|
||||||
export interface BaseDialogResponse<T = void, S = void> {
|
|
||||||
status: S | BaseDialogResponseStatus;
|
|
||||||
data?: T;
|
|
||||||
error?: unknown;
|
|
||||||
}
|
|
@ -1,43 +0,0 @@
|
|||||||
import { Directive, Injector } from '@angular/core';
|
|
||||||
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
|
|
||||||
|
|
||||||
import { DEFAULT_DIALOG_CONFIG } from '../tokens';
|
|
||||||
import { BaseDialogResponse } from '../types/base-dialog-response';
|
|
||||||
import { BaseDialogResponseStatus } from '../types/base-dialog-response-status';
|
|
||||||
|
|
||||||
@Directive()
|
|
||||||
export class BaseDialogSuperclass<
|
|
||||||
DialogComponent,
|
|
||||||
DialogData = void,
|
|
||||||
DialogResponseData = void,
|
|
||||||
DialogResponseStatus = void,
|
|
||||||
DialogResponse = BaseDialogResponse<DialogResponseData, DialogResponseStatus>
|
|
||||||
> {
|
|
||||||
static defaultDialogConfig = DEFAULT_DIALOG_CONFIG.medium;
|
|
||||||
|
|
||||||
dialogData: DialogData = this.injector.get(MAT_DIALOG_DATA) as DialogData;
|
|
||||||
dialogRef = this.injector.get(MatDialogRef) as MatDialogRef<DialogComponent, DialogResponse>;
|
|
||||||
|
|
||||||
constructor(private injector: Injector) {}
|
|
||||||
|
|
||||||
closeWithCancellation(data?: DialogResponseData) {
|
|
||||||
this.dialogRef.close({
|
|
||||||
status: BaseDialogResponseStatus.Cancelled,
|
|
||||||
data,
|
|
||||||
} as never);
|
|
||||||
}
|
|
||||||
|
|
||||||
closeWithSuccess(data?: DialogResponseData) {
|
|
||||||
this.dialogRef.close({
|
|
||||||
status: BaseDialogResponseStatus.Success,
|
|
||||||
data,
|
|
||||||
} as never);
|
|
||||||
}
|
|
||||||
|
|
||||||
closeWithError(data?: DialogResponseData) {
|
|
||||||
this.dialogRef.close({
|
|
||||||
status: BaseDialogResponseStatus.Error,
|
|
||||||
data,
|
|
||||||
} as never);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,2 +0,0 @@
|
|||||||
export * from './actions';
|
|
||||||
export * from './base-dialog';
|
|
@ -1,3 +0,0 @@
|
|||||||
export * from './components';
|
|
||||||
export * from './utils';
|
|
||||||
export * from './pipes';
|
|
@ -1,2 +0,0 @@
|
|||||||
export * from './pipes.module';
|
|
||||||
export * from './inline-json.pipe';
|
|
@ -1,12 +0,0 @@
|
|||||||
import { Pipe, PipeTransform } from '@angular/core';
|
|
||||||
|
|
||||||
import { inlineJson } from '../utils';
|
|
||||||
|
|
||||||
@Pipe({
|
|
||||||
name: 'inlineJson',
|
|
||||||
})
|
|
||||||
export class InlineJsonPipe implements PipeTransform {
|
|
||||||
transform(value: unknown, maxReadableLever: number | false = 1): unknown {
|
|
||||||
return inlineJson(value, maxReadableLever === false ? Infinity : maxReadableLever);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,11 +0,0 @@
|
|||||||
import { CommonModule } from '@angular/common';
|
|
||||||
import { NgModule } from '@angular/core';
|
|
||||||
|
|
||||||
import { InlineJsonPipe } from './inline-json.pipe';
|
|
||||||
|
|
||||||
@NgModule({
|
|
||||||
declarations: [InlineJsonPipe],
|
|
||||||
exports: [InlineJsonPipe],
|
|
||||||
imports: [CommonModule],
|
|
||||||
})
|
|
||||||
export class PipesModule {}
|
|
@ -1,46 +0,0 @@
|
|||||||
import isEmpty from 'lodash-es/isEmpty';
|
|
||||||
import isNil from 'lodash-es/isNil';
|
|
||||||
import isObject from 'lodash-es/isObject';
|
|
||||||
import { ValuesType } from 'utility-types';
|
|
||||||
|
|
||||||
function isEmptyPrimitive(value: unknown): boolean {
|
|
||||||
return isNil(value) || value === '';
|
|
||||||
}
|
|
||||||
|
|
||||||
function isEmptyObjectOrPrimitive(value: unknown): boolean {
|
|
||||||
return isObject(value) ? isEmpty(value) : isEmptyPrimitive(value);
|
|
||||||
}
|
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
||||||
export function clean<T extends ReadonlyArray<any> | ArrayLike<any> | Record<any, any>>(
|
|
||||||
value: T,
|
|
||||||
allowRootRemoval = false,
|
|
||||||
isNotDeep = false,
|
|
||||||
filterPredicate: (v: unknown, k?: PropertyKey) => boolean = (v) => !isEmptyObjectOrPrimitive(v)
|
|
||||||
): T | null {
|
|
||||||
if (!isObject(value) || (value.constructor !== Object && !Array.isArray(value))) return value;
|
|
||||||
if (allowRootRemoval && !filterPredicate(value as never)) return null;
|
|
||||||
let result: unknown;
|
|
||||||
const cleanChild = (v: unknown) =>
|
|
||||||
isNotDeep ? v : clean(v as never, allowRootRemoval, isNotDeep, filterPredicate);
|
|
||||||
if (Array.isArray(value))
|
|
||||||
result = (value as ValuesType<T>[])
|
|
||||||
.slice()
|
|
||||||
.map((v) => cleanChild(v))
|
|
||||||
.filter((v, idx) => filterPredicate(v, idx));
|
|
||||||
else
|
|
||||||
result = Object.fromEntries(
|
|
||||||
(Object.entries(value) as [keyof T, ValuesType<T>][])
|
|
||||||
.map(([k, v]) => [k, cleanChild(v)] as const)
|
|
||||||
.filter(([k, v]) => filterPredicate(v, k))
|
|
||||||
);
|
|
||||||
return allowRootRemoval && !filterPredicate(result) ? null : (result as never);
|
|
||||||
}
|
|
||||||
|
|
||||||
export function cleanPrimitiveProps<T extends object>(
|
|
||||||
obj: T,
|
|
||||||
allowRootRemoval = false,
|
|
||||||
isNotDeep = false
|
|
||||||
) {
|
|
||||||
return clean(obj, allowRootRemoval, isNotDeep, (v) => !isEmptyPrimitive(v));
|
|
||||||
}
|
|
@ -1,8 +0,0 @@
|
|||||||
/**
|
|
||||||
* Use with sorting (arr.sort(fn))
|
|
||||||
*/
|
|
||||||
export function compareDifferentTypes<T>(a: T, b: T): number {
|
|
||||||
return typeof a === 'number' && typeof b === 'number'
|
|
||||||
? a - b
|
|
||||||
: String(a).localeCompare(String(b));
|
|
||||||
}
|
|
@ -1,5 +0,0 @@
|
|||||||
export * from './clean';
|
|
||||||
export * from './inline-json';
|
|
||||||
export * from './compare-different-types';
|
|
||||||
export * from './split-ids';
|
|
||||||
export * from './is-empty';
|
|
@ -1,32 +0,0 @@
|
|||||||
import { isPrimitive } from 'utility-types';
|
|
||||||
|
|
||||||
export function inlineJson(value: unknown, maxReadableLever = 1): string {
|
|
||||||
if (value === '') {
|
|
||||||
return "''";
|
|
||||||
}
|
|
||||||
if (isPrimitive(value)) {
|
|
||||||
return String(value);
|
|
||||||
}
|
|
||||||
if (Array.isArray(value) || value instanceof Map || value instanceof Set) {
|
|
||||||
const content =
|
|
||||||
maxReadableLever > 0
|
|
||||||
? Array.from(value)
|
|
||||||
.map((v) => inlineJson(v, maxReadableLever))
|
|
||||||
.join(', ')
|
|
||||||
: Array.from(value).length
|
|
||||||
? '…'
|
|
||||||
: '';
|
|
||||||
if (value instanceof Set) return ['Set(', content, ')'].filter(Boolean).join('');
|
|
||||||
if (value instanceof Map) return ['Map(', content, ')'].filter(Boolean).join('');
|
|
||||||
return ['[', content, ']'].filter(Boolean).join('');
|
|
||||||
}
|
|
||||||
const content =
|
|
||||||
maxReadableLever > 0
|
|
||||||
? ' ' +
|
|
||||||
Object.entries(value as never)
|
|
||||||
.map(([k, v]) => `${k}: ${inlineJson(v, maxReadableLever - 1)}`)
|
|
||||||
.join(', ') +
|
|
||||||
' '
|
|
||||||
: '';
|
|
||||||
return ['{', content, '}'].filter(Boolean).join('');
|
|
||||||
}
|
|
@ -1,7 +0,0 @@
|
|||||||
import _isEmpty from 'lodash-es/isEmpty';
|
|
||||||
import isNil from 'lodash-es/isNil';
|
|
||||||
import isObject from 'lodash-es/isObject';
|
|
||||||
|
|
||||||
export function isEmpty(value: unknown): boolean {
|
|
||||||
return isObject(value) ? _isEmpty(value) : isNil(value) || value === '';
|
|
||||||
}
|
|
@ -1,9 +0,0 @@
|
|||||||
const SEPARATORS = ',.;';
|
|
||||||
|
|
||||||
export function splitIds(ids: string): string[] {
|
|
||||||
if (!ids) return [];
|
|
||||||
return ids
|
|
||||||
.split(new RegExp(`[${SEPARATORS}\\s]`))
|
|
||||||
.map((id) => id.trim())
|
|
||||||
.filter(Boolean);
|
|
||||||
}
|
|
@ -1,5 +0,0 @@
|
|||||||
/*
|
|
||||||
* Public API Surface of ng-core
|
|
||||||
*/
|
|
||||||
|
|
||||||
export * from './lib';
|
|
@ -1,12 +0,0 @@
|
|||||||
// This file is required by karma.conf.js and loads recursively all the .spec and framework files
|
|
||||||
|
|
||||||
import 'zone.js';
|
|
||||||
import 'zone.js/testing';
|
|
||||||
import { getTestBed } from '@angular/core/testing';
|
|
||||||
import {
|
|
||||||
BrowserDynamicTestingModule,
|
|
||||||
platformBrowserDynamicTesting,
|
|
||||||
} from '@angular/platform-browser-dynamic/testing';
|
|
||||||
|
|
||||||
// First, initialize the Angular testing environment.
|
|
||||||
getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting());
|
|
@ -1,21 +0,0 @@
|
|||||||
/* To learn more about this file see: https://angular.io/config/tsconfig. */
|
|
||||||
{
|
|
||||||
"extends": "../../tsconfig.json",
|
|
||||||
"compilerOptions": {
|
|
||||||
"outDir": "../../out-tsc/lib",
|
|
||||||
"declaration": true,
|
|
||||||
"declarationMap": true,
|
|
||||||
"inlineSources": true,
|
|
||||||
"types": [],
|
|
||||||
"strict": true,
|
|
||||||
"noUnusedLocals": true,
|
|
||||||
"noUnusedParameters": true,
|
|
||||||
"noImplicitAny": true
|
|
||||||
},
|
|
||||||
"angularCompilerOptions": {
|
|
||||||
"fullTemplateTypeCheck": true,
|
|
||||||
"strictInjectionParameters": true,
|
|
||||||
"strictTemplates": true
|
|
||||||
},
|
|
||||||
"exclude": ["src/test.ts", "**/*.spec.ts"]
|
|
||||||
}
|
|
@ -1,10 +0,0 @@
|
|||||||
/* To learn more about this file see: https://angular.io/config/tsconfig. */
|
|
||||||
{
|
|
||||||
"extends": "./tsconfig.lib.json",
|
|
||||||
"compilerOptions": {
|
|
||||||
"declarationMap": false
|
|
||||||
},
|
|
||||||
"angularCompilerOptions": {
|
|
||||||
"compilationMode": "partial"
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,10 +0,0 @@
|
|||||||
/* To learn more about this file see: https://angular.io/config/tsconfig. */
|
|
||||||
{
|
|
||||||
"extends": "../../tsconfig.json",
|
|
||||||
"compilerOptions": {
|
|
||||||
"outDir": "../../out-tsc/spec",
|
|
||||||
"types": ["jasmine"]
|
|
||||||
},
|
|
||||||
"files": ["src/test.ts"],
|
|
||||||
"include": ["**/*.spec.ts", "**/*.d.ts"]
|
|
||||||
}
|
|
@ -1,7 +1,7 @@
|
|||||||
import { Component } from '@angular/core';
|
import { Component } from '@angular/core';
|
||||||
import { ActivatedRoute } from '@angular/router';
|
import { ActivatedRoute } from '@angular/router';
|
||||||
import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
|
import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
|
||||||
import { BaseDialogResponseStatus, BaseDialogService } from '@vality/ng-core';
|
import { DialogResponseStatus, DialogService } from '@vality/ng-core';
|
||||||
import { BehaviorSubject, combineLatest, defer, merge, Observable, Subject, switchMap } from 'rxjs';
|
import { BehaviorSubject, combineLatest, defer, merge, Observable, Subject, switchMap } from 'rxjs';
|
||||||
import { first, map, shareReplay } from 'rxjs/operators';
|
import { first, map, shareReplay } from 'rxjs/operators';
|
||||||
|
|
||||||
@ -63,7 +63,7 @@ export class ClaimComponent {
|
|||||||
private partyManagementService: PartyManagementService,
|
private partyManagementService: PartyManagementService,
|
||||||
private notificationService: NotificationService,
|
private notificationService: NotificationService,
|
||||||
private allowedClaimStatusesService: AllowedClaimStatusesService,
|
private allowedClaimStatusesService: AllowedClaimStatusesService,
|
||||||
private baseDialogService: BaseDialogService,
|
private dialogService: DialogService,
|
||||||
private notificationErrorService: NotificationErrorService
|
private notificationErrorService: NotificationErrorService
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
@ -76,14 +76,14 @@ export class ClaimComponent {
|
|||||||
.pipe(
|
.pipe(
|
||||||
first(),
|
first(),
|
||||||
switchMap(([party, claim]) =>
|
switchMap(([party, claim]) =>
|
||||||
this.baseDialogService
|
this.dialogService
|
||||||
.open(AddModificationDialogComponent, { party, claim })
|
.open(AddModificationDialogComponent, { party, claim })
|
||||||
.afterClosed()
|
.afterClosed()
|
||||||
),
|
),
|
||||||
untilDestroyed(this)
|
untilDestroyed(this)
|
||||||
)
|
)
|
||||||
.subscribe((result) => {
|
.subscribe((result) => {
|
||||||
if (result.status === BaseDialogResponseStatus.Success) this.reloadClaim();
|
if (result.status === DialogResponseStatus.Success) this.reloadClaim();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -92,14 +92,14 @@ export class ClaimComponent {
|
|||||||
.pipe(
|
.pipe(
|
||||||
first(),
|
first(),
|
||||||
switchMap(([party, claim]) =>
|
switchMap(([party, claim]) =>
|
||||||
this.baseDialogService
|
this.dialogService
|
||||||
.open(ChangeStatusDialogComponent, { partyID: party.id, claim })
|
.open(ChangeStatusDialogComponent, { partyID: party.id, claim })
|
||||||
.afterClosed()
|
.afterClosed()
|
||||||
),
|
),
|
||||||
untilDestroyed(this)
|
untilDestroyed(this)
|
||||||
)
|
)
|
||||||
.subscribe((result) => {
|
.subscribe((result) => {
|
||||||
if (result.status === BaseDialogResponseStatus.Success) this.reloadClaim();
|
if (result.status === DialogResponseStatus.Success) this.reloadClaim();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -15,7 +15,7 @@ import { MatProgressBarModule } from '@angular/material/progress-bar';
|
|||||||
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
|
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
|
||||||
import { MatSelectModule } from '@angular/material/select';
|
import { MatSelectModule } from '@angular/material/select';
|
||||||
import { RouterModule } from '@angular/router';
|
import { RouterModule } from '@angular/router';
|
||||||
import { ActionsModule, BaseDialogModule } from '@vality/ng-core';
|
import { ActionsModule, DialogModule } from '@vality/ng-core';
|
||||||
|
|
||||||
import { JsonViewerModule } from '@cc/app/shared/components/json-viewer/json-viewer.module';
|
import { JsonViewerModule } from '@cc/app/shared/components/json-viewer/json-viewer.module';
|
||||||
import { StatusModule } from '@cc/app/shared/components/status';
|
import { StatusModule } from '@cc/app/shared/components/status';
|
||||||
@ -70,7 +70,7 @@ import { TimelineItemLoadingComponent } from './components/timeline-item-loading
|
|||||||
MatMenuModule,
|
MatMenuModule,
|
||||||
MatDialogModule,
|
MatDialogModule,
|
||||||
MatProgressBarModule,
|
MatProgressBarModule,
|
||||||
BaseDialogModule,
|
DialogModule,
|
||||||
ActionsModule,
|
ActionsModule,
|
||||||
HumanizeDurationModule,
|
HumanizeDurationModule,
|
||||||
],
|
],
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
<cc-base-dialog
|
<v-dialog
|
||||||
[inProgress]="isLoading$ | async"
|
[inProgress]="isLoading$ | async"
|
||||||
[title]="isUpdate ? 'Update modification unit' : 'Add party modification unit '"
|
[title]="isUpdate ? 'Update modification unit' : 'Add party modification unit '"
|
||||||
>
|
>
|
||||||
@ -8,7 +8,7 @@
|
|||||||
[party]="dialogData.party"
|
[party]="dialogData.party"
|
||||||
[type]="isUpdate ? 'PartyModificationChange' : 'PartyModification'"
|
[type]="isUpdate ? 'PartyModificationChange' : 'PartyModification'"
|
||||||
></cc-modification-form>
|
></cc-modification-form>
|
||||||
<cc-base-dialog-actions>
|
<v-dialog-actions>
|
||||||
<button
|
<button
|
||||||
[disabled]="control.invalid || (isLoading$ | async)"
|
[disabled]="control.invalid || (isLoading$ | async)"
|
||||||
color="primary"
|
color="primary"
|
||||||
@ -17,5 +17,5 @@
|
|||||||
>
|
>
|
||||||
{{ isUpdate ? 'UPDATE' : 'ADD' }}
|
{{ isUpdate ? 'UPDATE' : 'ADD' }}
|
||||||
</button>
|
</button>
|
||||||
</cc-base-dialog-actions>
|
</v-dialog-actions>
|
||||||
</cc-base-dialog>
|
</v-dialog>
|
||||||
|
@ -8,11 +8,7 @@ import {
|
|||||||
PartyModificationChange,
|
PartyModificationChange,
|
||||||
} from '@vality/domain-proto/claim_management';
|
} from '@vality/domain-proto/claim_management';
|
||||||
import { Party } from '@vality/domain-proto/domain';
|
import { Party } from '@vality/domain-proto/domain';
|
||||||
import {
|
import { DialogResponseStatus, DialogSuperclass, DEFAULT_DIALOG_CONFIG } from '@vality/ng-core';
|
||||||
BaseDialogResponseStatus,
|
|
||||||
BaseDialogSuperclass,
|
|
||||||
DEFAULT_DIALOG_CONFIG,
|
|
||||||
} from '@vality/ng-core';
|
|
||||||
import { BehaviorSubject } from 'rxjs';
|
import { BehaviorSubject } from 'rxjs';
|
||||||
|
|
||||||
import { ClaimManagementService } from '@cc/app/api/claim-management';
|
import { ClaimManagementService } from '@cc/app/api/claim-management';
|
||||||
@ -26,7 +22,7 @@ import { NotificationErrorService } from '../../../../shared/services/notificati
|
|||||||
selector: 'cc-add-modification-dialog',
|
selector: 'cc-add-modification-dialog',
|
||||||
templateUrl: './add-modification-dialog.component.html',
|
templateUrl: './add-modification-dialog.component.html',
|
||||||
})
|
})
|
||||||
export class AddModificationDialogComponent extends BaseDialogSuperclass<
|
export class AddModificationDialogComponent extends DialogSuperclass<
|
||||||
AddModificationDialogComponent,
|
AddModificationDialogComponent,
|
||||||
{ party: Party; claim: Claim; modificationUnit?: ModificationUnit }
|
{ party: Party; claim: Claim; modificationUnit?: ModificationUnit }
|
||||||
> {
|
> {
|
||||||
@ -64,7 +60,7 @@ export class AddModificationDialogComponent extends BaseDialogSuperclass<
|
|||||||
.subscribe({
|
.subscribe({
|
||||||
next: () => {
|
next: () => {
|
||||||
this.notificationService.success('Modification added successfully');
|
this.notificationService.success('Modification added successfully');
|
||||||
this.dialogRef.close({ status: BaseDialogResponseStatus.Success });
|
this.dialogRef.close({ status: DialogResponseStatus.Success });
|
||||||
},
|
},
|
||||||
error: this.notificationErrorService.error,
|
error: this.notificationErrorService.error,
|
||||||
});
|
});
|
||||||
@ -84,13 +80,13 @@ export class AddModificationDialogComponent extends BaseDialogSuperclass<
|
|||||||
.subscribe({
|
.subscribe({
|
||||||
next: () => {
|
next: () => {
|
||||||
this.notificationService.success('Modification updated successfully');
|
this.notificationService.success('Modification updated successfully');
|
||||||
this.dialogRef.close({ status: BaseDialogResponseStatus.Success });
|
this.dialogRef.close({ status: DialogResponseStatus.Success });
|
||||||
},
|
},
|
||||||
error: this.notificationErrorService.error,
|
error: this.notificationErrorService.error,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
cancel() {
|
cancel() {
|
||||||
this.dialogRef.close({ status: BaseDialogResponseStatus.Cancelled });
|
this.dialogRef.close({ status: DialogResponseStatus.Cancelled });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
<cc-base-dialog [inProgress]="inProgress$ | async" title="Change claim status">
|
<v-dialog [inProgress]="inProgress$ | async" title="Change claim status">
|
||||||
<div [formGroup]="form" gdColumns="1fr" gdGap="16px">
|
<div [formGroup]="form" gdColumns="1fr" gdGap="16px">
|
||||||
<mat-form-field>
|
<mat-form-field>
|
||||||
<mat-select
|
<mat-select
|
||||||
@ -42,7 +42,7 @@
|
|||||||
</mat-select>
|
</mat-select>
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
</div>
|
</div>
|
||||||
<cc-base-dialog-actions>
|
<v-dialog-actions>
|
||||||
<button
|
<button
|
||||||
[disabled]="form.invalid || (inProgress$ | async)"
|
[disabled]="form.invalid || (inProgress$ | async)"
|
||||||
color="primary"
|
color="primary"
|
||||||
@ -51,5 +51,5 @@
|
|||||||
>
|
>
|
||||||
CONFIRM
|
CONFIRM
|
||||||
</button>
|
</button>
|
||||||
</cc-base-dialog-actions>
|
</v-dialog-actions>
|
||||||
</cc-base-dialog>
|
</v-dialog>
|
||||||
|
@ -2,7 +2,7 @@ import { Component, Injector } from '@angular/core';
|
|||||||
import { Validators, FormBuilder } from '@angular/forms';
|
import { Validators, FormBuilder } from '@angular/forms';
|
||||||
import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
|
import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
|
||||||
import { Claim, ClaimStatus } from '@vality/domain-proto/claim_management';
|
import { Claim, ClaimStatus } from '@vality/domain-proto/claim_management';
|
||||||
import { BaseDialogResponseStatus, BaseDialogSuperclass } from '@vality/ng-core';
|
import { DialogResponseStatus, DialogSuperclass } from '@vality/ng-core';
|
||||||
import { BehaviorSubject, Observable } from 'rxjs';
|
import { BehaviorSubject, Observable } from 'rxjs';
|
||||||
|
|
||||||
import { ClaimManagementService } from '@cc/app/api/claim-management';
|
import { ClaimManagementService } from '@cc/app/api/claim-management';
|
||||||
@ -17,7 +17,7 @@ import { NotificationErrorService } from '../../../../shared/services/notificati
|
|||||||
selector: 'cc-change-status-dialog',
|
selector: 'cc-change-status-dialog',
|
||||||
templateUrl: './change-status-dialog.component.html',
|
templateUrl: './change-status-dialog.component.html',
|
||||||
})
|
})
|
||||||
export class ChangeStatusDialogComponent extends BaseDialogSuperclass<
|
export class ChangeStatusDialogComponent extends DialogSuperclass<
|
||||||
ChangeStatusDialogComponent,
|
ChangeStatusDialogComponent,
|
||||||
{ partyID: string; claim: Claim }
|
{ partyID: string; claim: Claim }
|
||||||
> {
|
> {
|
||||||
@ -68,7 +68,7 @@ export class ChangeStatusDialogComponent extends BaseDialogSuperclass<
|
|||||||
}
|
}
|
||||||
result$.pipe(progressTo(this.progress$), untilDestroyed(this)).subscribe({
|
result$.pipe(progressTo(this.progress$), untilDestroyed(this)).subscribe({
|
||||||
next: () => {
|
next: () => {
|
||||||
this.dialogRef.close({ status: BaseDialogResponseStatus.Success });
|
this.dialogRef.close({ status: DialogResponseStatus.Success });
|
||||||
this.notificationService.success('Status successfully changed');
|
this.notificationService.success('Status successfully changed');
|
||||||
},
|
},
|
||||||
error: this.notificationErrorService.error,
|
error: this.notificationErrorService.error,
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
||||||
import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
|
import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
|
||||||
import { Claim, ModificationUnit } from '@vality/domain-proto/claim_management';
|
import { Claim, ModificationUnit } from '@vality/domain-proto/claim_management';
|
||||||
import { BaseDialogResponseStatus, BaseDialogService } from '@vality/ng-core';
|
import { DialogResponseStatus, DialogService } from '@vality/ng-core';
|
||||||
import { coerceBoolean } from 'coerce-property';
|
import { coerceBoolean } from 'coerce-property';
|
||||||
import isEmpty from 'lodash-es/isEmpty';
|
import isEmpty from 'lodash-es/isEmpty';
|
||||||
import { BehaviorSubject, switchMap, from } from 'rxjs';
|
import { BehaviorSubject, switchMap, from } from 'rxjs';
|
||||||
@ -45,7 +45,7 @@ export class ModificationUnitTimelineItemComponent {
|
|||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
private partyManagementService: PartyManagementService,
|
private partyManagementService: PartyManagementService,
|
||||||
private baseDialogService: BaseDialogService,
|
private dialogService: DialogService,
|
||||||
private claimManagementService: ClaimManagementService,
|
private claimManagementService: ClaimManagementService,
|
||||||
private notificationService: NotificationService,
|
private notificationService: NotificationService,
|
||||||
private domainMetadataViewExtensionsService: DomainMetadataViewExtensionsService,
|
private domainMetadataViewExtensionsService: DomainMetadataViewExtensionsService,
|
||||||
@ -66,7 +66,7 @@ export class ModificationUnitTimelineItemComponent {
|
|||||||
.pipe(
|
.pipe(
|
||||||
first(),
|
first(),
|
||||||
switchMap((party) =>
|
switchMap((party) =>
|
||||||
this.baseDialogService
|
this.dialogService
|
||||||
.open(AddModificationDialogComponent, {
|
.open(AddModificationDialogComponent, {
|
||||||
party,
|
party,
|
||||||
claim: this.claim,
|
claim: this.claim,
|
||||||
@ -77,16 +77,16 @@ export class ModificationUnitTimelineItemComponent {
|
|||||||
untilDestroyed(this)
|
untilDestroyed(this)
|
||||||
)
|
)
|
||||||
.subscribe((result) => {
|
.subscribe((result) => {
|
||||||
if (result.status === BaseDialogResponseStatus.Success) this.claimChanged.emit();
|
if (result.status === DialogResponseStatus.Success) this.claimChanged.emit();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
remove() {
|
remove() {
|
||||||
this.baseDialogService
|
this.dialogService
|
||||||
.open(ConfirmActionDialogComponent, { title: 'Confirm deletion' })
|
.open(ConfirmActionDialogComponent, { title: 'Confirm deletion' })
|
||||||
.afterClosed()
|
.afterClosed()
|
||||||
.pipe(
|
.pipe(
|
||||||
filter(({ status }) => status === BaseDialogResponseStatus.Success),
|
filter(({ status }) => status === DialogResponseStatus.Success),
|
||||||
switchMap(() => this.partyManagementService.Get(this.claim.party_id)),
|
switchMap(() => this.partyManagementService.Get(this.claim.party_id)),
|
||||||
switchMap((party) =>
|
switchMap((party) =>
|
||||||
this.claimManagementService.RemoveModification(
|
this.claimManagementService.RemoveModification(
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
<cc-base-dialog [inProgress]="isLoading$ | async" title="Create deposit">
|
<v-dialog [inProgress]="isLoading$ | async" title="Create deposit">
|
||||||
<form *ngIf="form" [formGroup]="form" fxLayout="column" fxLayoutGap="16px">
|
<form *ngIf="form" [formGroup]="form" fxLayout="column" fxLayoutGap="16px">
|
||||||
<div fxLayout fxLayoutGap="24px">
|
<div fxLayout fxLayoutGap="24px">
|
||||||
<mat-form-field fxFlex>
|
<mat-form-field fxFlex>
|
||||||
@ -26,7 +26,7 @@
|
|||||||
<div fxFlex></div>
|
<div fxFlex></div>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
<cc-base-dialog-actions>
|
<v-dialog-actions>
|
||||||
<button
|
<button
|
||||||
[disabled]="(isLoading$ | async) || form.invalid"
|
[disabled]="(isLoading$ | async) || form.invalid"
|
||||||
color="primary"
|
color="primary"
|
||||||
@ -35,5 +35,5 @@
|
|||||||
>
|
>
|
||||||
CREATE
|
CREATE
|
||||||
</button>
|
</button>
|
||||||
</cc-base-dialog-actions>
|
</v-dialog-actions>
|
||||||
</cc-base-dialog>
|
</v-dialog>
|
||||||
|
@ -8,7 +8,7 @@ import { MatFormFieldModule } from '@angular/material/form-field';
|
|||||||
import { MatInputModule } from '@angular/material/input';
|
import { MatInputModule } from '@angular/material/input';
|
||||||
import { MatProgressBarModule } from '@angular/material/progress-bar';
|
import { MatProgressBarModule } from '@angular/material/progress-bar';
|
||||||
import { MatSelectModule } from '@angular/material/select';
|
import { MatSelectModule } from '@angular/material/select';
|
||||||
import { BaseDialogModule } from '@vality/ng-core';
|
import { DialogModule } from '@vality/ng-core';
|
||||||
|
|
||||||
import { UserInfoBasedIdGeneratorModule } from '@cc/app/shared/services/user-info-based-id-generator/user-info-based-id-generator.module';
|
import { UserInfoBasedIdGeneratorModule } from '@cc/app/shared/services/user-info-based-id-generator/user-info-based-id-generator.module';
|
||||||
|
|
||||||
@ -26,7 +26,7 @@ import { CreateDepositDialogComponent } from './create-deposit-dialog.component'
|
|||||||
MatButtonModule,
|
MatButtonModule,
|
||||||
MatProgressBarModule,
|
MatProgressBarModule,
|
||||||
UserInfoBasedIdGeneratorModule,
|
UserInfoBasedIdGeneratorModule,
|
||||||
BaseDialogModule,
|
DialogModule,
|
||||||
],
|
],
|
||||||
declarations: [CreateDepositDialogComponent],
|
declarations: [CreateDepositDialogComponent],
|
||||||
})
|
})
|
||||||
|
@ -18,11 +18,11 @@
|
|||||||
type="DomainObject"
|
type="DomainObject"
|
||||||
(changeKind)="kind = $event"
|
(changeKind)="kind = $event"
|
||||||
></cc-thrift-viewer>
|
></cc-thrift-viewer>
|
||||||
<cc-actions>
|
<v-actions>
|
||||||
<button mat-button (click)="close()">CLOSE</button>
|
<button mat-button (click)="close()">CLOSE</button>
|
||||||
<button color="warn" mat-button (click)="delete()">DELETE</button>
|
<button color="warn" mat-button (click)="delete()">DELETE</button>
|
||||||
<button color="primary" mat-button (click)="edit()">EDIT</button>
|
<button color="primary" mat-button (click)="edit()">EDIT</button>
|
||||||
</cc-actions>
|
</v-actions>
|
||||||
</div>
|
</div>
|
||||||
</mat-sidenav>
|
</mat-sidenav>
|
||||||
<mat-sidenav-content>
|
<mat-sidenav-content>
|
||||||
|
@ -3,7 +3,7 @@ import { MatSidenav } from '@angular/material/sidenav';
|
|||||||
import { Router } from '@angular/router';
|
import { Router } from '@angular/router';
|
||||||
import { untilDestroyed, UntilDestroy } from '@ngneat/until-destroy';
|
import { untilDestroyed, UntilDestroy } from '@ngneat/until-destroy';
|
||||||
import { DomainObject, Reference } from '@vality/domain-proto/domain';
|
import { DomainObject, Reference } from '@vality/domain-proto/domain';
|
||||||
import { BaseDialogService, BaseDialogResponseStatus } from '@vality/ng-core';
|
import { DialogService, DialogResponseStatus } from '@vality/ng-core';
|
||||||
import { from } from 'rxjs';
|
import { from } from 'rxjs';
|
||||||
import { filter, switchMap } from 'rxjs/operators';
|
import { filter, switchMap } from 'rxjs/operators';
|
||||||
|
|
||||||
@ -48,7 +48,7 @@ export class DomainInfoComponent {
|
|||||||
constructor(
|
constructor(
|
||||||
private router: Router,
|
private router: Router,
|
||||||
private domainStoreService: DomainStoreService,
|
private domainStoreService: DomainStoreService,
|
||||||
private baseDialogService: BaseDialogService,
|
private dialogService: DialogService,
|
||||||
private notificationService: NotificationService,
|
private notificationService: NotificationService,
|
||||||
private notificationErrorService: NotificationErrorService,
|
private notificationErrorService: NotificationErrorService,
|
||||||
private domainMetadataViewExtensionsService: DomainMetadataViewExtensionsService,
|
private domainMetadataViewExtensionsService: DomainMetadataViewExtensionsService,
|
||||||
@ -60,12 +60,12 @@ export class DomainInfoComponent {
|
|||||||
}
|
}
|
||||||
|
|
||||||
delete() {
|
delete() {
|
||||||
this.baseDialogService
|
this.dialogService
|
||||||
.open(ConfirmActionDialogComponent, { title: 'Delete object' })
|
.open(ConfirmActionDialogComponent, { title: 'Delete object' })
|
||||||
.afterClosed()
|
.afterClosed()
|
||||||
.pipe(
|
.pipe(
|
||||||
untilDestroyed(this),
|
untilDestroyed(this),
|
||||||
filter(({ status }) => status === BaseDialogResponseStatus.Success),
|
filter(({ status }) => status === DialogResponseStatus.Success),
|
||||||
switchMap(() =>
|
switchMap(() =>
|
||||||
this.domainStoreService.commit({
|
this.domainStoreService.commit({
|
||||||
ops: [{ remove: { object: this.objWithRef.obj } }],
|
ops: [{ remove: { object: this.objWithRef.obj } }],
|
||||||
|
@ -27,7 +27,7 @@
|
|||||||
></cc-thrift-viewer>
|
></cc-thrift-viewer>
|
||||||
</mat-card-content>
|
</mat-card-content>
|
||||||
</mat-card>
|
</mat-card>
|
||||||
<cc-actions>
|
<v-actions>
|
||||||
<button
|
<button
|
||||||
*ngIf="!review"
|
*ngIf="!review"
|
||||||
[disabled]="!!(progress$ | async)"
|
[disabled]="!!(progress$ | async)"
|
||||||
@ -56,6 +56,6 @@
|
|||||||
{{ review ? 'COMMIT' : 'REVIEW' }}
|
{{ review ? 'COMMIT' : 'REVIEW' }}
|
||||||
<mat-icon aria-label="Login">keyboard_arrow_right</mat-icon>
|
<mat-icon aria-label="Login">keyboard_arrow_right</mat-icon>
|
||||||
</button>
|
</button>
|
||||||
</cc-actions>
|
</v-actions>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -22,7 +22,7 @@
|
|||||||
></cc-thrift-editor>
|
></cc-thrift-editor>
|
||||||
</mat-card-content>
|
</mat-card-content>
|
||||||
</mat-card>
|
</mat-card>
|
||||||
<cc-actions>
|
<v-actions>
|
||||||
<button mat-button (click)="backToDomain()">
|
<button mat-button (click)="backToDomain()">
|
||||||
<mat-icon aria-label="Login">keyboard_arrow_left</mat-icon>
|
<mat-icon aria-label="Login">keyboard_arrow_left</mat-icon>
|
||||||
BACK TO DOMAIN
|
BACK TO DOMAIN
|
||||||
@ -36,7 +36,7 @@
|
|||||||
REVIEW CHANGES
|
REVIEW CHANGES
|
||||||
<mat-icon aria-label="Login">keyboard_arrow_right</mat-icon>
|
<mat-icon aria-label="Login">keyboard_arrow_right</mat-icon>
|
||||||
</button>
|
</button>
|
||||||
</cc-actions>
|
</v-actions>
|
||||||
</div>
|
</div>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
</div>
|
</div>
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
></cc-thrift-viewer>
|
></cc-thrift-viewer>
|
||||||
</mat-card-content>
|
</mat-card-content>
|
||||||
</mat-card>
|
</mat-card>
|
||||||
<cc-actions>
|
<v-actions>
|
||||||
<button [disabled]="!!(progress$ | async)" mat-button (click)="back()">
|
<button [disabled]="!!(progress$ | async)" mat-button (click)="back()">
|
||||||
<mat-icon>keyboard_arrow_left</mat-icon>
|
<mat-icon>keyboard_arrow_left</mat-icon>
|
||||||
BACK TO EDIT
|
BACK TO EDIT
|
||||||
@ -28,7 +28,7 @@
|
|||||||
>
|
>
|
||||||
COMMIT
|
COMMIT
|
||||||
</button>
|
</button>
|
||||||
</cc-actions>
|
</v-actions>
|
||||||
</div>
|
</div>
|
||||||
</ng-template>
|
</ng-template>
|
||||||
</div>
|
</div>
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
<cc-base-dialog title="Create chargeback">
|
<v-dialog title="Create chargeback">
|
||||||
<cc-metadata-form
|
<cc-metadata-form
|
||||||
[extensions]="extensions$ | async"
|
[extensions]="extensions$ | async"
|
||||||
[formControl]="form"
|
[formControl]="form"
|
||||||
@ -7,9 +7,9 @@
|
|||||||
type="InvoicePaymentChargebackParams"
|
type="InvoicePaymentChargebackParams"
|
||||||
></cc-metadata-form>
|
></cc-metadata-form>
|
||||||
|
|
||||||
<cc-base-dialog-actions>
|
<v-dialog-actions>
|
||||||
<button [disabled]="form.invalid" color="primary" mat-raised-button (click)="create()">
|
<button [disabled]="form.invalid" color="primary" mat-raised-button (click)="create()">
|
||||||
CREATE
|
CREATE
|
||||||
</button>
|
</button>
|
||||||
</cc-base-dialog-actions>
|
</v-dialog-actions>
|
||||||
</cc-base-dialog>
|
</v-dialog>
|
||||||
|
@ -3,7 +3,7 @@ import { FormControl } from '@angular/forms';
|
|||||||
import { untilDestroyed, UntilDestroy } from '@ngneat/until-destroy';
|
import { untilDestroyed, UntilDestroy } from '@ngneat/until-destroy';
|
||||||
import { InvoicePaymentChargeback } from '@vality/domain-proto/domain';
|
import { InvoicePaymentChargeback } from '@vality/domain-proto/domain';
|
||||||
import { InvoicePaymentChargebackParams } from '@vality/domain-proto/payment_processing';
|
import { InvoicePaymentChargebackParams } from '@vality/domain-proto/payment_processing';
|
||||||
import { BaseDialogSuperclass } from '@vality/ng-core';
|
import { DialogSuperclass } from '@vality/ng-core';
|
||||||
import { from } from 'rxjs';
|
import { from } from 'rxjs';
|
||||||
import * as short from 'short-uuid';
|
import * as short from 'short-uuid';
|
||||||
|
|
||||||
@ -17,7 +17,7 @@ import { NotificationErrorService } from '@cc/app/shared/services/notification-e
|
|||||||
selector: 'cc-create-chargeback-dialog',
|
selector: 'cc-create-chargeback-dialog',
|
||||||
templateUrl: './create-chargeback-dialog.component.html',
|
templateUrl: './create-chargeback-dialog.component.html',
|
||||||
})
|
})
|
||||||
export class CreateChargebackDialogComponent extends BaseDialogSuperclass<
|
export class CreateChargebackDialogComponent extends DialogSuperclass<
|
||||||
CreateChargebackDialogComponent,
|
CreateChargebackDialogComponent,
|
||||||
{ invoiceID: string; paymentID: string },
|
{ invoiceID: string; paymentID: string },
|
||||||
InvoicePaymentChargeback
|
InvoicePaymentChargeback
|
||||||
|
@ -23,11 +23,11 @@
|
|||||||
|
|
||||||
<div fxLayout fxLayoutAlign="space-between">
|
<div fxLayout fxLayoutAlign="space-between">
|
||||||
<h2 class="cc-headline">Chargebacks</h2>
|
<h2 class="cc-headline">Chargebacks</h2>
|
||||||
<cc-actions>
|
<v-actions>
|
||||||
<button color="primary" mat-button (click)="createChargeback()">
|
<button color="primary" mat-button (click)="createChargeback()">
|
||||||
CREATE CHARGEBACK
|
CREATE CHARGEBACK
|
||||||
</button>
|
</button>
|
||||||
</cc-actions>
|
</v-actions>
|
||||||
</div>
|
</div>
|
||||||
<mat-card>
|
<mat-card>
|
||||||
<cc-chargebacks
|
<cc-chargebacks
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
||||||
import { ActivatedRoute } from '@angular/router';
|
import { ActivatedRoute } from '@angular/router';
|
||||||
import { untilDestroyed, UntilDestroy } from '@ngneat/until-destroy';
|
import { untilDestroyed, UntilDestroy } from '@ngneat/until-destroy';
|
||||||
import { BaseDialogService, BaseDialogResponseStatus } from '@vality/ng-core';
|
import { DialogService, DialogResponseStatus } from '@vality/ng-core';
|
||||||
import { Subject, merge, defer } from 'rxjs';
|
import { Subject, merge, defer } from 'rxjs';
|
||||||
import { pluck, shareReplay, switchMap, map } from 'rxjs/operators';
|
import { pluck, shareReplay, switchMap, map } from 'rxjs/operators';
|
||||||
|
|
||||||
@ -39,11 +39,11 @@ export class PaymentDetailsComponent {
|
|||||||
private paymentDetailsService: PaymentDetailsService,
|
private paymentDetailsService: PaymentDetailsService,
|
||||||
private route: ActivatedRoute,
|
private route: ActivatedRoute,
|
||||||
private invoicingService: InvoicingService,
|
private invoicingService: InvoicingService,
|
||||||
private baseDialogService: BaseDialogService
|
private dialogService: DialogService
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
createChargeback() {
|
createChargeback() {
|
||||||
this.baseDialogService
|
this.dialogService
|
||||||
.open(
|
.open(
|
||||||
CreateChargebackDialogComponent,
|
CreateChargebackDialogComponent,
|
||||||
this.route.snapshot.params as Record<'invoiceID' | 'paymentID', string>
|
this.route.snapshot.params as Record<'invoiceID' | 'paymentID', string>
|
||||||
@ -51,7 +51,7 @@ export class PaymentDetailsComponent {
|
|||||||
.afterClosed()
|
.afterClosed()
|
||||||
.pipe(untilDestroyed(this))
|
.pipe(untilDestroyed(this))
|
||||||
.subscribe(({ status }) => {
|
.subscribe(({ status }) => {
|
||||||
if (status === BaseDialogResponseStatus.Success) this.updateChargebacks$.next();
|
if (status === DialogResponseStatus.Success) this.updateChargebacks$.next();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -6,7 +6,7 @@ import { MatButtonModule } from '@angular/material/button';
|
|||||||
import { MatCardModule } from '@angular/material/card';
|
import { MatCardModule } from '@angular/material/card';
|
||||||
import { MatDialogModule } from '@angular/material/dialog';
|
import { MatDialogModule } from '@angular/material/dialog';
|
||||||
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
|
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
|
||||||
import { ActionsModule, BaseDialogModule } from '@vality/ng-core';
|
import { ActionsModule, DialogModule } from '@vality/ng-core';
|
||||||
|
|
||||||
import { StatusModule } from '@cc/app/shared/components';
|
import { StatusModule } from '@cc/app/shared/components';
|
||||||
import { DetailsItemModule } from '@cc/components/details-item';
|
import { DetailsItemModule } from '@cc/components/details-item';
|
||||||
@ -38,7 +38,7 @@ import { PaymentRefundsModule } from './payment-refunds';
|
|||||||
PaymentRefundsModule,
|
PaymentRefundsModule,
|
||||||
ChargebacksComponent,
|
ChargebacksComponent,
|
||||||
ActionsModule,
|
ActionsModule,
|
||||||
BaseDialogModule,
|
DialogModule,
|
||||||
MetadataFormModule,
|
MetadataFormModule,
|
||||||
ReactiveFormsModule,
|
ReactiveFormsModule,
|
||||||
],
|
],
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import { Component, Injector } from '@angular/core';
|
import { Component, Injector } from '@angular/core';
|
||||||
import { FormControl } from '@angular/forms';
|
import { FormControl } from '@angular/forms';
|
||||||
import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
|
import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
|
||||||
import { BaseDialogResponseStatus, BaseDialogSuperclass } from '@vality/ng-core';
|
import { DialogResponseStatus, DialogSuperclass } from '@vality/ng-core';
|
||||||
import { PayoutID } from '@vality/payout-manager-proto/payout_manager';
|
import { PayoutID } from '@vality/payout-manager-proto/payout_manager';
|
||||||
import { BehaviorSubject } from 'rxjs';
|
import { BehaviorSubject } from 'rxjs';
|
||||||
|
|
||||||
@ -16,7 +16,7 @@ import { NotificationErrorService } from '../../../../../shared/services/notific
|
|||||||
selector: 'cc-cancel-payout-dialog',
|
selector: 'cc-cancel-payout-dialog',
|
||||||
templateUrl: './cancel-payout-dialog.component.html',
|
templateUrl: './cancel-payout-dialog.component.html',
|
||||||
})
|
})
|
||||||
export class CancelPayoutDialogComponent extends BaseDialogSuperclass<
|
export class CancelPayoutDialogComponent extends DialogSuperclass<
|
||||||
CancelPayoutDialogComponent,
|
CancelPayoutDialogComponent,
|
||||||
{ id: PayoutID }
|
{ id: PayoutID }
|
||||||
> {
|
> {
|
||||||
@ -38,7 +38,7 @@ export class CancelPayoutDialogComponent extends BaseDialogSuperclass<
|
|||||||
.pipe(progressTo(this.progress$), untilDestroyed(this))
|
.pipe(progressTo(this.progress$), untilDestroyed(this))
|
||||||
.subscribe({
|
.subscribe({
|
||||||
next: () => {
|
next: () => {
|
||||||
this.dialogRef.close({ status: BaseDialogResponseStatus.Success });
|
this.dialogRef.close({ status: DialogResponseStatus.Success });
|
||||||
this.notificationService.success('Payout canceled successfully');
|
this.notificationService.success('Payout canceled successfully');
|
||||||
},
|
},
|
||||||
error: this.notificationErrorService.error,
|
error: this.notificationErrorService.error,
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
<cc-base-dialog [inProgress]="!!(progress$ | async)" title="Create payout">
|
<v-dialog [inProgress]="!!(progress$ | async)" title="Create payout">
|
||||||
<div [formGroup]="control" gdColumns="1fr" gdGap="16px">
|
<div [formGroup]="control" gdColumns="1fr" gdGap="16px">
|
||||||
<cc-merchant-field formControlName="partyId" required></cc-merchant-field>
|
<cc-merchant-field formControlName="partyId" required></cc-merchant-field>
|
||||||
<cc-shop-field
|
<cc-shop-field
|
||||||
@ -32,7 +32,7 @@
|
|||||||
formControlName="payoutToolId"
|
formControlName="payoutToolId"
|
||||||
></cc-payout-tool-field>
|
></cc-payout-tool-field>
|
||||||
</div>
|
</div>
|
||||||
<cc-base-dialog-actions>
|
<v-dialog-actions>
|
||||||
<button
|
<button
|
||||||
[disabled]="control.invalid || !!(progress$ | async)"
|
[disabled]="control.invalid || !!(progress$ | async)"
|
||||||
color="primary"
|
color="primary"
|
||||||
@ -41,5 +41,5 @@
|
|||||||
>
|
>
|
||||||
CREATE
|
CREATE
|
||||||
</button>
|
</button>
|
||||||
</cc-base-dialog-actions>
|
</v-dialog-actions>
|
||||||
</cc-base-dialog>
|
</v-dialog>
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import { ChangeDetectionStrategy, Component, Injector } from '@angular/core';
|
import { ChangeDetectionStrategy, Component, Injector } from '@angular/core';
|
||||||
import { FormBuilder } from '@angular/forms';
|
import { FormBuilder } from '@angular/forms';
|
||||||
import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
|
import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
|
||||||
import { BaseDialogResponseStatus, BaseDialogSuperclass } from '@vality/ng-core';
|
import { DialogResponseStatus, DialogSuperclass } from '@vality/ng-core';
|
||||||
import { PayoutParams } from '@vality/payout-manager-proto/payout_manager';
|
import { PayoutParams } from '@vality/payout-manager-proto/payout_manager';
|
||||||
import isNil from 'lodash-es/isNil';
|
import isNil from 'lodash-es/isNil';
|
||||||
import omitBy from 'lodash-es/omitBy';
|
import omitBy from 'lodash-es/omitBy';
|
||||||
@ -28,7 +28,7 @@ interface CreatePayoutDialogForm {
|
|||||||
templateUrl: './create-payout-dialog.component.html',
|
templateUrl: './create-payout-dialog.component.html',
|
||||||
changeDetection: ChangeDetectionStrategy.OnPush,
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
||||||
})
|
})
|
||||||
export class CreatePayoutDialogComponent extends BaseDialogSuperclass<CreatePayoutDialogComponent> {
|
export class CreatePayoutDialogComponent extends DialogSuperclass<CreatePayoutDialogComponent> {
|
||||||
progress$ = new BehaviorSubject(0);
|
progress$ = new BehaviorSubject(0);
|
||||||
control = this.fb.group<CreatePayoutDialogForm>({
|
control = this.fb.group<CreatePayoutDialogForm>({
|
||||||
partyId: null,
|
partyId: null,
|
||||||
@ -71,7 +71,7 @@ export class CreatePayoutDialogComponent extends BaseDialogSuperclass<CreatePayo
|
|||||||
.subscribe({
|
.subscribe({
|
||||||
next: () => {
|
next: () => {
|
||||||
this.notificationService.success('Payout created successfully');
|
this.notificationService.success('Payout created successfully');
|
||||||
this.dialogRef.close({ status: BaseDialogResponseStatus.Success });
|
this.dialogRef.close({ status: DialogResponseStatus.Success });
|
||||||
},
|
},
|
||||||
error: this.notificationErrorService.error,
|
error: this.notificationErrorService.error,
|
||||||
});
|
});
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
<div fxLayout="column" fxLayoutGap="24px">
|
<div fxLayout="column" fxLayoutGap="24px">
|
||||||
<div fxLayout="row" fxLayoutAlign="space-between">
|
<div fxLayout="row" fxLayoutAlign="space-between">
|
||||||
<h1 class="cc-display-1">Payouts</h1>
|
<h1 class="cc-display-1">Payouts</h1>
|
||||||
<cc-actions>
|
<v-actions>
|
||||||
<button color="primary" mat-raised-button (click)="create()">CREATE</button>
|
<button color="primary" mat-raised-button (click)="create()">CREATE</button>
|
||||||
</cc-actions>
|
</v-actions>
|
||||||
</div>
|
</div>
|
||||||
<mat-card>
|
<mat-card>
|
||||||
<mat-card-content>
|
<mat-card-content>
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import { Component, OnInit } from '@angular/core';
|
import { Component, OnInit } from '@angular/core';
|
||||||
import { FormControl } from '@angular/forms';
|
import { FormControl } from '@angular/forms';
|
||||||
import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
|
import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
|
||||||
import { BaseDialogService } from '@vality/ng-core';
|
import { DialogService } from '@vality/ng-core';
|
||||||
import omitBy from 'lodash-es/omitBy';
|
import omitBy from 'lodash-es/omitBy';
|
||||||
import * as moment from 'moment/moment';
|
import * as moment from 'moment/moment';
|
||||||
|
|
||||||
@ -33,7 +33,7 @@ export class PayoutsComponent implements OnInit {
|
|||||||
constructor(
|
constructor(
|
||||||
private fetchPayoutsService: FetchPayoutsService,
|
private fetchPayoutsService: FetchPayoutsService,
|
||||||
private qp: QueryParamsService<Partial<PayoutsSearchForm>>,
|
private qp: QueryParamsService<Partial<PayoutsSearchForm>>,
|
||||||
private baseDialogService: BaseDialogService
|
private dialogService: DialogService
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
ngOnInit() {
|
ngOnInit() {
|
||||||
@ -70,6 +70,6 @@ export class PayoutsComponent implements OnInit {
|
|||||||
}
|
}
|
||||||
|
|
||||||
create() {
|
create() {
|
||||||
this.baseDialogService.open(CreatePayoutDialogComponent);
|
this.dialogService.open(CreatePayoutDialogComponent);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -13,7 +13,7 @@ import { MatMenuModule } from '@angular/material/menu';
|
|||||||
import { MatProgressBarModule } from '@angular/material/progress-bar';
|
import { MatProgressBarModule } from '@angular/material/progress-bar';
|
||||||
import { MatSelectModule } from '@angular/material/select';
|
import { MatSelectModule } from '@angular/material/select';
|
||||||
import { MatTableModule } from '@angular/material/table';
|
import { MatTableModule } from '@angular/material/table';
|
||||||
import { BaseDialogModule, ActionsModule } from '@vality/ng-core';
|
import { DialogModule, ActionsModule } from '@vality/ng-core';
|
||||||
|
|
||||||
import { PayoutToolFieldModule, ShopFieldModule, StatusModule } from '@cc/app/shared/components';
|
import { PayoutToolFieldModule, ShopFieldModule, StatusModule } from '@cc/app/shared/components';
|
||||||
import { MerchantFieldModule } from '@cc/app/shared/components/merchant-field';
|
import { MerchantFieldModule } from '@cc/app/shared/components/merchant-field';
|
||||||
@ -61,7 +61,7 @@ import { PayoutsComponent } from './payouts.component';
|
|||||||
MatDialogModule,
|
MatDialogModule,
|
||||||
ShopFieldModule,
|
ShopFieldModule,
|
||||||
PayoutToolFieldModule,
|
PayoutToolFieldModule,
|
||||||
BaseDialogModule,
|
DialogModule,
|
||||||
ActionsModule,
|
ActionsModule,
|
||||||
DateRangeModule,
|
DateRangeModule,
|
||||||
],
|
],
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import { Injectable } from '@angular/core';
|
import { Injectable } from '@angular/core';
|
||||||
import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
|
import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
|
||||||
import { PayoutID, PayoutStatus } from '@vality/magista-proto/magista';
|
import { PayoutID, PayoutStatus } from '@vality/magista-proto/magista';
|
||||||
import { BaseDialogResponseStatus, BaseDialogService } from '@vality/ng-core';
|
import { DialogResponseStatus, DialogService } from '@vality/ng-core';
|
||||||
import { switchMap } from 'rxjs';
|
import { switchMap } from 'rxjs';
|
||||||
import { filter } from 'rxjs/operators';
|
import { filter } from 'rxjs/operators';
|
||||||
|
|
||||||
@ -16,7 +16,7 @@ import { CancelPayoutDialogComponent } from '../payouts/components/cancel-payout
|
|||||||
export class PayoutActionsService {
|
export class PayoutActionsService {
|
||||||
constructor(
|
constructor(
|
||||||
private payoutManagementService: PayoutManagementService,
|
private payoutManagementService: PayoutManagementService,
|
||||||
private baseDialogService: BaseDialogService,
|
private dialogService: DialogService,
|
||||||
private notificationErrorService: NotificationErrorService
|
private notificationErrorService: NotificationErrorService
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
@ -29,15 +29,15 @@ export class PayoutActionsService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
cancel(id: PayoutID) {
|
cancel(id: PayoutID) {
|
||||||
this.baseDialogService.open(CancelPayoutDialogComponent, { id });
|
this.dialogService.open(CancelPayoutDialogComponent, { id });
|
||||||
}
|
}
|
||||||
|
|
||||||
confirm(id: PayoutID) {
|
confirm(id: PayoutID) {
|
||||||
this.baseDialogService
|
this.dialogService
|
||||||
.open(ConfirmActionDialogComponent, { title: 'Confirm payout' })
|
.open(ConfirmActionDialogComponent, { title: 'Confirm payout' })
|
||||||
.afterClosed()
|
.afterClosed()
|
||||||
.pipe(
|
.pipe(
|
||||||
filter(({ status }) => status === BaseDialogResponseStatus.Success),
|
filter(({ status }) => status === DialogResponseStatus.Success),
|
||||||
switchMap(() => this.payoutManagementService.ConfirmPayout(id)),
|
switchMap(() => this.payoutManagementService.ConfirmPayout(id)),
|
||||||
untilDestroyed(this)
|
untilDestroyed(this)
|
||||||
)
|
)
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
<cc-base-dialog gdColumn="1fr" title="Repair by scenario">
|
<v-dialog gdColumn="1fr" title="Repair by scenario">
|
||||||
<div gdGap="16px">
|
<div gdGap="16px">
|
||||||
<mat-form-field>
|
<mat-form-field>
|
||||||
<mat-label>Type</mat-label>
|
<mat-label>Type</mat-label>
|
||||||
@ -55,7 +55,7 @@
|
|||||||
|
|
||||||
<mat-progress-bar *ngIf="progress$ | async"></mat-progress-bar>
|
<mat-progress-bar *ngIf="progress$ | async"></mat-progress-bar>
|
||||||
</div>
|
</div>
|
||||||
<cc-base-dialog-actions>
|
<v-dialog-actions>
|
||||||
<button
|
<button
|
||||||
[disabled]="
|
[disabled]="
|
||||||
typeControl.invalid ||
|
typeControl.invalid ||
|
||||||
@ -68,5 +68,5 @@
|
|||||||
>
|
>
|
||||||
REPAIR
|
REPAIR
|
||||||
</button>
|
</button>
|
||||||
</cc-base-dialog-actions>
|
</v-dialog-actions>
|
||||||
</cc-base-dialog>
|
</v-dialog>
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import { Component, Injector, OnInit } from '@angular/core';
|
import { Component, Injector, OnInit } from '@angular/core';
|
||||||
import { Validators, FormControl } from '@angular/forms';
|
import { Validators, FormControl } from '@angular/forms';
|
||||||
import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
|
import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
|
||||||
import { BaseDialogResponseStatus, BaseDialogSuperclass } from '@vality/ng-core';
|
import { DialogResponseStatus, DialogSuperclass } from '@vality/ng-core';
|
||||||
import {
|
import {
|
||||||
RepairInvoicesRequest,
|
RepairInvoicesRequest,
|
||||||
RepairWithdrawalsRequest,
|
RepairWithdrawalsRequest,
|
||||||
@ -32,7 +32,7 @@ enum Namespace {
|
|||||||
templateUrl: './repair-by-scenario-dialog.component.html',
|
templateUrl: './repair-by-scenario-dialog.component.html',
|
||||||
})
|
})
|
||||||
export class RepairByScenarioDialogComponent
|
export class RepairByScenarioDialogComponent
|
||||||
extends BaseDialogSuperclass<RepairByScenarioDialogComponent, { machines: Machine[] }>
|
extends DialogSuperclass<RepairByScenarioDialogComponent, { machines: Machine[] }>
|
||||||
implements OnInit
|
implements OnInit
|
||||||
{
|
{
|
||||||
nsControl = new FormControl<Namespace>(null, Validators.required);
|
nsControl = new FormControl<Namespace>(null, Validators.required);
|
||||||
@ -89,7 +89,7 @@ export class RepairByScenarioDialogComponent
|
|||||||
.subscribe({
|
.subscribe({
|
||||||
next: () => {
|
next: () => {
|
||||||
this.notificationService.success();
|
this.notificationService.success();
|
||||||
this.dialogRef.close({ status: BaseDialogResponseStatus.Success });
|
this.dialogRef.close({ status: DialogResponseStatus.Success });
|
||||||
},
|
},
|
||||||
error: this.notificationErrorService.error,
|
error: this.notificationErrorService.error,
|
||||||
});
|
});
|
||||||
|
@ -2,7 +2,7 @@ import { Component, OnInit, TemplateRef } from '@angular/core';
|
|||||||
import { FormBuilder } from '@angular/forms';
|
import { FormBuilder } from '@angular/forms';
|
||||||
import { DateRange } from '@angular/material/datepicker';
|
import { DateRange } from '@angular/material/datepicker';
|
||||||
import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
|
import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
|
||||||
import { BaseDialogResponseStatus, BaseDialogService, clean, splitIds } from '@vality/ng-core';
|
import { DialogResponseStatus, DialogService, clean, splitIds } from '@vality/ng-core';
|
||||||
import { repairer } from '@vality/repairer-proto';
|
import { repairer } from '@vality/repairer-proto';
|
||||||
import { Namespace, ProviderID, RepairStatus, Machine } from '@vality/repairer-proto/repairer';
|
import { Namespace, ProviderID, RepairStatus, Machine } from '@vality/repairer-proto/repairer';
|
||||||
import isNil from 'lodash-es/isNil';
|
import isNil from 'lodash-es/isNil';
|
||||||
@ -103,7 +103,7 @@ export class RepairingComponent implements OnInit {
|
|||||||
private machinesService: MachinesService,
|
private machinesService: MachinesService,
|
||||||
private fb: FormBuilder,
|
private fb: FormBuilder,
|
||||||
private qp: QueryParamsService<Filters>,
|
private qp: QueryParamsService<Filters>,
|
||||||
private baseDialogService: BaseDialogService,
|
private dialogService: DialogService,
|
||||||
private repairManagementService: RepairManagementService,
|
private repairManagementService: RepairManagementService,
|
||||||
private notificationService: NotificationService,
|
private notificationService: NotificationService,
|
||||||
private notificationErrorService: NotificationErrorService,
|
private notificationErrorService: NotificationErrorService,
|
||||||
@ -150,13 +150,13 @@ export class RepairingComponent implements OnInit {
|
|||||||
}
|
}
|
||||||
|
|
||||||
repair() {
|
repair() {
|
||||||
this.baseDialogService
|
this.dialogService
|
||||||
.open(ConfirmActionDialogComponent, {
|
.open(ConfirmActionDialogComponent, {
|
||||||
title: `Simple repair ${this.selected$.value.length} machines`,
|
title: `Simple repair ${this.selected$.value.length} machines`,
|
||||||
})
|
})
|
||||||
.afterClosed()
|
.afterClosed()
|
||||||
.pipe(
|
.pipe(
|
||||||
filter(({ status }) => status === BaseDialogResponseStatus.Success),
|
filter(({ status }) => status === DialogResponseStatus.Success),
|
||||||
switchMap(() =>
|
switchMap(() =>
|
||||||
this.repairManagementService.SimpleRepairAll(
|
this.repairManagementService.SimpleRepairAll(
|
||||||
this.selected$.value.map(({ id, ns }) => ({ id, ns }))
|
this.selected$.value.map(({ id, ns }) => ({ id, ns }))
|
||||||
@ -173,7 +173,7 @@ export class RepairingComponent implements OnInit {
|
|||||||
}
|
}
|
||||||
|
|
||||||
repairByScenario() {
|
repairByScenario() {
|
||||||
this.baseDialogService
|
this.dialogService
|
||||||
.open(RepairByScenarioDialogComponent, { machines: this.selected$.value })
|
.open(RepairByScenarioDialogComponent, { machines: this.selected$.value })
|
||||||
.afterClosed()
|
.afterClosed()
|
||||||
.pipe(untilDestroyed(this))
|
.pipe(untilDestroyed(this))
|
||||||
|
@ -13,7 +13,7 @@ import { MatRadioModule } from '@angular/material/radio';
|
|||||||
import { MatSelectModule } from '@angular/material/select';
|
import { MatSelectModule } from '@angular/material/select';
|
||||||
import { MatTableModule } from '@angular/material/table';
|
import { MatTableModule } from '@angular/material/table';
|
||||||
import { MatTooltipModule } from '@angular/material/tooltip';
|
import { MatTooltipModule } from '@angular/material/tooltip';
|
||||||
import { ActionsModule, BaseDialogModule } from '@vality/ng-core';
|
import { ActionsModule, DialogModule } from '@vality/ng-core';
|
||||||
|
|
||||||
import { EnumKeyPipe, EnumKeysPipe, DomainObjectFieldComponent } from '@cc/app/shared';
|
import { EnumKeyPipe, EnumKeysPipe, DomainObjectFieldComponent } from '@cc/app/shared';
|
||||||
import { MetadataFormModule } from '@cc/app/shared/components/metadata-form';
|
import { MetadataFormModule } from '@cc/app/shared/components/metadata-form';
|
||||||
@ -45,7 +45,7 @@ import { RepairingComponent } from './repairing.component';
|
|||||||
DateRangeModule,
|
DateRangeModule,
|
||||||
MatSelectModule,
|
MatSelectModule,
|
||||||
ActionsModule,
|
ActionsModule,
|
||||||
BaseDialogModule,
|
DialogModule,
|
||||||
MetadataFormModule,
|
MetadataFormModule,
|
||||||
MatRadioModule,
|
MatRadioModule,
|
||||||
MatChipsModule,
|
MatChipsModule,
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
<cc-base-dialog title="Change Delegate Ruleset">
|
<v-dialog title="Change Delegate Ruleset">
|
||||||
<div [formGroup]="form" fxLayout="column" fxLayoutGap="24px">
|
<div [formGroup]="form" fxLayout="column" fxLayoutGap="24px">
|
||||||
<mat-form-field>
|
<mat-form-field>
|
||||||
<mat-label>Delegate Ruleset</mat-label>
|
<mat-label>Delegate Ruleset</mat-label>
|
||||||
@ -14,9 +14,9 @@
|
|||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<cc-base-dialog-actions>
|
<v-dialog-actions>
|
||||||
<button [disabled]="form.invalid" color="primary" mat-button (click)="changeRuleset()">
|
<button [disabled]="form.invalid" color="primary" mat-button (click)="changeRuleset()">
|
||||||
CHANGE RULESET
|
CHANGE RULESET
|
||||||
</button>
|
</button>
|
||||||
</cc-base-dialog-actions>
|
</v-dialog-actions>
|
||||||
</cc-base-dialog>
|
</v-dialog>
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import { ChangeDetectionStrategy, Component, Injector, OnInit } from '@angular/core';
|
import { ChangeDetectionStrategy, Component, Injector, OnInit } from '@angular/core';
|
||||||
import { UntypedFormBuilder } from '@angular/forms';
|
import { UntypedFormBuilder } from '@angular/forms';
|
||||||
import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
|
import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
|
||||||
import { BaseDialogSuperclass } from '@vality/ng-core';
|
import { DialogSuperclass } from '@vality/ng-core';
|
||||||
import { map } from 'rxjs/operators';
|
import { map } from 'rxjs/operators';
|
||||||
|
|
||||||
import { RoutingRulesService } from '../services/routing-rules';
|
import { RoutingRulesService } from '../services/routing-rules';
|
||||||
@ -13,7 +13,7 @@ import { RoutingRulesService } from '../services/routing-rules';
|
|||||||
changeDetection: ChangeDetectionStrategy.OnPush,
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
||||||
})
|
})
|
||||||
export class ChangeDelegateRulesetDialogComponent
|
export class ChangeDelegateRulesetDialogComponent
|
||||||
extends BaseDialogSuperclass<
|
extends DialogSuperclass<
|
||||||
ChangeDelegateRulesetDialogComponent,
|
ChangeDelegateRulesetDialogComponent,
|
||||||
{ mainRulesetRefID: number; delegateIdx: number }
|
{ mainRulesetRefID: number; delegateIdx: number }
|
||||||
>
|
>
|
||||||
|
@ -5,7 +5,7 @@ import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|||||||
import { MatButtonModule } from '@angular/material/button';
|
import { MatButtonModule } from '@angular/material/button';
|
||||||
import { MatInputModule } from '@angular/material/input';
|
import { MatInputModule } from '@angular/material/input';
|
||||||
import { MatSelectModule } from '@angular/material/select';
|
import { MatSelectModule } from '@angular/material/select';
|
||||||
import { BaseDialogModule } from '@vality/ng-core';
|
import { DialogModule } from '@vality/ng-core';
|
||||||
|
|
||||||
import { ChangeDelegateRulesetDialogComponent } from './change-delegate-ruleset-dialog.component';
|
import { ChangeDelegateRulesetDialogComponent } from './change-delegate-ruleset-dialog.component';
|
||||||
|
|
||||||
@ -18,7 +18,7 @@ import { ChangeDelegateRulesetDialogComponent } from './change-delegate-ruleset-
|
|||||||
MatInputModule,
|
MatInputModule,
|
||||||
MatButtonModule,
|
MatButtonModule,
|
||||||
MatSelectModule,
|
MatSelectModule,
|
||||||
BaseDialogModule,
|
DialogModule,
|
||||||
],
|
],
|
||||||
declarations: [ChangeDelegateRulesetDialogComponent],
|
declarations: [ChangeDelegateRulesetDialogComponent],
|
||||||
exports: [ChangeDelegateRulesetDialogComponent],
|
exports: [ChangeDelegateRulesetDialogComponent],
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
<cc-base-dialog title="Change main ruleset">
|
<v-dialog title="Change main ruleset">
|
||||||
<cc-target-ruleset-form
|
<cc-target-ruleset-form
|
||||||
[type]="dialogData.type"
|
[type]="dialogData.type"
|
||||||
[value]="initValue"
|
[value]="initValue"
|
||||||
@ -6,7 +6,7 @@
|
|||||||
(valueChanges)="targetRuleset$.next($event)"
|
(valueChanges)="targetRuleset$.next($event)"
|
||||||
></cc-target-ruleset-form>
|
></cc-target-ruleset-form>
|
||||||
|
|
||||||
<cc-base-dialog-actions>
|
<v-dialog-actions>
|
||||||
<button
|
<button
|
||||||
[disabled]="!(targetRulesetValid$ | async)"
|
[disabled]="!(targetRulesetValid$ | async)"
|
||||||
color="primary"
|
color="primary"
|
||||||
@ -15,5 +15,5 @@
|
|||||||
>
|
>
|
||||||
CHANGE TARGET
|
CHANGE TARGET
|
||||||
</button>
|
</button>
|
||||||
</cc-base-dialog-actions>
|
</v-dialog-actions>
|
||||||
</cc-base-dialog>
|
</v-dialog>
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import { ChangeDetectionStrategy, Component, Injector } from '@angular/core';
|
import { ChangeDetectionStrategy, Component, Injector } from '@angular/core';
|
||||||
import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
|
import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
|
||||||
import { BaseDialogSuperclass } from '@vality/ng-core';
|
import { DialogSuperclass } from '@vality/ng-core';
|
||||||
import { BehaviorSubject } from 'rxjs';
|
import { BehaviorSubject } from 'rxjs';
|
||||||
|
|
||||||
import { NotificationErrorService } from '@cc/app/shared/services/notification-error';
|
import { NotificationErrorService } from '@cc/app/shared/services/notification-error';
|
||||||
@ -14,7 +14,7 @@ import { RoutingRulesType } from '../types/routing-rules-type';
|
|||||||
templateUrl: 'change-target-dialog.component.html',
|
templateUrl: 'change-target-dialog.component.html',
|
||||||
changeDetection: ChangeDetectionStrategy.OnPush,
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
||||||
})
|
})
|
||||||
export class ChangeTargetDialogComponent extends BaseDialogSuperclass<
|
export class ChangeTargetDialogComponent extends DialogSuperclass<
|
||||||
ChangeTargetDialogComponent,
|
ChangeTargetDialogComponent,
|
||||||
{ mainRulesetRefID: number; delegateIdx: number; type: RoutingRulesType }
|
{ mainRulesetRefID: number; delegateIdx: number; type: RoutingRulesType }
|
||||||
> {
|
> {
|
||||||
|
@ -3,7 +3,7 @@ import { NgModule } from '@angular/core';
|
|||||||
import { FlexLayoutModule } from '@angular/flex-layout';
|
import { FlexLayoutModule } from '@angular/flex-layout';
|
||||||
import { MatButtonModule } from '@angular/material/button';
|
import { MatButtonModule } from '@angular/material/button';
|
||||||
import { MatDialogModule } from '@angular/material/dialog';
|
import { MatDialogModule } from '@angular/material/dialog';
|
||||||
import { BaseDialogModule } from '@vality/ng-core';
|
import { DialogModule } from '@vality/ng-core';
|
||||||
|
|
||||||
import { TargetRulesetFormModule } from '../target-ruleset-form';
|
import { TargetRulesetFormModule } from '../target-ruleset-form';
|
||||||
import { ChangeTargetDialogComponent } from './change-target-dialog.component';
|
import { ChangeTargetDialogComponent } from './change-target-dialog.component';
|
||||||
@ -15,7 +15,7 @@ import { ChangeTargetDialogComponent } from './change-target-dialog.component';
|
|||||||
FlexLayoutModule,
|
FlexLayoutModule,
|
||||||
MatDialogModule,
|
MatDialogModule,
|
||||||
MatButtonModule,
|
MatButtonModule,
|
||||||
BaseDialogModule,
|
DialogModule,
|
||||||
],
|
],
|
||||||
declarations: [ChangeTargetDialogComponent],
|
declarations: [ChangeTargetDialogComponent],
|
||||||
exports: [ChangeTargetDialogComponent],
|
exports: [ChangeTargetDialogComponent],
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
<cc-base-dialog title="Attach party delegate ruleset">
|
<v-dialog title="Attach party delegate ruleset">
|
||||||
<div [formGroup]="form" fxLayout="column" fxLayoutGap="24px">
|
<div [formGroup]="form" fxLayout="column" fxLayoutGap="24px">
|
||||||
<cc-target-ruleset-form
|
<cc-target-ruleset-form
|
||||||
[type]="dialogData.type"
|
[type]="dialogData.type"
|
||||||
@ -24,7 +24,7 @@
|
|||||||
</ng-container>
|
</ng-container>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<cc-base-dialog-actions>
|
<v-dialog-actions>
|
||||||
<button
|
<button
|
||||||
[disabled]="form.invalid || !(targetRulesetValid$ | async)"
|
[disabled]="form.invalid || !(targetRulesetValid$ | async)"
|
||||||
color="primary"
|
color="primary"
|
||||||
@ -33,5 +33,5 @@
|
|||||||
>
|
>
|
||||||
ATTACH
|
ATTACH
|
||||||
</button>
|
</button>
|
||||||
</cc-base-dialog-actions>
|
</v-dialog-actions>
|
||||||
</cc-base-dialog>
|
</v-dialog>
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import { ChangeDetectionStrategy, Component, Injector } from '@angular/core';
|
import { ChangeDetectionStrategy, Component, Injector } from '@angular/core';
|
||||||
import { UntypedFormBuilder } from '@angular/forms';
|
import { UntypedFormBuilder } from '@angular/forms';
|
||||||
import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
|
import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
|
||||||
import { BaseDialogSuperclass } from '@vality/ng-core';
|
import { DialogSuperclass } from '@vality/ng-core';
|
||||||
import { BehaviorSubject } from 'rxjs';
|
import { BehaviorSubject } from 'rxjs';
|
||||||
|
|
||||||
import { RoutingRulesType } from '@cc/app/sections/routing-rules/types/routing-rules-type';
|
import { RoutingRulesType } from '@cc/app/sections/routing-rules/types/routing-rules-type';
|
||||||
@ -15,7 +15,7 @@ import { TargetRuleset } from '../../target-ruleset-form';
|
|||||||
templateUrl: 'attach-new-ruleset-dialog.component.html',
|
templateUrl: 'attach-new-ruleset-dialog.component.html',
|
||||||
changeDetection: ChangeDetectionStrategy.OnPush,
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
||||||
})
|
})
|
||||||
export class AttachNewRulesetDialogComponent extends BaseDialogSuperclass<
|
export class AttachNewRulesetDialogComponent extends DialogSuperclass<
|
||||||
AttachNewRulesetDialogComponent,
|
AttachNewRulesetDialogComponent,
|
||||||
{ partyID: string; type: RoutingRulesType }
|
{ partyID: string; type: RoutingRulesType }
|
||||||
> {
|
> {
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
||||||
import { ActivatedRoute, Router } from '@angular/router';
|
import { ActivatedRoute, Router } from '@angular/router';
|
||||||
import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
|
import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
|
||||||
import { BaseDialogService } from '@vality/ng-core';
|
import { DialogService } from '@vality/ng-core';
|
||||||
import { first, map } from 'rxjs/operators';
|
import { first, map } from 'rxjs/operators';
|
||||||
|
|
||||||
import { DomainStoreService } from '@cc/app/api/deprecated-damsel';
|
import { DomainStoreService } from '@cc/app/api/deprecated-damsel';
|
||||||
@ -58,14 +58,14 @@ export class PartyDelegateRulesetsComponent {
|
|||||||
private partyDelegateRulesetsService: PartyDelegateRulesetsService,
|
private partyDelegateRulesetsService: PartyDelegateRulesetsService,
|
||||||
private routingRulesService: RoutingRulesService,
|
private routingRulesService: RoutingRulesService,
|
||||||
private router: Router,
|
private router: Router,
|
||||||
private baseDialogService: BaseDialogService,
|
private dialogService: DialogService,
|
||||||
private domainStoreService: DomainStoreService,
|
private domainStoreService: DomainStoreService,
|
||||||
private notificationErrorService: NotificationErrorService,
|
private notificationErrorService: NotificationErrorService,
|
||||||
private route: ActivatedRoute
|
private route: ActivatedRoute
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
attachNewRuleset() {
|
attachNewRuleset() {
|
||||||
this.baseDialogService
|
this.dialogService
|
||||||
.open(AttachNewRulesetDialogComponent, {
|
.open(AttachNewRulesetDialogComponent, {
|
||||||
partyID: this.partyID,
|
partyID: this.partyID,
|
||||||
type: this.route.snapshot.params.type,
|
type: this.route.snapshot.params.type,
|
||||||
|
@ -14,7 +14,7 @@ import { MatProgressBarModule } from '@angular/material/progress-bar';
|
|||||||
import { MatRadioModule } from '@angular/material/radio';
|
import { MatRadioModule } from '@angular/material/radio';
|
||||||
import { MatSelectModule } from '@angular/material/select';
|
import { MatSelectModule } from '@angular/material/select';
|
||||||
import { RouterModule } from '@angular/router';
|
import { RouterModule } from '@angular/router';
|
||||||
import { BaseDialogModule } from '@vality/ng-core';
|
import { DialogModule } from '@vality/ng-core';
|
||||||
|
|
||||||
import { DetailsItemModule } from '@cc/components/details-item';
|
import { DetailsItemModule } from '@cc/components/details-item';
|
||||||
|
|
||||||
@ -51,7 +51,7 @@ const EXPORTED_DECLARATIONS = [PartyDelegateRulesetsComponent, AttachNewRulesetD
|
|||||||
ChangeTargetDialogModule,
|
ChangeTargetDialogModule,
|
||||||
TargetRulesetFormModule,
|
TargetRulesetFormModule,
|
||||||
RoutingRulesListModule,
|
RoutingRulesListModule,
|
||||||
BaseDialogModule,
|
DialogModule,
|
||||||
],
|
],
|
||||||
declarations: EXPORTED_DECLARATIONS,
|
declarations: EXPORTED_DECLARATIONS,
|
||||||
exports: EXPORTED_DECLARATIONS,
|
exports: EXPORTED_DECLARATIONS,
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
<cc-base-dialog title="Party routing rule params">
|
<v-dialog title="Party routing rule params">
|
||||||
<div [formGroup]="form" fxLayout="column" fxLayoutGap="24px">
|
<div [formGroup]="form" fxLayout="column" fxLayoutGap="24px">
|
||||||
<mat-form-field *ngIf="dialogData.type === 'payment'">
|
<mat-form-field *ngIf="dialogData.type === 'payment'">
|
||||||
<mat-label>Shop</mat-label>
|
<mat-label>Shop</mat-label>
|
||||||
@ -32,7 +32,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<cc-base-dialog-actions>
|
<v-dialog-actions>
|
||||||
<button [disabled]="form.invalid" color="primary" mat-button (click)="add()">ADD</button>
|
<button [disabled]="form.invalid" color="primary" mat-button (click)="add()">ADD</button>
|
||||||
</cc-base-dialog-actions>
|
</v-dialog-actions>
|
||||||
</cc-base-dialog>
|
</v-dialog>
|
||||||
|
@ -3,7 +3,7 @@ import { FormBuilder } from '@angular/forms';
|
|||||||
import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
|
import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
|
||||||
import { Shop } from '@vality/domain-proto/domain';
|
import { Shop } from '@vality/domain-proto/domain';
|
||||||
import { StatWallet } from '@vality/fistful-proto/fistful_stat';
|
import { StatWallet } from '@vality/fistful-proto/fistful_stat';
|
||||||
import { BaseDialogResponseStatus, BaseDialogSuperclass } from '@vality/ng-core';
|
import { DialogResponseStatus, DialogSuperclass } from '@vality/ng-core';
|
||||||
|
|
||||||
import { NotificationErrorService } from '@cc/app/shared/services/notification-error';
|
import { NotificationErrorService } from '@cc/app/shared/services/notification-error';
|
||||||
|
|
||||||
@ -14,7 +14,7 @@ import { RoutingRulesType } from '../../types/routing-rules-type';
|
|||||||
@Component({
|
@Component({
|
||||||
templateUrl: 'add-party-routing-rule-dialog.component.html',
|
templateUrl: 'add-party-routing-rule-dialog.component.html',
|
||||||
})
|
})
|
||||||
export class AddPartyRoutingRuleDialogComponent extends BaseDialogSuperclass<
|
export class AddPartyRoutingRuleDialogComponent extends DialogSuperclass<
|
||||||
AddPartyRoutingRuleDialogComponent,
|
AddPartyRoutingRuleDialogComponent,
|
||||||
{ refID: number; partyID: string; shops: Shop[]; wallets: StatWallet[]; type: RoutingRulesType }
|
{ refID: number; partyID: string; shops: Shop[]; wallets: StatWallet[]; type: RoutingRulesType }
|
||||||
> {
|
> {
|
||||||
@ -54,7 +54,7 @@ export class AddPartyRoutingRuleDialogComponent extends BaseDialogSuperclass<
|
|||||||
)
|
)
|
||||||
.pipe(untilDestroyed(this))
|
.pipe(untilDestroyed(this))
|
||||||
.subscribe({
|
.subscribe({
|
||||||
next: () => this.dialogRef.close({ status: BaseDialogResponseStatus.Success }),
|
next: () => this.dialogRef.close({ status: DialogResponseStatus.Success }),
|
||||||
error: this.notificationErrorService.error,
|
error: this.notificationErrorService.error,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -11,7 +11,7 @@ import { MatIconModule } from '@angular/material/icon';
|
|||||||
import { MatInputModule } from '@angular/material/input';
|
import { MatInputModule } from '@angular/material/input';
|
||||||
import { MatRadioModule } from '@angular/material/radio';
|
import { MatRadioModule } from '@angular/material/radio';
|
||||||
import { MatSelectModule } from '@angular/material/select';
|
import { MatSelectModule } from '@angular/material/select';
|
||||||
import { BaseDialogModule } from '@vality/ng-core';
|
import { DialogModule } from '@vality/ng-core';
|
||||||
|
|
||||||
import { AddPartyRoutingRuleDialogComponent } from './add-party-routing-rule-dialog.component';
|
import { AddPartyRoutingRuleDialogComponent } from './add-party-routing-rule-dialog.component';
|
||||||
|
|
||||||
@ -29,7 +29,7 @@ import { AddPartyRoutingRuleDialogComponent } from './add-party-routing-rule-dia
|
|||||||
MatSelectModule,
|
MatSelectModule,
|
||||||
MatRadioModule,
|
MatRadioModule,
|
||||||
MatAutocompleteModule,
|
MatAutocompleteModule,
|
||||||
BaseDialogModule,
|
DialogModule,
|
||||||
],
|
],
|
||||||
declarations: [AddPartyRoutingRuleDialogComponent],
|
declarations: [AddPartyRoutingRuleDialogComponent],
|
||||||
exports: [AddPartyRoutingRuleDialogComponent],
|
exports: [AddPartyRoutingRuleDialogComponent],
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
<cc-base-dialog title="Routing rules init params">
|
<v-dialog title="Routing rules init params">
|
||||||
<div [formGroup]="form" fxLayout="column" fxLayoutGap="24px">
|
<div [formGroup]="form" fxLayout="column" fxLayoutGap="24px">
|
||||||
<mat-form-field>
|
<mat-form-field>
|
||||||
<input
|
<input
|
||||||
@ -23,7 +23,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<cc-base-dialog-actions>
|
<v-dialog-actions>
|
||||||
<button [disabled]="form.invalid" color="primary" mat-button (click)="init()">INIT</button>
|
<button [disabled]="form.invalid" color="primary" mat-button (click)="init()">INIT</button>
|
||||||
</cc-base-dialog-actions>
|
</v-dialog-actions>
|
||||||
</cc-base-dialog>
|
</v-dialog>
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import { Component, Injector } from '@angular/core';
|
import { Component, Injector } from '@angular/core';
|
||||||
import { UntypedFormBuilder } from '@angular/forms';
|
import { UntypedFormBuilder } from '@angular/forms';
|
||||||
import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
|
import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
|
||||||
import { BaseDialogSuperclass } from '@vality/ng-core';
|
import { DialogSuperclass } from '@vality/ng-core';
|
||||||
|
|
||||||
import { NotificationErrorService } from '../../../../shared/services/notification-error';
|
import { NotificationErrorService } from '../../../../shared/services/notification-error';
|
||||||
import { RoutingRulesService } from '../../services/routing-rules';
|
import { RoutingRulesService } from '../../services/routing-rules';
|
||||||
@ -11,7 +11,7 @@ import { RoutingRulesService } from '../../services/routing-rules';
|
|||||||
selector: 'cc-initialize-routing-rules-dialog',
|
selector: 'cc-initialize-routing-rules-dialog',
|
||||||
templateUrl: 'initialize-routing-rules-dialog.component.html',
|
templateUrl: 'initialize-routing-rules-dialog.component.html',
|
||||||
})
|
})
|
||||||
export class InitializeRoutingRulesDialogComponent extends BaseDialogSuperclass<
|
export class InitializeRoutingRulesDialogComponent extends DialogSuperclass<
|
||||||
InitializeRoutingRulesDialogComponent,
|
InitializeRoutingRulesDialogComponent,
|
||||||
{ partyID: string; refID: number }
|
{ partyID: string; refID: number }
|
||||||
> {
|
> {
|
||||||
|
@ -11,7 +11,7 @@ import { MatIconModule } from '@angular/material/icon';
|
|||||||
import { MatInputModule } from '@angular/material/input';
|
import { MatInputModule } from '@angular/material/input';
|
||||||
import { MatRadioModule } from '@angular/material/radio';
|
import { MatRadioModule } from '@angular/material/radio';
|
||||||
import { MatSelectModule } from '@angular/material/select';
|
import { MatSelectModule } from '@angular/material/select';
|
||||||
import { BaseDialogModule } from '@vality/ng-core';
|
import { DialogModule } from '@vality/ng-core';
|
||||||
|
|
||||||
import { InitializeRoutingRulesDialogComponent } from './initialize-routing-rules-dialog.component';
|
import { InitializeRoutingRulesDialogComponent } from './initialize-routing-rules-dialog.component';
|
||||||
|
|
||||||
@ -29,7 +29,7 @@ import { InitializeRoutingRulesDialogComponent } from './initialize-routing-rule
|
|||||||
MatSelectModule,
|
MatSelectModule,
|
||||||
MatRadioModule,
|
MatRadioModule,
|
||||||
MatAutocompleteModule,
|
MatAutocompleteModule,
|
||||||
BaseDialogModule,
|
DialogModule,
|
||||||
],
|
],
|
||||||
declarations: [InitializeRoutingRulesDialogComponent],
|
declarations: [InitializeRoutingRulesDialogComponent],
|
||||||
exports: [InitializeRoutingRulesDialogComponent],
|
exports: [InitializeRoutingRulesDialogComponent],
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import { Component } from '@angular/core';
|
import { Component } from '@angular/core';
|
||||||
import { ActivatedRoute, Router } from '@angular/router';
|
import { ActivatedRoute, Router } from '@angular/router';
|
||||||
import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
|
import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
|
||||||
import { BaseDialogService, BaseDialogResponseStatus } from '@vality/ng-core';
|
import { DialogService, DialogResponseStatus } from '@vality/ng-core';
|
||||||
import { combineLatest, Observable } from 'rxjs';
|
import { combineLatest, Observable } from 'rxjs';
|
||||||
import { filter, map, pluck, shareReplay, startWith, switchMap, take } from 'rxjs/operators';
|
import { filter, map, pluck, shareReplay, startWith, switchMap, take } from 'rxjs/operators';
|
||||||
|
|
||||||
@ -89,7 +89,7 @@ export class PartyRoutingRulesetComponent {
|
|||||||
);
|
);
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
private baseDialogService: BaseDialogService,
|
private dialogService: DialogService,
|
||||||
private partyRoutingRulesetService: PartyRoutingRulesetService,
|
private partyRoutingRulesetService: PartyRoutingRulesetService,
|
||||||
private router: Router,
|
private router: Router,
|
||||||
private route: ActivatedRoute,
|
private route: ActivatedRoute,
|
||||||
@ -104,7 +104,7 @@ export class PartyRoutingRulesetComponent {
|
|||||||
.pipe(
|
.pipe(
|
||||||
take(1),
|
take(1),
|
||||||
switchMap(([partyID, refID]) =>
|
switchMap(([partyID, refID]) =>
|
||||||
this.baseDialogService
|
this.dialogService
|
||||||
.open(InitializeRoutingRulesDialogComponent, { partyID, refID })
|
.open(InitializeRoutingRulesDialogComponent, { partyID, refID })
|
||||||
.afterClosed()
|
.afterClosed()
|
||||||
),
|
),
|
||||||
@ -128,7 +128,7 @@ export class PartyRoutingRulesetComponent {
|
|||||||
.pipe(
|
.pipe(
|
||||||
take(1),
|
take(1),
|
||||||
switchMap(([refID, shops, wallets, type, partyID]) =>
|
switchMap(([refID, shops, wallets, type, partyID]) =>
|
||||||
this.baseDialogService
|
this.dialogService
|
||||||
.open(AddPartyRoutingRuleDialogComponent, {
|
.open(AddPartyRoutingRuleDialogComponent, {
|
||||||
refID,
|
refID,
|
||||||
shops,
|
shops,
|
||||||
@ -142,7 +142,7 @@ export class PartyRoutingRulesetComponent {
|
|||||||
)
|
)
|
||||||
.subscribe({
|
.subscribe({
|
||||||
next: (res) => {
|
next: (res) => {
|
||||||
if (res.status === BaseDialogResponseStatus.Success) {
|
if (res.status === DialogResponseStatus.Success) {
|
||||||
this.partyRoutingRulesetService.reload();
|
this.partyRoutingRulesetService.reload();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -10,7 +10,7 @@ import { MatPaginator } from '@angular/material/paginator';
|
|||||||
import { MatTableDataSource } from '@angular/material/table';
|
import { MatTableDataSource } from '@angular/material/table';
|
||||||
import { ActivatedRoute } from '@angular/router';
|
import { ActivatedRoute } from '@angular/router';
|
||||||
import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
|
import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
|
||||||
import { BaseDialogResponseStatus, BaseDialogService } from '@vality/ng-core';
|
import { DialogResponseStatus, DialogService } from '@vality/ng-core';
|
||||||
import { combineLatest, defer, ReplaySubject } from 'rxjs';
|
import { combineLatest, defer, ReplaySubject } from 'rxjs';
|
||||||
import { filter, map, shareReplay, startWith, switchMap } from 'rxjs/operators';
|
import { filter, map, shareReplay, startWith, switchMap } from 'rxjs/operators';
|
||||||
|
|
||||||
@ -76,14 +76,14 @@ export class RoutingRulesListComponent<T extends { [N in PropertyKey]: any } & D
|
|||||||
private paginator$ = new ReplaySubject<MatPaginator>(1);
|
private paginator$ = new ReplaySubject<MatPaginator>(1);
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
private baseDialogService: BaseDialogService,
|
private dialogService: DialogService,
|
||||||
private notificationErrorService: NotificationErrorService,
|
private notificationErrorService: NotificationErrorService,
|
||||||
private routingRulesService: RoutingRulesService,
|
private routingRulesService: RoutingRulesService,
|
||||||
private route: ActivatedRoute
|
private route: ActivatedRoute
|
||||||
) {}
|
) {}
|
||||||
|
|
||||||
changeDelegateRuleset(delegateId: DelegateId) {
|
changeDelegateRuleset(delegateId: DelegateId) {
|
||||||
this.baseDialogService
|
this.dialogService
|
||||||
.open(ChangeDelegateRulesetDialogComponent, {
|
.open(ChangeDelegateRulesetDialogComponent, {
|
||||||
mainRulesetRefID: delegateId.parentRefId,
|
mainRulesetRefID: delegateId.parentRefId,
|
||||||
delegateIdx: delegateId.delegateIdx,
|
delegateIdx: delegateId.delegateIdx,
|
||||||
@ -94,7 +94,7 @@ export class RoutingRulesListComponent<T extends { [N in PropertyKey]: any } & D
|
|||||||
}
|
}
|
||||||
|
|
||||||
changeTarget(delegateId: DelegateId) {
|
changeTarget(delegateId: DelegateId) {
|
||||||
this.baseDialogService
|
this.dialogService
|
||||||
.open(ChangeTargetDialogComponent, {
|
.open(ChangeTargetDialogComponent, {
|
||||||
mainRulesetRefID: delegateId.parentRefId,
|
mainRulesetRefID: delegateId.parentRefId,
|
||||||
delegateIdx: delegateId.delegateIdx,
|
delegateIdx: delegateId.delegateIdx,
|
||||||
@ -106,11 +106,11 @@ export class RoutingRulesListComponent<T extends { [N in PropertyKey]: any } & D
|
|||||||
}
|
}
|
||||||
|
|
||||||
cloneDelegateRuleset(delegateId: DelegateId) {
|
cloneDelegateRuleset(delegateId: DelegateId) {
|
||||||
this.baseDialogService
|
this.dialogService
|
||||||
.open(ConfirmActionDialogComponent, { title: 'Clone delegate ruleset' })
|
.open(ConfirmActionDialogComponent, { title: 'Clone delegate ruleset' })
|
||||||
.afterClosed()
|
.afterClosed()
|
||||||
.pipe(
|
.pipe(
|
||||||
filter(({ status }) => status === BaseDialogResponseStatus.Success),
|
filter(({ status }) => status === DialogResponseStatus.Success),
|
||||||
switchMap(() =>
|
switchMap(() =>
|
||||||
this.routingRulesService.cloneDelegateRuleset({
|
this.routingRulesService.cloneDelegateRuleset({
|
||||||
mainRulesetRefID: delegateId.parentRefId,
|
mainRulesetRefID: delegateId.parentRefId,
|
||||||
@ -123,11 +123,11 @@ export class RoutingRulesListComponent<T extends { [N in PropertyKey]: any } & D
|
|||||||
}
|
}
|
||||||
|
|
||||||
delete(delegateId: DelegateId) {
|
delete(delegateId: DelegateId) {
|
||||||
this.baseDialogService
|
this.dialogService
|
||||||
.open(ConfirmActionDialogComponent, { title: 'Delete delegate' })
|
.open(ConfirmActionDialogComponent, { title: 'Delete delegate' })
|
||||||
.afterClosed()
|
.afterClosed()
|
||||||
.pipe(
|
.pipe(
|
||||||
filter(({ status }) => status === BaseDialogResponseStatus.Success),
|
filter(({ status }) => status === DialogResponseStatus.Success),
|
||||||
switchMap(() =>
|
switchMap(() =>
|
||||||
this.routingRulesService.deleteDelegate({
|
this.routingRulesService.deleteDelegate({
|
||||||
mainRulesetRefID: delegateId.parentRefId,
|
mainRulesetRefID: delegateId.parentRefId,
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
<cc-base-dialog title="Routing rule params">
|
<v-dialog title="Routing rule params">
|
||||||
<div [formGroup]="form" fxLayout="column" fxLayoutGap="24px">
|
<div [formGroup]="form" fxLayout="column" fxLayoutGap="24px">
|
||||||
<div fxLayout="column" fxLayoutGap="16px">
|
<div fxLayout="column" fxLayoutGap="16px">
|
||||||
<mat-form-field>
|
<mat-form-field>
|
||||||
@ -110,7 +110,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<cc-base-dialog-actions>
|
<v-dialog-actions>
|
||||||
<button
|
<button
|
||||||
[disabled]="form.invalid || predicateControl.invalid"
|
[disabled]="form.invalid || predicateControl.invalid"
|
||||||
color="primary"
|
color="primary"
|
||||||
@ -119,5 +119,5 @@
|
|||||||
>
|
>
|
||||||
ADD
|
ADD
|
||||||
</button>
|
</button>
|
||||||
</cc-base-dialog-actions>
|
</v-dialog-actions>
|
||||||
</cc-base-dialog>
|
</v-dialog>
|
||||||
|
@ -3,7 +3,7 @@ import { Validators, FormBuilder } from '@angular/forms';
|
|||||||
import { UntilDestroy } from '@ngneat/until-destroy';
|
import { UntilDestroy } from '@ngneat/until-destroy';
|
||||||
import { domain } from '@vality/domain-proto';
|
import { domain } from '@vality/domain-proto';
|
||||||
import { Predicate } from '@vality/domain-proto/domain';
|
import { Predicate } from '@vality/domain-proto/domain';
|
||||||
import { BaseDialogSuperclass } from '@vality/ng-core';
|
import { DialogSuperclass } from '@vality/ng-core';
|
||||||
|
|
||||||
import { DomainStoreService } from '@cc/app/api/deprecated-damsel';
|
import { DomainStoreService } from '@cc/app/api/deprecated-damsel';
|
||||||
|
|
||||||
@ -15,7 +15,7 @@ import { AddRoutingRuleDialogService, TerminalType } from './add-routing-rule-di
|
|||||||
styleUrls: ['add-routing-rule-dialog.component.scss'],
|
styleUrls: ['add-routing-rule-dialog.component.scss'],
|
||||||
providers: [AddRoutingRuleDialogService],
|
providers: [AddRoutingRuleDialogService],
|
||||||
})
|
})
|
||||||
export class AddRoutingRuleDialogComponent extends BaseDialogSuperclass<
|
export class AddRoutingRuleDialogComponent extends DialogSuperclass<
|
||||||
AddRoutingRuleDialogComponent,
|
AddRoutingRuleDialogComponent,
|
||||||
{ refID: number }
|
{ refID: number }
|
||||||
> {
|
> {
|
||||||
|
@ -11,7 +11,7 @@ import { MatIconModule } from '@angular/material/icon';
|
|||||||
import { MatInputModule } from '@angular/material/input';
|
import { MatInputModule } from '@angular/material/input';
|
||||||
import { MatRadioModule } from '@angular/material/radio';
|
import { MatRadioModule } from '@angular/material/radio';
|
||||||
import { MatSelectModule } from '@angular/material/select';
|
import { MatSelectModule } from '@angular/material/select';
|
||||||
import { BaseDialogModule } from '@vality/ng-core';
|
import { DialogModule } from '@vality/ng-core';
|
||||||
|
|
||||||
import { MetadataFormModule } from '@cc/app/shared/components/metadata-form';
|
import { MetadataFormModule } from '@cc/app/shared/components/metadata-form';
|
||||||
|
|
||||||
@ -34,7 +34,7 @@ import { PredicateComponent } from './predicate';
|
|||||||
MatRadioModule,
|
MatRadioModule,
|
||||||
MatAutocompleteModule,
|
MatAutocompleteModule,
|
||||||
MetadataFormModule,
|
MetadataFormModule,
|
||||||
BaseDialogModule,
|
DialogModule,
|
||||||
],
|
],
|
||||||
declarations: [AddRoutingRuleDialogComponent, PredicateComponent, ExpanderComponent],
|
declarations: [AddRoutingRuleDialogComponent, PredicateComponent, ExpanderComponent],
|
||||||
exports: [AddRoutingRuleDialogComponent],
|
exports: [AddRoutingRuleDialogComponent],
|
||||||
|
@ -2,7 +2,7 @@ import { Injectable } from '@angular/core';
|
|||||||
import { UntypedFormArray, UntypedFormBuilder, Validators } from '@angular/forms';
|
import { UntypedFormArray, UntypedFormBuilder, Validators } from '@angular/forms';
|
||||||
import { MatDialogRef } from '@angular/material/dialog';
|
import { MatDialogRef } from '@angular/material/dialog';
|
||||||
import { Predicate } from '@vality/domain-proto/domain';
|
import { Predicate } from '@vality/domain-proto/domain';
|
||||||
import { BaseDialogResponseStatus } from '@vality/ng-core';
|
import { DialogResponseStatus } from '@vality/ng-core';
|
||||||
import { of } from 'rxjs';
|
import { of } from 'rxjs';
|
||||||
import { startWith, switchMap, take } from 'rxjs/operators';
|
import { startWith, switchMap, take } from 'rxjs/operators';
|
||||||
|
|
||||||
@ -86,7 +86,7 @@ export class AddRoutingRuleDialogService {
|
|||||||
})
|
})
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
.subscribe(() => this.dialogRef.close({ status: BaseDialogResponseStatus.Success }));
|
.subscribe(() => this.dialogRef.close({ status: DialogResponseStatus.Success }));
|
||||||
}
|
}
|
||||||
|
|
||||||
addOption() {
|
addOption() {
|
||||||
|
@ -2,7 +2,7 @@ import { Component } from '@angular/core';
|
|||||||
import { ActivatedRoute } from '@angular/router';
|
import { ActivatedRoute } from '@angular/router';
|
||||||
import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
|
import { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';
|
||||||
import { Predicate, TerminalObject } from '@vality/domain-proto/domain';
|
import { Predicate, TerminalObject } from '@vality/domain-proto/domain';
|
||||||
import { BaseDialogResponseStatus, BaseDialogService } from '@vality/ng-core';
|
import { DialogResponseStatus, DialogService } from '@vality/ng-core';
|
||||||
import { Observable } from 'rxjs';
|
import { Observable } from 'rxjs';
|
||||||
import { first, map, pluck, shareReplay, switchMap } from 'rxjs/operators';
|
import { first, map, pluck, shareReplay, switchMap } from 'rxjs/operators';
|
||||||
|
|
||||||
@ -43,7 +43,7 @@ export class RoutingRulesetComponent {
|
|||||||
isLoading$ = this.domainStoreService.isLoading$;
|
isLoading$ = this.domainStoreService.isLoading$;
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
private baseDialogService: BaseDialogService,
|
private dialogService: DialogService,
|
||||||
private routingRulesetService: RoutingRulesetService,
|
private routingRulesetService: RoutingRulesetService,
|
||||||
private domainStoreService: DomainStoreService,
|
private domainStoreService: DomainStoreService,
|
||||||
private notificationErrorService: NotificationErrorService,
|
private notificationErrorService: NotificationErrorService,
|
||||||
@ -56,15 +56,13 @@ export class RoutingRulesetComponent {
|
|||||||
.pipe(
|
.pipe(
|
||||||
first(),
|
first(),
|
||||||
switchMap((refID) =>
|
switchMap((refID) =>
|
||||||
this.baseDialogService
|
this.dialogService.open(AddRoutingRuleDialogComponent, { refID }).afterClosed()
|
||||||
.open(AddRoutingRuleDialogComponent, { refID })
|
|
||||||
.afterClosed()
|
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
.pipe(untilDestroyed(this))
|
.pipe(untilDestroyed(this))
|
||||||
.subscribe({
|
.subscribe({
|
||||||
next: (res) => {
|
next: (res) => {
|
||||||
if (res.status === BaseDialogResponseStatus.Success) {
|
if (res.status === DialogResponseStatus.Success) {
|
||||||
this.domainStoreService.forceReload();
|
this.domainStoreService.forceReload();
|
||||||
this.notificationService.success('Routing rule successfully added');
|
this.notificationService.success('Routing rule successfully added');
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<cc-base-dialog title="Create claim">
|
<v-dialog title="Create claim">
|
||||||
<cc-merchant-field [formControl]="control"></cc-merchant-field>
|
<cc-merchant-field [formControl]="control"></cc-merchant-field>
|
||||||
<cc-base-dialog-actions>
|
<v-dialog-actions>
|
||||||
<button
|
<button
|
||||||
[disabled]="control.invalid || !!(progress$ | async)"
|
[disabled]="control.invalid || !!(progress$ | async)"
|
||||||
color="primary"
|
color="primary"
|
||||||
@ -9,5 +9,5 @@
|
|||||||
>
|
>
|
||||||
CREATE
|
CREATE
|
||||||
</button>
|
</button>
|
||||||
</cc-base-dialog-actions>
|
</v-dialog-actions>
|
||||||
</cc-base-dialog>
|
</v-dialog>
|
||||||
|
@ -2,7 +2,7 @@ import { Component, Injector } from '@angular/core';
|
|||||||
import { FormControl, Validators } from '@angular/forms';
|
import { FormControl, Validators } from '@angular/forms';
|
||||||
import { Router } from '@angular/router';
|
import { Router } from '@angular/router';
|
||||||
import { untilDestroyed, UntilDestroy } from '@ngneat/until-destroy';
|
import { untilDestroyed, UntilDestroy } from '@ngneat/until-destroy';
|
||||||
import { BaseDialogSuperclass } from '@vality/ng-core';
|
import { DialogSuperclass } from '@vality/ng-core';
|
||||||
import { BehaviorSubject } from 'rxjs';
|
import { BehaviorSubject } from 'rxjs';
|
||||||
|
|
||||||
import { ClaimManagementService } from '@cc/app/api/claim-management';
|
import { ClaimManagementService } from '@cc/app/api/claim-management';
|
||||||
@ -15,7 +15,7 @@ import { progressTo } from '@cc/utils';
|
|||||||
selector: 'cc-create-claim-dialog',
|
selector: 'cc-create-claim-dialog',
|
||||||
templateUrl: './create-claim-dialog.component.html',
|
templateUrl: './create-claim-dialog.component.html',
|
||||||
})
|
})
|
||||||
export class CreateClaimDialogComponent extends BaseDialogSuperclass<
|
export class CreateClaimDialogComponent extends DialogSuperclass<
|
||||||
CreateClaimDialogComponent,
|
CreateClaimDialogComponent,
|
||||||
{ partyId: string }
|
{ partyId: string }
|
||||||
> {
|
> {
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
<div class="search-claims-container" fxLayout="column" fxLayoutGap="24px">
|
<div class="search-claims-container" fxLayout="column" fxLayoutGap="24px">
|
||||||
<div fxLayout fxLayoutAlign="space-between">
|
<div fxLayout fxLayoutAlign="space-between">
|
||||||
<h1 class="cc-display-1">Claims</h1>
|
<h1 class="cc-display-1">Claims</h1>
|
||||||
<cc-actions>
|
<v-actions>
|
||||||
<button color="primary" mat-raised-button (click)="create()">CREATE</button>
|
<button color="primary" mat-raised-button (click)="create()">CREATE</button>
|
||||||
</cc-actions>
|
</v-actions>
|
||||||
</div>
|
</div>
|
||||||
<div fxLayout="column" fxLayoutGap="24px">
|
<div fxLayout="column" fxLayoutGap="24px">
|
||||||
<mat-card>
|
<mat-card>
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user