mirror of https://github.com/apache/nifi.git
[NIFI-9554] upgrade node and npm
update lintin update font awesome path bump nifi-fds version update nifi deps update frontend maven plugin change CI npm cache restore keys so that we will not use cached directories for older versions of node This closes #5751. Signed-off-by: Kevin Doran <kdoran@apache.org>
This commit is contained in:
parent
f6f50e6b3a
commit
b8ec6d38dc
|
@ -80,9 +80,9 @@ jobs:
|
|||
path: |
|
||||
~/.npm
|
||||
**/node_modules
|
||||
key: ${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json') }}
|
||||
key: ${{ runner.os }}-npm16-${{ hashFiles('**/package-lock.json') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-npm-
|
||||
${{ runner.os }}-npm16-
|
||||
- name: Set up Java 11
|
||||
uses: actions/setup-java@v2
|
||||
with:
|
||||
|
@ -139,9 +139,9 @@ jobs:
|
|||
path: |
|
||||
~/.npm
|
||||
**/node_modules
|
||||
key: ${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json') }}
|
||||
key: ${{ runner.os }}-npm16-${{ hashFiles('**/package-lock.json') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-npm-
|
||||
${{ runner.os }}-npm16-
|
||||
- name: Set up Java 8
|
||||
uses: actions/setup-java@v2
|
||||
with:
|
||||
|
@ -204,9 +204,9 @@ jobs:
|
|||
path: |
|
||||
${{ steps.npm-cache-directory.outputs.directory }}
|
||||
**/node_modules
|
||||
key: ${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json') }}
|
||||
key: ${{ runner.os }}-npm16-${{ hashFiles('**/package-lock.json') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-npm-
|
||||
${{ runner.os }}-npm16-
|
||||
- name: Set up Java 8
|
||||
uses: actions/setup-java@v2
|
||||
with:
|
||||
|
|
|
@ -374,7 +374,7 @@
|
|||
<plugin>
|
||||
<groupId>com.github.eirslett</groupId>
|
||||
<artifactId>frontend-maven-plugin</artifactId>
|
||||
<version>1.12.0</version>
|
||||
<version>${frontend.mvn.plugin.version}</version>
|
||||
<configuration>
|
||||
<installDirectory>${frontend.working.dir}</installDirectory>
|
||||
</configuration>
|
||||
|
@ -395,7 +395,7 @@
|
|||
<goal>npm</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<arguments>--silent ci</arguments>
|
||||
<arguments>run ci</arguments>
|
||||
<workingDirectory>${frontend.working.dir}</workingDirectory>
|
||||
</configuration>
|
||||
</execution>
|
||||
|
|
|
@ -1,7 +1,634 @@
|
|||
{
|
||||
"name": "apache-nifi",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"lockfileVersion": 1,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "apache-nifi",
|
||||
"hasInstallScript": true,
|
||||
"dependencies": {
|
||||
"angular-material": "1.1.26",
|
||||
"lodash": "4.17.21",
|
||||
"url-search-params": "0.6.1",
|
||||
"qtip2": "3.0.3",
|
||||
"angular-route": "1.8.2",
|
||||
"d3": "4.13.0",
|
||||
"JSON2": "0.1.0",
|
||||
"angular-messages": "1.8.2",
|
||||
"moment": "2.29.1",
|
||||
"angular-mocks": "1.8.2",
|
||||
"angular-sanitize": "1.8.2",
|
||||
"angular-resource": "1.8.2",
|
||||
"jsonlint": "1.6.3",
|
||||
"font-awesome": "4.7.0",
|
||||
"jquery-minicolors": "2.1.10",
|
||||
"jquery-ui-dist": "1.12.1",
|
||||
"reset.css": "2.0.2",
|
||||
"angular": "1.8.2",
|
||||
"angular-aria": "1.8.2",
|
||||
"jquery": "3.6.0",
|
||||
"slickgrid": "2.4.38",
|
||||
"jquery-form": "3.50.0",
|
||||
"d3-selection-multi": "1.0.1",
|
||||
"angular-animate": "1.8.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"npm-force-resolutions": "^0.0.10"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=16.13.2",
|
||||
"npm": ">=8.1.2"
|
||||
}
|
||||
},
|
||||
"node_modules/d3-scale": {
|
||||
"version": "1.0.7",
|
||||
"resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-1.0.7.tgz",
|
||||
"integrity": "sha512-KvU92czp2/qse5tUfGms6Kjig0AhHOwkzXG0+PqIJB3ke0WUv088AHMZI0OssO9NCkXt4RP8yju9rpH8aGB7Lw==",
|
||||
"dependencies": {
|
||||
"d3-array": "^1.2.0",
|
||||
"d3-collection": "1",
|
||||
"d3-color": "1",
|
||||
"d3-format": "1",
|
||||
"d3-interpolate": "1",
|
||||
"d3-time": "1",
|
||||
"d3-time-format": "2"
|
||||
}
|
||||
},
|
||||
"node_modules/d3-time": {
|
||||
"version": "1.0.8",
|
||||
"resolved": "https://registry.npmjs.org/d3-time/-/d3-time-1.0.8.tgz",
|
||||
"integrity": "sha512-YRZkNhphZh3KcnBfitvF3c6E0JOFGikHZ4YqD+Lzv83ZHn1/u6yGenRU1m+KAk9J1GnZMnKcrtfvSktlA1DXNQ=="
|
||||
},
|
||||
"node_modules/d3-dsv": {
|
||||
"version": "1.0.8",
|
||||
"resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-1.0.8.tgz",
|
||||
"integrity": "sha512-IVCJpQ+YGe3qu6odkPQI0KPqfxkhbP/oM1XhhE/DFiYmcXKfCRub4KXyiuehV1d4drjWVXHUWx4gHqhdZb6n/A==",
|
||||
"dependencies": {
|
||||
"commander": "2",
|
||||
"iconv-lite": "0.4",
|
||||
"rw": "1"
|
||||
},
|
||||
"bin": {
|
||||
"csv2json": "bin/dsv2json",
|
||||
"csv2tsv": "bin/dsv2dsv",
|
||||
"dsv2dsv": "bin/dsv2dsv",
|
||||
"dsv2json": "bin/dsv2json",
|
||||
"json2csv": "bin/json2dsv",
|
||||
"json2dsv": "bin/json2dsv",
|
||||
"json2tsv": "bin/json2dsv",
|
||||
"tsv2csv": "bin/dsv2dsv",
|
||||
"tsv2json": "bin/dsv2json"
|
||||
}
|
||||
},
|
||||
"node_modules/JSV": {
|
||||
"version": "4.0.2",
|
||||
"resolved": "https://registry.npmjs.org/JSV/-/JSV-4.0.2.tgz",
|
||||
"integrity": "sha1-0Hf2glVx+CEy+d/67Vh7QCn+/1c=",
|
||||
"engines": {
|
||||
"node": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/jquery-minicolors": {
|
||||
"version": "2.1.10",
|
||||
"resolved": "https://registry.npmjs.org/jquery-minicolors/-/jquery-minicolors-2.1.10.tgz",
|
||||
"integrity": "sha1-sp7qVB2aMrTiaSMWj7LBYnGGc3k=",
|
||||
"dependencies": {
|
||||
"jquery": ">= 1.7.x"
|
||||
}
|
||||
},
|
||||
"node_modules/jsonlint": {
|
||||
"version": "1.6.3",
|
||||
"resolved": "https://registry.npmjs.org/jsonlint/-/jsonlint-1.6.3.tgz",
|
||||
"integrity": "sha512-jMVTMzP+7gU/IyC6hvKyWpUU8tmTkK5b3BPNuMI9U8Sit+YAWLlZwB6Y6YrdCxfg2kNz05p3XY3Bmm4m26Nv3A==",
|
||||
"dependencies": {
|
||||
"JSV": "^4.0.x",
|
||||
"nomnom": "^1.5.x"
|
||||
},
|
||||
"bin": {
|
||||
"jsonlint": "lib/cli.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.6"
|
||||
}
|
||||
},
|
||||
"node_modules/d3-chord": {
|
||||
"version": "1.0.4",
|
||||
"resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-1.0.4.tgz",
|
||||
"integrity": "sha1-fexPC6iG9xP+ERxF92NBT290yiw=",
|
||||
"dependencies": {
|
||||
"d3-array": "1",
|
||||
"d3-path": "1"
|
||||
}
|
||||
},
|
||||
"node_modules/font-awesome": {
|
||||
"version": "4.7.0",
|
||||
"resolved": "https://registry.npmjs.org/font-awesome/-/font-awesome-4.7.0.tgz",
|
||||
"integrity": "sha1-j6jPBBGhoxr9B7BtKQK7n8gVoTM=",
|
||||
"engines": {
|
||||
"node": ">=0.10.3"
|
||||
}
|
||||
},
|
||||
"node_modules/ev-emitter": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/ev-emitter/-/ev-emitter-1.1.1.tgz",
|
||||
"integrity": "sha512-ipiDYhdQSCZ4hSbX4rMW+XzNKMD1prg/sTvoVmSLkuQ1MVlwjJQQA+sW8tMYR3BLUr9KjodFV4pvzunvRhd33Q=="
|
||||
},
|
||||
"node_modules/jquery": {
|
||||
"version": "3.6.0",
|
||||
"resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.0.tgz",
|
||||
"integrity": "sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw=="
|
||||
},
|
||||
"node_modules/d3-zoom": {
|
||||
"version": "1.7.1",
|
||||
"resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-1.7.1.tgz",
|
||||
"integrity": "sha512-sZHQ55DGq5BZBFGnRshUT8tm2sfhPHFnOlmPbbwTkAoPeVdRTkB4Xsf9GCY0TSHrTD8PeJPZGmP/TpGicwJDJQ==",
|
||||
"dependencies": {
|
||||
"d3-dispatch": "1",
|
||||
"d3-drag": "1",
|
||||
"d3-interpolate": "1",
|
||||
"d3-selection": "1",
|
||||
"d3-transition": "1"
|
||||
}
|
||||
},
|
||||
"node_modules/d3": {
|
||||
"version": "4.13.0",
|
||||
"resolved": "https://registry.npmjs.org/d3/-/d3-4.13.0.tgz",
|
||||
"integrity": "sha512-l8c4+0SldjVKLaE2WG++EQlqD7mh/dmQjvi2L2lKPadAVC+TbJC4ci7Uk9bRi+To0+ansgsS0iWfPjD7DBy+FQ==",
|
||||
"dependencies": {
|
||||
"d3-queue": "3.0.7",
|
||||
"d3-collection": "1.0.4",
|
||||
"d3-axis": "1.0.8",
|
||||
"d3-zoom": "1.7.1",
|
||||
"d3-random": "1.1.0",
|
||||
"d3-path": "1.0.5",
|
||||
"d3-time": "1.0.8",
|
||||
"d3-force": "1.1.0",
|
||||
"d3-chord": "1.0.4",
|
||||
"d3-brush": "1.0.4",
|
||||
"d3-request": "1.0.6",
|
||||
"d3-hierarchy": "1.1.5",
|
||||
"d3-dsv": "1.0.8",
|
||||
"d3-selection": "1.3.0",
|
||||
"d3-drag": "1.2.1",
|
||||
"d3-transition": "1.1.1",
|
||||
"d3-voronoi": "1.1.2",
|
||||
"d3-time-format": "2.1.1",
|
||||
"d3-dispatch": "1.0.3",
|
||||
"d3-ease": "1.0.3",
|
||||
"d3-format": "1.2.2",
|
||||
"d3-quadtree": "1.0.3",
|
||||
"d3-geo": "1.9.1",
|
||||
"d3-color": "1.0.3",
|
||||
"d3-timer": "1.0.7",
|
||||
"d3-array": "1.2.1",
|
||||
"d3-shape": "1.2.0",
|
||||
"d3-polygon": "1.0.3",
|
||||
"d3-scale": "1.0.7",
|
||||
"d3-interpolate": "1.1.6"
|
||||
}
|
||||
},
|
||||
"node_modules/slickgrid": {
|
||||
"version": "2.4.38",
|
||||
"resolved": "https://registry.npmjs.org/slickgrid/-/slickgrid-2.4.38.tgz",
|
||||
"integrity": "sha512-BFbRXOkpbF44vCr6MxEpO/A7ruiPSINN7WoKaDkLza62CX14kq7Me6v77Q/bDsZsOeRsHudpRZufmt1GQixq5g==",
|
||||
"dependencies": {
|
||||
"jquery": ">=1.8.0",
|
||||
"jquery-ui": ">=1.8.0"
|
||||
}
|
||||
},
|
||||
"node_modules/d3-geo": {
|
||||
"version": "1.9.1",
|
||||
"resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-1.9.1.tgz",
|
||||
"integrity": "sha512-l9wL/cEQkyZQYXw3xbmLsH3eQ5ij+icNfo4r0GrLa5rOCZR/e/3am45IQ0FvQ5uMsv+77zBRunLc9ufTWSQYFA==",
|
||||
"dependencies": {
|
||||
"d3-array": "1"
|
||||
}
|
||||
},
|
||||
"node_modules/d3-time-format": {
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-2.1.1.tgz",
|
||||
"integrity": "sha512-8kAkymq2WMfzW7e+s/IUNAtN/y3gZXGRrdGfo6R8NKPAA85UBTxZg5E61bR6nLwjPjj4d3zywSQe1CkYLPFyrw==",
|
||||
"dependencies": {
|
||||
"d3-time": "1"
|
||||
}
|
||||
},
|
||||
"node_modules/commander": {
|
||||
"version": "2.20.3",
|
||||
"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
|
||||
"integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ=="
|
||||
},
|
||||
"node_modules/d3-request": {
|
||||
"version": "1.0.6",
|
||||
"resolved": "https://registry.npmjs.org/d3-request/-/d3-request-1.0.6.tgz",
|
||||
"integrity": "sha512-FJj8ySY6GYuAJHZMaCQ83xEYE4KbkPkmxZ3Hu6zA1xxG2GD+z6P+Lyp+zjdsHf0xEbp2xcluDI50rCS855EQ6w==",
|
||||
"dependencies": {
|
||||
"d3-collection": "1",
|
||||
"d3-dispatch": "1",
|
||||
"d3-dsv": "1",
|
||||
"xmlhttprequest": "1"
|
||||
}
|
||||
},
|
||||
"node_modules/strip-ansi": {
|
||||
"version": "0.1.1",
|
||||
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.1.1.tgz",
|
||||
"integrity": "sha1-OeipjQRNFQZgq+SmgIrPcLt7yZE=",
|
||||
"bin": {
|
||||
"strip-ansi": "cli.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=0.8.0"
|
||||
}
|
||||
},
|
||||
"node_modules/chalk": {
|
||||
"version": "0.4.0",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-0.4.0.tgz",
|
||||
"integrity": "sha1-UZmj3c0MHv4jvAjBsCewYXbgxk8=",
|
||||
"dependencies": {
|
||||
"ansi-styles": "~1.0.0",
|
||||
"has-color": "~0.1.0",
|
||||
"strip-ansi": "~0.1.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=0.8.0"
|
||||
}
|
||||
},
|
||||
"node_modules/d3-queue": {
|
||||
"version": "3.0.7",
|
||||
"resolved": "https://registry.npmjs.org/d3-queue/-/d3-queue-3.0.7.tgz",
|
||||
"integrity": "sha1-yTouVLQXwJWRKdfXP2z31Ckudhg="
|
||||
},
|
||||
"node_modules/d3-force": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/d3-force/-/d3-force-1.1.0.tgz",
|
||||
"integrity": "sha512-2HVQz3/VCQs0QeRNZTYb7GxoUCeb6bOzMp/cGcLa87awY9ZsPvXOGeZm0iaGBjXic6I1ysKwMn+g+5jSAdzwcg==",
|
||||
"dependencies": {
|
||||
"d3-collection": "1",
|
||||
"d3-dispatch": "1",
|
||||
"d3-quadtree": "1",
|
||||
"d3-timer": "1"
|
||||
}
|
||||
},
|
||||
"node_modules/jquery-ui": {
|
||||
"version": "1.13.0",
|
||||
"resolved": "https://registry.npmjs.org/jquery-ui/-/jquery-ui-1.13.0.tgz",
|
||||
"integrity": "sha512-Osf7ECXNTYHtKBkn9xzbIf9kifNrBhfywFEKxOeB/OVctVmLlouV9mfc2qXCp6uyO4Pn72PXKOnj09qXetopCw==",
|
||||
"dependencies": {
|
||||
"jquery": ">=1.8.0 <4.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/JSON2": {
|
||||
"version": "0.1.0",
|
||||
"resolved": "https://registry.npmjs.org/JSON2/-/JSON2-0.1.0.tgz",
|
||||
"integrity": "sha1-jXSTBApj1YNa919H3suDq2yMB5A=",
|
||||
"engines": {
|
||||
"node": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/source-map": {
|
||||
"version": "0.6.1",
|
||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
|
||||
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/angular": {
|
||||
"version": "1.8.2",
|
||||
"resolved": "https://registry.npmjs.org/angular/-/angular-1.8.2.tgz",
|
||||
"integrity": "sha512-IauMOej2xEe7/7Ennahkbb5qd/HFADiNuLSESz9Q27inmi32zB0lnAsFeLEWcox3Gd1F6YhNd1CP7/9IukJ0Gw=="
|
||||
},
|
||||
"node_modules/reset.css": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/reset.css/-/reset.css-2.0.2.tgz",
|
||||
"integrity": "sha1-nAEwnIILcujyGevMjhQRlJYE99c="
|
||||
},
|
||||
"node_modules/d3-selection": {
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-1.3.0.tgz",
|
||||
"integrity": "sha512-qgpUOg9tl5CirdqESUAu0t9MU/t3O9klYfGfyKsXEmhyxyzLpzpeh08gaxBUTQw1uXIOkr/30Ut2YRjSSxlmHA=="
|
||||
},
|
||||
"node_modules/json-format": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/json-format/-/json-format-1.0.1.tgz",
|
||||
"integrity": "sha1-FD9n5irxKda//tKIpGJl6iPQ3ww=",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/d3-transition": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-1.1.1.tgz",
|
||||
"integrity": "sha512-xeg8oggyQ+y5eb4J13iDgKIjUcEfIOZs2BqV/eEmXm2twx80wTzJ4tB4vaZ5BKfz7XsI/DFmQL5me6O27/5ykQ==",
|
||||
"dependencies": {
|
||||
"d3-color": "1",
|
||||
"d3-dispatch": "1",
|
||||
"d3-ease": "1",
|
||||
"d3-interpolate": "1",
|
||||
"d3-selection": "^1.1.0",
|
||||
"d3-timer": "1"
|
||||
}
|
||||
},
|
||||
"node_modules/d3-drag": {
|
||||
"version": "1.2.1",
|
||||
"resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-1.2.1.tgz",
|
||||
"integrity": "sha512-Cg8/K2rTtzxzrb0fmnYOUeZHvwa4PHzwXOLZZPwtEs2SKLLKLXeYwZKBB+DlOxUvFmarOnmt//cU4+3US2lyyQ==",
|
||||
"dependencies": {
|
||||
"d3-dispatch": "1",
|
||||
"d3-selection": "1"
|
||||
}
|
||||
},
|
||||
"node_modules/lodash": {
|
||||
"version": "4.17.21",
|
||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
|
||||
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
|
||||
},
|
||||
"node_modules/safer-buffer": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
|
||||
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
|
||||
},
|
||||
"node_modules/d3-hierarchy": {
|
||||
"version": "1.1.5",
|
||||
"resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-1.1.5.tgz",
|
||||
"integrity": "sha1-ochFxC+Eoga88cAcAQmOpN2qeiY="
|
||||
},
|
||||
"node_modules/d3-selection-multi": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/d3-selection-multi/-/d3-selection-multi-1.0.1.tgz",
|
||||
"integrity": "sha1-zWwlQT0EosuXRw54byzYd/PjT1g=",
|
||||
"dependencies": {
|
||||
"d3-selection": "1",
|
||||
"d3-transition": "1"
|
||||
}
|
||||
},
|
||||
"node_modules/angular-route": {
|
||||
"version": "1.8.2",
|
||||
"resolved": "https://registry.npmjs.org/angular-route/-/angular-route-1.8.2.tgz",
|
||||
"integrity": "sha512-49LJYxuaQ/ZDiu9dD2xo1LkazqObkGjw0a7dUF7UKCT8EELgBsMd6QrI6aEVGtI62ppkiFkxqmiV8fcwYdXpug=="
|
||||
},
|
||||
"node_modules/nomnom": {
|
||||
"version": "1.6.0",
|
||||
"resolved": "https://registry.npmjs.org/nomnom/-/nomnom-1.6.0.tgz",
|
||||
"integrity": "sha1-8XRItQxW8o0ZIdDoiZKgZrTxUVs=",
|
||||
"deprecated": "Package no longer supported. Contact support@npmjs.com for more info.",
|
||||
"dependencies": {
|
||||
"chalk": "~0.4.0",
|
||||
"underscore": "~1.6.0"
|
||||
}
|
||||
},
|
||||
"node_modules/xmlhttprequest": {
|
||||
"version": "1.8.0",
|
||||
"resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz",
|
||||
"integrity": "sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw=",
|
||||
"engines": {
|
||||
"node": ">=0.4.0"
|
||||
}
|
||||
},
|
||||
"node_modules/angular-material": {
|
||||
"version": "1.1.26",
|
||||
"resolved": "https://registry.npmjs.org/angular-material/-/angular-material-1.1.26.tgz",
|
||||
"integrity": "sha512-DBLsoOP1D1E14EQsECZYabt3Jh1PpvsG8k1aZgaP/Ml57n4stpClzLhCsuTNbtB/pqq9CL8XtpCfB6fhVRWqIQ==",
|
||||
"peerDependencies": {
|
||||
"angular": "^1.7.2",
|
||||
"angular-animate": "^1.7.2",
|
||||
"angular-aria": "^1.7.2",
|
||||
"angular-messages": "^1.7.2"
|
||||
}
|
||||
},
|
||||
"node_modules/d3-array": {
|
||||
"version": "1.2.1",
|
||||
"resolved": "https://registry.npmjs.org/d3-array/-/d3-array-1.2.1.tgz",
|
||||
"integrity": "sha512-CyINJQ0SOUHojDdFDH4JEM0552vCR1utGyLHegJHyYH0JyCpSeTPxi4OBqHMA2jJZq4NH782LtaJWBImqI/HBw=="
|
||||
},
|
||||
"node_modules/jquery-ui-dist": {
|
||||
"version": "1.12.1",
|
||||
"resolved": "https://registry.npmjs.org/jquery-ui-dist/-/jquery-ui-dist-1.12.1.tgz",
|
||||
"integrity": "sha1-XAgV08xvkP9fqvWyaKbiO0ypBPo="
|
||||
},
|
||||
"node_modules/source-map-support": {
|
||||
"version": "0.5.21",
|
||||
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
|
||||
"integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"buffer-from": "^1.0.0",
|
||||
"source-map": "^0.6.0"
|
||||
}
|
||||
},
|
||||
"node_modules/rw": {
|
||||
"version": "1.3.3",
|
||||
"resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz",
|
||||
"integrity": "sha1-P4Yt+pGrdmsUiF700BEkv9oHT7Q="
|
||||
},
|
||||
"node_modules/url-search-params": {
|
||||
"version": "0.6.1",
|
||||
"resolved": "https://registry.npmjs.org/url-search-params/-/url-search-params-0.6.1.tgz",
|
||||
"integrity": "sha1-Ott4WLgH1WuB56vzudrkl4wD+Z0=",
|
||||
"deprecated": "now available as @ungap/url-search-params"
|
||||
},
|
||||
"node_modules/angular-resource": {
|
||||
"version": "1.8.2",
|
||||
"resolved": "https://registry.npmjs.org/angular-resource/-/angular-resource-1.8.2.tgz",
|
||||
"integrity": "sha512-CbTu8ypkVZMBLm+Wd+jI9xR7QEVCeUgN8WXsr9Yi9l0s/8ZQa5kEIuYX3F/75Ej8Xs1Jp9DoKjAyvACI6Q8IJA=="
|
||||
},
|
||||
"node_modules/moment": {
|
||||
"version": "2.29.1",
|
||||
"resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz",
|
||||
"integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==",
|
||||
"engines": {
|
||||
"node": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/d3-collection": {
|
||||
"version": "1.0.4",
|
||||
"resolved": "https://registry.npmjs.org/d3-collection/-/d3-collection-1.0.4.tgz",
|
||||
"integrity": "sha1-NC39EoN8kJdPM/HMCnha6lcNzcI="
|
||||
},
|
||||
"node_modules/has-color": {
|
||||
"version": "0.1.7",
|
||||
"resolved": "https://registry.npmjs.org/has-color/-/has-color-0.1.7.tgz",
|
||||
"integrity": "sha1-ZxRKUmDDT8PMpnfQQdr1L+e3iy8=",
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/d3-voronoi": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/d3-voronoi/-/d3-voronoi-1.1.2.tgz",
|
||||
"integrity": "sha1-Fodmfo8TotFYyAwUgMWinLDYlzw="
|
||||
},
|
||||
"node_modules/d3-color": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/d3-color/-/d3-color-1.0.3.tgz",
|
||||
"integrity": "sha1-vHZD/KjlOoNH4vva/6I2eWtYUJs="
|
||||
},
|
||||
"node_modules/ansi-styles": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.0.0.tgz",
|
||||
"integrity": "sha1-yxAt8cVvUSPquLZ817mAJ6AnkXg=",
|
||||
"engines": {
|
||||
"node": ">=0.8.0"
|
||||
}
|
||||
},
|
||||
"node_modules/d3-random": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/d3-random/-/d3-random-1.1.0.tgz",
|
||||
"integrity": "sha1-ZkLlBsb6OmSFldKyRpeIqNElKdM="
|
||||
},
|
||||
"node_modules/angular-mocks": {
|
||||
"version": "1.8.2",
|
||||
"resolved": "https://registry.npmjs.org/angular-mocks/-/angular-mocks-1.8.2.tgz",
|
||||
"integrity": "sha512-I5L3P0l21HPdVsP4A4qWmENt4ePjjbkDFdAzOaM7QiibFySbt14DptPbt2IjeG4vFBr4vSLbhIz8Fk03DISl8Q=="
|
||||
},
|
||||
"node_modules/buffer-from": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
|
||||
"integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/d3-dispatch": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-1.0.3.tgz",
|
||||
"integrity": "sha1-RuFJHqqbWMNY/OW+TovtYm54cfg="
|
||||
},
|
||||
"node_modules/d3-timer": {
|
||||
"version": "1.0.7",
|
||||
"resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-1.0.7.tgz",
|
||||
"integrity": "sha512-vMZXR88XujmG/L5oB96NNKH5lCWwiLM/S2HyyAQLcjWJCloK5shxta4CwOFYLZoY3AWX73v8Lgv4cCAdWtRmOA=="
|
||||
},
|
||||
"node_modules/qtip2": {
|
||||
"version": "3.0.3",
|
||||
"resolved": "https://registry.npmjs.org/qtip2/-/qtip2-3.0.3.tgz",
|
||||
"integrity": "sha1-ffCIrkQSwkpAZN5p6CTLPPdiENw=",
|
||||
"dependencies": {
|
||||
"imagesloaded": ">=3.0.0",
|
||||
"jquery": ">=1.6.0"
|
||||
}
|
||||
},
|
||||
"node_modules/d3-polygon": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-1.0.3.tgz",
|
||||
"integrity": "sha1-FoiOkCZGCTPysXllKtN4Ik04LGI="
|
||||
},
|
||||
"node_modules/angular-animate": {
|
||||
"version": "1.8.2",
|
||||
"resolved": "https://registry.npmjs.org/angular-animate/-/angular-animate-1.8.2.tgz",
|
||||
"integrity": "sha512-Jbr9+grNMs9Kj57xuBU3Ju3NOPAjS1+g2UAwwDv7su1lt0/PLDy+9zEwDiu8C8xJceoTbmBNKiWGPJGBdCQLlA=="
|
||||
},
|
||||
"node_modules/d3-quadtree": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-1.0.3.tgz",
|
||||
"integrity": "sha1-rHmH4+I/6AWpkPKOG1DTj8uCJDg="
|
||||
},
|
||||
"node_modules/d3-ease": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-1.0.3.tgz",
|
||||
"integrity": "sha1-aL+8NJM4o4DETYrMT7wzBKotjA4="
|
||||
},
|
||||
"node_modules/d3-shape": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-1.2.0.tgz",
|
||||
"integrity": "sha1-RdAVOPBkuv0F6j1tLLdI/YxB93c=",
|
||||
"dependencies": {
|
||||
"d3-path": "1"
|
||||
}
|
||||
},
|
||||
"node_modules/d3-brush": {
|
||||
"version": "1.0.4",
|
||||
"resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-1.0.4.tgz",
|
||||
"integrity": "sha1-AMLyOAGfJPbAoZSibUGhUw/+e8Q=",
|
||||
"dependencies": {
|
||||
"d3-dispatch": "1",
|
||||
"d3-drag": "1",
|
||||
"d3-interpolate": "1",
|
||||
"d3-selection": "1",
|
||||
"d3-transition": "1"
|
||||
}
|
||||
},
|
||||
"node_modules/npm-force-resolutions": {
|
||||
"version": "0.0.10",
|
||||
"resolved": "https://registry.npmjs.org/npm-force-resolutions/-/npm-force-resolutions-0.0.10.tgz",
|
||||
"integrity": "sha512-Jscex+xIU6tw3VsyrwxM1TeT+dd9Fd3UOMAjy6J1TMpuYeEqg4LQZnATQO5vjPrsARm3und6zc6Dii/GUyRE5A==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"json-format": "^1.0.1",
|
||||
"source-map-support": "^0.5.5",
|
||||
"xmlhttprequest": "^1.8.0"
|
||||
},
|
||||
"bin": {
|
||||
"npm-force-resolutions": "index.js"
|
||||
}
|
||||
},
|
||||
"node_modules/d3-format": {
|
||||
"version": "1.2.2",
|
||||
"resolved": "https://registry.npmjs.org/d3-format/-/d3-format-1.2.2.tgz",
|
||||
"integrity": "sha512-zH9CfF/3C8zUI47nsiKfD0+AGDEuM8LwBIP7pBVpyR4l/sKkZqITmMtxRp04rwBrlshIZ17XeFAaovN3++wzkw=="
|
||||
},
|
||||
"node_modules/jquery-form": {
|
||||
"version": "3.50.0",
|
||||
"resolved": "https://registry.npmjs.org/jquery-form/-/jquery-form-3.50.0.tgz",
|
||||
"integrity": "sha1-18lptR4JThLaaZHrYf9a8l9ZeY8=",
|
||||
"dependencies": {
|
||||
"jquery": ">=1.5"
|
||||
}
|
||||
},
|
||||
"node_modules/d3-axis": {
|
||||
"version": "1.0.8",
|
||||
"resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-1.0.8.tgz",
|
||||
"integrity": "sha1-MacFoLU15ldZ3hQXOjGTMTfxjvo="
|
||||
},
|
||||
"node_modules/d3-interpolate": {
|
||||
"version": "1.1.6",
|
||||
"resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-1.1.6.tgz",
|
||||
"integrity": "sha512-mOnv5a+pZzkNIHtw/V6I+w9Lqm9L5bG3OTXPM5A+QO0yyVMQ4W1uZhR+VOJmazaOZXri2ppbiZ5BUNWT0pFM9A==",
|
||||
"dependencies": {
|
||||
"d3-color": "1"
|
||||
}
|
||||
},
|
||||
"node_modules/imagesloaded": {
|
||||
"version": "4.1.4",
|
||||
"resolved": "https://registry.npmjs.org/imagesloaded/-/imagesloaded-4.1.4.tgz",
|
||||
"integrity": "sha512-ltiBVcYpc/TYTF5nolkMNsnREHW+ICvfQ3Yla2Sgr71YFwQ86bDwV9hgpFhFtrGPuwEx5+LqOHIrdXBdoWwwsA==",
|
||||
"dependencies": {
|
||||
"ev-emitter": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/angular-messages": {
|
||||
"version": "1.8.2",
|
||||
"resolved": "https://registry.npmjs.org/angular-messages/-/angular-messages-1.8.2.tgz",
|
||||
"integrity": "sha512-M1qNh/30cLJi4yJJ+3YB8saPonRcavz5Dquqz0T/aUySKJhIkUoeCkmF+BcLH4SJ5PBp04yy4CZUUeNRVi7jZA=="
|
||||
},
|
||||
"node_modules/underscore": {
|
||||
"version": "1.13.2",
|
||||
"resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.2.tgz",
|
||||
"integrity": "sha512-ekY1NhRzq0B08g4bGuX4wd2jZx5GnKz6mKSqFL4nqBlfyMGiG10gDFhDTMEfYmDL6Jy0FUIZp7wiRB+0BP7J2g=="
|
||||
},
|
||||
"node_modules/d3-path": {
|
||||
"version": "1.0.5",
|
||||
"resolved": "https://registry.npmjs.org/d3-path/-/d3-path-1.0.5.tgz",
|
||||
"integrity": "sha1-JB6xhJvZ6egCHA0KeZ+KDo5EF2Q="
|
||||
},
|
||||
"node_modules/angular-sanitize": {
|
||||
"version": "1.8.2",
|
||||
"resolved": "https://registry.npmjs.org/angular-sanitize/-/angular-sanitize-1.8.2.tgz",
|
||||
"integrity": "sha512-OB6Goa+QN3byf5asQ7XRl7DKZejm/F/ZOqa9z1skqYVOWA2hoBxoCmt9E7+i7T/TbxZP5zYzKxNZVVJNu860Hg=="
|
||||
},
|
||||
"node_modules/iconv-lite": {
|
||||
"version": "0.4.24",
|
||||
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
|
||||
"integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
|
||||
"dependencies": {
|
||||
"safer-buffer": ">= 2.1.2 < 3"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/angular-aria": {
|
||||
"version": "1.8.2",
|
||||
"resolved": "https://registry.npmjs.org/angular-aria/-/angular-aria-1.8.2.tgz",
|
||||
"integrity": "sha512-xWT1Lm+Xug2GM6nGNMioBP4hXt3sj2eGaExa4cVCZUYSVWezgyuD1RiLgzJzwTkBGYplHQUzQaz3yDY8jVI6yQ=="
|
||||
}
|
||||
},
|
||||
"dependencies": {
|
||||
"JSON2": {
|
||||
"version": "0.1.0",
|
||||
|
@ -63,6 +690,12 @@
|
|||
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.0.0.tgz",
|
||||
"integrity": "sha1-yxAt8cVvUSPquLZ817mAJ6AnkXg="
|
||||
},
|
||||
"buffer-from": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
|
||||
"integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
|
||||
"dev": true
|
||||
},
|
||||
"chalk": {
|
||||
"version": "0.4.0",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-0.4.0.tgz",
|
||||
|
@ -395,15 +1028,24 @@
|
|||
}
|
||||
},
|
||||
"jquery-ui": {
|
||||
"version": "1.12.1",
|
||||
"resolved": "https://registry.npmjs.org/jquery-ui/-/jquery-ui-1.12.1.tgz",
|
||||
"integrity": "sha1-vLQEXI3QU5wTS8FIjN0+dop6nlE="
|
||||
"version": "1.13.0",
|
||||
"resolved": "https://registry.npmjs.org/jquery-ui/-/jquery-ui-1.13.0.tgz",
|
||||
"integrity": "sha512-Osf7ECXNTYHtKBkn9xzbIf9kifNrBhfywFEKxOeB/OVctVmLlouV9mfc2qXCp6uyO4Pn72PXKOnj09qXetopCw==",
|
||||
"requires": {
|
||||
"jquery": ">=1.8.0 <4.0.0"
|
||||
}
|
||||
},
|
||||
"jquery-ui-dist": {
|
||||
"version": "1.12.1",
|
||||
"resolved": "https://registry.npmjs.org/jquery-ui-dist/-/jquery-ui-dist-1.12.1.tgz",
|
||||
"integrity": "sha1-XAgV08xvkP9fqvWyaKbiO0ypBPo="
|
||||
},
|
||||
"json-format": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/json-format/-/json-format-1.0.1.tgz",
|
||||
"integrity": "sha1-FD9n5irxKda//tKIpGJl6iPQ3ww=",
|
||||
"dev": true
|
||||
},
|
||||
"jsonlint": {
|
||||
"version": "1.6.3",
|
||||
"resolved": "https://registry.npmjs.org/jsonlint/-/jsonlint-1.6.3.tgz",
|
||||
|
@ -424,12 +1066,30 @@
|
|||
"integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ=="
|
||||
},
|
||||
"nomnom": {
|
||||
"version": "1.8.1",
|
||||
"resolved": "https://registry.npmjs.org/nomnom/-/nomnom-1.8.1.tgz",
|
||||
"integrity": "sha1-IVH3Ikcrp55Qp2/BJbuMjy5Nwqc=",
|
||||
"version": "1.6.0",
|
||||
"resolved": "https://registry.npmjs.org/nomnom/-/nomnom-1.6.0.tgz",
|
||||
"integrity": "sha1-8XRItQxW8o0ZIdDoiZKgZrTxUVs=",
|
||||
"requires": {
|
||||
"chalk": "~0.4.0",
|
||||
"underscore": "~1.6.0"
|
||||
"underscore": "1.13.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"underscore": {
|
||||
"version": "1.13.2",
|
||||
"resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.2.tgz",
|
||||
"integrity": "sha512-ekY1NhRzq0B08g4bGuX4wd2jZx5GnKz6mKSqFL4nqBlfyMGiG10gDFhDTMEfYmDL6Jy0FUIZp7wiRB+0BP7J2g=="
|
||||
}
|
||||
}
|
||||
},
|
||||
"npm-force-resolutions": {
|
||||
"version": "0.0.10",
|
||||
"resolved": "https://registry.npmjs.org/npm-force-resolutions/-/npm-force-resolutions-0.0.10.tgz",
|
||||
"integrity": "sha512-Jscex+xIU6tw3VsyrwxM1TeT+dd9Fd3UOMAjy6J1TMpuYeEqg4LQZnATQO5vjPrsARm3und6zc6Dii/GUyRE5A==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"json-format": "^1.0.1",
|
||||
"source-map-support": "^0.5.5",
|
||||
"xmlhttprequest": "^1.8.0"
|
||||
}
|
||||
},
|
||||
"qtip2": {
|
||||
|
@ -465,15 +1125,31 @@
|
|||
"jquery-ui": ">=1.8.0"
|
||||
}
|
||||
},
|
||||
"source-map": {
|
||||
"version": "0.6.1",
|
||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
|
||||
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
|
||||
"dev": true
|
||||
},
|
||||
"source-map-support": {
|
||||
"version": "0.5.21",
|
||||
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
|
||||
"integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"buffer-from": "^1.0.0",
|
||||
"source-map": "^0.6.0"
|
||||
}
|
||||
},
|
||||
"strip-ansi": {
|
||||
"version": "0.1.1",
|
||||
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.1.1.tgz",
|
||||
"integrity": "sha1-OeipjQRNFQZgq+SmgIrPcLt7yZE="
|
||||
},
|
||||
"underscore": {
|
||||
"version": "1.6.0",
|
||||
"resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz",
|
||||
"integrity": "sha1-izixDKze9jM3uLJOT/htRa6lKag="
|
||||
"version": "1.13.2",
|
||||
"resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.2.tgz",
|
||||
"integrity": "sha512-ekY1NhRzq0B08g4bGuX4wd2jZx5GnKz6mKSqFL4nqBlfyMGiG10gDFhDTMEfYmDL6Jy0FUIZp7wiRB+0BP7J2g=="
|
||||
},
|
||||
"url-search-params": {
|
||||
"version": "0.6.1",
|
||||
|
|
|
@ -1,22 +1,25 @@
|
|||
{
|
||||
"//": "Licensed to the Apache Software Foundation (ASF) under one or more",
|
||||
"//": "contributor license agreements. See the NOTICE file distributed with",
|
||||
"//": "this work for additional information regarding copyright ownership.",
|
||||
"//": "The ASF licenses this file to You under the Apache License, Version 2.0",
|
||||
"//": "(the \"License\"); you may not use this file except in compliance with",
|
||||
"//": "the License. You may obtain a copy of the License at",
|
||||
"//": "",
|
||||
"//": "http://www.apache.org/licenses/LICENSE-2.0",
|
||||
"//": "",
|
||||
"//": "Unless required by applicable law or agreed to in writing, software",
|
||||
"//": "distributed under the License is distributed on an \"AS IS\" BASIS,",
|
||||
"//": "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.",
|
||||
"//": "See the License for the specific language governing permissions and",
|
||||
"//": "limitations under the License.",
|
||||
"//-01": "Licensed to the Apache Software Foundation (ASF) under one or more",
|
||||
"//-02": "contributor license agreements. See the NOTICE file distributed with",
|
||||
"//-03": "this work for additional information regarding copyright ownership.",
|
||||
"//-04": "The ASF licenses this file to You under the Apache License, Version 2.0",
|
||||
"//-05": "(the \"License\"); you may not use this file except in compliance with",
|
||||
"//-06": "the License. You may obtain a copy of the License at",
|
||||
"//-07": "",
|
||||
"//-08": "http://www.apache.org/licenses/LICENSE-2.0",
|
||||
"//-09": "",
|
||||
"//-10": "Unless required by applicable law or agreed to in writing, software",
|
||||
"//-11": "distributed under the License is distributed on an \"AS IS\" BASIS,",
|
||||
"//-12": "WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.",
|
||||
"//-13": "See the License for the specific language governing permissions and",
|
||||
"//-14": "limitations under the License.",
|
||||
"name": "apache-nifi",
|
||||
"description": "Apache NiFi 3rd party client side resources.",
|
||||
"scripts": {
|
||||
"ci": "npm ci --ignore-scripts",
|
||||
"preinstall": "npm --ignore-scripts install npm-force-resolutions && npm-force-resolutions"
|
||||
},
|
||||
"dependencies": {
|
||||
"JSON2": "0.1.0",
|
||||
"angular": "1.8.2",
|
||||
"angular-animate": "1.8.2",
|
||||
"angular-aria": "1.8.2",
|
||||
|
@ -33,6 +36,7 @@
|
|||
"jquery-form": "3.50.0",
|
||||
"jquery-minicolors": "2.1.10",
|
||||
"jquery-ui-dist": "1.12.1",
|
||||
"JSON2": "0.1.0",
|
||||
"jsonlint": "1.6.3",
|
||||
"lodash": "4.17.21",
|
||||
"moment": "2.29.1",
|
||||
|
@ -41,6 +45,16 @@
|
|||
"slickgrid": "2.4.38",
|
||||
"url-search-params": "0.6.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"npm-force-resolutions": "0.0.10"
|
||||
},
|
||||
"resolutions": {
|
||||
"underscore": "1.13.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=16.13.2",
|
||||
"npm": ">=8.1.2"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/apache/nifi.git"
|
||||
|
|
|
@ -165,11 +165,9 @@
|
|||
<include>roboto-fontface/LICENSE*</include>
|
||||
<!-- covalent -->
|
||||
<include>@covalent/core/common/platform.css</include>
|
||||
<include>@covalent/core/common/styles/font/MaterialIcons-Regular.woff2</include>
|
||||
<include>@covalent/core/common/styles/font/MaterialIcons-Regular.ttf</include>
|
||||
<include>@covalent/core/common/styles/font/MaterialIcons-Regular-v48.woff2</include>
|
||||
<include>@covalent/core/README.md</include>
|
||||
<!-- FDS -->
|
||||
<include>@nifi-fds/core/common/styles/css/*</include>
|
||||
<include>@nifi-fds/core/LICENSE</include>
|
||||
<include>@nifi-fds/core/NOTICE</include>
|
||||
<include>@nifi-fds/core/README.md</include>
|
||||
|
@ -220,7 +218,7 @@
|
|||
<plugin>
|
||||
<groupId>com.github.eirslett</groupId>
|
||||
<artifactId>frontend-maven-plugin</artifactId>
|
||||
<version>1.5</version>
|
||||
<version>${frontend.mvn.plugin.version}</version>
|
||||
<configuration>
|
||||
<installDirectory>${frontend.working.dir}</installDirectory>
|
||||
</configuration>
|
||||
|
@ -248,7 +246,7 @@
|
|||
</goals>
|
||||
<phase>initialize</phase>
|
||||
<configuration>
|
||||
<arguments>--silent ci</arguments>
|
||||
<arguments>run ci</arguments>
|
||||
<workingDirectory>${frontend.working.dir}</workingDirectory>
|
||||
</configuration>
|
||||
</execution>
|
||||
|
@ -371,88 +369,6 @@
|
|||
</plugins>
|
||||
</build>
|
||||
</profile>
|
||||
<profile>
|
||||
<id>development-mode</id>
|
||||
<activation>
|
||||
<activeByDefault>false</activeByDefault>
|
||||
<property>
|
||||
<name>env</name>
|
||||
<value>dev</value>
|
||||
</property>
|
||||
</activation>
|
||||
<properties>
|
||||
<npm.bundle.script>build:webapp:bundle:development</npm.bundle.script>
|
||||
</properties>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-resources-plugin</artifactId>
|
||||
<executions>
|
||||
<!--
|
||||
Stage client side node_modules dependencies for inclusion in .war.
|
||||
-->
|
||||
<execution>
|
||||
<id>copy-development-mode-client-side-deps</id>
|
||||
<phase>prepare-package</phase>
|
||||
<goals>
|
||||
<goal>copy-resources</goal>
|
||||
</goals>
|
||||
<configuration>
|
||||
<outputDirectory>${frontend.assets}</outputDirectory>
|
||||
<resources>
|
||||
<resource>
|
||||
<directory>${frontend.working.dir}/node_modules</directory>
|
||||
<filtering>false</filtering>
|
||||
<includes>
|
||||
<include>@nifi-fds/**/*</include>
|
||||
<include>@angular/**/*</include>
|
||||
<include>hammerjs/**/*</include>
|
||||
<include>@covalent/**/*</include>
|
||||
<include>rxjs/**/*</include>
|
||||
<include>moment/**/*</include>
|
||||
<include>angular2-moment/**/*</include>
|
||||
<include>zone.js/**/*</include>
|
||||
<include>core-js/**/*</include>
|
||||
<include>superagent/**/*</include>
|
||||
<include>querystring/**/*</include>
|
||||
<include>tslib/**/*</include>
|
||||
<include>jquery/**/*</include>
|
||||
<include>roboto-fontface/**/*</include>
|
||||
</includes>
|
||||
</resource>
|
||||
</resources>
|
||||
</configuration>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<!--
|
||||
Speed up build time by excluding node, npm, and any node_modules from `mvn clean` since the front-end-maven plugin uses these
|
||||
directories as cache.
|
||||
-->
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-clean-plugin</artifactId>
|
||||
<version>3.0.0</version>
|
||||
<configuration>
|
||||
<excludeDefaultDirectories>true</excludeDefaultDirectories>
|
||||
<filesets>
|
||||
<fileset>
|
||||
<directory>${project.build.directory}</directory>
|
||||
<includes>
|
||||
<include>**</include>
|
||||
</includes>
|
||||
<excludes>
|
||||
<exclude>frontend-working-directory/node/**/*</exclude>
|
||||
<exclude>frontend-working-directory/node_modules/**/*</exclude>
|
||||
</excludes>
|
||||
</fileset>
|
||||
</filesets>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</profile>
|
||||
<!--
|
||||
Profile to explicitly run Selenium UI tests during build.
|
||||
-->
|
||||
|
|
|
@ -15,75 +15,111 @@
|
|||
* limitations under the License.
|
||||
*/
|
||||
|
||||
const OFF = 0; // turn the rule off
|
||||
const WARNING = 1; // turn the rule on as a warning (doesn’t affect exit code)
|
||||
const ERROR = 2; // turn the rule on as an error (exit code is 1 when triggered)
|
||||
|
||||
module.exports = {
|
||||
"extends": "eslint-config-airbnb",
|
||||
"env": {
|
||||
"browser": true,
|
||||
"es6": true,
|
||||
"jasmine": true,
|
||||
"jquery": true
|
||||
'root': true,
|
||||
'extends': 'eslint-config-airbnb-base',
|
||||
'env': {
|
||||
'browser': true,
|
||||
'es6': true,
|
||||
'jasmine': true
|
||||
},
|
||||
"parserOptions": {
|
||||
"ecmaVersion": 2017,
|
||||
"sourceType": "module"
|
||||
'parserOptions': {
|
||||
'ecmaVersion': 2017,
|
||||
'sourceType': 'module'
|
||||
},
|
||||
"parser": "@typescript-eslint/parser",
|
||||
"plugins": ["@typescript-eslint"],
|
||||
'parser': '@typescript-eslint/parser',
|
||||
'plugins': [
|
||||
'jasmine',
|
||||
'@typescript-eslint'
|
||||
],
|
||||
overrides: [
|
||||
{
|
||||
// Legacy Javascript files
|
||||
files: ['*.js'],
|
||||
rules: {
|
||||
"dot-notation": 0,
|
||||
"prefer-arrow-callback": 0,
|
||||
"no-var": 0,
|
||||
"no-redeclare": 0,
|
||||
"no-shadow": 0,
|
||||
"quote-props": 0,
|
||||
"object-shorthand": 0,
|
||||
"vars-on-top": 0,
|
||||
"no-param-reassign": 0,
|
||||
"block-scoped-var": 0,
|
||||
"prefer-destructuring": 0,
|
||||
"prefer-template": 0,
|
||||
"consistent-return": 0,
|
||||
"no-restricted-properties": 0,
|
||||
"no-use-before-define": 0,
|
||||
"object-curly-spacing": 0,
|
||||
"newline-per-chained-call": 0,
|
||||
"no-bitwise": 0,
|
||||
"no-nested-ternary": 0,
|
||||
"no-useless-escape": 0,
|
||||
"no-prototype-builtins": 0,
|
||||
'dot-notation': OFF,
|
||||
'prefer-arrow-callback': OFF,
|
||||
'no-var': OFF,
|
||||
'no-redeclare': OFF,
|
||||
'no-shadow': OFF,
|
||||
'quote-props': OFF,
|
||||
'object-shorthand': OFF,
|
||||
'vars-on-top': OFF,
|
||||
'no-param-reassign': OFF,
|
||||
'block-scoped-var': OFF,
|
||||
'prefer-destructuring': OFF,
|
||||
'prefer-template': OFF,
|
||||
'consistent-return': OFF,
|
||||
'no-restricted-properties': OFF,
|
||||
'no-use-before-define': OFF,
|
||||
'object-curly-spacing': OFF,
|
||||
'newline-per-chained-call': OFF,
|
||||
'no-bitwise': OFF,
|
||||
'no-nested-ternary': OFF,
|
||||
'no-useless-escape': OFF,
|
||||
'no-prototype-builtins': OFF,
|
||||
'arrow-body-style': OFF,
|
||||
'no-else-return': OFF,
|
||||
}
|
||||
},
|
||||
{
|
||||
// Typescript files
|
||||
files: ['*.ts'],
|
||||
rules: {
|
||||
'@typescript-eslint/no-unused-vars': [2, { args: "none" }]
|
||||
'dot-notation': OFF,
|
||||
'no-shadow': OFF,
|
||||
'no-use-before-define': OFF,
|
||||
'@typescript-eslint/no-unused-vars': [ERROR, { args: 'none' }]
|
||||
}
|
||||
},
|
||||
{
|
||||
// Test files
|
||||
files: ['*.spec.ts'],
|
||||
rules: {
|
||||
'max-classes-per-file': OFF
|
||||
}
|
||||
}
|
||||
],
|
||||
"rules": {
|
||||
'rules': {
|
||||
// Customize for all files
|
||||
"no-unused-vars": ["error", { "args": "none" }],
|
||||
"lines-between-class-members": ["error", "always", { "exceptAfterSingleLine": true }],
|
||||
"indent": ["error", 4],
|
||||
'no-unused-vars': [ERROR, { 'vars': 'all' }],
|
||||
'lines-between-class-members': [ERROR, 'always', { 'exceptAfterSingleLine': true }],
|
||||
'indent': [ERROR, 4, { 'SwitchCase': 1 }],
|
||||
'jasmine/no-focused-tests': ERROR,
|
||||
'class-methods-use-this': OFF,
|
||||
'prefer-destructuring': [ERROR, {
|
||||
'VariableDeclarator': {
|
||||
'array': false,
|
||||
'object': true
|
||||
},
|
||||
'AssignmentExpression': {
|
||||
'array': false,
|
||||
'object': false
|
||||
}
|
||||
}],
|
||||
|
||||
// Disable for all files
|
||||
"max-len": 0,
|
||||
"func-names": 0,
|
||||
"spaced-comment": 0,
|
||||
"comma-dangle": 0,
|
||||
"import/extensions": 0,
|
||||
"import/no-unresolved": 0,
|
||||
"import/no-extraneous-dependencies": 0,
|
||||
"no-plusplus": 0,
|
||||
"react/no-this-in-sfc": 0,
|
||||
"prefer-promise-reject-errors": 0,
|
||||
"object-curly-newline": 0,
|
||||
"no-restricted-globals": 0,
|
||||
"import/prefer-default-export": 0
|
||||
}
|
||||
'max-len': OFF,
|
||||
'func-names': OFF,
|
||||
'spaced-comment': OFF,
|
||||
'comma-dangle': OFF,
|
||||
'import/extensions': OFF,
|
||||
'import/no-unresolved': OFF,
|
||||
'import/no-extraneous-dependencies': OFF,
|
||||
'no-plusplus': OFF,
|
||||
'react/no-this-in-sfc': OFF,
|
||||
'prefer-promise-reject-errors': OFF,
|
||||
'object-curly-newline': OFF,
|
||||
'no-restricted-globals': OFF,
|
||||
'import/prefer-default-export': OFF,
|
||||
'linebreak-style': OFF,
|
||||
'quotes': [ERROR, 'single', { 'allowTemplateLiterals': true }],
|
||||
'no-useless-constructor': OFF,
|
||||
'no-empty-function': OFF,
|
||||
'no-underscore-dangle': ['error', { 'allowAfterThis': true }]
|
||||
},
|
||||
};
|
||||
|
|
|
@ -18,6 +18,7 @@
|
|||
/tmp
|
||||
/out-tsc
|
||||
/assets
|
||||
/.cache-loader-coverage
|
||||
nf-registry.*.min.*
|
||||
vendor.min.*
|
||||
index.html
|
||||
|
|
|
@ -16,8 +16,10 @@
|
|||
*/
|
||||
|
||||
module.exports = {
|
||||
"customSyntax": "postcss-scss",
|
||||
"extends": "stylelint-config-standard",
|
||||
"rules": {
|
||||
"alpha-value-notation": null,
|
||||
"indentation": null,
|
||||
"at-rule-no-unknown": [true, {
|
||||
"ignoreAtRules": ["/include/", "/mixin/"]
|
||||
|
@ -26,6 +28,7 @@ module.exports = {
|
|||
"selector-type-no-unknown": [true, {
|
||||
"ignoreTypes": ["/mat-/", "/flow-designer-/", "/fds-/", "/td-/"]
|
||||
}],
|
||||
"font-family-no-missing-generic-family-keyword": null
|
||||
"font-family-no-missing-generic-family-keyword": null,
|
||||
"string-quotes": "single"
|
||||
}
|
||||
};
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -17,6 +17,8 @@
|
|||
"version": "0.0.5-SNAPSHOT",
|
||||
"description": "",
|
||||
"scripts": {
|
||||
"ci": "npm ci --ignore-scripts",
|
||||
"preinstall": "npm --ignore-scripts install npm-force-resolutions && npm-force-resolutions",
|
||||
"start": "npm run watch",
|
||||
"test": "karma start karma.conf.js --single-run",
|
||||
"test:dev": "karma start karma.conf.js",
|
||||
|
@ -30,8 +32,7 @@
|
|||
"webpack:development": "./node_modules/.bin/webpack --config webpack.dev.js",
|
||||
"webpack:production": "./node_modules/.bin/webpack --config webpack.prod.js",
|
||||
"watch": "npm run webpack:development && ./node_modules/.bin/webpack-dev-server --config webpack.dev.js",
|
||||
"lint-staged": "./node_modules/.bin/lint-staged",
|
||||
"preinstall": "../../target/frontend-working-directory/node/node ../../target/frontend-working-directory/node/node_modules/npm/bin/npm-cli.js --ignore-scripts install npm-force-resolutions && ../../target/frontend-working-directory/node_modules/.bin/npm-force-resolutions"
|
||||
"lint-staged": "./node_modules/.bin/lint-staged"
|
||||
},
|
||||
"license": "Apache-2.0",
|
||||
"keywords": [],
|
||||
|
@ -41,58 +42,55 @@
|
|||
"url": "https://github.com/apache/nifi-registry"
|
||||
},
|
||||
"dependencies": {
|
||||
"@angular/animations": "8.1.1",
|
||||
"@angular/cdk": "8.1.0",
|
||||
"@angular/common": "8.1.1",
|
||||
"@angular/compiler": "8.1.1",
|
||||
"@angular/core": "8.1.1",
|
||||
"@angular/flex-layout": "8.0.0-beta.26",
|
||||
"@angular/forms": "8.1.1",
|
||||
"@angular/http": "8.0.0-beta.10",
|
||||
"@angular/material": "8.1.1",
|
||||
"@angular/platform-browser": "8.1.1",
|
||||
"@angular/platform-browser-dynamic": "8.1.1",
|
||||
"@angular/router": "8.1.1",
|
||||
"@covalent/core": "2.1.0",
|
||||
"@nifi-fds/core": "0.2.0",
|
||||
"@angular/animations": "11.2.14",
|
||||
"@angular/cdk": "11.2.13",
|
||||
"@angular/common": "11.2.14",
|
||||
"@angular/compiler": "11.2.14",
|
||||
"@angular/core": "11.2.14",
|
||||
"@angular/flex-layout": "11.0.0-beta.33",
|
||||
"@angular/forms": "11.2.14",
|
||||
"@angular/material": "11.2.13",
|
||||
"@angular/platform-browser": "11.2.14",
|
||||
"@angular/platform-browser-dynamic": "11.2.14",
|
||||
"@angular/router": "11.2.14",
|
||||
"@covalent/core": "3.1.2",
|
||||
"@nifi-fds/core": "0.3.0",
|
||||
"angular2-jwt": "0.2.3",
|
||||
"angular2-moment": "1.9.0",
|
||||
"font-awesome": "4.7.0",
|
||||
"hammerjs": "2.0.8",
|
||||
"jquery": "3.5.1",
|
||||
"moment": "2.22.1",
|
||||
"npm-force-resolutions": "0.0.3",
|
||||
"querystring": "0.2.0",
|
||||
"reset-css": "4.0.1",
|
||||
"roboto-fontface": "0.10.0",
|
||||
"rxjs": "6.5.2",
|
||||
"rxjs": "6.6.7",
|
||||
"superagent": "3.8.3",
|
||||
"tslib": "1.8.0",
|
||||
"zone.js": "0.9.0"
|
||||
"zone.js": "0.11.4"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/core": "7.4.4",
|
||||
"@babel/preset-env": "7.4.4",
|
||||
"@babel/runtime": "7.4.4",
|
||||
"@typescript-eslint/eslint-plugin": "1.6.0",
|
||||
"babel-loader": "8.0.5",
|
||||
"@typescript-eslint/eslint-plugin": "5.10.0",
|
||||
"@typescript-eslint/parser": "5.10.0",
|
||||
"babel-loader": "8.0.6",
|
||||
"babel-plugin-istanbul": "5.1.4",
|
||||
"babel-polyfill": "6.26.0",
|
||||
"cache-loader": "3.0.0",
|
||||
"compression-webpack-plugin": "3.0.1",
|
||||
"css-loader": "2.1.1",
|
||||
"dtsgenerator": "2.0.6",
|
||||
"eslint": "5.14.1",
|
||||
"eslint-config-airbnb": "17.1.0",
|
||||
"eslint-plugin-import": "2.16.0",
|
||||
"eslint-plugin-jsx-a11y": "6.2.1",
|
||||
"eslint-plugin-react": "7.12.4",
|
||||
"file-loader": "3.0.1",
|
||||
"cache-loader": "4.0.1",
|
||||
"compression-webpack-plugin": "6.1.1",
|
||||
"css-loader": "5.2.7",
|
||||
"dtsgenerator": "2.0.8",
|
||||
"eslint": "8.7.0",
|
||||
"eslint-config-airbnb-base": "15.0.0",
|
||||
"eslint-plugin-import": "2.25.4",
|
||||
"eslint-plugin-jasmine": "4.1.3",
|
||||
"file-loader": "4.0.0",
|
||||
"html-loader": "0.5.5",
|
||||
"html-webpack-plugin": "3.2.0",
|
||||
"istanbul-instrumenter-loader": "3.0.1",
|
||||
"jasmine-core": "3.3.0",
|
||||
"karma": "5.0.4",
|
||||
"jasmine": "3.4.0",
|
||||
"karma": "5.2.3",
|
||||
"karma-chrome-launcher": "2.2.0",
|
||||
"karma-cli": "2.0.0",
|
||||
"karma-coverage": "2.0.2",
|
||||
|
@ -102,36 +100,36 @@
|
|||
"karma-spec-reporter": "0.0.32",
|
||||
"karma-webpack": "4.0.2",
|
||||
"license-webpack-plugin": "2.1.1",
|
||||
"lint-staged": "8.1.7",
|
||||
"mini-css-extract-plugin": "0.6.0",
|
||||
"node-sass": "4.13.1",
|
||||
"null-loader": "2.0.0",
|
||||
"optimize-css-assets-webpack-plugin": "5.0.1",
|
||||
"protractor": "5.4.0",
|
||||
"lint-staged": "12.2.2",
|
||||
"mini-css-extract-plugin": "0.12.0",
|
||||
"npm-force-resolutions": "0.0.10",
|
||||
"null-loader": "3.0.0",
|
||||
"optimize-css-assets-webpack-plugin": "6.0.1",
|
||||
"sass": "1.32.0",
|
||||
"sass-loader": "7.1.0",
|
||||
"style-loader": "0.23.1",
|
||||
"stylelint": "13.3.3",
|
||||
"stylelint-config-standard": "18.2.0",
|
||||
"terser-webpack-plugin": "2.3.1",
|
||||
"ts-loader": "5.4.4",
|
||||
"typescript": "3.3.4000",
|
||||
"stylelint": "14.2.0",
|
||||
"stylelint-config-standard-scss": "3.0.0",
|
||||
"terser-webpack-plugin": "1.4.5",
|
||||
"ts-loader": "6.0.4",
|
||||
"typescript": "3.5.3",
|
||||
"url-loader": "1.1.2",
|
||||
"webpack": "4.29.6",
|
||||
"webpack-cli": "3.3.11",
|
||||
"webpack-dev-server": "3.11.0",
|
||||
"webpack-fix-style-only-entries": "0.2.1",
|
||||
"webpack-merge": "4.2.1"
|
||||
"webpack": "4.46.0",
|
||||
"webpack-cli": "4.9.1",
|
||||
"webpack-dev-server": "4.7.3",
|
||||
"webpack-fix-style-only-entries": "0.6.1",
|
||||
"webpack-merge": "4.2.2"
|
||||
},
|
||||
"bundleDependencies": [],
|
||||
"private": true,
|
||||
"engines": {
|
||||
"node": "=10.16.3",
|
||||
"npm": "=6.9.0"
|
||||
"node": ">=16.13.2",
|
||||
"npm": ">=8.1.2"
|
||||
},
|
||||
"resolutions": {
|
||||
"minimist": "1.2.5",
|
||||
"kind-of": "6.0.3",
|
||||
"yargs-parser": "18.1.3",
|
||||
"http-proxy": "1.18.1"
|
||||
"glob-parent": "6.0.2",
|
||||
"trim-newlines": "3.0.1",
|
||||
"node-fetch": "3.2.0",
|
||||
"ua-parser-js": "0.7.24"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -203,35 +203,14 @@
|
|||
|
||||
|
||||
This product bundles '@angular/animations' which is available under a(n) MIT license.
|
||||
|
||||
The MIT License
|
||||
|
||||
Copyright (c) 2010-2019 Google LLC. http://angular.io/license
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
*** No license text found ***
|
||||
|
||||
|
||||
This product bundles '@angular/cdk' which is available under a(n) MIT license.
|
||||
|
||||
The MIT License
|
||||
|
||||
Copyright (c) 2019 Google LLC.
|
||||
Copyright (c) 2021 Google LLC.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
|
@ -253,85 +232,22 @@ This product bundles '@angular/cdk' which is available under a(n) MIT license.
|
|||
|
||||
|
||||
This product bundles '@angular/common' which is available under a(n) MIT license.
|
||||
|
||||
The MIT License
|
||||
|
||||
Copyright (c) 2010-2019 Google LLC. http://angular.io/license
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
*** No license text found ***
|
||||
|
||||
|
||||
This product bundles '@angular/compiler' which is available under a(n) MIT license.
|
||||
|
||||
The MIT License
|
||||
|
||||
Copyright (c) 2010-2019 Google LLC. http://angular.io/license
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
*** No license text found ***
|
||||
|
||||
|
||||
This product bundles '@angular/core' which is available under a(n) MIT license.
|
||||
|
||||
The MIT License
|
||||
|
||||
Copyright (c) 2010-2019 Google LLC. http://angular.io/license
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
*** No license text found ***
|
||||
|
||||
|
||||
This product bundles '@angular/flex-layout' which is available under a(n) MIT license.
|
||||
|
||||
The MIT License
|
||||
|
||||
Copyright (c) 2019 Google LLC.
|
||||
Copyright (c) 2020 Google LLC.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
|
@ -352,36 +268,30 @@ This product bundles '@angular/flex-layout' which is available under a(n) MIT li
|
|||
THE SOFTWARE.
|
||||
|
||||
|
||||
This product bundles 'tslib' which is available under a(n) 0BSD license.
|
||||
|
||||
Copyright (c) Microsoft Corporation.
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
||||
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
||||
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
||||
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
This product bundles '@angular/forms' which is available under a(n) MIT license.
|
||||
|
||||
The MIT License
|
||||
|
||||
Copyright (c) 2010-2019 Google LLC. http://angular.io/license
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
*** No license text found ***
|
||||
|
||||
|
||||
This product bundles '@angular/material' which is available under a(n) MIT license.
|
||||
|
||||
The MIT License
|
||||
|
||||
Copyright (c) 2019 Google LLC.
|
||||
Copyright (c) 2021 Google LLC.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
|
@ -403,101 +313,23 @@ This product bundles '@angular/material' which is available under a(n) MIT licen
|
|||
|
||||
|
||||
This product bundles '@angular/platform-browser-dynamic' which is available under a(n) MIT license.
|
||||
|
||||
The MIT License
|
||||
|
||||
Copyright (c) 2010-2019 Google LLC. http://angular.io/license
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
*** No license text found ***
|
||||
|
||||
|
||||
This product bundles '@angular/platform-browser' which is available under a(n) MIT license.
|
||||
|
||||
The MIT License
|
||||
|
||||
Copyright (c) 2010-2019 Google LLC. http://angular.io/license
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
*** No license text found ***
|
||||
|
||||
|
||||
This product bundles '@angular/router' which is available under a(n) MIT license.
|
||||
|
||||
The MIT License
|
||||
|
||||
Copyright (c) 2010-2019 Google LLC. http://angular.io/license
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
*** No license text found ***
|
||||
|
||||
|
||||
This product bundles '@covalent/core' which is available under a(n) MIT license.
|
||||
*** No license text found ***
|
||||
|
||||
Copyright (c) 2016 by Teradata. All rights reserved. https://teradata.com
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
This product bundles '@nifi-fds/core' which is available under a(n) Apache-2.0 license.
|
||||
*** No license text found ***
|
||||
|
||||
|
||||
This product bundles 'angular2-moment' which is available under a(n) MIT license.
|
||||
|
@ -571,30 +403,7 @@ This product bundles 'console-browserify' which is available under a(n) MIT lice
|
|||
|
||||
This product bundles 'core-js' which is available under a(n) MIT license.
|
||||
|
||||
Copyright (c) 2014-2018 Denis Pushkarev
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
|
||||
|
||||
This product bundles 'date-now' which is available under a(n) MIT license.
|
||||
|
||||
Copyright (c) 2012 Colingo.
|
||||
Copyright (c) 2014-2020 Denis Pushkarev
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
|
@ -616,86 +425,7 @@ This product bundles 'date-now' which is available under a(n) MIT license.
|
|||
|
||||
|
||||
This product bundles 'font-awesome' which is available under a(n) (OFL-1.1 AND MIT) license.
|
||||
|
||||
Font Awesome Free License
|
||||
-------------------------
|
||||
|
||||
Font Awesome Free is free, open source, and GPL friendly. You can use it for
|
||||
commercial projects, open source projects, or really almost whatever you want.
|
||||
Full Font Awesome Free license: https://fontawesome.com/license/free.
|
||||
|
||||
# Icons: CC BY 4.0 License (https://creativecommons.org/licenses/by/4.0/)
|
||||
In the Font Awesome Free download, the CC BY 4.0 license applies to all icons
|
||||
packaged as SVG and JS file types.
|
||||
|
||||
# Fonts: SIL OFL 1.1 License (https://scripts.sil.org/OFL)
|
||||
In the Font Awesome Free download, the SIL OFL license applies to all icons
|
||||
packaged as web and desktop font files.
|
||||
|
||||
# Code: MIT License (https://opensource.org/licenses/MIT)
|
||||
In the Font Awesome Free download, the MIT license applies to all non-font and
|
||||
non-icon files.
|
||||
|
||||
# Attribution
|
||||
Attribution is required by MIT, SIL OFL, and CC BY licenses. Downloaded Font
|
||||
Awesome Free files already contain embedded comments with sufficient
|
||||
attribution, so you shouldn't need to do anything additional when using these
|
||||
files normally.
|
||||
|
||||
We've kept attribution comments terse, so we ask that you do not actively work
|
||||
to remove them from files, especially code. They're a great way for folks to
|
||||
learn about Font Awesome.
|
||||
|
||||
# Brand Icons
|
||||
All brand icons are trademarks of their respective owners. The use of these
|
||||
trademarks does not indicate endorsement of the trademark holder by Font
|
||||
Awesome, nor vice versa. **Please do not use brand logos for any purpose except
|
||||
to represent the company, product, or service to which they refer.**
|
||||
|
||||
|
||||
This product bundles 'hammerjs' which is available under a(n) MIT license.
|
||||
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (C) 2011-2014 by Jorik Tangelder (Eight Media)
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
|
||||
|
||||
This product bundles 'inherits' which is available under a(n) ISC license.
|
||||
|
||||
The ISC License
|
||||
|
||||
Copyright (c) Isaac Z. Schlueter
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted, provided that the above
|
||||
copyright notice and this permission notice appear in all copies.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
||||
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||
FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
||||
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
||||
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
*** No license text found ***
|
||||
|
||||
|
||||
This product bundles 'jquery' which is available under a(n) MIT license.
|
||||
|
@ -748,6 +478,31 @@ This product bundles 'moment' which is available under a(n) MIT license.
|
|||
OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
|
||||
This product bundles 'object-assign' which is available under a(n) MIT license.
|
||||
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
|
||||
|
||||
This product bundles 'process' which is available under a(n) MIT license.
|
||||
|
||||
(The MIT License)
|
||||
|
@ -774,6 +529,232 @@ This product bundles 'process' which is available under a(n) MIT license.
|
|||
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
|
||||
This product bundles 'rxjs' which is available under a(n) Apache-2.0 license.
|
||||
|
||||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright (c) 2015-2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
|
||||
|
||||
|
||||
This product bundles 'inherits' which is available under a(n) ISC license.
|
||||
|
||||
The ISC License
|
||||
|
||||
Copyright (c) Isaac Z. Schlueter
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted, provided that the above
|
||||
copyright notice and this permission notice appear in all copies.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
||||
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||
FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
||||
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
||||
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
|
||||
|
||||
This product bundles 'util' which is available under a(n) MIT license.
|
||||
|
||||
Copyright Joyent, Inc. and other Node contributors. All rights reserved.
|
||||
|
@ -824,7 +805,7 @@ This product bundles 'zone.js' which is available under a(n) MIT license.
|
|||
|
||||
The MIT License
|
||||
|
||||
Copyright (c) 2016-2018 Google, Inc.
|
||||
Copyright (c) 2010-2020 Google LLC. https://angular.io/license
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
|
|
|
@ -20,7 +20,7 @@ import NfRegistryApi from 'services/nf-registry.api';
|
|||
import { Component } from '@angular/core';
|
||||
import { FdsDialogService, FdsSnackBarService } from '@nifi-fds/core';
|
||||
import NfRegistryService from 'services/nf-registry.service';
|
||||
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';
|
||||
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
|
||||
|
||||
/**
|
||||
* NfRegistryAddUserToGroups constructor.
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
import { Component, ViewChild } from '@angular/core';
|
||||
import NfRegistryService from 'services/nf-registry.service';
|
||||
import NfRegistryApi from 'services/nf-registry.api';
|
||||
import { MatDialogRef } from '@angular/material';
|
||||
import { MatDialogRef } from '@angular/material/dialog';
|
||||
import { FdsSnackBarService } from '@nifi-fds/core';
|
||||
|
||||
/**
|
||||
|
|
|
@ -28,7 +28,8 @@ describe('NfRegistryAddUser Component isolated unit tests', function () {
|
|||
beforeEach(function () {
|
||||
nfRegistryService = new NfRegistryService();
|
||||
nfRegistryApi = new NfRegistryApi();
|
||||
comp = new NfRegistryAddUser(nfRegistryApi,
|
||||
comp = new NfRegistryAddUser(
|
||||
nfRegistryApi,
|
||||
nfRegistryService,
|
||||
{
|
||||
openCoaster: function () {
|
||||
|
@ -37,7 +38,8 @@ describe('NfRegistryAddUser Component isolated unit tests', function () {
|
|||
{
|
||||
close: function () {
|
||||
}
|
||||
});
|
||||
}
|
||||
);
|
||||
|
||||
// Spy
|
||||
spyOn(nfRegistryApi, 'addUser').and.callFake(function () {
|
||||
|
|
|
@ -20,7 +20,7 @@ import NfRegistryApi from 'services/nf-registry.api';
|
|||
import { Component } from '@angular/core';
|
||||
import { FdsDialogService, FdsSnackBarService } from '@nifi-fds/core';
|
||||
import NfRegistryService from 'services/nf-registry.service';
|
||||
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material';
|
||||
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
|
||||
|
||||
/**
|
||||
* NfRegistryAddUsersToGroup constructor.
|
||||
|
|
|
@ -19,7 +19,7 @@ import NfRegistryApi from 'services/nf-registry.api';
|
|||
import { Component, ViewChild } from '@angular/core';
|
||||
import { FdsSnackBarService } from '@nifi-fds/core';
|
||||
import NfRegistryService from 'services/nf-registry.service';
|
||||
import { MatDialogRef } from '@angular/material';
|
||||
import { MatDialogRef } from '@angular/material/dialog';
|
||||
|
||||
/**
|
||||
* NfRegistryCreateNewGroup constructor.
|
||||
|
|
|
@ -28,15 +28,18 @@ describe('NfRegistryCreateNewGroup Component isolated unit tests', function () {
|
|||
beforeEach(function () {
|
||||
nfRegistryService = new NfRegistryService();
|
||||
nfRegistryApi = new NfRegistryApi();
|
||||
comp = new NfRegistryCreateNewGroup(nfRegistryApi, {
|
||||
openCoaster: function () {
|
||||
comp = new NfRegistryCreateNewGroup(
|
||||
nfRegistryApi,
|
||||
{
|
||||
openCoaster: function () {
|
||||
}
|
||||
},
|
||||
nfRegistryService,
|
||||
{
|
||||
close: function () {
|
||||
}
|
||||
}
|
||||
},
|
||||
nfRegistryService,
|
||||
{
|
||||
close: function () {
|
||||
}
|
||||
});
|
||||
);
|
||||
|
||||
// Spy
|
||||
spyOn(nfRegistryApi, 'createNewGroup').and.callFake(function () {
|
||||
|
|
|
@ -20,7 +20,7 @@ import { Component } from '@angular/core';
|
|||
import NfRegistryService from 'services/nf-registry.service';
|
||||
import { ActivatedRoute, Router } from '@angular/router';
|
||||
import NfRegistryApi from 'services/nf-registry.api';
|
||||
import { MatDialog } from '@angular/material';
|
||||
import { MatDialog } from '@angular/material/dialog';
|
||||
import nfRegistryAnimations from 'nf-registry.animations';
|
||||
import NfStorage from 'services/nf-storage.service';
|
||||
import NfRegistryCreateNewGroup from 'components/administration/users/dialogs/create-new-group/nf-registry-create-new-group';
|
||||
|
@ -62,7 +62,7 @@ NfRegistryUsersAdministration.prototype = {
|
|||
this.nfRegistryService.inProgress = true;
|
||||
this.$subscription = this.route.params
|
||||
.pipe(
|
||||
switchMap(function (params) {
|
||||
switchMap(function () {
|
||||
self.nfRegistryService.adminPerspective = 'users';
|
||||
return forkJoin(
|
||||
self.nfRegistryApi.getUsers(),
|
||||
|
|
|
@ -21,7 +21,7 @@ import { Component } from '@angular/core';
|
|||
import NfRegistryService from 'services/nf-registry.service';
|
||||
import { ActivatedRoute, Router } from '@angular/router';
|
||||
import NfRegistryApi from 'services/nf-registry.api';
|
||||
import { MatDialog } from '@angular/material';
|
||||
import { MatDialog } from '@angular/material/dialog';
|
||||
import NfRegistryAddUsersToGroup from 'components/administration/users/dialogs/add-users-to-group/nf-registry-add-users-to-group';
|
||||
import { switchMap } from 'rxjs/operators';
|
||||
|
||||
|
@ -88,7 +88,7 @@ NfRegistryManageGroup.prototype = {
|
|||
self.nfRegistryService.sidenav.open();
|
||||
self.nfRegistryService.group = response;
|
||||
self.groupname = response.identity;
|
||||
self.sortUsers(self.usersColumns.find(usersColumn => usersColumn.active === true));
|
||||
self.sortUsers(self.usersColumns.find((usersColumn) => usersColumn.active === true));
|
||||
} else if (response.status === 404) {
|
||||
self.router.navigateByUrl('administration/users');
|
||||
} else if (response.status === 409) {
|
||||
|
@ -144,8 +144,14 @@ NfRegistryManageGroup.prototype = {
|
|||
} else {
|
||||
// resource exists, let's update it
|
||||
policy.userGroups.push(self.nfRegistryService.group);
|
||||
self.nfRegistryApi.putPolicyActionResource(policy.identifier, policy.action,
|
||||
policy.resource, policy.users, policy.userGroups, policy.revision).subscribe(
|
||||
self.nfRegistryApi.putPolicyActionResource(
|
||||
policy.identifier,
|
||||
policy.action,
|
||||
policy.resource,
|
||||
policy.users,
|
||||
policy.userGroups,
|
||||
policy.revision
|
||||
).subscribe(
|
||||
function (response) {
|
||||
// can manage buckets privileges updated!!!...now update the view
|
||||
response.userGroups.forEach(function (group) {
|
||||
|
@ -178,9 +184,15 @@ NfRegistryManageGroup.prototype = {
|
|||
policy.userGroups = policy.userGroups.filter(function (group) {
|
||||
return (group.identifier !== self.nfRegistryService.group.identifier);
|
||||
});
|
||||
self.nfRegistryApi.putPolicyActionResource(policy.identifier, policy.action,
|
||||
policy.resource, policy.users, policy.userGroups, policy.revision).subscribe(
|
||||
function (response) {
|
||||
self.nfRegistryApi.putPolicyActionResource(
|
||||
policy.identifier,
|
||||
policy.action,
|
||||
policy.resource,
|
||||
policy.users,
|
||||
policy.userGroups,
|
||||
policy.revision
|
||||
).subscribe(
|
||||
function () {
|
||||
// can manage buckets privileges updated!!!...now update the view
|
||||
self.nfRegistryApi.getUserGroup(self.nfRegistryService.group.identifier).subscribe(function (response) {
|
||||
self.nfRegistryService.group = response;
|
||||
|
@ -228,8 +240,14 @@ NfRegistryManageGroup.prototype = {
|
|||
} else {
|
||||
// resource exists, let's update it
|
||||
policy.userGroups.push(self.nfRegistryService.group);
|
||||
self.nfRegistryApi.putPolicyActionResource(policy.identifier, policy.action,
|
||||
policy.resource, policy.users, policy.userGroups, policy.revision).subscribe(
|
||||
self.nfRegistryApi.putPolicyActionResource(
|
||||
policy.identifier,
|
||||
policy.action,
|
||||
policy.resource,
|
||||
policy.users,
|
||||
policy.userGroups,
|
||||
policy.revision
|
||||
).subscribe(
|
||||
function (response) {
|
||||
// can manage tenants privileges updated!!!...now update the view
|
||||
response.userGroups.forEach(function (group) {
|
||||
|
@ -262,9 +280,15 @@ NfRegistryManageGroup.prototype = {
|
|||
policy.userGroups = policy.userGroups.filter(function (group) {
|
||||
return (group.identifier !== self.nfRegistryService.group.identifier);
|
||||
});
|
||||
self.nfRegistryApi.putPolicyActionResource(policy.identifier, policy.action,
|
||||
policy.resource, policy.users, policy.userGroups, policy.revision).subscribe(
|
||||
function (response) {
|
||||
self.nfRegistryApi.putPolicyActionResource(
|
||||
policy.identifier,
|
||||
policy.action,
|
||||
policy.resource,
|
||||
policy.users,
|
||||
policy.userGroups,
|
||||
policy.revision
|
||||
).subscribe(
|
||||
function () {
|
||||
// can manage tenants privileges updated!!!...now update the view
|
||||
self.nfRegistryApi.getUserGroup(self.nfRegistryService.group.identifier).subscribe(function (response) {
|
||||
self.nfRegistryService.group = response;
|
||||
|
@ -312,8 +336,14 @@ NfRegistryManageGroup.prototype = {
|
|||
} else {
|
||||
// resource exists, let's update it
|
||||
policy.userGroups.push(self.nfRegistryService.group);
|
||||
self.nfRegistryApi.putPolicyActionResource(policy.identifier, policy.action,
|
||||
policy.resource, policy.users, policy.userGroups, policy.revision).subscribe(
|
||||
self.nfRegistryApi.putPolicyActionResource(
|
||||
policy.identifier,
|
||||
policy.action,
|
||||
policy.resource,
|
||||
policy.users,
|
||||
policy.userGroups,
|
||||
policy.revision
|
||||
).subscribe(
|
||||
function (response) {
|
||||
// can manage policies privileges updated!!!...now update the view
|
||||
response.userGroups.forEach(function (group) {
|
||||
|
@ -346,9 +376,15 @@ NfRegistryManageGroup.prototype = {
|
|||
policy.userGroups = policy.userGroups.filter(function (group) {
|
||||
return (group.identifier !== self.nfRegistryService.group.identifier);
|
||||
});
|
||||
self.nfRegistryApi.putPolicyActionResource(policy.identifier, policy.action,
|
||||
policy.resource, policy.users, policy.userGroups, policy.revision).subscribe(
|
||||
function (response) {
|
||||
self.nfRegistryApi.putPolicyActionResource(
|
||||
policy.identifier,
|
||||
policy.action,
|
||||
policy.resource,
|
||||
policy.users,
|
||||
policy.userGroups,
|
||||
policy.revision
|
||||
).subscribe(
|
||||
function () {
|
||||
// can manage policies privileges updated!!!...now update the view
|
||||
self.nfRegistryApi.getUserGroup(self.nfRegistryService.group.identifier).subscribe(function (response) {
|
||||
self.nfRegistryService.group = response;
|
||||
|
@ -396,8 +432,14 @@ NfRegistryManageGroup.prototype = {
|
|||
} else {
|
||||
// resource exists, let's update it
|
||||
policy.userGroups.push(self.nfRegistryService.group);
|
||||
self.nfRegistryApi.putPolicyActionResource(policy.identifier, policy.action,
|
||||
policy.resource, policy.users, policy.userGroups, policy.revision).subscribe(
|
||||
self.nfRegistryApi.putPolicyActionResource(
|
||||
policy.identifier,
|
||||
policy.action,
|
||||
policy.resource,
|
||||
policy.users,
|
||||
policy.userGroups,
|
||||
policy.revision
|
||||
).subscribe(
|
||||
function (response) {
|
||||
// can manage proxy privileges updated!!!...now update the view
|
||||
response.userGroups.forEach(function (group) {
|
||||
|
@ -430,9 +472,15 @@ NfRegistryManageGroup.prototype = {
|
|||
policy.userGroups = policy.userGroups.filter(function (group) {
|
||||
return (group.identifier !== self.nfRegistryService.group.identifier);
|
||||
});
|
||||
self.nfRegistryApi.putPolicyActionResource(policy.identifier, policy.action,
|
||||
policy.resource, policy.users, policy.userGroups, policy.revision).subscribe(
|
||||
function (response) {
|
||||
self.nfRegistryApi.putPolicyActionResource(
|
||||
policy.identifier,
|
||||
policy.action,
|
||||
policy.resource,
|
||||
policy.users,
|
||||
policy.userGroups,
|
||||
policy.revision
|
||||
).subscribe(
|
||||
function () {
|
||||
// can manage proxy privileges updated!!!...now update the view
|
||||
self.nfRegistryApi.getUserGroup(self.nfRegistryService.group.identifier).subscribe(function (response) {
|
||||
self.nfRegistryService.group = response;
|
||||
|
@ -630,7 +678,7 @@ NfRegistryManageGroup.prototype = {
|
|||
message: response.error,
|
||||
acceptButton: 'Ok',
|
||||
acceptButtonColor: 'fds-warn'
|
||||
}).afterClosed().subscribe(function (accept) {
|
||||
}).afterClosed().subscribe(function () {
|
||||
self.nfRegistryApi.getUserGroup(self.nfRegistryService.group.identifier)
|
||||
.subscribe(function (response) {
|
||||
if (!response.status || response.status === 200) {
|
||||
|
|
|
@ -21,7 +21,7 @@ import { Component } from '@angular/core';
|
|||
import NfRegistryService from 'services/nf-registry.service';
|
||||
import { ActivatedRoute, Router } from '@angular/router';
|
||||
import NfRegistryApi from 'services/nf-registry.api';
|
||||
import { MatDialog } from '@angular/material';
|
||||
import { MatDialog } from '@angular/material/dialog';
|
||||
import NfRegistryAddUserToGroups from 'components/administration/users/dialogs/add-user-to-groups/nf-registry-add-user-to-groups';
|
||||
import { switchMap } from 'rxjs/operators';
|
||||
|
||||
|
@ -88,7 +88,7 @@ NfRegistryManageUser.prototype = {
|
|||
self.nfRegistryService.sidenav.open();
|
||||
self.nfRegistryService.user = response;
|
||||
self.username = response.identity;
|
||||
self.sortGroups(self.userGroupsColumns.find(userGroupsColumn => userGroupsColumn.active === true));
|
||||
self.sortGroups(self.userGroupsColumns.find((userGroupsColumn) => userGroupsColumn.active === true));
|
||||
} else if (response.status === 404) {
|
||||
self.router.navigateByUrl('administration/users');
|
||||
} else if (response.status === 409) {
|
||||
|
@ -144,8 +144,14 @@ NfRegistryManageUser.prototype = {
|
|||
} else {
|
||||
// resource exists, let's update it
|
||||
policy.users.push(self.nfRegistryService.user);
|
||||
self.nfRegistryApi.putPolicyActionResource(policy.identifier, policy.action,
|
||||
policy.resource, policy.users, policy.userGroups, policy.revision).subscribe(
|
||||
self.nfRegistryApi.putPolicyActionResource(
|
||||
policy.identifier,
|
||||
policy.action,
|
||||
policy.resource,
|
||||
policy.users,
|
||||
policy.userGroups,
|
||||
policy.revision
|
||||
).subscribe(
|
||||
function (response) {
|
||||
// can manage buckets privileges updated!!!...now update the view
|
||||
response.users.forEach(function (user) {
|
||||
|
@ -178,9 +184,15 @@ NfRegistryManageUser.prototype = {
|
|||
policy.users = policy.users.filter(function (user) {
|
||||
return (user.identifier !== self.nfRegistryService.user.identifier);
|
||||
});
|
||||
self.nfRegistryApi.putPolicyActionResource(policy.identifier, policy.action,
|
||||
policy.resource, policy.users, policy.userGroups, policy.revision).subscribe(
|
||||
function (response) {
|
||||
self.nfRegistryApi.putPolicyActionResource(
|
||||
policy.identifier,
|
||||
policy.action,
|
||||
policy.resource,
|
||||
policy.users,
|
||||
policy.userGroups,
|
||||
policy.revision
|
||||
).subscribe(
|
||||
function () {
|
||||
// can manage buckets privileges updated!!!...now update the view
|
||||
self.nfRegistryApi.getUser(self.nfRegistryService.user.identifier).subscribe(function (response) {
|
||||
self.nfRegistryService.user = response;
|
||||
|
@ -228,8 +240,14 @@ NfRegistryManageUser.prototype = {
|
|||
} else {
|
||||
// resource exists, let's update it
|
||||
policy.users.push(self.nfRegistryService.user);
|
||||
self.nfRegistryApi.putPolicyActionResource(policy.identifier, policy.action,
|
||||
policy.resource, policy.users, policy.userGroups, policy.revision).subscribe(
|
||||
self.nfRegistryApi.putPolicyActionResource(
|
||||
policy.identifier,
|
||||
policy.action,
|
||||
policy.resource,
|
||||
policy.users,
|
||||
policy.userGroups,
|
||||
policy.revision
|
||||
).subscribe(
|
||||
function (response) {
|
||||
// can manage tenants privileges updated!!!...now update the view
|
||||
response.users.forEach(function (user) {
|
||||
|
@ -262,9 +280,15 @@ NfRegistryManageUser.prototype = {
|
|||
policy.users = policy.users.filter(function (user) {
|
||||
return (user.identifier !== self.nfRegistryService.user.identifier);
|
||||
});
|
||||
self.nfRegistryApi.putPolicyActionResource(policy.identifier, policy.action,
|
||||
policy.resource, policy.users, policy.userGroups, policy.revision).subscribe(
|
||||
function (response) {
|
||||
self.nfRegistryApi.putPolicyActionResource(
|
||||
policy.identifier,
|
||||
policy.action,
|
||||
policy.resource,
|
||||
policy.users,
|
||||
policy.userGroups,
|
||||
policy.revision
|
||||
).subscribe(
|
||||
function () {
|
||||
// can manage tenants privileges updated!!!...now update the view
|
||||
self.nfRegistryApi.getUser(self.nfRegistryService.user.identifier).subscribe(function (response) {
|
||||
self.nfRegistryService.user = response;
|
||||
|
@ -312,8 +336,14 @@ NfRegistryManageUser.prototype = {
|
|||
} else {
|
||||
// resource exists, let's update it
|
||||
policy.users.push(self.nfRegistryService.user);
|
||||
self.nfRegistryApi.putPolicyActionResource(policy.identifier, policy.action,
|
||||
policy.resource, policy.users, policy.userGroups, policy.revision).subscribe(
|
||||
self.nfRegistryApi.putPolicyActionResource(
|
||||
policy.identifier,
|
||||
policy.action,
|
||||
policy.resource,
|
||||
policy.users,
|
||||
policy.userGroups,
|
||||
policy.revision
|
||||
).subscribe(
|
||||
function (response) {
|
||||
// can manage policies privileges updated!!!...now update the view
|
||||
response.users.forEach(function (user) {
|
||||
|
@ -346,9 +376,15 @@ NfRegistryManageUser.prototype = {
|
|||
policy.users = policy.users.filter(function (user) {
|
||||
return (user.identifier !== self.nfRegistryService.user.identifier);
|
||||
});
|
||||
self.nfRegistryApi.putPolicyActionResource(policy.identifier, policy.action,
|
||||
policy.resource, policy.users, policy.userGroups, policy.revision).subscribe(
|
||||
function (response) {
|
||||
self.nfRegistryApi.putPolicyActionResource(
|
||||
policy.identifier,
|
||||
policy.action,
|
||||
policy.resource,
|
||||
policy.users,
|
||||
policy.userGroups,
|
||||
policy.revision
|
||||
).subscribe(
|
||||
function () {
|
||||
// can manage policies privileges updated!!!...now update the view
|
||||
self.nfRegistryApi.getUser(self.nfRegistryService.user.identifier).subscribe(function (response) {
|
||||
self.nfRegistryService.user = response;
|
||||
|
@ -396,8 +432,14 @@ NfRegistryManageUser.prototype = {
|
|||
} else {
|
||||
// resource exists, let's update it
|
||||
policy.users.push(self.nfRegistryService.user);
|
||||
self.nfRegistryApi.putPolicyActionResource(policy.identifier, policy.action,
|
||||
policy.resource, policy.users, policy.userGroups, policy.revision).subscribe(
|
||||
self.nfRegistryApi.putPolicyActionResource(
|
||||
policy.identifier,
|
||||
policy.action,
|
||||
policy.resource,
|
||||
policy.users,
|
||||
policy.userGroups,
|
||||
policy.revision
|
||||
).subscribe(
|
||||
function (response) {
|
||||
// can manage proxy privileges updated!!!...now update the view
|
||||
response.users.forEach(function (user) {
|
||||
|
@ -430,9 +472,15 @@ NfRegistryManageUser.prototype = {
|
|||
policy.users = policy.users.filter(function (user) {
|
||||
return (user.identifier !== self.nfRegistryService.user.identifier);
|
||||
});
|
||||
self.nfRegistryApi.putPolicyActionResource(policy.identifier, policy.action,
|
||||
policy.resource, policy.users, policy.userGroups, policy.revision).subscribe(
|
||||
function (response) {
|
||||
self.nfRegistryApi.putPolicyActionResource(
|
||||
policy.identifier,
|
||||
policy.action,
|
||||
policy.resource,
|
||||
policy.users,
|
||||
policy.userGroups,
|
||||
policy.revision
|
||||
).subscribe(
|
||||
function () {
|
||||
// administrator privileges updated!!!...now update the view
|
||||
self.nfRegistryApi.getUser(self.nfRegistryService.user.identifier).subscribe(function (response) {
|
||||
self.nfRegistryService.user = response;
|
||||
|
@ -637,7 +685,7 @@ NfRegistryManageUser.prototype = {
|
|||
message: response.error,
|
||||
acceptButton: 'Ok',
|
||||
acceptButtonColor: 'fds-warn'
|
||||
}).afterClosed().subscribe(function (accept) {
|
||||
}).afterClosed().subscribe(function () {
|
||||
self.nfRegistryApi.getUser(self.nfRegistryService.user.identifier)
|
||||
.subscribe(function (response) {
|
||||
if (!response.status || response.status === 200) {
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
import { Component, ViewChild } from '@angular/core';
|
||||
import NfRegistryService from 'services/nf-registry.service';
|
||||
import NfRegistryApi from 'services/nf-registry.api';
|
||||
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';
|
||||
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
|
||||
import { ActivatedRoute } from '@angular/router';
|
||||
import { TdDataTableService } from '@covalent/core/data-table';
|
||||
import { FdsSnackBarService } from '@nifi-fds/core';
|
||||
|
@ -66,7 +66,7 @@ NfRegistryAddPolicyToBucket.prototype = {
|
|||
var self = this;
|
||||
this.route.params
|
||||
.pipe(
|
||||
switchMap(function (params) {
|
||||
switchMap(function () {
|
||||
return forkJoin(
|
||||
self.nfRegistryApi.getUsers(),
|
||||
self.nfRegistryApi.getUserGroups()
|
||||
|
@ -176,7 +176,7 @@ NfRegistryAddPolicyToBucket.prototype = {
|
|||
}
|
||||
|
||||
self.nfRegistryApi.postPolicyActionResource(action, resource + '/' + self.nfRegistryService.bucket.identifier, users, groups).subscribe(
|
||||
function (response) {
|
||||
function () {
|
||||
// policy created!!!...now update the view
|
||||
self.nfRegistryApi.getBucket(self.nfRegistryService.bucket.identifier).subscribe(function (response) {
|
||||
self.nfRegistryService.bucket = response;
|
||||
|
@ -199,9 +199,15 @@ NfRegistryAddPolicyToBucket.prototype = {
|
|||
} else {
|
||||
policy.userGroups.push(self.userOrGroup);
|
||||
}
|
||||
self.nfRegistryApi.putPolicyActionResource(policy.identifier, policy.action,
|
||||
policy.resource, policy.users, policy.userGroups, policy.revision).subscribe(
|
||||
function (response) {
|
||||
self.nfRegistryApi.putPolicyActionResource(
|
||||
policy.identifier,
|
||||
policy.action,
|
||||
policy.resource,
|
||||
policy.users,
|
||||
policy.userGroups,
|
||||
policy.revision
|
||||
).subscribe(
|
||||
function () {
|
||||
// policy updated!!!...now update the view
|
||||
self.nfRegistryApi.getBucket(self.nfRegistryService.bucket.identifier).subscribe(function (response) {
|
||||
self.nfRegistryService.bucket = response;
|
||||
|
@ -237,7 +243,7 @@ NfRegistryAddPolicyToBucket.prototype = {
|
|||
}
|
||||
|
||||
self.nfRegistryApi.postPolicyActionResource(action, resource + '/' + self.nfRegistryService.bucket.identifier, users, groups).subscribe(
|
||||
function (response) {
|
||||
function () {
|
||||
// policy created!!!...now update the view
|
||||
self.nfRegistryApi.getBucket(self.nfRegistryService.bucket.identifier).subscribe(function (response) {
|
||||
self.nfRegistryService.bucket = response;
|
||||
|
@ -260,9 +266,15 @@ NfRegistryAddPolicyToBucket.prototype = {
|
|||
} else {
|
||||
policy.userGroups.push(self.userOrGroup);
|
||||
}
|
||||
self.nfRegistryApi.putPolicyActionResource(policy.identifier, policy.action,
|
||||
policy.resource, policy.users, policy.userGroups, policy.revision).subscribe(
|
||||
function (response) {
|
||||
self.nfRegistryApi.putPolicyActionResource(
|
||||
policy.identifier,
|
||||
policy.action,
|
||||
policy.resource,
|
||||
policy.users,
|
||||
policy.userGroups,
|
||||
policy.revision
|
||||
).subscribe(
|
||||
function () {
|
||||
// policy updated!!!...now update the view
|
||||
self.nfRegistryApi.getBucket(self.nfRegistryService.bucket.identifier).subscribe(function (response) {
|
||||
self.nfRegistryService.bucket = response;
|
||||
|
@ -298,7 +310,7 @@ NfRegistryAddPolicyToBucket.prototype = {
|
|||
}
|
||||
|
||||
self.nfRegistryApi.postPolicyActionResource(action, resource + '/' + self.nfRegistryService.bucket.identifier, users, groups).subscribe(
|
||||
function (response) {
|
||||
function () {
|
||||
// policy created!!!...now update the view
|
||||
self.nfRegistryApi.getBucket(self.nfRegistryService.bucket.identifier).subscribe(function (response) {
|
||||
self.nfRegistryService.bucket = response;
|
||||
|
@ -321,9 +333,15 @@ NfRegistryAddPolicyToBucket.prototype = {
|
|||
} else {
|
||||
policy.userGroups.push(self.userOrGroup);
|
||||
}
|
||||
self.nfRegistryApi.putPolicyActionResource(policy.identifier, policy.action,
|
||||
policy.resource, policy.users, policy.userGroups, policy.revision).subscribe(
|
||||
function (response) {
|
||||
self.nfRegistryApi.putPolicyActionResource(
|
||||
policy.identifier,
|
||||
policy.action,
|
||||
policy.resource,
|
||||
policy.users,
|
||||
policy.userGroups,
|
||||
policy.revision
|
||||
).subscribe(
|
||||
function () {
|
||||
// policy updated!!!...now update the view
|
||||
self.nfRegistryApi.getBucket(self.nfRegistryService.bucket.identifier).subscribe(function (response) {
|
||||
self.nfRegistryService.bucket = response;
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
import { Component, ViewChild } from '@angular/core';
|
||||
import NfRegistryService from 'services/nf-registry.service';
|
||||
import NfRegistryApi from 'services/nf-registry.api';
|
||||
import { MatDialogRef } from '@angular/material';
|
||||
import { MatDialogRef } from '@angular/material/dialog';
|
||||
import { FdsSnackBarService } from '@nifi-fds/core';
|
||||
|
||||
/**
|
||||
|
|
|
@ -28,14 +28,18 @@ describe('NfRegistryCreateBucket Component isolated unit tests', function () {
|
|||
beforeEach(function () {
|
||||
nfRegistryService = new NfRegistryService();
|
||||
nfRegistryApi = new NfRegistryApi();
|
||||
comp = new NfRegistryCreateBucket(nfRegistryApi, {
|
||||
openCoaster: function () {
|
||||
comp = new NfRegistryCreateBucket(
|
||||
nfRegistryApi,
|
||||
{
|
||||
openCoaster: function () {
|
||||
}
|
||||
},
|
||||
nfRegistryService,
|
||||
{
|
||||
close: function () {
|
||||
}
|
||||
}
|
||||
},
|
||||
nfRegistryService, {
|
||||
close: function () {
|
||||
}
|
||||
});
|
||||
);
|
||||
|
||||
// Spy
|
||||
spyOn(nfRegistryApi, 'createBucket').and.callFake(function () {
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
import { Component, ViewChild } from '@angular/core';
|
||||
import NfRegistryService from 'services/nf-registry.service';
|
||||
import NfRegistryApi from 'services/nf-registry.api';
|
||||
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';
|
||||
import { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
|
||||
import { ActivatedRoute } from '@angular/router';
|
||||
import { switchMap } from 'rxjs/operators';
|
||||
import { forkJoin } from 'rxjs';
|
||||
|
@ -53,7 +53,7 @@ NfRegistryEditBucketPolicy.prototype = {
|
|||
var self = this;
|
||||
this.route.params
|
||||
.pipe(
|
||||
switchMap(function (params) {
|
||||
switchMap(function () {
|
||||
return forkJoin(
|
||||
self.nfRegistryApi.getUsers(),
|
||||
self.nfRegistryApi.getUserGroups()
|
||||
|
@ -115,7 +115,7 @@ NfRegistryEditBucketPolicy.prototype = {
|
|||
}
|
||||
|
||||
self.nfRegistryApi.postPolicyActionResource(action, resource + '/' + self.nfRegistryService.bucket.identifier, users, groups).subscribe(
|
||||
function (response) {
|
||||
function () {
|
||||
// policy created!!!...now update the view
|
||||
self.nfRegistryApi.getBucket(self.nfRegistryService.bucket.identifier).subscribe(function (response) {
|
||||
self.nfRegistryService.bucket = response;
|
||||
|
@ -129,9 +129,15 @@ NfRegistryEditBucketPolicy.prototype = {
|
|||
} else {
|
||||
policy.userGroups.push(self.userOrGroup);
|
||||
}
|
||||
self.nfRegistryApi.putPolicyActionResource(policy.identifier, policy.action,
|
||||
policy.resource, policy.users, policy.userGroups, policy.revision).subscribe(
|
||||
function (response) {
|
||||
self.nfRegistryApi.putPolicyActionResource(
|
||||
policy.identifier,
|
||||
policy.action,
|
||||
policy.resource,
|
||||
policy.users,
|
||||
policy.userGroups,
|
||||
policy.revision
|
||||
).subscribe(
|
||||
function () {
|
||||
// policy updated!!!...now update the view
|
||||
self.nfRegistryApi.getBucket(self.nfRegistryService.bucket.identifier).subscribe(function (response) {
|
||||
self.nfRegistryService.bucket = response;
|
||||
|
@ -157,9 +163,15 @@ NfRegistryEditBucketPolicy.prototype = {
|
|||
return (self.userOrGroup.identity !== group.identity);
|
||||
});
|
||||
}
|
||||
self.nfRegistryApi.putPolicyActionResource(policy.identifier, policy.action,
|
||||
policy.resource, policy.users, policy.userGroups, policy.revision).subscribe(
|
||||
function (response) {
|
||||
self.nfRegistryApi.putPolicyActionResource(
|
||||
policy.identifier,
|
||||
policy.action,
|
||||
policy.resource,
|
||||
policy.users,
|
||||
policy.userGroups,
|
||||
policy.revision
|
||||
).subscribe(
|
||||
function () {
|
||||
// policy updated!!!...now update the view
|
||||
self.nfRegistryApi.getBucket(self.nfRegistryService.bucket.identifier).subscribe(function (response) {
|
||||
self.nfRegistryService.bucket = response;
|
||||
|
@ -186,7 +198,7 @@ NfRegistryEditBucketPolicy.prototype = {
|
|||
}
|
||||
|
||||
self.nfRegistryApi.postPolicyActionResource(action, resource + '/' + self.nfRegistryService.bucket.identifier, users, groups).subscribe(
|
||||
function (response) {
|
||||
function () {
|
||||
// policy created!!!...now update the view
|
||||
self.nfRegistryApi.getBucket(self.nfRegistryService.bucket.identifier).subscribe(function (response) {
|
||||
self.nfRegistryService.bucket = response;
|
||||
|
@ -200,9 +212,15 @@ NfRegistryEditBucketPolicy.prototype = {
|
|||
} else {
|
||||
policy.userGroups.push(self.userOrGroup);
|
||||
}
|
||||
self.nfRegistryApi.putPolicyActionResource(policy.identifier, policy.action,
|
||||
policy.resource, policy.users, policy.userGroups, policy.revision).subscribe(
|
||||
function (response) {
|
||||
self.nfRegistryApi.putPolicyActionResource(
|
||||
policy.identifier,
|
||||
policy.action,
|
||||
policy.resource,
|
||||
policy.users,
|
||||
policy.userGroups,
|
||||
policy.revision
|
||||
).subscribe(
|
||||
function () {
|
||||
// policy updated!!!...now update the view
|
||||
self.nfRegistryApi.getBucket(self.nfRegistryService.bucket.identifier).subscribe(function (response) {
|
||||
self.nfRegistryService.bucket = response;
|
||||
|
@ -228,9 +246,15 @@ NfRegistryEditBucketPolicy.prototype = {
|
|||
return (self.userOrGroup.identity !== group.identity);
|
||||
});
|
||||
}
|
||||
self.nfRegistryApi.putPolicyActionResource(policy.identifier, policy.action,
|
||||
policy.resource, policy.users, policy.userGroups, policy.revision).subscribe(
|
||||
function (response) {
|
||||
self.nfRegistryApi.putPolicyActionResource(
|
||||
policy.identifier,
|
||||
policy.action,
|
||||
policy.resource,
|
||||
policy.users,
|
||||
policy.userGroups,
|
||||
policy.revision
|
||||
).subscribe(
|
||||
function () {
|
||||
// policy updated!!!...now update the view
|
||||
self.nfRegistryApi.getBucket(self.nfRegistryService.bucket.identifier).subscribe(function (response) {
|
||||
self.nfRegistryService.bucket = response;
|
||||
|
@ -257,7 +281,7 @@ NfRegistryEditBucketPolicy.prototype = {
|
|||
}
|
||||
|
||||
self.nfRegistryApi.postPolicyActionResource(action, resource + '/' + self.nfRegistryService.bucket.identifier, users, groups).subscribe(
|
||||
function (response) {
|
||||
function () {
|
||||
// policy created!!!...now update the view
|
||||
self.nfRegistryApi.getBucket(self.nfRegistryService.bucket.identifier).subscribe(function (response) {
|
||||
self.nfRegistryService.bucket = response;
|
||||
|
@ -271,9 +295,15 @@ NfRegistryEditBucketPolicy.prototype = {
|
|||
} else {
|
||||
policy.userGroups.push(self.userOrGroup);
|
||||
}
|
||||
self.nfRegistryApi.putPolicyActionResource(policy.identifier, policy.action,
|
||||
policy.resource, policy.users, policy.userGroups, policy.revision).subscribe(
|
||||
function (response) {
|
||||
self.nfRegistryApi.putPolicyActionResource(
|
||||
policy.identifier,
|
||||
policy.action,
|
||||
policy.resource,
|
||||
policy.users,
|
||||
policy.userGroups,
|
||||
policy.revision
|
||||
).subscribe(
|
||||
function () {
|
||||
// policy updated!!!...now update the view
|
||||
self.nfRegistryApi.getBucket(self.nfRegistryService.bucket.identifier).subscribe(function (response) {
|
||||
self.nfRegistryService.bucket = response;
|
||||
|
@ -299,9 +329,15 @@ NfRegistryEditBucketPolicy.prototype = {
|
|||
return (self.userOrGroup.identity !== group.identity);
|
||||
});
|
||||
}
|
||||
self.nfRegistryApi.putPolicyActionResource(policy.identifier, policy.action,
|
||||
policy.resource, policy.users, policy.userGroups, policy.revision).subscribe(
|
||||
function (response) {
|
||||
self.nfRegistryApi.putPolicyActionResource(
|
||||
policy.identifier,
|
||||
policy.action,
|
||||
policy.resource,
|
||||
policy.users,
|
||||
policy.userGroups,
|
||||
policy.revision
|
||||
).subscribe(
|
||||
function () {
|
||||
// policy updated!!!...now update the view
|
||||
self.nfRegistryApi.getBucket(self.nfRegistryService.bucket.identifier).subscribe(function (response) {
|
||||
self.nfRegistryService.bucket = response;
|
||||
|
|
|
@ -21,7 +21,7 @@ import NfStorage from 'services/nf-storage.service';
|
|||
import NfRegistryCreateBucket from 'components/administration/workflow/dialogs/create-bucket/nf-registry-create-bucket';
|
||||
import nfRegistryAnimations from 'nf-registry.animations';
|
||||
import { ActivatedRoute } from '@angular/router';
|
||||
import { MatDialog } from '@angular/material';
|
||||
import { MatDialog } from '@angular/material/dialog';
|
||||
import { switchMap } from 'rxjs/operators';
|
||||
|
||||
/**
|
||||
|
@ -54,7 +54,7 @@ NfRegistryWorkflowAdministration.prototype = {
|
|||
this.nfRegistryService.inProgress = true;
|
||||
this.$subscription = this.route.params
|
||||
.pipe(
|
||||
switchMap(function (params) {
|
||||
switchMap(function () {
|
||||
self.nfRegistryService.adminPerspective = 'workflow';
|
||||
return self.nfRegistryApi.getBuckets();
|
||||
})
|
||||
|
|
|
@ -21,7 +21,7 @@ import { Component } from '@angular/core';
|
|||
import NfRegistryService from 'services/nf-registry.service';
|
||||
import { ActivatedRoute, Router } from '@angular/router';
|
||||
import NfRegistryApi from 'services/nf-registry.api';
|
||||
import { MatDialog } from '@angular/material';
|
||||
import { MatDialog } from '@angular/material/dialog';
|
||||
import NfRegistryAddPolicyToBucket from 'components/administration/workflow/dialogs/add-policy-to-bucket/nf-registry-add-policy-to-bucket';
|
||||
import NfRegistryEditBucketPolicy from 'components/administration/workflow/dialogs/edit-bucket-policy/nf-registry-edit-bucket-policy';
|
||||
import { switchMap } from 'rxjs/operators';
|
||||
|
@ -130,7 +130,7 @@ NfRegistryManageBucket.prototype = {
|
|||
});
|
||||
}
|
||||
});
|
||||
self.sortBuckets(self.bucketPoliciesColumns.find(bucketPoliciesColumn => bucketPoliciesColumn.active === true));
|
||||
self.sortBuckets(self.bucketPoliciesColumns.find((bucketPoliciesColumn) => bucketPoliciesColumn.active === true));
|
||||
}
|
||||
}
|
||||
} else if (response[0].status === 404) {
|
||||
|
@ -358,9 +358,15 @@ NfRegistryManageBucket.prototype = {
|
|||
policy.userGroups = policy.userGroups.filter(function (group) {
|
||||
return (group.identity !== userOrGroup.identity);
|
||||
});
|
||||
self.nfRegistryApi.putPolicyActionResource(policy.identifier, policy.action,
|
||||
policy.resource, policy.users, policy.userGroups, policy.revision).subscribe(
|
||||
function (response) {
|
||||
self.nfRegistryApi.putPolicyActionResource(
|
||||
policy.identifier,
|
||||
policy.action,
|
||||
policy.resource,
|
||||
policy.users,
|
||||
policy.userGroups,
|
||||
policy.revision
|
||||
).subscribe(
|
||||
function () {
|
||||
// policy removed!!!...now update the view
|
||||
self.nfRegistryApi.getPolicies().subscribe(function (response) {
|
||||
self.userPerms = {};
|
||||
|
@ -464,7 +470,7 @@ NfRegistryManageBucket.prototype = {
|
|||
message: response.error,
|
||||
acceptButton: 'Ok',
|
||||
acceptButtonColor: 'fds-warn'
|
||||
}).afterClosed().subscribe(function (accept) {
|
||||
}).afterClosed().subscribe(function () {
|
||||
self.nfRegistryApi.getBucket(self.nfRegistryService.bucket.identifier)
|
||||
.subscribe(function (response) {
|
||||
if (!response.status || response.status === 200) {
|
||||
|
@ -524,7 +530,7 @@ NfRegistryManageBucket.prototype = {
|
|||
message: response.error,
|
||||
acceptButton: 'Ok',
|
||||
acceptButtonColor: 'fds-warn'
|
||||
}).afterClosed().subscribe(function (accept) {
|
||||
}).afterClosed().subscribe(function () {
|
||||
self.nfRegistryApi.getBucket(self.nfRegistryService.bucket.identifier)
|
||||
.subscribe(function (response) {
|
||||
if (!response.status || response.status === 200) {
|
||||
|
@ -584,7 +590,7 @@ NfRegistryManageBucket.prototype = {
|
|||
message: response.error,
|
||||
acceptButton: 'Ok',
|
||||
acceptButtonColor: 'fds-warn'
|
||||
}).afterClosed().subscribe(function (accept) {
|
||||
}).afterClosed().subscribe(function () {
|
||||
self.nfRegistryApi.getBucket(self.nfRegistryService.bucket.identifier)
|
||||
.subscribe(function (response) {
|
||||
if (!response.status || response.status === 200) {
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
|
||||
import { Component } from '@angular/core';
|
||||
import NfRegistryApi from 'services/nf-registry.api';
|
||||
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material';
|
||||
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
|
||||
import { FdsSnackBarService } from '@nifi-fds/core';
|
||||
|
||||
/**
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
import { Component } from '@angular/core';
|
||||
|
||||
import NfRegistryApi from 'services/nf-registry.api';
|
||||
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material';
|
||||
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
|
||||
import { FdsSnackBarService } from '@nifi-fds/core';
|
||||
|
||||
/**
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
|
||||
import { Component } from '@angular/core';
|
||||
import NfRegistryApi from 'services/nf-registry.api';
|
||||
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material';
|
||||
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
|
||||
import { FdsSnackBarService } from '@nifi-fds/core';
|
||||
|
||||
/**
|
||||
|
|
|
@ -58,7 +58,7 @@ NfRegistryGridListViewer.prototype = {
|
|||
// subscribe to the route params
|
||||
this.$subscription = this.route.params
|
||||
.pipe(
|
||||
switchMap(function (params) {
|
||||
switchMap(function () {
|
||||
return forkJoin(
|
||||
self.nfRegistryApi.getDroplets(),
|
||||
self.nfRegistryApi.getBuckets()
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
import { Component } from '@angular/core';
|
||||
import NfRegistryService from 'services/nf-registry.service';
|
||||
import NfRegistryApi from 'services/nf-registry.api';
|
||||
import { MatDialogRef } from '@angular/material';
|
||||
import { MatDialogRef } from '@angular/material/dialog';
|
||||
import { NfRegistryLoginAuthGuard } from 'services/nf-registry.auth-guard.service';
|
||||
import { Router } from '@angular/router';
|
||||
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
*/
|
||||
|
||||
import { Component } from '@angular/core';
|
||||
import { MatDialog } from '@angular/material';
|
||||
import { MatDialog } from '@angular/material/dialog';
|
||||
import NfRegistryService from 'services/nf-registry.service';
|
||||
import nfRegistryAnimations from 'nf-registry.animations';
|
||||
import NfUserLoginComponent from 'components/login/dialogs/nf-registry-user-login';
|
||||
|
|
|
@ -17,8 +17,6 @@
|
|||
|
||||
import 'core-js';
|
||||
import 'zone.js';
|
||||
import 'hammerjs';
|
||||
|
||||
import $ from 'jquery';
|
||||
import NfRegistryModule from 'nf-registry.module';
|
||||
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
|
||||
|
@ -28,9 +26,6 @@ import { enableProdMode, TRANSLATIONS, TRANSLATIONS_FORMAT, LOCALE_ID } from '@a
|
|||
import 'font-awesome/fonts/fontawesome-webfont.woff2';
|
||||
import 'font-awesome/fonts/fontawesome-webfont.woff';
|
||||
import 'font-awesome/fonts/fontawesome-webfont.ttf';
|
||||
import '@covalent/core/common/styles/font/MaterialIcons-Regular.woff2';
|
||||
import '@covalent/core/common/styles/font/MaterialIcons-Regular.woff';
|
||||
import '@covalent/core/common/styles/font/MaterialIcons-Regular.ttf';
|
||||
import 'images/registry-logo-web-app.svg';
|
||||
import 'images/registry-background-logo.svg';
|
||||
|
||||
|
|
|
@ -32,10 +32,12 @@ NfAnimations.prototype = {
|
|||
* Fade animation
|
||||
*/
|
||||
fadeAnimation: ngAnimate.trigger('routeAnimation', [
|
||||
ngAnimate.state('*',
|
||||
ngAnimate.state(
|
||||
'*',
|
||||
ngAnimate.style({
|
||||
opacity: 1
|
||||
})),
|
||||
})
|
||||
),
|
||||
ngAnimate.transition(':enter', [
|
||||
ngAnimate.style({
|
||||
opacity: 0
|
||||
|
@ -53,11 +55,13 @@ NfAnimations.prototype = {
|
|||
* Slide in from the left animation
|
||||
*/
|
||||
slideInLeftAnimation: ngAnimate.trigger('routeAnimation', [
|
||||
ngAnimate.state('*',
|
||||
ngAnimate.state(
|
||||
'*',
|
||||
ngAnimate.style({
|
||||
opacity: 1,
|
||||
transform: 'translateX(0)'
|
||||
})),
|
||||
})
|
||||
),
|
||||
ngAnimate.transition(':enter', [
|
||||
ngAnimate.style({
|
||||
opacity: 0,
|
||||
|
@ -77,11 +81,13 @@ NfAnimations.prototype = {
|
|||
* Slide in from the top animation
|
||||
*/
|
||||
slideInDownAnimation: ngAnimate.trigger('routeAnimation', [
|
||||
ngAnimate.state('*',
|
||||
ngAnimate.state(
|
||||
'*',
|
||||
ngAnimate.style({
|
||||
opacity: 1,
|
||||
transform: 'translateY(0)'
|
||||
})),
|
||||
})
|
||||
),
|
||||
ngAnimate.transition(':enter', [
|
||||
ngAnimate.style({
|
||||
opacity: 0,
|
||||
|
@ -101,8 +107,10 @@ NfAnimations.prototype = {
|
|||
* Fly in/out animation
|
||||
*/
|
||||
flyInOutAnimation: ngAnimate.trigger('flyInOut', [
|
||||
ngAnimate.state('in',
|
||||
ngAnimate.style({transform: 'translateX(0)'})),
|
||||
ngAnimate.state(
|
||||
'in',
|
||||
ngAnimate.style({transform: 'translateX(0)'})
|
||||
),
|
||||
ngAnimate.transition('void => *', [
|
||||
ngAnimate.style({transform: 'translateX(100%)'}),
|
||||
ngAnimate.animate('0.4s 0.1s ease-in')
|
||||
|
@ -114,8 +122,10 @@ NfAnimations.prototype = {
|
|||
* Fly in/out animation
|
||||
*/
|
||||
fadeInOutAnimation: ngAnimate.trigger('fadeInOut', [
|
||||
ngAnimate.state('in',
|
||||
ngAnimate.style({opacity: 1})),
|
||||
ngAnimate.state(
|
||||
'in',
|
||||
ngAnimate.style({opacity: 1})
|
||||
),
|
||||
ngAnimate.transition('void => *', [
|
||||
ngAnimate.style({opacity: 0}),
|
||||
ngAnimate.animate('0.5s 0.1s ease-in')
|
||||
|
|
|
@ -36,7 +36,7 @@ import {
|
|||
} from 'services/nf-registry.auth-guard.service';
|
||||
|
||||
// eslint-disable-next-line new-cap
|
||||
const NfRegistryRoutes = new RouterModule.forRoot([{
|
||||
const NfRegistryRoutes = RouterModule.forRoot([{
|
||||
path: 'explorer',
|
||||
component: NfRegistryExplorer,
|
||||
children: [
|
||||
|
|
|
@ -23,8 +23,6 @@ import {
|
|||
import { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';
|
||||
import { HttpClientTestingModule } from '@angular/common/http/testing';
|
||||
import { MomentModule } from 'angular2-moment';
|
||||
|
||||
import 'hammerjs';
|
||||
import NfRegistryRoutes from 'nf-registry.routes';
|
||||
import { APP_BASE_HREF } from '@angular/common';
|
||||
import { FdsCoreModule } from '@nifi-fds/core';
|
||||
|
|
|
@ -847,7 +847,7 @@ NfRegistryApi.prototype = {
|
|||
}
|
||||
return jwt;
|
||||
}),
|
||||
catchError(function (error) {
|
||||
catchError(function () {
|
||||
self.dialogService.openConfirm({
|
||||
title: 'Error',
|
||||
message: 'Please contact your System Administrator.',
|
||||
|
@ -876,7 +876,7 @@ NfRegistryApi.prototype = {
|
|||
map(function (response) {
|
||||
return response;
|
||||
}),
|
||||
catchError(function (error) {
|
||||
catchError(function () {
|
||||
self.dialogService.openConfirm({
|
||||
title: 'Error',
|
||||
message: 'Please contact your System Administrator.',
|
||||
|
@ -911,12 +911,12 @@ NfRegistryApi.prototype = {
|
|||
map(function (jwt) {
|
||||
return jwtHandler(jwt);
|
||||
}),
|
||||
catchError(function (error) {
|
||||
catchError(function () {
|
||||
return self.http.post(config.urls.oidc, null, {responseType: 'text', withCredentials: 'true'}).pipe(
|
||||
map(function (jwt) {
|
||||
return jwtHandler(jwt);
|
||||
}),
|
||||
catchError(function (error) {
|
||||
catchError(function () {
|
||||
return of('');
|
||||
})
|
||||
);
|
||||
|
@ -975,12 +975,12 @@ NfRegistryApi.prototype = {
|
|||
*
|
||||
* @returns {*}
|
||||
*/
|
||||
getRegistryConfig: function (action, resource) {
|
||||
getRegistryConfig: function () {
|
||||
return this.http.get('../nifi-registry-api/config').pipe(
|
||||
map(function (response) {
|
||||
return response;
|
||||
}),
|
||||
catchError(function (error) {
|
||||
catchError(function () {
|
||||
// If failed, return an empty object.
|
||||
return of({});
|
||||
})
|
||||
|
|
|
@ -73,7 +73,7 @@ describe('NfRegistry API w/ Angular testing utils', function () {
|
|||
httpMock.verify();
|
||||
}));
|
||||
|
||||
it('should load jwt from local storage.', inject([HttpTestingController], function (httpMock) {
|
||||
it('should load jwt from local storage.', inject([HttpTestingController], function () {
|
||||
// Spy
|
||||
spyOn(nfRegistryApi.nfStorage, 'hasItem').and.callFake(function () {
|
||||
return true;
|
||||
|
@ -158,6 +158,7 @@ describe('NfRegistry API w/ Angular testing utils', function () {
|
|||
|
||||
// api call
|
||||
nfRegistryApi.ticketExchange().subscribe(function (response) {
|
||||
/* eslint-disable no-console */
|
||||
console.log('ticketExchange() response is: '.concat(response));
|
||||
var setItemCall = nfRegistryApi.nfStorage.setItem.calls.first();
|
||||
|
||||
|
@ -195,7 +196,7 @@ describe('NfRegistry API w/ Angular testing utils', function () {
|
|||
|
||||
it('should GET droplet snapshot metadata.', inject([HttpTestingController], function (httpMock) {
|
||||
// api call
|
||||
nfRegistryApi.getDropletSnapshotMetadata('flow/test').subscribe(function (response) {
|
||||
nfRegistryApi.getDropletSnapshotMetadata('flow/test').subscribe(function () {
|
||||
});
|
||||
// the request it made
|
||||
req = httpMock.expectOne('../nifi-registry-api/flow/test/versions');
|
||||
|
@ -420,7 +421,7 @@ describe('NfRegistry API w/ Angular testing utils', function () {
|
|||
|
||||
it('should DELETE a droplet.', inject([HttpTestingController], function (httpMock) {
|
||||
// api call
|
||||
nfRegistryApi.deleteDroplet('flows/1234').subscribe(function (response) {
|
||||
nfRegistryApi.deleteDroplet('flows/1234').subscribe(function () {
|
||||
});
|
||||
|
||||
// the request it made
|
||||
|
@ -506,7 +507,7 @@ describe('NfRegistry API w/ Angular testing utils', function () {
|
|||
|
||||
it('should DELETE a bucket.', inject([HttpTestingController], function (httpMock) {
|
||||
// api call
|
||||
nfRegistryApi.deleteBucket('1234', 0).subscribe(function (response) {
|
||||
nfRegistryApi.deleteBucket('1234', 0).subscribe(function () {
|
||||
});
|
||||
// the request it made
|
||||
req = httpMock.expectOne('../nifi-registry-api/buckets/1234?version=0');
|
||||
|
|
|
@ -57,14 +57,13 @@ NfRegistryUsersAdministrationAuthGuard.prototype = {
|
|||
return new Promise((resolve) => {
|
||||
if (this.nfRegistryService.currentUser.resourcePermissions.tenants.canRead) {
|
||||
resolve(true);
|
||||
return true;
|
||||
}
|
||||
|
||||
// Store the attempted URL for redirecting
|
||||
this.nfRegistryService.redirectUrl = url;
|
||||
|
||||
// attempt Kerberos or OIDC authentication
|
||||
this.nfRegistryApi.ticketExchange().subscribe(function (jwt) {
|
||||
this.nfRegistryApi.ticketExchange().subscribe(function () {
|
||||
self.nfRegistryApi.loadCurrentUser().subscribe(function (currentUser) {
|
||||
// there is no anonymous access and we don't know this user - open the login page which handles login/registration/etc
|
||||
if (currentUser.error) {
|
||||
|
@ -187,7 +186,7 @@ NfRegistryWorkflowsAdministrationAuthGuard.prototype = {
|
|||
this.nfRegistryService.redirectUrl = url;
|
||||
|
||||
// attempt Kerberos or OIDC authentication
|
||||
this.nfRegistryApi.ticketExchange().subscribe(function (jwt) {
|
||||
this.nfRegistryApi.ticketExchange().subscribe(function () {
|
||||
self.nfRegistryApi.loadCurrentUser().subscribe(function (currentUser) {
|
||||
// there is no anonymous access and we don't know this user - open the login page which handles login/registration/etc
|
||||
if (currentUser.error) {
|
||||
|
@ -289,7 +288,7 @@ NfRegistryLoginAuthGuard.prototype = {
|
|||
return this.checkLogin(url);
|
||||
},
|
||||
|
||||
checkLogin: function (url) {
|
||||
checkLogin: function () {
|
||||
var self = this;
|
||||
return new Promise((resolve) => {
|
||||
if (this.nfRegistryService.currentUser.anonymous) {
|
||||
|
@ -297,7 +296,7 @@ NfRegistryLoginAuthGuard.prototype = {
|
|||
return;
|
||||
}
|
||||
// attempt Kerberos or OIDC authentication
|
||||
this.nfRegistryApi.ticketExchange().subscribe(function (jwt) {
|
||||
this.nfRegistryApi.ticketExchange().subscribe(function () {
|
||||
self.nfRegistryApi.loadCurrentUser().subscribe(function (currentUser) {
|
||||
self.nfRegistryService.currentUser = currentUser;
|
||||
if (currentUser.anonymous === false) {
|
||||
|
@ -368,7 +367,7 @@ NfRegistryResourcesAuthGuard.prototype = {
|
|||
this.nfRegistryService.redirectUrl = url;
|
||||
|
||||
// attempt Kerberos or OIDC authentication
|
||||
this.nfRegistryApi.ticketExchange().subscribe(function (jwt) {
|
||||
this.nfRegistryApi.ticketExchange().subscribe(function () {
|
||||
self.nfRegistryApi.loadCurrentUser().subscribe(function (currentUser) {
|
||||
// there is no anonymous access and we don't know this user - open the login page which handles login/registration/etc
|
||||
if (currentUser.error) {
|
||||
|
|
|
@ -15,15 +15,18 @@
|
|||
* limitations under the License.
|
||||
*/
|
||||
|
||||
import { TdDataTableService } from '@covalent/core/data-table';
|
||||
import { Router } from '@angular/router';
|
||||
import { MatDialog } from '@angular/material';
|
||||
import { FdsDialogService, FdsSnackBarService } from '@nifi-fds/core';
|
||||
import {TdDataTableService} from '@covalent/core/data-table';
|
||||
import {Router} from '@angular/router';
|
||||
import {MatDialog} from '@angular/material/dialog';
|
||||
import {FdsDialogService, FdsSnackBarService} from '@nifi-fds/core';
|
||||
import NfRegistryApi from 'services/nf-registry.api.js';
|
||||
import NfStorage from 'services/nf-storage.service.js';
|
||||
import NfRegistryExportVersionedFlow from '../components/explorer/grid-list/dialogs/export-versioned-flow/nf-registry-export-versioned-flow';
|
||||
import NfRegistryImportVersionedFlow from '../components/explorer/grid-list/dialogs/import-versioned-flow/nf-registry-import-versioned-flow';
|
||||
import NfRegistryImportNewFlow from '../components/explorer/grid-list/dialogs/import-new-flow/nf-registry-import-new-flow';
|
||||
import NfRegistryExportVersionedFlow
|
||||
from '../components/explorer/grid-list/dialogs/export-versioned-flow/nf-registry-export-versioned-flow';
|
||||
import NfRegistryImportVersionedFlow
|
||||
from '../components/explorer/grid-list/dialogs/import-versioned-flow/nf-registry-import-versioned-flow';
|
||||
import NfRegistryImportNewFlow
|
||||
from '../components/explorer/grid-list/dialogs/import-new-flow/nf-registry-import-new-flow';
|
||||
|
||||
/**
|
||||
* NfRegistryService constructor.
|
||||
|
@ -120,7 +123,7 @@ function NfRegistryService(nfRegistryApi, nfStorage, tdDataTableService, router,
|
|||
icon: 'fa fa-pencil',
|
||||
tooltip: 'Manage Bucket',
|
||||
type: 'sidenav',
|
||||
disabled: function (row) {
|
||||
disabled: function () {
|
||||
return false;
|
||||
}
|
||||
}, {
|
||||
|
@ -177,7 +180,7 @@ function NfRegistryService(nfRegistryApi, nfStorage, tdDataTableService, router,
|
|||
icon: 'fa fa-pencil',
|
||||
type: 'sidenav',
|
||||
tooltip: 'Manage User',
|
||||
disabled: function (row) {
|
||||
disabled: function () {
|
||||
return false;
|
||||
}
|
||||
}, {
|
||||
|
@ -195,7 +198,7 @@ function NfRegistryService(nfRegistryApi, nfStorage, tdDataTableService, router,
|
|||
icon: 'fa fa-pencil',
|
||||
tooltip: 'Manage User Group Policies',
|
||||
type: 'sidenav',
|
||||
disabled: function (row) {
|
||||
disabled: function () {
|
||||
return false;
|
||||
}
|
||||
}, {
|
||||
|
@ -385,17 +388,17 @@ NfRegistryService.prototype = {
|
|||
if (sortByColumn) {
|
||||
var label = '';
|
||||
switch (sortByColumn.label) {
|
||||
case 'Updated':
|
||||
label = (sortByColumn.sortOrder === 'ASC') ? 'Oldest (update)' : 'Newest (update)';
|
||||
break;
|
||||
case 'Name':
|
||||
label = (sortByColumn.sortOrder === 'ASC') ? 'Name (a - z)' : 'Name (z - a)';
|
||||
break;
|
||||
case 'Type':
|
||||
label = (sortByColumn.sortOrder === 'ASC') ? 'Type (a - z)' : 'Type (z - a)';
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
case 'Updated':
|
||||
label = (sortByColumn.sortOrder === 'ASC') ? 'Oldest (update)' : 'Newest (update)';
|
||||
break;
|
||||
case 'Name':
|
||||
label = (sortByColumn.sortOrder === 'ASC') ? 'Name (a - z)' : 'Name (z - a)';
|
||||
break;
|
||||
case 'Type':
|
||||
label = (sortByColumn.sortOrder === 'ASC') ? 'Type (a - z)' : 'Type (z - a)';
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return label;
|
||||
}
|
||||
|
@ -410,17 +413,17 @@ NfRegistryService.prototype = {
|
|||
generateSortMenuLabels: function (col) {
|
||||
var label = '';
|
||||
switch (col.label) {
|
||||
case 'Updated':
|
||||
label = (col.sortOrder !== 'ASC') ? 'Oldest (update)' : 'Newest (update)';
|
||||
break;
|
||||
case 'Name':
|
||||
label = (col.sortOrder !== 'ASC') ? 'Name (a - z)' : 'Name (z - a)';
|
||||
break;
|
||||
case 'Type':
|
||||
label = (col.sortOrder !== 'ASC') ? 'Type (a - z)' : 'Type (z - a)';
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
case 'Updated':
|
||||
label = (col.sortOrder !== 'ASC') ? 'Oldest (update)' : 'Newest (update)';
|
||||
break;
|
||||
case 'Name':
|
||||
label = (col.sortOrder !== 'ASC') ? 'Name (a - z)' : 'Name (z - a)';
|
||||
break;
|
||||
case 'Type':
|
||||
label = (col.sortOrder !== 'ASC') ? 'Type (a - z)' : 'Type (z - a)';
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return label;
|
||||
},
|
||||
|
@ -532,19 +535,19 @@ NfRegistryService.prototype = {
|
|||
*/
|
||||
executeDropletAction: function (action, droplet) {
|
||||
switch (action.name.toLowerCase()) {
|
||||
case 'import new version':
|
||||
// Opens the import versioned flow dialog
|
||||
this.openImportVersionedFlowDialog(droplet);
|
||||
break;
|
||||
case 'export version':
|
||||
// Opens the export flow version dialog
|
||||
this.openExportVersionedFlowDialog(droplet);
|
||||
break;
|
||||
case 'delete flow':
|
||||
// Deletes the entire data flow
|
||||
this.deleteDroplet(droplet);
|
||||
break;
|
||||
default: // do nothing
|
||||
case 'import new version':
|
||||
// Opens the import versioned flow dialog
|
||||
this.openImportVersionedFlowDialog(droplet);
|
||||
break;
|
||||
case 'export version':
|
||||
// Opens the export flow version dialog
|
||||
this.openExportVersionedFlowDialog(droplet);
|
||||
break;
|
||||
case 'delete flow':
|
||||
// Deletes the entire data flow
|
||||
this.deleteDroplet(droplet);
|
||||
break;
|
||||
default: // do nothing
|
||||
}
|
||||
},
|
||||
|
||||
|
@ -650,44 +653,44 @@ NfRegistryService.prototype = {
|
|||
executeBucketAction: function (action, bucket) {
|
||||
var self = this;
|
||||
switch (action.name.toLowerCase()) {
|
||||
case 'delete':
|
||||
this.dialogService.openConfirm({
|
||||
title: 'Delete Bucket',
|
||||
message: 'All items stored in this bucket will be deleted as well.',
|
||||
cancelButton: 'Cancel',
|
||||
acceptButton: 'Delete',
|
||||
acceptButtonColor: 'fds-warn'
|
||||
}).afterClosed().subscribe(
|
||||
function (accept) {
|
||||
if (accept) {
|
||||
self.api.deleteBucket(bucket.identifier, bucket.revision.version).subscribe(function (response) {
|
||||
if (!response.status || response.status === 200) {
|
||||
self.buckets = self.buckets.filter(function (b) {
|
||||
return b.identifier !== bucket.identifier;
|
||||
});
|
||||
self.snackBarService.openCoaster({
|
||||
title: 'Success',
|
||||
message: 'All versions of all items in this bucket, as well as the bucket, have been deleted.',
|
||||
verticalPosition: 'bottom',
|
||||
horizontalPosition: 'right',
|
||||
icon: 'fa fa-check-circle-o',
|
||||
color: '#1EB475',
|
||||
duration: 3000
|
||||
});
|
||||
self.bucket = {};
|
||||
self.filterBuckets();
|
||||
self.determineAllBucketsSelectedState();
|
||||
}
|
||||
});
|
||||
case 'delete':
|
||||
this.dialogService.openConfirm({
|
||||
title: 'Delete Bucket',
|
||||
message: 'All items stored in this bucket will be deleted as well.',
|
||||
cancelButton: 'Cancel',
|
||||
acceptButton: 'Delete',
|
||||
acceptButtonColor: 'fds-warn'
|
||||
}).afterClosed().subscribe(
|
||||
function (accept) {
|
||||
if (accept) {
|
||||
self.api.deleteBucket(bucket.identifier, bucket.revision.version).subscribe(function (response) {
|
||||
if (!response.status || response.status === 200) {
|
||||
self.buckets = self.buckets.filter(function (b) {
|
||||
return b.identifier !== bucket.identifier;
|
||||
});
|
||||
self.snackBarService.openCoaster({
|
||||
title: 'Success',
|
||||
message: 'All versions of all items in this bucket, as well as the bucket, have been deleted.',
|
||||
verticalPosition: 'bottom',
|
||||
horizontalPosition: 'right',
|
||||
icon: 'fa fa-check-circle-o',
|
||||
color: '#1EB475',
|
||||
duration: 3000
|
||||
});
|
||||
self.bucket = {};
|
||||
self.filterBuckets();
|
||||
self.determineAllBucketsSelectedState();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
);
|
||||
break;
|
||||
case 'manage':
|
||||
this.router.navigateByUrl('administration/workflow(' + action.type + ':' + action.name + '/bucket/' + bucket.identifier + ')');
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
);
|
||||
break;
|
||||
case 'manage':
|
||||
this.router.navigateByUrl('administration/workflow(' + action.type + ':' + action.name + '/bucket/' + bucket.identifier + ')');
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
},
|
||||
|
||||
|
@ -1144,42 +1147,42 @@ NfRegistryService.prototype = {
|
|||
var self = this;
|
||||
this.user = user;
|
||||
switch (action.name.toLowerCase()) {
|
||||
case 'delete':
|
||||
return this.dialogService.openConfirm({
|
||||
title: 'Delete User',
|
||||
message: 'This user will lose all access to the registry.',
|
||||
cancelButton: 'Cancel',
|
||||
acceptButton: 'Delete',
|
||||
acceptButtonColor: 'fds-warn'
|
||||
}).afterClosed().subscribe(
|
||||
function (accept) {
|
||||
if (accept) {
|
||||
self.api.deleteUser(user.identifier, user.revision.version).subscribe(function (response) {
|
||||
if (!response.status || response.status === 200) {
|
||||
self.users = self.users.filter(function (u) {
|
||||
return u.identifier !== user.identifier;
|
||||
});
|
||||
self.snackBarService.openCoaster({
|
||||
title: 'Success',
|
||||
message: 'User: ' + user.identity + ' has been deleted.',
|
||||
verticalPosition: 'bottom',
|
||||
horizontalPosition: 'right',
|
||||
icon: 'fa fa-check-circle-o',
|
||||
color: '#1EB475',
|
||||
duration: 3000
|
||||
});
|
||||
self.filterUsersAndGroups();
|
||||
self.determineAllUsersAndGroupsSelectedState();
|
||||
}
|
||||
});
|
||||
case 'delete':
|
||||
return this.dialogService.openConfirm({
|
||||
title: 'Delete User',
|
||||
message: 'This user will lose all access to the registry.',
|
||||
cancelButton: 'Cancel',
|
||||
acceptButton: 'Delete',
|
||||
acceptButtonColor: 'fds-warn'
|
||||
}).afterClosed().subscribe(
|
||||
function (accept) {
|
||||
if (accept) {
|
||||
self.api.deleteUser(user.identifier, user.revision.version).subscribe(function (response) {
|
||||
if (!response.status || response.status === 200) {
|
||||
self.users = self.users.filter(function (u) {
|
||||
return u.identifier !== user.identifier;
|
||||
});
|
||||
self.snackBarService.openCoaster({
|
||||
title: 'Success',
|
||||
message: 'User: ' + user.identity + ' has been deleted.',
|
||||
verticalPosition: 'bottom',
|
||||
horizontalPosition: 'right',
|
||||
icon: 'fa fa-check-circle-o',
|
||||
color: '#1EB475',
|
||||
duration: 3000
|
||||
});
|
||||
self.filterUsersAndGroups();
|
||||
self.determineAllUsersAndGroupsSelectedState();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
);
|
||||
case 'manage':
|
||||
this.router.navigateByUrl('administration/users(' + action.type + ':' + action.name + '/user/' + user.identifier + ')');
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
);
|
||||
case 'manage':
|
||||
this.router.navigateByUrl('administration/users(' + action.type + ':' + action.name + '/user/' + user.identifier + ')');
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
},
|
||||
|
||||
|
@ -1193,43 +1196,43 @@ NfRegistryService.prototype = {
|
|||
var self = this;
|
||||
this.group = group;
|
||||
switch (action.name.toLowerCase()) {
|
||||
case 'delete':
|
||||
this.dialogService.openConfirm({
|
||||
title: 'Delete Group',
|
||||
message: 'All policies granted to this group will be deleted as well.',
|
||||
cancelButton: 'Cancel',
|
||||
acceptButton: 'Delete',
|
||||
acceptButtonColor: 'fds-warn'
|
||||
}).afterClosed().subscribe(
|
||||
function (accept) {
|
||||
if (accept) {
|
||||
self.api.deleteUserGroup(group.identifier, group.revision.version).subscribe(function (response) {
|
||||
if (!response.status || response.status === 200) {
|
||||
self.groups = self.groups.filter(function (u) {
|
||||
return u.identifier !== group.identifier;
|
||||
});
|
||||
self.snackBarService.openCoaster({
|
||||
title: 'Success',
|
||||
message: 'Group: ' + group.identity + ' has been deleted.',
|
||||
verticalPosition: 'bottom',
|
||||
horizontalPosition: 'right',
|
||||
icon: 'fa fa-check-circle-o',
|
||||
color: '#1EB475',
|
||||
duration: 3000
|
||||
});
|
||||
self.filterUsersAndGroups();
|
||||
self.determineAllUsersAndGroupsSelectedState();
|
||||
}
|
||||
});
|
||||
case 'delete':
|
||||
this.dialogService.openConfirm({
|
||||
title: 'Delete Group',
|
||||
message: 'All policies granted to this group will be deleted as well.',
|
||||
cancelButton: 'Cancel',
|
||||
acceptButton: 'Delete',
|
||||
acceptButtonColor: 'fds-warn'
|
||||
}).afterClosed().subscribe(
|
||||
function (accept) {
|
||||
if (accept) {
|
||||
self.api.deleteUserGroup(group.identifier, group.revision.version).subscribe(function (response) {
|
||||
if (!response.status || response.status === 200) {
|
||||
self.groups = self.groups.filter(function (u) {
|
||||
return u.identifier !== group.identifier;
|
||||
});
|
||||
self.snackBarService.openCoaster({
|
||||
title: 'Success',
|
||||
message: 'Group: ' + group.identity + ' has been deleted.',
|
||||
verticalPosition: 'bottom',
|
||||
horizontalPosition: 'right',
|
||||
icon: 'fa fa-check-circle-o',
|
||||
color: '#1EB475',
|
||||
duration: 3000
|
||||
});
|
||||
self.filterUsersAndGroups();
|
||||
self.determineAllUsersAndGroupsSelectedState();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
);
|
||||
break;
|
||||
case 'manage':
|
||||
this.router.navigateByUrl('administration/users(' + action.type + ':' + action.name + '/group/' + group.identifier + ')');
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
);
|
||||
break;
|
||||
case 'manage':
|
||||
this.router.navigateByUrl('administration/users(' + action.type + ':' + action.name + '/group/' + group.identifier + ')');
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
},
|
||||
|
||||
|
@ -1296,7 +1299,6 @@ NfRegistryService.prototype = {
|
|||
);
|
||||
},
|
||||
|
||||
|
||||
/**
|
||||
* Utility method that performs the custom search capability for data tables.
|
||||
*
|
||||
|
|
|
@ -29,7 +29,6 @@ import NfRegistryImportVersionedFlow
|
|||
import NfRegistryImportNewFlow
|
||||
from '../components/explorer/grid-list/dialogs/import-new-flow/nf-registry-import-new-flow';
|
||||
|
||||
|
||||
describe('NfRegistry Service isolated unit tests', function () {
|
||||
let nfRegistryService;
|
||||
|
||||
|
|
|
@ -16,9 +16,13 @@
|
|||
*/
|
||||
|
||||
.fa-rotate-45 {
|
||||
/* stylelint-disable-next-line property-no-vendor-prefix */
|
||||
-webkit-transform: rotate(45deg);
|
||||
/* stylelint-disable-next-line property-no-vendor-prefix */
|
||||
-moz-transform: rotate(45deg);
|
||||
/* stylelint-disable-next-line property-no-vendor-prefix */
|
||||
-ms-transform: rotate(45deg);
|
||||
/* stylelint-disable-next-line property-no-vendor-prefix */
|
||||
-o-transform: rotate(45deg);
|
||||
transform: rotate(45deg);
|
||||
}
|
||||
|
@ -37,8 +41,11 @@
|
|||
text-overflow: ellipsis;
|
||||
display: block !important;
|
||||
user-select: text !important;
|
||||
/* stylelint-disable-next-line property-no-vendor-prefix */
|
||||
-moz-user-select: text !important;
|
||||
/* stylelint-disable-next-line property-no-vendor-prefix */
|
||||
-webkit-user-select: text !important;
|
||||
/* stylelint-disable-next-line property-no-vendor-prefix */
|
||||
-ms-user-select: text !important;
|
||||
}
|
||||
|
||||
|
|
|
@ -16,237 +16,134 @@
|
|||
*/
|
||||
|
||||
body {
|
||||
background: $grey12 url('assets/images/registry-logo-web-app.svg') no-repeat center center;
|
||||
background-size: 40%;
|
||||
background: $grey12 url('assets/images/registry-logo-web-app.svg') no-repeat center center;
|
||||
background-size: 40%;
|
||||
}
|
||||
|
||||
#nifi-registry-login-perspective {
|
||||
background: $grey12 url('assets/images/registry-logo-web-app.svg') no-repeat center center;
|
||||
background-size: 40%;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
background: $grey12 url('assets/images/registry-logo-web-app.svg') no-repeat center center;
|
||||
background-size: 40%;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
}
|
||||
|
||||
#nifi-registry-not-found-perspective {
|
||||
background: $grey12 url('assets/images/registry-logo-web-app.svg') no-repeat center center;
|
||||
background-size: 40%;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
background: $grey12 url('assets/images/registry-logo-web-app.svg') no-repeat center center;
|
||||
background-size: 40%;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
}
|
||||
|
||||
#nf-registry-app-container {
|
||||
margin: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
margin: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
#nifi-registry-logo {
|
||||
height: 44px;
|
||||
height: 44px;
|
||||
}
|
||||
|
||||
#nifi-registry-alerts-count {
|
||||
border-radius: 50%;
|
||||
background: $warnColor;
|
||||
height: 14px;
|
||||
width: 14px;
|
||||
position: relative;
|
||||
left: 9px;
|
||||
color: #fff;
|
||||
font-size: 9px;
|
||||
text-align: center;
|
||||
line-height: 14px;
|
||||
border-radius: 50%;
|
||||
background: $warn-color;
|
||||
height: 14px;
|
||||
width: 14px;
|
||||
position: relative;
|
||||
left: 9px;
|
||||
color: #fff;
|
||||
font-size: 9px;
|
||||
text-align: center;
|
||||
line-height: 14px;
|
||||
}
|
||||
|
||||
#nifi-registry-toolbar {
|
||||
min-width: 1045px;
|
||||
position: absolute;
|
||||
z-index: 1000;
|
||||
background: $grey11;
|
||||
min-width: 1045px;
|
||||
position: absolute;
|
||||
z-index: 1000;
|
||||
background: $grey11;
|
||||
}
|
||||
|
||||
#nifi-registry-toolbar .mat-icon-button {
|
||||
color: $grey5;
|
||||
font-size: 20px;
|
||||
margin: 0;
|
||||
color: $grey5;
|
||||
font-size: 20px;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
#nifi-registry-toolbar .mat-select-value-text,
|
||||
#nifi-registry-toolbar .mat-select-arrow {
|
||||
color: white;
|
||||
color: white;
|
||||
}
|
||||
|
||||
#nifi-registry-toolbar span,
|
||||
#nifi-registry-toolbar .link {
|
||||
color: $grey5;
|
||||
font-weight: lighter;
|
||||
color: $grey5;
|
||||
font-weight: lighter;
|
||||
}
|
||||
|
||||
#nf-registry-perspectives-container {
|
||||
position: absolute;
|
||||
top: 64px;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
min-height: 370px;
|
||||
min-width: 1045px;
|
||||
overflow: auto;
|
||||
background: $grey12;
|
||||
background-size: 40%;
|
||||
position: absolute;
|
||||
top: 64px;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
min-height: 370px;
|
||||
min-width: 1045px;
|
||||
overflow: auto;
|
||||
background: $grey12;
|
||||
background-size: 40%;
|
||||
}
|
||||
|
||||
#current-user {
|
||||
font-family: 'Roboto Slab';
|
||||
font-style: normal;
|
||||
font-weight: normal;
|
||||
font-size: 12px;
|
||||
max-width: 250px;
|
||||
text-overflow: ellipsis;
|
||||
line-height: normal;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
color: $grey5;
|
||||
font-family: 'Roboto Slab';
|
||||
font-style: normal;
|
||||
font-weight: normal;
|
||||
font-size: 12px;
|
||||
max-width: 250px;
|
||||
text-overflow: ellipsis;
|
||||
line-height: normal;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
color: $grey5;
|
||||
}
|
||||
|
||||
#logout-link-container,
|
||||
#login-link-container {
|
||||
font-size: 12px;
|
||||
text-transform: uppercase;
|
||||
font-size: 12px;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
#loading-spinner {
|
||||
position: absolute;
|
||||
top: calc(50% - 50px);
|
||||
left: calc(50% - 50px);
|
||||
z-index: 2;
|
||||
position: absolute;
|
||||
top: calc(50% - 50px);
|
||||
left: calc(50% - 50px);
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
mat-sidenav {
|
||||
width: 40%;
|
||||
min-width: 418px;
|
||||
width: 40%;
|
||||
min-width: 418px;
|
||||
}
|
||||
|
||||
.sidenav-content {
|
||||
position: absolute;
|
||||
bottom: 60px;
|
||||
top: 80px;
|
||||
right: 0;
|
||||
left: 0;
|
||||
overflow: auto;
|
||||
position: absolute;
|
||||
bottom: 60px;
|
||||
top: 80px;
|
||||
right: 0;
|
||||
left: 0;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
.field-header {
|
||||
font-size: 11px;
|
||||
color: #999;
|
||||
font-weight: 300;
|
||||
margin-bottom: 6px;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
// TODO: remove after NIFI-6495 is available in NiFi FDS 0.3.0
|
||||
body[fds] .mat-menu-panel {
|
||||
min-height: 40px;
|
||||
}
|
||||
|
||||
// TODO: remove after NIFI-6535 is available in NiFi FDS 0.3.0
|
||||
fds-dialog-title {
|
||||
font-size: 20px;
|
||||
font-weight: 400;
|
||||
color: rgba(0, 0, 0, 0.87);
|
||||
}
|
||||
|
||||
// TODO: remove after NIFI-6535 is available in NiFi FDS 0.3.0
|
||||
body[fds] {
|
||||
.mat-card-title {
|
||||
font-weight: 400;
|
||||
font-size: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: remove after NIFI-6540 is available in NiFi FDS 0.3.0
|
||||
body[fds] td-chips .mat-form-field-label-wrapper::after {
|
||||
content: '\f0b0';
|
||||
display: inline-table;
|
||||
font-family: FontAwesome;
|
||||
float: right;
|
||||
margin: 9px 10px 0 0;
|
||||
font-size: 11px;
|
||||
color: #999;
|
||||
}
|
||||
|
||||
// TODO: remove after NIFI-6540 is available in NiFi FDS 0.3.0
|
||||
body[fds] input.mat-input-element:not([disabled]),
|
||||
body[fds] textarea.mat-input-element:not([disabled]) {
|
||||
background-color: unset !important;
|
||||
}
|
||||
|
||||
// TODO: remove after NIFI-6540 is available in NiFi FDS 0.3.0
|
||||
body[fds] td-chips .mat-form-field-appearance-legacy .mat-form-field-infix {
|
||||
padding: 0;
|
||||
border-top: 0;
|
||||
}
|
||||
|
||||
// TODO: remove after NIFI-6540 is available in NiFi FDS 0.3.0
|
||||
body[fds] td-chips .mat-form-field {
|
||||
top: 12px;
|
||||
}
|
||||
|
||||
// TODO: remove after NIFI-6540 is available in NiFi FDS 0.3.0
|
||||
body[fds] .mat-basic-chip {
|
||||
margin: 17px 8px 0 0 !important;
|
||||
}
|
||||
|
||||
// TODO: remove after NIFI-6540 is available in NiFi FDS 0.3.0
|
||||
body[fds] .mat-form-field-empty.mat-form-field-label {
|
||||
top: 21px !important;
|
||||
color: $grey3;
|
||||
font-weight: 300;
|
||||
}
|
||||
|
||||
// TODO: remove after NIFI-6541 is available in NiFi FDS 0.3.0
|
||||
body[fds] .td-expansion-label {
|
||||
font-size: 20px;
|
||||
}
|
||||
|
||||
// TODO: remove after NIFI-6544 is available in NiFi FDS 0.3.0
|
||||
body[fds] .mat-checkbox-layout .mat-checkbox-label {
|
||||
line-height: 24px !important;
|
||||
}
|
||||
|
||||
// TODO: remove after NIFI-6544 is available in NiFi FDS 0.3.0
|
||||
body[fds] .mat-checkbox-inner-container {
|
||||
margin-right: 8px !important;
|
||||
}
|
||||
|
||||
// TODO: remove after NIFI-6548 is available in NiFi FDS 0.3.0
|
||||
body[fds] .mat-raised-button,
|
||||
body[fds] .mat-button {
|
||||
min-width: 88px;
|
||||
}
|
||||
|
||||
// TODO: remove after NIFI-6549 is available in NiFi FDS 0.3.0
|
||||
body[fds] .mat-form-field .mat-form-field-label {
|
||||
color: $grey3;
|
||||
font-weight: 300;
|
||||
}
|
||||
|
||||
// TODO: remove after NIFI-6547 is available in NiFi FDS 0.3.0
|
||||
body[fds] .tab-toggle-group > .mat-button-toggle-checked.mat-button-toggle-appearance-standard {
|
||||
color: rgba(0, 0, 0, 0.54);
|
||||
}
|
||||
|
||||
// TODO: remove after NIFI-6547 is available in NiFi FDS 0.3.0
|
||||
body[fds] .tab-toggle-group > .mat-button-toggle-appearance-standard {
|
||||
color: rgba(0, 0, 0, 0.38);
|
||||
background: transparent;
|
||||
border-left: 0;
|
||||
}
|
||||
|
||||
// TODO: remove after NIFI-6547 is available in NiFi FDS 0.3.0
|
||||
body[fds] .tab-toggle-group > .mat-button-toggle-appearance-standard .mat-button-toggle-label-content {
|
||||
line-height: 38px;
|
||||
margin-bottom: 6px;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
|
|
@ -201,8 +201,8 @@ input#upload-versioned-flow-file-field {
|
|||
color: $light-gray;
|
||||
}
|
||||
|
||||
input[type=text]#flow-version-definition-input,
|
||||
input[type=text]#new-flow-definition-input {
|
||||
input[type='text']#flow-version-definition-input,
|
||||
input[type='text']#new-flow-definition-input {
|
||||
padding-right: 125px;
|
||||
width: 373px;
|
||||
text-overflow: ellipsis;
|
||||
|
@ -210,8 +210,8 @@ input[type=text]#new-flow-definition-input {
|
|||
}
|
||||
|
||||
body[fds] .fds-primary-dropdown-button-menu.fds-primary-dropdown-button-menu .mat-menu-item:focus:not([disabled]) {
|
||||
color: rgba(0, 0, 0, 0.87);
|
||||
background-color: rgba(0, 0, 0, 0.04);
|
||||
color: rgba(0 0 0 / 87%);
|
||||
background-color: rgba(0 0 0 / 4%);
|
||||
}
|
||||
|
||||
body[fds] .fds-primary-dropdown-button-menu.fds-primary-dropdown-button-menu .mat-menu-item:hover:not([disabled]) {
|
||||
|
|
|
@ -54,8 +54,11 @@ button.nf-registry-change-log-refresh.mat-icon-button {
|
|||
overflow: auto;
|
||||
margin-bottom: 0;
|
||||
user-select: text !important;
|
||||
/* stylelint-disable-next-line property-no-vendor-prefix */
|
||||
-moz-user-select: text !important;
|
||||
/* stylelint-disable-next-line property-no-vendor-prefix */
|
||||
-webkit-user-select: text !important;
|
||||
/* stylelint-disable-next-line property-no-vendor-prefix */
|
||||
-ms-user-select: text !important;
|
||||
}
|
||||
|
||||
|
|
|
@ -15,17 +15,14 @@
|
|||
* limitations under the License.
|
||||
*/
|
||||
|
||||
/* Welcome to Compass.
|
||||
* In this file you should centralize your imports. After compilation simply import this file using the following HTML or equivalent:
|
||||
* <link href='/stylesheets/nifi-flow-registry.css' media='screen, projection' rel='stylesheet' type='text/css' /> */
|
||||
|
||||
// Path overrides
|
||||
/* Path overrides */
|
||||
$fa-font-path: './assets/fonts';
|
||||
$mat-font-url: './assets/fonts/';
|
||||
$fdsFontPath: './node_modules/roboto-fontface/fonts';
|
||||
$fds-font-path: 'node_modules/roboto-fontface/fonts';
|
||||
$mat-font-url: 'node_modules/@covalent/core/common/styles/font/';
|
||||
|
||||
@import '~@covalent/core/theming/all-theme';
|
||||
@import '~@covalent/core/common/platform';
|
||||
@import '~@nifi-fds/core/common/styles/flow-design-system';
|
||||
@import '~@covalent/core/common/platform.scss';
|
||||
@import '~font-awesome/scss/font-awesome';
|
||||
@import 'structureElements';
|
||||
@import 'helperClasses';
|
||||
|
@ -35,25 +32,119 @@ $fdsFontPath: './node_modules/roboto-fontface/fonts';
|
|||
@import 'components/explorer/grid-list/structureElements';
|
||||
@import 'components/explorer/dialogs/structureElements';
|
||||
|
||||
$primaryColor: $rose1; //$green2
|
||||
$primaryColorHover: $rose2; //$green3
|
||||
$accentColor: $blue-grey1; //$orange1
|
||||
$accentColorHover: $blue4; //$orange2
|
||||
@include covalent-material-icons;
|
||||
|
||||
// Include the base styles for Angular Material core. We include this here so that you only
|
||||
// have to load a single css file for Angular Material in your app.
|
||||
$primary-color: $rose1;
|
||||
$primary-color-hover: $rose2;
|
||||
$accent-color: $blue-grey1;
|
||||
$accent-color-hover: $blue4;
|
||||
|
||||
/* Include the base styles for Angular Material core. We include this here so that you only
|
||||
have to load a single css file for Angular Material in your app. */
|
||||
@include mat-core;
|
||||
|
||||
// Define the palettes
|
||||
$fds-base-palette: (50: #89df79, 100: $primaryColorHover, 200: #65d550, 300: #53d03b, 400: #46c32f, 500: $primaryColor, 600: $primaryColor, 700: #89df79, 800: #29701b, 900: #215c16, A100: #9be48d, A200: #ade9a2, A400: #bfedb6, A700: #1a4711, contrast: (50: $black-87-opacity, 100: $black-87-opacity, 200: $black-87-opacity, 300: white, 400: white, 500: $white-87-opacity, 600: $white-87-opacity, 700: $white-87-opacity, 800: $white-87-opacity, 900: $white-87-opacity, A100: $black-87-opacity, A200: white, A400: white, A700: $white-87-opacity));
|
||||
$fds-accent-palette: (50: #89df79, 100: $accentColorHover, 200: #65d550, 300: #53d03b, 400: #46c32f, 500: $accentColor, 600: $accentColor, 700: #89df79, 800: #29701b, 900: #215c16, A100: #9be48d, A200: #ade9a2, A400: #bfedb6, A700: #1a4711, contrast: (50: $black-87-opacity, 100: $black-87-opacity, 200: $black-87-opacity, 300: white, 400: white, 500: $white-87-opacity, 600: $white-87-opacity, 700: $white-87-opacity, 800: $white-87-opacity, 900: $white-87-opacity, A100: $black-87-opacity, A200: white, A400: white, A700: $white-87-opacity));
|
||||
$fds-warn-palette: (50: #81410f, 100: #d14a50, 200: #af5814, 300: #c66317, 400: #dd6f19, 500: $warnColor, 600: $warnColor, 700: #eea66e, 800: #f1b485, 900: #f4c29b, A100: #ec9857, A200: #89df79, A400: #89df79, A700: #f6d0b2, contrast: (50: $black-87-opacity, 100: $black-87-opacity, 200: $black-87-opacity, 300: white, 400: white, 500: $white-87-opacity, 600: $white-87-opacity, 700: $white-87-opacity, 800: $white-87-opacity, 900: $white-87-opacity, A100: $black-87-opacity, A200: white, A400: white, A700: $white-87-opacity));
|
||||
/* Define the palettes */
|
||||
$fds-base-palette: (
|
||||
50: #89df79, 100:
|
||||
$primary-color-hover,
|
||||
200: #65d550,
|
||||
300: #53d03b,
|
||||
400: #46c32f,
|
||||
500: $primary-color,
|
||||
600: $primary-color,
|
||||
700: #89df79,
|
||||
800: #29701b,
|
||||
900: #215c16,
|
||||
A100: #9be48d,
|
||||
A200: #ade9a2,
|
||||
A400: #bfedb6,
|
||||
A700: #1a4711,
|
||||
contrast: (
|
||||
50: $black-87-opacity,
|
||||
100: $black-87-opacity,
|
||||
200: $black-87-opacity,
|
||||
300: white,
|
||||
400: white,
|
||||
500: $white-87-opacity,
|
||||
600: $white-87-opacity,
|
||||
700: $white-87-opacity,
|
||||
800: $white-87-opacity,
|
||||
900: $white-87-opacity,
|
||||
A100: $black-87-opacity,
|
||||
A200: white,
|
||||
A400: white,
|
||||
A700: $white-87-opacity
|
||||
)
|
||||
);
|
||||
$fds-accent-palette: (
|
||||
50: #89df79,
|
||||
100: $accent-color-hover,
|
||||
200: #65d550,
|
||||
300: #53d03b,
|
||||
400: #46c32f,
|
||||
500: $accent-color,
|
||||
600: $accent-color,
|
||||
700: #89df79,
|
||||
800: #29701b,
|
||||
900: #215c16,
|
||||
A100: #9be48d,
|
||||
A200: #ade9a2,
|
||||
A400: #bfedb6,
|
||||
A700: #1a4711,
|
||||
contrast: (
|
||||
50: $black-87-opacity,
|
||||
100: $black-87-opacity,
|
||||
200: $black-87-opacity,
|
||||
300: white, 400: white,
|
||||
500: $white-87-opacity,
|
||||
600: $white-87-opacity,
|
||||
700: $white-87-opacity,
|
||||
800: $white-87-opacity,
|
||||
900: $white-87-opacity,
|
||||
A100: $black-87-opacity,
|
||||
A200: white,
|
||||
A400: white,
|
||||
A700: $white-87-opacity
|
||||
)
|
||||
);
|
||||
$fds-warn-palette: (
|
||||
50: #81410f,
|
||||
100: #d14a50,
|
||||
200: #af5814,
|
||||
300: #c66317,
|
||||
400: #dd6f19,
|
||||
500: $warn-color,
|
||||
600: $warn-color,
|
||||
700: #eea66e,
|
||||
800: #f1b485,
|
||||
900: #f4c29b,
|
||||
A100: #ec9857,
|
||||
A200: #89df79,
|
||||
A400: #89df79,
|
||||
A700: #f6d0b2,
|
||||
contrast: (
|
||||
50: $black-87-opacity,
|
||||
100: $black-87-opacity,
|
||||
200: $black-87-opacity,
|
||||
300: white,
|
||||
400: white,
|
||||
500: $white-87-opacity,
|
||||
600: $white-87-opacity,
|
||||
700: $white-87-opacity,
|
||||
800: $white-87-opacity,
|
||||
900: $white-87-opacity,
|
||||
A100: $black-87-opacity,
|
||||
A200: white,
|
||||
A400: white,
|
||||
A700: $white-87-opacity
|
||||
)
|
||||
);
|
||||
$fds-primary: mat-palette($fds-base-palette, 500, 100, 500);
|
||||
$fds-accent: mat-palette($fds-accent-palette, 500, 100, 500);
|
||||
$fds-warn: mat-palette($fds-warn-palette, 500, 100, 500);
|
||||
|
||||
// Define the theme (Optionally specify a default, lighter, and darker hue.)
|
||||
/* Define the theme (Optionally specify a default, lighter, and darker hue.) */
|
||||
$fds-theme: mat-light-theme($fds-primary, $fds-accent, $fds-warn);
|
||||
|
||||
// FDS theme mixin
|
||||
/* FDS theme mixin */
|
||||
@include fds-theme($fds-theme);
|
||||
|
|
|
@ -32,8 +32,7 @@ module.exports = {
|
|||
|
||||
// SCSS files
|
||||
'nf-registry.style.min': [
|
||||
path.resolve(__dirname, 'webapp/theming/nf-registry.scss'),
|
||||
path.resolve(__dirname, 'node_modules/@nifi-fds/core/common/styles/flow-design-system.scss')
|
||||
path.resolve(__dirname, 'webapp/theming/nf-registry.scss')
|
||||
]
|
||||
},
|
||||
|
||||
|
|
|
@ -43,21 +43,28 @@ module.exports = merge(commonConfig, {
|
|||
// Open the browser after server had been started
|
||||
open: true,
|
||||
|
||||
// Tell the server where to serve content from
|
||||
static: [
|
||||
{
|
||||
directory: path.join(__dirname, './'),
|
||||
publicPath: "/",
|
||||
}
|
||||
],
|
||||
|
||||
historyApiFallback: true,
|
||||
|
||||
// Enable gzip compression for everything served
|
||||
compress: true,
|
||||
|
||||
// Tell the server where to serve content from
|
||||
contentBase: [
|
||||
path.join(__dirname, './')
|
||||
],
|
||||
|
||||
// Enable Hot Module Replacement feature
|
||||
hot: true,
|
||||
|
||||
// The filename that is considered the index file.
|
||||
index: path.join(__dirname, 'index.html'),
|
||||
devMiddleware: {
|
||||
// The bundled files will be available in the browser under this path.
|
||||
publicPath: '/',
|
||||
index: path.join(__dirname, 'index.html'),
|
||||
},
|
||||
|
||||
// Specify a port number to listen for requests on
|
||||
port: 18081,
|
||||
|
@ -66,8 +73,6 @@ module.exports = merge(commonConfig, {
|
|||
proxy: {
|
||||
'/nifi-registry-api': 'http://localhost:18080'
|
||||
},
|
||||
|
||||
stats: 'verbose'
|
||||
},
|
||||
|
||||
module: {
|
||||
|
|
|
@ -175,7 +175,11 @@ module.exports = {
|
|||
},
|
||||
{
|
||||
// Compile Sass to CSS
|
||||
loader: 'sass-loader'
|
||||
loader: 'sass-loader',
|
||||
options: {
|
||||
// Prefer `dart-sass`
|
||||
implementation: require("sass"),
|
||||
},
|
||||
}
|
||||
]
|
||||
},
|
||||
|
|
|
@ -31,6 +31,13 @@ module.exports = merge(commonConfig, {
|
|||
// Tells webpack to use its built-in optimizations accordingly
|
||||
mode: 'production',
|
||||
|
||||
stats: {
|
||||
assets: true,
|
||||
entrypoints: true,
|
||||
chunks: true,
|
||||
modules: true
|
||||
},
|
||||
|
||||
// Source maps
|
||||
devtool: 'source-map',
|
||||
|
||||
|
|
3
pom.xml
3
pom.xml
|
@ -91,7 +91,8 @@
|
|||
<maven.compiler.target>1.8</maven.compiler.target>
|
||||
<maven.compiler.showDeprecation>true</maven.compiler.showDeprecation>
|
||||
<maven.surefire.arguments />
|
||||
<node.version>v12.22.2</node.version>
|
||||
<node.version>v16.13.2</node.version>
|
||||
<frontend.mvn.plugin.version>1.12.1</frontend.mvn.plugin.version>
|
||||
<project.build.outputTimestamp>10</project.build.outputTimestamp>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
|
||||
|
|
Loading…
Reference in New Issue