@alauda-fe/workload-util-shared 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/alauda-fe-workload-util-shared.mjs +5 -0
- package/esm2022/index.mjs +6 -0
- package/esm2022/lib/directives/index.mjs +3 -0
- package/esm2022/lib/directives/oam-resource-disabled-container.directive.mjs +53 -0
- package/esm2022/lib/directives/sync-control.directive.mjs +52 -0
- package/esm2022/lib/pipes/index.mjs +4 -0
- package/esm2022/lib/pipes/is-oam-resource.pipe.mjs +17 -0
- package/esm2022/lib/pipes/range.pipe.mjs +17 -0
- package/esm2022/lib/pipes/short-num.pipe.mjs +15 -0
- package/esm2022/lib/services/cluster-api.service.mjs +93 -0
- package/esm2022/lib/services/feature-gate.service.mjs +50 -0
- package/esm2022/lib/services/index.mjs +6 -0
- package/esm2022/lib/services/pod-util.service.mjs +70 -0
- package/esm2022/lib/services/resource-quota.service.mjs +116 -0
- package/esm2022/lib/services/terminal.service.mjs +46 -0
- package/esm2022/lib/typings/account.mjs +2 -0
- package/esm2022/lib/typings/backend-api.mjs +7 -0
- package/esm2022/lib/typings/batch-action.type.mjs +2 -0
- package/esm2022/lib/typings/form.mjs +2 -0
- package/esm2022/lib/typings/helpers.mjs +14 -0
- package/esm2022/lib/typings/index.mjs +10 -0
- package/esm2022/lib/typings/k8s-form-model.mjs +12 -0
- package/esm2022/lib/typings/k8s-resource-definitions/acp-resource-definition.mjs +258 -0
- package/esm2022/lib/typings/k8s-resource-definitions/alu-resource-definition.mjs +281 -0
- package/esm2022/lib/typings/k8s-resource-definitions/index.mjs +142 -0
- package/esm2022/lib/typings/k8s.mjs +143 -0
- package/esm2022/lib/typings/status.mjs +269 -0
- package/esm2022/lib/utils/code-editor-config.mjs +2 -0
- package/esm2022/lib/utils/constants.mjs +61 -0
- package/esm2022/lib/utils/crd.mjs +36 -0
- package/esm2022/lib/utils/format-number.mjs +227 -0
- package/esm2022/lib/utils/helpers.mjs +27 -0
- package/esm2022/lib/utils/index.mjs +14 -0
- package/esm2022/lib/utils/k8s-util.service.mjs +28 -0
- package/esm2022/lib/utils/patterns.mjs +140 -0
- package/esm2022/lib/utils/pod-util.mjs +75 -0
- package/esm2022/lib/utils/resource-status.mjs +86 -0
- package/esm2022/lib/utils/resources-config-util.mjs +28 -0
- package/esm2022/lib/utils/status.mjs +84 -0
- package/esm2022/lib/utils/validator.mjs +11 -0
- package/esm2022/lib/utils/workspace.mjs +25 -0
- package/index.d.ts +5 -0
- package/lib/directives/index.d.ts +2 -0
- package/lib/directives/oam-resource-disabled-container.directive.d.ts +17 -0
- package/lib/directives/sync-control.directive.d.ts +14 -0
- package/lib/pipes/index.d.ts +3 -0
- package/lib/pipes/is-oam-resource.pipe.d.ts +9 -0
- package/lib/pipes/range.pipe.d.ts +7 -0
- package/lib/pipes/short-num.pipe.d.ts +7 -0
- package/lib/services/cluster-api.service.d.ts +38 -0
- package/lib/services/feature-gate.service.d.ts +38 -0
- package/lib/services/index.d.ts +5 -0
- package/lib/services/pod-util.service.d.ts +18 -0
- package/lib/services/resource-quota.service.d.ts +25 -0
- package/lib/services/terminal.service.d.ts +15 -0
- package/lib/typings/account.d.ts +17 -0
- package/lib/typings/backend-api.d.ts +220 -0
- package/lib/typings/batch-action.type.d.ts +35 -0
- package/lib/typings/form.d.ts +10 -0
- package/lib/typings/helpers.d.ts +45 -0
- package/lib/typings/index.d.ts +9 -0
- package/lib/typings/k8s-form-model.d.ts +128 -0
- package/lib/typings/k8s-resource-definitions/acp-resource-definition.d.ts +242 -0
- package/lib/typings/k8s-resource-definitions/alu-resource-definition.d.ts +269 -0
- package/lib/typings/k8s-resource-definitions/index.d.ts +1911 -0
- package/lib/typings/k8s.d.ts +1147 -0
- package/lib/typings/status.d.ts +252 -0
- package/lib/utils/code-editor-config.d.ts +1 -0
- package/lib/utils/constants.d.ts +57 -0
- package/lib/utils/crd.d.ts +21 -0
- package/lib/utils/format-number.d.ts +11 -0
- package/lib/utils/helpers.d.ts +13 -0
- package/lib/utils/index.d.ts +13 -0
- package/lib/utils/k8s-util.service.d.ts +8 -0
- package/lib/utils/patterns.d.ts +132 -0
- package/lib/utils/pod-util.d.ts +19 -0
- package/lib/utils/resource-status.d.ts +8 -0
- package/lib/utils/resources-config-util.d.ts +22 -0
- package/lib/utils/status.d.ts +3 -0
- package/lib/utils/validator.d.ts +4 -0
- package/lib/utils/workspace.d.ts +14 -0
- package/package.json +36 -0
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
export const RESOURCE_ROUTE_MAPPER = {
|
|
2
|
+
Application: 'app',
|
|
3
|
+
};
|
|
4
|
+
export const STANDALONE_NG_MODEL = {
|
|
5
|
+
standalone: true,
|
|
6
|
+
};
|
|
7
|
+
export const PROMQL_EXPORT_EXTRA = [
|
|
8
|
+
{
|
|
9
|
+
icon: 'file_export',
|
|
10
|
+
title: { zh: '导出', en: 'Export' },
|
|
11
|
+
type: 'export',
|
|
12
|
+
},
|
|
13
|
+
];
|
|
14
|
+
export const ASSIGN_ALL = 'ALL_ALL';
|
|
15
|
+
export const DEFAULT = 'default';
|
|
16
|
+
export const TRUE = 'true';
|
|
17
|
+
export const FALSE = 'false';
|
|
18
|
+
export const TYPE = 'type';
|
|
19
|
+
export const ACTION = 'action';
|
|
20
|
+
export const KIND = 'kind';
|
|
21
|
+
export const STATUS = 'status';
|
|
22
|
+
export const ADDED_TIME = 'added_time';
|
|
23
|
+
export const CREATED_AT = 'created_at';
|
|
24
|
+
export const APP_MARKET = 'app-market';
|
|
25
|
+
export const ALL = 'ALL';
|
|
26
|
+
export const DOMAIN = 'domain';
|
|
27
|
+
export const PORT = 'port';
|
|
28
|
+
export const WEIGHT = 'weight';
|
|
29
|
+
export const OPERATORS_NAMESPACE = 'operators';
|
|
30
|
+
export const OCP_OPERATORS_NAMESPACE = 'openshift-operators';
|
|
31
|
+
export const CRON_RULE_DOC_PATH = 'cp-faq/11crontab/';
|
|
32
|
+
export const ACP_SAFEMODE = 'acp-safemode';
|
|
33
|
+
export const S2I_GIT = 's2i-git';
|
|
34
|
+
export const WORKLOAD_TYPES = [
|
|
35
|
+
'Deployment',
|
|
36
|
+
'DaemonSet',
|
|
37
|
+
'StatefulSet',
|
|
38
|
+
];
|
|
39
|
+
export const BASE_CLUSTER_ARCH = 'amd64';
|
|
40
|
+
export const HARDWARE_ARCHITECTURE_MAPPER = {
|
|
41
|
+
amd64: 'x86',
|
|
42
|
+
arm64: 'ARM',
|
|
43
|
+
};
|
|
44
|
+
export const SPECIAL_SYMBOL = Symbol('special symbol for ui usage');
|
|
45
|
+
/**
|
|
46
|
+
* system 不对外暴露
|
|
47
|
+
*
|
|
48
|
+
* reference: http://confluence.alauda.cn/pages/viewpage.action?pageId=81426797
|
|
49
|
+
*/
|
|
50
|
+
export const OPERATOR_CATALOG_MAPPER = {
|
|
51
|
+
PLATFORM: 'platform',
|
|
52
|
+
SYSTEM: 'system',
|
|
53
|
+
};
|
|
54
|
+
export const V1BETA1 = 'v1beta1';
|
|
55
|
+
export const MAX_PORT = 65_535;
|
|
56
|
+
export var CRD_SCOPE;
|
|
57
|
+
(function (CRD_SCOPE) {
|
|
58
|
+
CRD_SCOPE["NAMESPACED"] = "Namespaced";
|
|
59
|
+
CRD_SCOPE["CLUSTER"] = "Cluster";
|
|
60
|
+
})(CRD_SCOPE || (CRD_SCOPE = {}));
|
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy93b3JrbG9hZC91dGlsLXNoYXJlZC9zcmMvbGliL3V0aWxzL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBYztJQUM5QyxXQUFXLEVBQUUsS0FBSztDQUNuQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUc7SUFDakMsVUFBVSxFQUFFLElBQUk7Q0FDakIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHO0lBQ2pDO1FBQ0UsSUFBSSxFQUFFLGFBQWE7UUFDbkIsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFO1FBQ2pDLElBQUksRUFBRSxRQUFRO0tBQ2Y7Q0FDRixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLFNBQVMsQ0FBQztBQUNwQyxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDO0FBQ2pDLE1BQU0sQ0FBQyxNQUFNLElBQUksR0FBRyxNQUFNLENBQUM7QUFDM0IsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQztBQUM3QixNQUFNLENBQUMsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDO0FBQzNCLE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUM7QUFDL0IsTUFBTSxDQUFDLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQztBQUMzQixNQUFNLENBQUMsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDO0FBQy9CLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxZQUFZLENBQUM7QUFDdkMsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLFlBQVksQ0FBQztBQUN2QyxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsWUFBWSxDQUFDO0FBQ3ZDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsR0FBRyxLQUFLLENBQUM7QUFDekIsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQztBQUMvQixNQUFNLENBQUMsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDO0FBQzNCLE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUM7QUFFL0IsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsV0FBVyxDQUFDO0FBRS9DLE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLHFCQUFxQixDQUFDO0FBRTdELE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLG1CQUFtQixDQUFDO0FBRXRELE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxjQUFjLENBQUM7QUFDM0MsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQztBQUVqQyxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUc7SUFDNUIsWUFBWTtJQUNaLFdBQVc7SUFDWCxhQUFhO0NBQ0wsQ0FBQztBQUVYLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLE9BQU8sQ0FBQztBQUV6QyxNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRztJQUMxQyxLQUFLLEVBQUUsS0FBSztJQUNaLEtBQUssRUFBRSxLQUFLO0NBQ2IsQ0FBQztBQUlGLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxNQUFNLENBQUMsNkJBQTZCLENBQUMsQ0FBQztBQUdwRTs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUc7SUFDckMsUUFBUSxFQUFFLFVBQVU7SUFDcEIsTUFBTSxFQUFFLFFBQVE7Q0FDakIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUM7QUFFakMsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQztBQUUvQixNQUFNLENBQU4sSUFBWSxTQUdYO0FBSEQsV0FBWSxTQUFTO0lBQ25CLHNDQUF5QixDQUFBO0lBQ3pCLGdDQUFtQixDQUFBO0FBQ3JCLENBQUMsRUFIVyxTQUFTLEtBQVQsU0FBUyxRQUdwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN0cmluZ01hcCB9IGZyb20gJ0BhbGF1ZGEtZmUvY29tbW9uJztcblxuZXhwb3J0IGNvbnN0IFJFU09VUkNFX1JPVVRFX01BUFBFUjogU3RyaW5nTWFwID0ge1xuICBBcHBsaWNhdGlvbjogJ2FwcCcsXG59O1xuXG5leHBvcnQgY29uc3QgU1RBTkRBTE9ORV9OR19NT0RFTCA9IHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn07XG5cbmV4cG9ydCBjb25zdCBQUk9NUUxfRVhQT1JUX0VYVFJBID0gW1xuICB7XG4gICAgaWNvbjogJ2ZpbGVfZXhwb3J0JyxcbiAgICB0aXRsZTogeyB6aDogJ+WvvOWHuicsIGVuOiAnRXhwb3J0JyB9LFxuICAgIHR5cGU6ICdleHBvcnQnLFxuICB9LFxuXTtcblxuZXhwb3J0IGNvbnN0IEFTU0lHTl9BTEwgPSAnQUxMX0FMTCc7XG5leHBvcnQgY29uc3QgREVGQVVMVCA9ICdkZWZhdWx0JztcbmV4cG9ydCBjb25zdCBUUlVFID0gJ3RydWUnO1xuZXhwb3J0IGNvbnN0IEZBTFNFID0gJ2ZhbHNlJztcbmV4cG9ydCBjb25zdCBUWVBFID0gJ3R5cGUnO1xuZXhwb3J0IGNvbnN0IEFDVElPTiA9ICdhY3Rpb24nO1xuZXhwb3J0IGNvbnN0IEtJTkQgPSAna2luZCc7XG5leHBvcnQgY29uc3QgU1RBVFVTID0gJ3N0YXR1cyc7XG5leHBvcnQgY29uc3QgQURERURfVElNRSA9ICdhZGRlZF90aW1lJztcbmV4cG9ydCBjb25zdCBDUkVBVEVEX0FUID0gJ2NyZWF0ZWRfYXQnO1xuZXhwb3J0IGNvbnN0IEFQUF9NQVJLRVQgPSAnYXBwLW1hcmtldCc7XG5leHBvcnQgY29uc3QgQUxMID0gJ0FMTCc7XG5leHBvcnQgY29uc3QgRE9NQUlOID0gJ2RvbWFpbic7XG5leHBvcnQgY29uc3QgUE9SVCA9ICdwb3J0JztcbmV4cG9ydCBjb25zdCBXRUlHSFQgPSAnd2VpZ2h0JztcblxuZXhwb3J0IGNvbnN0IE9QRVJBVE9SU19OQU1FU1BBQ0UgPSAnb3BlcmF0b3JzJztcblxuZXhwb3J0IGNvbnN0IE9DUF9PUEVSQVRPUlNfTkFNRVNQQUNFID0gJ29wZW5zaGlmdC1vcGVyYXRvcnMnO1xuXG5leHBvcnQgY29uc3QgQ1JPTl9SVUxFX0RPQ19QQVRIID0gJ2NwLWZhcS8xMWNyb250YWIvJztcblxuZXhwb3J0IGNvbnN0IEFDUF9TQUZFTU9ERSA9ICdhY3Atc2FmZW1vZGUnO1xuZXhwb3J0IGNvbnN0IFMySV9HSVQgPSAnczJpLWdpdCc7XG5cbmV4cG9ydCBjb25zdCBXT1JLTE9BRF9UWVBFUyA9IFtcbiAgJ0RlcGxveW1lbnQnLFxuICAnRGFlbW9uU2V0JyxcbiAgJ1N0YXRlZnVsU2V0Jyxcbl0gYXMgY29uc3Q7XG5cbmV4cG9ydCBjb25zdCBCQVNFX0NMVVNURVJfQVJDSCA9ICdhbWQ2NCc7XG5cbmV4cG9ydCBjb25zdCBIQVJEV0FSRV9BUkNISVRFQ1RVUkVfTUFQUEVSID0ge1xuICBhbWQ2NDogJ3g4NicsXG4gIGFybTY0OiAnQVJNJyxcbn07XG5cbmV4cG9ydCB0eXBlIEhhcmR3YXJlQXJjaGl0ZWN0dXJlID0ga2V5b2YgdHlwZW9mIEhBUkRXQVJFX0FSQ0hJVEVDVFVSRV9NQVBQRVI7XG5cbmV4cG9ydCBjb25zdCBTUEVDSUFMX1NZTUJPTCA9IFN5bWJvbCgnc3BlY2lhbCBzeW1ib2wgZm9yIHVpIHVzYWdlJyk7XG5leHBvcnQgdHlwZSBTcGVjaWFsU3ltYm9sID0gdHlwZW9mIFNQRUNJQUxfU1lNQk9MO1xuXG4vKipcbiAqIHN5c3RlbSDkuI3lr7nlpJbmmrTpnLJcbiAqXG4gKiByZWZlcmVuY2U6IGh0dHA6Ly9jb25mbHVlbmNlLmFsYXVkYS5jbi9wYWdlcy92aWV3cGFnZS5hY3Rpb24/cGFnZUlkPTgxNDI2Nzk3XG4gKi9cbmV4cG9ydCBjb25zdCBPUEVSQVRPUl9DQVRBTE9HX01BUFBFUiA9IHtcbiAgUExBVEZPUk06ICdwbGF0Zm9ybScsXG4gIFNZU1RFTTogJ3N5c3RlbScsXG59O1xuXG5leHBvcnQgY29uc3QgVjFCRVRBMSA9ICd2MWJldGExJztcblxuZXhwb3J0IGNvbnN0IE1BWF9QT1JUID0gNjVfNTM1O1xuXG5leHBvcnQgZW51bSBDUkRfU0NPUEUge1xuICBOQU1FU1BBQ0VEID0gJ05hbWVzcGFjZWQnLFxuICBDTFVTVEVSID0gJ0NsdXN0ZXInLFxufVxuIl19
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { get } from 'lodash-es';
|
|
2
|
+
import { CRD_SCOPE } from './constants';
|
|
3
|
+
export const getCRDVersionList = (crd) => get(crd, 'spec.versions', []);
|
|
4
|
+
export const getCRDScopeDisplay = (crd) => {
|
|
5
|
+
if (crd.spec.scope === CRD_SCOPE.NAMESPACED) {
|
|
6
|
+
return 'namespace';
|
|
7
|
+
}
|
|
8
|
+
return 'cluster';
|
|
9
|
+
};
|
|
10
|
+
export const getStorageCRDVersion = (crd) => getCRDVersionList(crd).find(c => !!c.storage);
|
|
11
|
+
export const getStorageCrdOpenApiSchema = (crd) => getStorageCRDVersion(crd)?.schema?.openAPIV3Schema;
|
|
12
|
+
export const isCrdNamespaceScoped = (crd) => getCRDScopeDisplay(crd) === 'namespace';
|
|
13
|
+
export const isNotCrdNamespaceScoped = (crd) => getCRDScopeDisplay(crd) !== 'namespace';
|
|
14
|
+
export const getCRDVersionDesc = (crd, translate, _locale) => {
|
|
15
|
+
const suffix = ` (${translate.get('storage_version')})`;
|
|
16
|
+
return getCRDVersionList(crd)
|
|
17
|
+
.map(v => `${v.name}${(v.storage && suffix) || ''}`)
|
|
18
|
+
.join(', ');
|
|
19
|
+
};
|
|
20
|
+
export const getCRDefinitionType = (crd) => ({
|
|
21
|
+
apiGroup: crd.spec.group,
|
|
22
|
+
type: crd.spec.names.plural,
|
|
23
|
+
apiVersion: getStorageCRDVersion(crd)?.name,
|
|
24
|
+
});
|
|
25
|
+
export const encodeCRPathSuffix = (cr) => [cr.metadata.name, cr.metadata.namespace].join('~');
|
|
26
|
+
export const decodeCRPathSuffix = (crPath = '') => {
|
|
27
|
+
const [name, namespace] = crPath.split('~');
|
|
28
|
+
return {
|
|
29
|
+
name,
|
|
30
|
+
namespace,
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
export const getCrTypeByCrd = (crdName) => crdName?.split('.')[0];
|
|
34
|
+
export const getVersionSchemaFromCrd = (version) => get(version, ['schema', 'openAPIV3Schema', 'properties', 'spec']);
|
|
35
|
+
export const getCrdSpecKind = (crd) => crd?.spec?.names?.kind;
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy93b3JrbG9hZC91dGlsLXNoYXJlZC9zcmMvbGliL3V0aWxzL2NyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRWhDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFeEMsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsQ0FDL0IsR0FBNkIsRUFDTSxFQUFFLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxlQUFlLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFFdEUsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxHQUE2QixFQUFFLEVBQUU7SUFDbEUsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssS0FBSyxTQUFTLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDNUMsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQztJQUNELE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLENBQUMsR0FBNkIsRUFBRSxFQUFFLENBQ3BFLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7QUFFaEQsTUFBTSxDQUFDLE1BQU0sMEJBQTBCLEdBQUcsQ0FBQyxHQUE2QixFQUFFLEVBQUUsQ0FDMUUsb0JBQW9CLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxFQUFFLGVBQWUsQ0FBQztBQUVyRCxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLEdBQTZCLEVBQUUsRUFBRSxDQUNwRSxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsS0FBSyxXQUFXLENBQUM7QUFFMUMsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsQ0FBQyxHQUE2QixFQUFFLEVBQUUsQ0FDdkUsa0JBQWtCLENBQUMsR0FBRyxDQUFDLEtBQUssV0FBVyxDQUFDO0FBRTFDLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLENBQy9CLEdBQTZCLEVBQzdCLFNBQTJCLEVBQzNCLE9BQWdCLEVBQ2hCLEVBQUU7SUFDRixNQUFNLE1BQU0sR0FBRyxLQUFLLFNBQVMsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDO0lBQ3hELE9BQU8saUJBQWlCLENBQUMsR0FBRyxDQUFDO1NBQzFCLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksTUFBTSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7U0FDbkQsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2hCLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLENBQUMsR0FBNkIsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNyRSxRQUFRLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLO0lBQ3hCLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNO0lBQzNCLFVBQVUsRUFBRSxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJO0NBQzVDLENBQUMsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLENBQUMsRUFBc0IsRUFBRSxFQUFFLENBQzNELENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFFdEQsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxNQUFNLEdBQUcsRUFBRSxFQUFFLEVBQUU7SUFDaEQsTUFBTSxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzVDLE9BQU87UUFDTCxJQUFJO1FBQ0osU0FBUztLQUNWLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsQ0FBQyxPQUFlLEVBQUUsRUFBRSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFFMUUsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsQ0FDckMsT0FBd0MsRUFDeEMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsWUFBWSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7QUFFdkUsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHLENBQUMsR0FBNkIsRUFBRSxFQUFFLENBQzlELEdBQUcsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEN1c3RvbVJlc291cmNlRGVmaW5pdGlvbixcbiAgQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uVmVyc2lvbixcbiAgS3ViZXJuZXRlc1Jlc291cmNlLFxuICBUcmFuc2xhdGVTZXJ2aWNlLFxufSBmcm9tICdAYWxhdWRhLWZlL2NvbW1vbic7XG5pbXBvcnQgeyBnZXQgfSBmcm9tICdsb2Rhc2gtZXMnO1xuXG5pbXBvcnQgeyBDUkRfU0NPUEUgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5cbmV4cG9ydCBjb25zdCBnZXRDUkRWZXJzaW9uTGlzdCA9IChcbiAgY3JkOiBDdXN0b21SZXNvdXJjZURlZmluaXRpb24sXG4pOiBDdXN0b21SZXNvdXJjZURlZmluaXRpb25WZXJzaW9uW10gPT4gZ2V0KGNyZCwgJ3NwZWMudmVyc2lvbnMnLCBbXSk7XG5cbmV4cG9ydCBjb25zdCBnZXRDUkRTY29wZURpc3BsYXkgPSAoY3JkOiBDdXN0b21SZXNvdXJjZURlZmluaXRpb24pID0+IHtcbiAgaWYgKGNyZC5zcGVjLnNjb3BlID09PSBDUkRfU0NPUEUuTkFNRVNQQUNFRCkge1xuICAgIHJldHVybiAnbmFtZXNwYWNlJztcbiAgfVxuICByZXR1cm4gJ2NsdXN0ZXInO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFN0b3JhZ2VDUkRWZXJzaW9uID0gKGNyZDogQ3VzdG9tUmVzb3VyY2VEZWZpbml0aW9uKSA9PlxuICBnZXRDUkRWZXJzaW9uTGlzdChjcmQpLmZpbmQoYyA9PiAhIWMuc3RvcmFnZSk7XG5cbmV4cG9ydCBjb25zdCBnZXRTdG9yYWdlQ3JkT3BlbkFwaVNjaGVtYSA9IChjcmQ6IEN1c3RvbVJlc291cmNlRGVmaW5pdGlvbikgPT5cbiAgZ2V0U3RvcmFnZUNSRFZlcnNpb24oY3JkKT8uc2NoZW1hPy5vcGVuQVBJVjNTY2hlbWE7XG5cbmV4cG9ydCBjb25zdCBpc0NyZE5hbWVzcGFjZVNjb3BlZCA9IChjcmQ6IEN1c3RvbVJlc291cmNlRGVmaW5pdGlvbikgPT5cbiAgZ2V0Q1JEU2NvcGVEaXNwbGF5KGNyZCkgPT09ICduYW1lc3BhY2UnO1xuXG5leHBvcnQgY29uc3QgaXNOb3RDcmROYW1lc3BhY2VTY29wZWQgPSAoY3JkOiBDdXN0b21SZXNvdXJjZURlZmluaXRpb24pID0+XG4gIGdldENSRFNjb3BlRGlzcGxheShjcmQpICE9PSAnbmFtZXNwYWNlJztcblxuZXhwb3J0IGNvbnN0IGdldENSRFZlcnNpb25EZXNjID0gKFxuICBjcmQ6IEN1c3RvbVJlc291cmNlRGVmaW5pdGlvbixcbiAgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICBfbG9jYWxlPzogc3RyaW5nLFxuKSA9PiB7XG4gIGNvbnN0IHN1ZmZpeCA9IGAgKCR7dHJhbnNsYXRlLmdldCgnc3RvcmFnZV92ZXJzaW9uJyl9KWA7XG4gIHJldHVybiBnZXRDUkRWZXJzaW9uTGlzdChjcmQpXG4gICAgLm1hcCh2ID0+IGAke3YubmFtZX0keyh2LnN0b3JhZ2UgJiYgc3VmZml4KSB8fCAnJ31gKVxuICAgIC5qb2luKCcsICcpO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldENSRGVmaW5pdGlvblR5cGUgPSAoY3JkOiBDdXN0b21SZXNvdXJjZURlZmluaXRpb24pID0+ICh7XG4gIGFwaUdyb3VwOiBjcmQuc3BlYy5ncm91cCxcbiAgdHlwZTogY3JkLnNwZWMubmFtZXMucGx1cmFsLFxuICBhcGlWZXJzaW9uOiBnZXRTdG9yYWdlQ1JEVmVyc2lvbihjcmQpPy5uYW1lLFxufSk7XG5cbmV4cG9ydCBjb25zdCBlbmNvZGVDUlBhdGhTdWZmaXggPSAoY3I6IEt1YmVybmV0ZXNSZXNvdXJjZSkgPT5cbiAgW2NyLm1ldGFkYXRhLm5hbWUsIGNyLm1ldGFkYXRhLm5hbWVzcGFjZV0uam9pbignficpO1xuXG5leHBvcnQgY29uc3QgZGVjb2RlQ1JQYXRoU3VmZml4ID0gKGNyUGF0aCA9ICcnKSA9PiB7XG4gIGNvbnN0IFtuYW1lLCBuYW1lc3BhY2VdID0gY3JQYXRoLnNwbGl0KCd+Jyk7XG4gIHJldHVybiB7XG4gICAgbmFtZSxcbiAgICBuYW1lc3BhY2UsXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0Q3JUeXBlQnlDcmQgPSAoY3JkTmFtZTogc3RyaW5nKSA9PiBjcmROYW1lPy5zcGxpdCgnLicpWzBdO1xuXG5leHBvcnQgY29uc3QgZ2V0VmVyc2lvblNjaGVtYUZyb21DcmQgPSAoXG4gIHZlcnNpb246IEN1c3RvbVJlc291cmNlRGVmaW5pdGlvblZlcnNpb24sXG4pID0+IGdldCh2ZXJzaW9uLCBbJ3NjaGVtYScsICdvcGVuQVBJVjNTY2hlbWEnLCAncHJvcGVydGllcycsICdzcGVjJ10pO1xuXG5leHBvcnQgY29uc3QgZ2V0Q3JkU3BlY0tpbmQgPSAoY3JkOiBDdXN0b21SZXNvdXJjZURlZmluaXRpb24pID0+XG4gIGNyZD8uc3BlYz8ubmFtZXM/LmtpbmQ7XG4iXX0=
|
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
const MAX_DIGITS = 22;
|
|
2
|
+
const DECIMAL_SEP = '.';
|
|
3
|
+
const ZERO_CHAR = '0';
|
|
4
|
+
const SymbolInfinity = '∞';
|
|
5
|
+
const SymbolDecimal = '.';
|
|
6
|
+
const SymbolGroup = '';
|
|
7
|
+
const SymbolExponential = 'E';
|
|
8
|
+
const SymbolNumberPattern = {
|
|
9
|
+
gSize: 3,
|
|
10
|
+
lgSize: 3,
|
|
11
|
+
maxFrac: 3,
|
|
12
|
+
minFrac: 0,
|
|
13
|
+
minInt: 1,
|
|
14
|
+
negPre: '-',
|
|
15
|
+
negSuf: '',
|
|
16
|
+
posPre: '',
|
|
17
|
+
posSuf: '',
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Transforms a number to a locale string based on a style and a format
|
|
21
|
+
*/
|
|
22
|
+
function formatNumberToLocaleString(value, pattern, digitsInfo) {
|
|
23
|
+
let formattedText = '';
|
|
24
|
+
let isZero = false;
|
|
25
|
+
if (isFinite(value)) {
|
|
26
|
+
const parsedNumber = parseNumber(value);
|
|
27
|
+
const minInt = digitsInfo[0] || 0;
|
|
28
|
+
const minFraction = digitsInfo[1] || 0;
|
|
29
|
+
const maxFraction = digitsInfo[2] || 0;
|
|
30
|
+
roundNumber(parsedNumber, minFraction, maxFraction);
|
|
31
|
+
let digits = parsedNumber.digits;
|
|
32
|
+
let integerLen = parsedNumber.integerLen;
|
|
33
|
+
const exponent = parsedNumber.exponent;
|
|
34
|
+
let decimals = [];
|
|
35
|
+
isZero = digits.every(d => !d);
|
|
36
|
+
// pad zeros for small numbers
|
|
37
|
+
for (; integerLen < minInt; integerLen++) {
|
|
38
|
+
digits.unshift(0);
|
|
39
|
+
}
|
|
40
|
+
// pad zeros for small numbers
|
|
41
|
+
for (; integerLen < 0; integerLen++) {
|
|
42
|
+
digits.unshift(0);
|
|
43
|
+
}
|
|
44
|
+
// extract decimals digits
|
|
45
|
+
if (integerLen > 0) {
|
|
46
|
+
decimals = digits.splice(integerLen, digits.length);
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
decimals = digits;
|
|
50
|
+
digits = [0];
|
|
51
|
+
}
|
|
52
|
+
// format the integer digits with grouping separators
|
|
53
|
+
const groups = [];
|
|
54
|
+
if (digits.length >= pattern.lgSize) {
|
|
55
|
+
groups.unshift(digits.splice(-pattern.lgSize, digits.length).join(''));
|
|
56
|
+
}
|
|
57
|
+
while (digits.length > pattern.gSize) {
|
|
58
|
+
groups.unshift(digits.splice(-pattern.gSize, digits.length).join(''));
|
|
59
|
+
}
|
|
60
|
+
if (digits.length > 0) {
|
|
61
|
+
groups.unshift(digits.join(''));
|
|
62
|
+
}
|
|
63
|
+
formattedText = groups.join(SymbolGroup);
|
|
64
|
+
// append the decimal digits
|
|
65
|
+
if (decimals.length > 0) {
|
|
66
|
+
formattedText += SymbolDecimal + decimals.join('');
|
|
67
|
+
}
|
|
68
|
+
if (exponent) {
|
|
69
|
+
formattedText += SymbolExponential + '+' + exponent;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
formattedText = SymbolInfinity;
|
|
74
|
+
}
|
|
75
|
+
formattedText =
|
|
76
|
+
value < 0 && !isZero
|
|
77
|
+
? pattern.negPre + formattedText + pattern.negSuf
|
|
78
|
+
: pattern.posPre + formattedText + pattern.posSuf;
|
|
79
|
+
return formattedText;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* @ngModule CommonModule
|
|
83
|
+
*
|
|
84
|
+
* Formats a number as text. Group sizing and separator and other locale-specific
|
|
85
|
+
* configurations are based on the locale.
|
|
86
|
+
*
|
|
87
|
+
* Where:
|
|
88
|
+
* - `value` is a number.
|
|
89
|
+
* - `digitInfo` See {@link DecimalPipe} for more details.
|
|
90
|
+
*/
|
|
91
|
+
export function formatNumber(value, digitsInfo) {
|
|
92
|
+
return formatNumberToLocaleString(value, SymbolNumberPattern, digitsInfo);
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Parses a number.
|
|
96
|
+
* Significant bits of this parse algorithm came from https://github.com/MikeMcl/big.js/
|
|
97
|
+
*/
|
|
98
|
+
function parseNumber(num) {
|
|
99
|
+
let numStr = Math.abs(num) + '';
|
|
100
|
+
let exponent = 0;
|
|
101
|
+
let digits;
|
|
102
|
+
let integerLen;
|
|
103
|
+
let i;
|
|
104
|
+
let j;
|
|
105
|
+
let zeros;
|
|
106
|
+
// Decimal point?
|
|
107
|
+
if ((integerLen = numStr.indexOf(DECIMAL_SEP)) > -1) {
|
|
108
|
+
numStr = numStr.replace(DECIMAL_SEP, '');
|
|
109
|
+
}
|
|
110
|
+
// Exponential form?
|
|
111
|
+
if ((i = numStr.search(/e/i)) > 0) {
|
|
112
|
+
// Work out the exponent.
|
|
113
|
+
if (integerLen < 0) {
|
|
114
|
+
integerLen = i;
|
|
115
|
+
}
|
|
116
|
+
integerLen += +numStr.slice(i + 1);
|
|
117
|
+
numStr = numStr.slice(0, Math.max(0, i));
|
|
118
|
+
}
|
|
119
|
+
else if (integerLen < 0) {
|
|
120
|
+
// There was no decimal point or exponent so it is an integer.
|
|
121
|
+
integerLen = numStr.length;
|
|
122
|
+
}
|
|
123
|
+
// Count the number of leading zeros.
|
|
124
|
+
for (i = 0; numStr.charAt(i) === ZERO_CHAR; i++) {
|
|
125
|
+
/* empty */
|
|
126
|
+
}
|
|
127
|
+
if (i === (zeros = numStr.length)) {
|
|
128
|
+
// The digits are all zero.
|
|
129
|
+
digits = [0];
|
|
130
|
+
integerLen = 1;
|
|
131
|
+
}
|
|
132
|
+
else {
|
|
133
|
+
// Count the number of trailing zeros
|
|
134
|
+
zeros--;
|
|
135
|
+
while (numStr.charAt(zeros) === ZERO_CHAR) {
|
|
136
|
+
zeros--;
|
|
137
|
+
}
|
|
138
|
+
// Trailing zeros are insignificant so ignore them
|
|
139
|
+
integerLen -= i;
|
|
140
|
+
digits = [];
|
|
141
|
+
// Convert string to array of digits without leading/trailing zeros.
|
|
142
|
+
for (j = 0; i <= zeros; i++, j++) {
|
|
143
|
+
digits[j] = Number(numStr.charAt(i));
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
// If the number overflows the maximum allowed digits then use an exponent.
|
|
147
|
+
if (integerLen > MAX_DIGITS) {
|
|
148
|
+
digits = digits.splice(0, MAX_DIGITS - 1);
|
|
149
|
+
exponent = integerLen - 1;
|
|
150
|
+
integerLen = 1;
|
|
151
|
+
}
|
|
152
|
+
return { digits, exponent, integerLen };
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Round the parsed number to the specified number of decimal places
|
|
156
|
+
* This function changes the parsedNumber in-place
|
|
157
|
+
*/
|
|
158
|
+
function roundNumber(parsedNumber, minFrac, maxFrac) {
|
|
159
|
+
if (minFrac > maxFrac) {
|
|
160
|
+
throw new Error(`The minimum number of digits after fraction (${minFrac}) is higher than the maximum (${maxFrac}).`);
|
|
161
|
+
}
|
|
162
|
+
const digits = parsedNumber.digits;
|
|
163
|
+
let fractionLen = digits.length - parsedNumber.integerLen;
|
|
164
|
+
const fractionSize = Math.min(Math.max(minFrac, fractionLen), maxFrac);
|
|
165
|
+
// The index of the digit to where rounding is to occur
|
|
166
|
+
let roundAt = fractionSize + parsedNumber.integerLen;
|
|
167
|
+
const digit = digits[roundAt];
|
|
168
|
+
if (roundAt > 0) {
|
|
169
|
+
// Drop fractional digits beyond `roundAt`
|
|
170
|
+
digits.splice(Math.max(parsedNumber.integerLen, roundAt));
|
|
171
|
+
// Set non-fractional digits beyond `roundAt` to 0
|
|
172
|
+
for (let j = roundAt; j < digits.length; j++) {
|
|
173
|
+
digits[j] = 0;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
else {
|
|
177
|
+
// We rounded to zero so reset the parsedNumber
|
|
178
|
+
fractionLen = Math.max(0, fractionLen);
|
|
179
|
+
parsedNumber.integerLen = 1;
|
|
180
|
+
digits.length = Math.max(1, (roundAt = fractionSize + 1));
|
|
181
|
+
digits[0] = 0;
|
|
182
|
+
for (let i = 1; i < roundAt; i++) {
|
|
183
|
+
digits[i] = 0;
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
if (digit >= 5) {
|
|
187
|
+
if (roundAt - 1 < 0) {
|
|
188
|
+
for (let k = 0; k > roundAt; k--) {
|
|
189
|
+
digits.unshift(0);
|
|
190
|
+
parsedNumber.integerLen++;
|
|
191
|
+
}
|
|
192
|
+
digits.unshift(1);
|
|
193
|
+
parsedNumber.integerLen++;
|
|
194
|
+
}
|
|
195
|
+
else {
|
|
196
|
+
digits[roundAt - 1]++;
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
// Pad out with zeros to get the required fraction length
|
|
200
|
+
for (; fractionLen < Math.max(0, fractionSize); fractionLen++) {
|
|
201
|
+
digits.push(0);
|
|
202
|
+
}
|
|
203
|
+
let dropTrailingZeros = fractionSize !== 0;
|
|
204
|
+
// Minimal length = nb of decimals required + current nb of integers
|
|
205
|
+
// Any number besides that is optional and can be removed if it's a trailing 0
|
|
206
|
+
const minLen = minFrac + parsedNumber.integerLen;
|
|
207
|
+
// Do any carrying, e.g. a digit was rounded up to 10
|
|
208
|
+
const carry = digits.reduceRight((c, d, i, ds) => {
|
|
209
|
+
d = d + c;
|
|
210
|
+
ds[i] = d < 10 ? d : d - 10; // d % 10
|
|
211
|
+
if (dropTrailingZeros) {
|
|
212
|
+
// Do not keep meaningless fractional trailing zeros (e.g. 15.52000 --> 15.52)
|
|
213
|
+
if (ds[i] === 0 && i >= minLen) {
|
|
214
|
+
ds.pop();
|
|
215
|
+
}
|
|
216
|
+
else {
|
|
217
|
+
dropTrailingZeros = false;
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
return d >= 10 ? 1 : 0;
|
|
221
|
+
}, 0);
|
|
222
|
+
if (carry) {
|
|
223
|
+
digits.unshift(carry);
|
|
224
|
+
parsedNumber.integerLen++;
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LW51bWJlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL21vZHVsZXMvd29ya2xvYWQvdXRpbC1zaGFyZWQvc3JjL2xpYi91dGlscy9mb3JtYXQtbnVtYmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxHQUFHLEVBQUUsQ0FBQztBQUN0QixNQUFNLFdBQVcsR0FBRyxHQUFHLENBQUM7QUFDeEIsTUFBTSxTQUFTLEdBQUcsR0FBRyxDQUFDO0FBQ3RCLE1BQU0sY0FBYyxHQUFHLEdBQUcsQ0FBQztBQUMzQixNQUFNLGFBQWEsR0FBRyxHQUFHLENBQUM7QUFDMUIsTUFBTSxXQUFXLEdBQUcsRUFBRSxDQUFDO0FBQ3ZCLE1BQU0saUJBQWlCLEdBQUcsR0FBRyxDQUFDO0FBQzlCLE1BQU0sbUJBQW1CLEdBQUc7SUFDMUIsS0FBSyxFQUFFLENBQUM7SUFDUixNQUFNLEVBQUUsQ0FBQztJQUNULE9BQU8sRUFBRSxDQUFDO0lBQ1YsT0FBTyxFQUFFLENBQUM7SUFDVixNQUFNLEVBQUUsQ0FBQztJQUNULE1BQU0sRUFBRSxHQUFHO0lBQ1gsTUFBTSxFQUFFLEVBQUU7SUFDVixNQUFNLEVBQUUsRUFBRTtJQUNWLE1BQU0sRUFBRSxFQUFFO0NBQ1gsQ0FBQztBQUVGOztHQUVHO0FBRUgsU0FBUywwQkFBMEIsQ0FDakMsS0FBYSxFQUNiLE9BQTJCLEVBQzNCLFVBQXFCO0lBRXJCLElBQUksYUFBYSxHQUFHLEVBQUUsQ0FBQztJQUN2QixJQUFJLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFFbkIsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNwQixNQUFNLFlBQVksR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFeEMsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsQyxNQUFNLFdBQVcsR0FBRyxVQUFVLENB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QUFDO0lBQzVCLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgTUFYX0RJR0lUUyA9IDIyO1xuY29uc3QgREVDSU1BTF9TRVAgPSAnLic7XG5jb25zdCBaRVJPX0NIQVIgPSAnMCc7XG5jb25zdCBTeW1ib2xJbmZpbml0eSA9ICfiiJ4nO1xuY29uc3QgU3ltYm9sRGVjaW1hbCA9ICcuJztcbmNvbnN0IFN5bWJvbEdyb3VwID0gJyc7XG5jb25zdCBTeW1ib2xFeHBvbmVudGlhbCA9ICdFJztcbmNvbnN0IFN5bWJvbE51bWJlclBhdHRlcm4gPSB7XG4gIGdTaXplOiAzLFxuICBsZ1NpemU6IDMsXG4gIG1heEZyYWM6IDMsXG4gIG1pbkZyYWM6IDAsXG4gIG1pbkludDogMSxcbiAgbmVnUHJlOiAnLScsXG4gIG5lZ1N1ZjogJycsXG4gIHBvc1ByZTogJycsXG4gIHBvc1N1ZjogJycsXG59O1xuXG4vKipcbiAqIFRyYW5zZm9ybXMgYSBudW1iZXIgdG8gYSBsb2NhbGUgc3RyaW5nIGJhc2VkIG9uIGEgc3R5bGUgYW5kIGEgZm9ybWF0XG4gKi9cblxuZnVuY3Rpb24gZm9ybWF0TnVtYmVyVG9Mb2NhbGVTdHJpbmcoXG4gIHZhbHVlOiBudW1iZXIsXG4gIHBhdHRlcm46IFBhcnNlZE51bWJlckZvcm1hdCxcbiAgZGlnaXRzSW5mbz86IG51bWJlcltdLFxuKTogc3RyaW5nIHtcbiAgbGV0IGZvcm1hdHRlZFRleHQgPSAnJztcbiAgbGV0IGlzWmVybyA9IGZhbHNlO1xuXG4gIGlmIChpc0Zpbml0ZSh2YWx1ZSkpIHtcbiAgICBjb25zdCBwYXJzZWROdW1iZXIgPSBwYXJzZU51bWJlcih2YWx1ZSk7XG5cbiAgICBjb25zdCBtaW5JbnQgPSBkaWdpdHNJbmZvWzBdIHx8IDA7XG4gICAgY29uc3QgbWluRnJhY3Rpb24gPSBkaWdpdHNJbmZvWzFdIHx8IDA7XG4gICAgY29uc3QgbWF4RnJhY3Rpb24gPSBkaWdpdHNJbmZvWzJdIHx8IDA7XG5cbiAgICByb3VuZE51bWJlcihwYXJzZWROdW1iZXIsIG1pbkZyYWN0aW9uLCBtYXhGcmFjdGlvbik7XG5cbiAgICBsZXQgZGlnaXRzID0gcGFyc2VkTnVtYmVyLmRpZ2l0cztcbiAgICBsZXQgaW50ZWdlckxlbiA9IHBhcnNlZE51bWJlci5pbnRlZ2VyTGVuO1xuICAgIGNvbnN0IGV4cG9uZW50ID0gcGFyc2VkTnVtYmVyLmV4cG9uZW50O1xuICAgIGxldCBkZWNpbWFscyA9IFtdO1xuICAgIGlzWmVybyA9IGRpZ2l0cy5ldmVyeShkID0+ICFkKTtcblxuICAgIC8vIHBhZCB6ZXJvcyBmb3Igc21hbGwgbnVtYmVyc1xuICAgIGZvciAoOyBpbnRlZ2VyTGVuIDwgbWluSW50OyBpbnRlZ2VyTGVuKyspIHtcbiAgICAgIGRpZ2l0cy51bnNoaWZ0KDApO1xuICAgIH1cblxuICAgIC8vIHBhZCB6ZXJvcyBmb3Igc21hbGwgbnVtYmVyc1xuICAgIGZvciAoOyBpbnRlZ2VyTGVuIDwgMDsgaW50ZWdlckxlbisrKSB7XG4gICAgICBkaWdpdHMudW5zaGlmdCgwKTtcbiAgICB9XG5cbiAgICAvLyBleHRyYWN0IGRlY2ltYWxzIGRpZ2l0c1xuICAgIGlmIChpbnRlZ2VyTGVuID4gMCkge1xuICAgICAgZGVjaW1hbHMgPSBkaWdpdHMuc3BsaWNlKGludGVnZXJMZW4sIGRpZ2l0cy5sZW5ndGgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBkZWNpbWFscyA9IGRpZ2l0cztcbiAgICAgIGRpZ2l0cyA9IFswXTtcbiAgICB9XG5cbiAgICAvLyBmb3JtYXQgdGhlIGludGVnZXIgZGlnaXRzIHdpdGggZ3JvdXBpbmcgc2VwYXJhdG9yc1xuICAgIGNvbnN0IGdyb3VwcyA9IFtdO1xuICAgIGlmIChkaWdpdHMubGVuZ3RoID49IHBhdHRlcm4ubGdTaXplKSB7XG4gICAgICBncm91cHMudW5zaGlmdChkaWdpdHMuc3BsaWNlKC1wYXR0ZXJuLmxnU2l6ZSwgZGlnaXRzLmxlbmd0aCkuam9pbignJykpO1xuICAgIH1cblxuICAgIHdoaWxlIChkaWdpdHMubGVuZ3RoID4gcGF0dGVybi5nU2l6ZSkge1xuICAgICAgZ3JvdXBzLnVuc2hpZnQoZGlnaXRzLnNwbGljZSgtcGF0dGVybi5nU2l6ZSwgZGlnaXRzLmxlbmd0aCkuam9pbignJykpO1xuICAgIH1cblxuICAgIGlmIChkaWdpdHMubGVuZ3RoID4gMCkge1xuICAgICAgZ3JvdXBzLnVuc2hpZnQoZGlnaXRzLmpvaW4oJycpKTtcbiAgICB9XG5cbiAgICBmb3JtYXR0ZWRUZXh0ID0gZ3JvdXBzLmpvaW4oU3ltYm9sR3JvdXApO1xuXG4gICAgLy8gYXBwZW5kIHRoZSBkZWNpbWFsIGRpZ2l0c1xuICAgIGlmIChkZWNpbWFscy5sZW5ndGggPiAwKSB7XG4gICAgICBmb3JtYXR0ZWRUZXh0ICs9IFN5bWJvbERlY2ltYWwgKyBkZWNpbWFscy5qb2luKCcnKTtcbiAgICB9XG5cbiAgICBpZiAoZXhwb25lbnQpIHtcbiAgICAgIGZvcm1hdHRlZFRleHQgKz0gU3ltYm9sRXhwb25lbnRpYWwgKyAnKycgKyBleHBvbmVudDtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgZm9ybWF0dGVkVGV4dCA9IFN5bWJvbEluZmluaXR5O1xuICB9XG5cbiAgZm9ybWF0dGVkVGV4dCA9XG4gICAgdmFsdWUgPCAwICYmICFpc1plcm9cbiAgICAgID8gcGF0dGVybi5uZWdQcmUgKyBmb3JtYXR0ZWRUZXh0ICsgcGF0dGVybi5uZWdTdWZcbiAgICAgIDogcGF0dGVybi5wb3NQcmUgKyBmb3JtYXR0ZWRUZXh0ICsgcGF0dGVybi5wb3NTdWY7XG5cbiAgcmV0dXJuIGZvcm1hdHRlZFRleHQ7XG59XG5cbi8qKlxuICogQG5nTW9kdWxlIENvbW1vbk1vZHVsZVxuICpcbiAqIEZvcm1hdHMgYSBudW1iZXIgYXMgdGV4dC4gR3JvdXAgc2l6aW5nIGFuZCBzZXBhcmF0b3IgYW5kIG90aGVyIGxvY2FsZS1zcGVjaWZpY1xuICogY29uZmlndXJhdGlvbnMgYXJlIGJhc2VkIG9uIHRoZSBsb2NhbGUuXG4gKlxuICogV2hlcmU6XG4gKiAtIGB2YWx1ZWAgaXMgYSBudW1iZXIuXG4gKiAtIGBkaWdpdEluZm9gIFNlZSB7QGxpbmsgRGVjaW1hbFBpcGV9IGZvciBtb3JlIGRldGFpbHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXROdW1iZXIodmFsdWU6IG51bWJlciwgZGlnaXRzSW5mbz86IG51bWJlcltdKTogc3RyaW5nIHtcbiAgcmV0dXJuIGZvcm1hdE51bWJlclRvTG9jYWxlU3RyaW5nKHZhbHVlLCBTeW1ib2xOdW1iZXJQYXR0ZXJuLCBkaWdpdHNJbmZvKTtcbn1cblxuaW50ZXJmYWNlIFBhcnNlZE51bWJlckZvcm1hdCB7XG4gIG1pbkludDogbnVtYmVyO1xuICAvLyB0aGUgbWluaW11bSBudW1iZXIgb2YgZGlnaXRzIHJlcXVpcmVkIGluIHRoZSBmcmFjdGlvbiBwYXJ0IG9mIHRoZSBudW1iZXJcbiAgbWluRnJhYzogbnVtYmVyO1xuICAvLyB0aGUgbWF4aW11bSBudW1iZXIgb2YgZGlnaXRzIHJlcXVpcmVkIGluIHRoZSBmcmFjdGlvbiBwYXJ0IG9mIHRoZSBudW1iZXJcbiAgbWF4RnJhYzogbnVtYmVyO1xuICAvLyB0aGUgcHJlZml4IGZvciBhIHBvc2l0aXZlIG51bWJlclxuICBwb3NQcmU6IHN0cmluZztcbiAgLy8gdGhlIHN1ZmZpeCBmb3IgYSBwb3NpdGl2ZSBudW1iZXJcbiAgcG9zU3VmOiBzdHJpbmc7XG4gIC8vIHRoZSBwcmVmaXggZm9yIGEgbmVnYXRpdmUgbnVtYmVyIChlLmcuIGAtYCBvciBgKGApKVxuICBuZWdQcmU6IHN0cmluZztcbiAgLy8gdGhlIHN1ZmZpeCBmb3IgYSBuZWdhdGl2ZSBudW1iZXIgKGUuZy4gYClgKVxuICBuZWdTdWY6IHN0cmluZztcbiAgLy8gbnVtYmVyIG9mIGRpZ2l0cyBpbiBlYWNoIGdyb3VwIG9mIHNlcGFyYXRlZCBkaWdpdHNcbiAgZ1NpemU6IG51bWJlcjtcbiAgLy8gbnVtYmVyIG9mIGRpZ2l0cyBpbiB0aGUgbGFzdCBncm91cCBvZiBkaWdpdHMgYmVmb3JlIHRoZSBkZWNpbWFsIHNlcGFyYXRvclxuICBsZ1NpemU6IG51bWJlcjtcbn1cblxuaW50ZXJmYWNlIFBhcnNlZE51bWJlciB7XG4gIC8vIGFuIGFycmF5IG9mIGRpZ2l0cyBjb250YWluaW5nIGxlYWRpbmcgemVyb3MgYXMgbmVjZXNzYXJ5XG4gIGRpZ2l0czogbnVtYmVyW107XG4gIC8vIHRoZSBleHBvbmVudCBmb3IgbnVtYmVycyB0aGF0IHdvdWxkIG5lZWQgbW9yZSB0aGFuIGBNQVhfRElHSVRTYCBkaWdpdHMgaW4gYGRgXG4gIGV4cG9uZW50OiBudW1iZXI7XG4gIC8vIHRoZSBudW1iZXIgb2YgdGhlIGRpZ2l0cyBpbiBgZGAgdGhhdCBhcmUgdG8gdGhlIGxlZnQgb2YgdGhlIGRlY2ltYWwgcG9pbnRcbiAgaW50ZWdlckxlbjogbnVtYmVyO1xufVxuXG4vKipcbiAqIFBhcnNlcyBhIG51bWJlci5cbiAqIFNpZ25pZmljYW50IGJpdHMgb2YgdGhpcyBwYXJzZSBhbGdvcml0aG0gY2FtZSBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9NaWtlTWNsL2JpZy5qcy9cbiAqL1xuZnVuY3Rpb24gcGFyc2VOdW1iZXIobnVtOiBudW1iZXIpOiBQYXJzZWROdW1iZXIge1xuICBsZXQgbnVtU3RyID0gTWF0aC5hYnMobnVtKSArICcnO1xuICBsZXQgZXhwb25lbnQgPSAwO1xuICBsZXQgZGlnaXRzOiBudW1iZXJbXTtcbiAgbGV0IGludGVnZXJMZW46IG51bWJlcjtcbiAgbGV0IGk6IG51bWJlcjtcbiAgbGV0IGo6IG51bWJlcjtcbiAgbGV0IHplcm9zOiBudW1iZXI7XG5cbiAgLy8gRGVjaW1hbCBwb2ludD9cbiAgaWYgKChpbnRlZ2VyTGVuID0gbnVtU3RyLmluZGV4T2YoREVDSU1BTF9TRVApKSA+IC0xKSB7XG4gICAgbnVtU3RyID0gbnVtU3RyLnJlcGxhY2UoREVDSU1BTF9TRVAsICcnKTtcbiAgfVxuXG4gIC8vIEV4cG9uZW50aWFsIGZvcm0/XG4gIGlmICgoaSA9IG51bVN0ci5zZWFyY2goL2UvaSkpID4gMCkge1xuICAgIC8vIFdvcmsgb3V0IHRoZSBleHBvbmVudC5cbiAgICBpZiAoaW50ZWdlckxlbiA8IDApIHtcbiAgICAgIGludGVnZXJMZW4gPSBpO1xuICAgIH1cbiAgICBpbnRlZ2VyTGVuICs9ICtudW1TdHIuc2xpY2UoaSArIDEpO1xuICAgIG51bVN0ciA9IG51bVN0ci5zbGljZSgwLCBNYXRoLm1heCgwLCBpKSk7XG4gIH0gZWxzZSBpZiAoaW50ZWdlckxlbiA8IDApIHtcbiAgICAvLyBUaGVyZSB3YXMgbm8gZGVjaW1hbCBwb2ludCBvciBleHBvbmVudCBzbyBpdCBpcyBhbiBpbnRlZ2VyLlxuICAgIGludGVnZXJMZW4gPSBudW1TdHIubGVuZ3RoO1xuICB9XG5cbiAgLy8gQ291bnQgdGhlIG51bWJlciBvZiBsZWFkaW5nIHplcm9zLlxuICBmb3IgKGkgPSAwOyBudW1TdHIuY2hhckF0KGkpID09PSBaRVJPX0NIQVI7IGkrKykge1xuICAgIC8qIGVtcHR5ICovXG4gIH1cblxuICBpZiAoaSA9PT0gKHplcm9zID0gbnVtU3RyLmxlbmd0aCkpIHtcbiAgICAvLyBUaGUgZGlnaXRzIGFyZSBhbGwgemVyby5cbiAgICBkaWdpdHMgPSBbMF07XG4gICAgaW50ZWdlckxlbiA9IDE7XG4gIH0gZWxzZSB7XG4gICAgLy8gQ291bnQgdGhlIG51bWJlciBvZiB0cmFpbGluZyB6ZXJvc1xuICAgIHplcm9zLS07XG4gICAgd2hpbGUgKG51bVN0ci5jaGFyQXQoemVyb3MpID09PSBaRVJPX0NIQVIpIHtcbiAgICAgIHplcm9zLS07XG4gICAgfVxuXG4gICAgLy8gVHJhaWxpbmcgemVyb3MgYXJlIGluc2lnbmlmaWNhbnQgc28gaWdub3JlIHRoZW1cbiAgICBpbnRlZ2VyTGVuIC09IGk7XG4gICAgZGlnaXRzID0gW107XG4gICAgLy8gQ29udmVydCBzdHJpbmcgdG8gYXJyYXkgb2YgZGlnaXRzIHdpdGhvdXQgbGVhZGluZy90cmFpbGluZyB6ZXJvcy5cbiAgICBmb3IgKGogPSAwOyBpIDw9IHplcm9zOyBpKyssIGorKykge1xuICAgICAgZGlnaXRzW2pdID0gTnVtYmVyKG51bVN0ci5jaGFyQXQoaSkpO1xuICAgIH1cbiAgfVxuXG4gIC8vIElmIHRoZSBudW1iZXIgb3ZlcmZsb3dzIHRoZSBtYXhpbXVtIGFsbG93ZWQgZGlnaXRzIHRoZW4gdXNlIGFuIGV4cG9uZW50LlxuICBpZiAoaW50ZWdlckxlbiA+IE1BWF9ESUdJVFMpIHtcbiAgICBkaWdpdHMgPSBkaWdpdHMuc3BsaWNlKDAsIE1BWF9ESUdJVFMgLSAxKTtcbiAgICBleHBvbmVudCA9IGludGVnZXJMZW4gLSAxO1xuICAgIGludGVnZXJMZW4gPSAxO1xuICB9XG5cbiAgcmV0dXJuIHsgZGlnaXRzLCBleHBvbmVudCwgaW50ZWdlckxlbiB9O1xufVxuXG4vKipcbiAqIFJvdW5kIHRoZSBwYXJzZWQgbnVtYmVyIHRvIHRoZSBzcGVjaWZpZWQgbnVtYmVyIG9mIGRlY2ltYWwgcGxhY2VzXG4gKiBUaGlzIGZ1bmN0aW9uIGNoYW5nZXMgdGhlIHBhcnNlZE51bWJlciBpbi1wbGFjZVxuICovXG5cbmZ1bmN0aW9uIHJvdW5kTnVtYmVyKFxuICBwYXJzZWROdW1iZXI6IFBhcnNlZE51bWJlcixcbiAgbWluRnJhYzogbnVtYmVyLFxuICBtYXhGcmFjOiBudW1iZXIsXG4pIHtcbiAgaWYgKG1pbkZyYWMgPiBtYXhGcmFjKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYFRoZSBtaW5pbXVtIG51bWJlciBvZiBkaWdpdHMgYWZ0ZXIgZnJhY3Rpb24gKCR7bWluRnJhY30pIGlzIGhpZ2hlciB0aGFuIHRoZSBtYXhpbXVtICgke21heEZyYWN9KS5gLFxuICAgICk7XG4gIH1cblxuICBjb25zdCBkaWdpdHMgPSBwYXJzZWROdW1iZXIuZGlnaXRzO1xuICBsZXQgZnJhY3Rpb25MZW4gPSBkaWdpdHMubGVuZ3RoIC0gcGFyc2VkTnVtYmVyLmludGVnZXJMZW47XG4gIGNvbnN0IGZyYWN0aW9uU2l6ZSA9IE1hdGgubWluKE1hdGgubWF4KG1pbkZyYWMsIGZyYWN0aW9uTGVuKSwgbWF4RnJhYyk7XG5cbiAgLy8gVGhlIGluZGV4IG9mIHRoZSBkaWdpdCB0byB3aGVyZSByb3VuZGluZyBpcyB0byBvY2N1clxuICBsZXQgcm91bmRBdCA9IGZyYWN0aW9uU2l6ZSArIHBhcnNlZE51bWJlci5pbnRlZ2VyTGVuO1xuICBjb25zdCBkaWdpdCA9IGRpZ2l0c1tyb3VuZEF0XTtcblxuICBpZiAocm91bmRBdCA+IDApIHtcbiAgICAvLyBEcm9wIGZyYWN0aW9uYWwgZGlnaXRzIGJleW9uZCBgcm91bmRBdGBcbiAgICBkaWdpdHMuc3BsaWNlKE1hdGgubWF4KHBhcnNlZE51bWJlci5pbnRlZ2VyTGVuLCByb3VuZEF0KSk7XG5cbiAgICAvLyBTZXQgbm9uLWZyYWN0aW9uYWwgZGlnaXRzIGJleW9uZCBgcm91bmRBdGAgdG8gMFxuICAgIGZvciAobGV0IGogPSByb3VuZEF0OyBqIDwgZGlnaXRzLmxlbmd0aDsgaisrKSB7XG4gICAgICBkaWdpdHNbal0gPSAwO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICAvLyBXZSByb3VuZGVkIHRvIHplcm8gc28gcmVzZXQgdGhlIHBhcnNlZE51bWJlclxuICAgIGZyYWN0aW9uTGVuID0gTWF0aC5tYXgoMCwgZnJhY3Rpb25MZW4pO1xuICAgIHBhcnNlZE51bWJlci5pbnRlZ2VyTGVuID0gMTtcbiAgICBkaWdpdHMubGVuZ3RoID0gTWF0aC5tYXgoMSwgKHJvdW5kQXQgPSBmcmFjdGlvblNpemUgKyAxKSk7XG4gICAgZGlnaXRzWzBdID0gMDtcbiAgICBmb3IgKGxldCBpID0gMTsgaSA8IHJvdW5kQXQ7IGkrKykge1xuICAgICAgZGlnaXRzW2ldID0gMDtcbiAgICB9XG4gIH1cblxuICBpZiAoZGlnaXQgPj0gNSkge1xuICAgIGlmIChyb3VuZEF0IC0gMSA8IDApIHtcbiAgICAgIGZvciAobGV0IGsgPSAwOyBrID4gcm91bmRBdDsgay0tKSB7XG4gICAgICAgIGRpZ2l0cy51bnNoaWZ0KDApO1xuICAgICAgICBwYXJzZWROdW1iZXIuaW50ZWdlckxlbisrO1xuICAgICAgfVxuICAgICAgZGlnaXRzLnVuc2hpZnQoMSk7XG4gICAgICBwYXJzZWROdW1iZXIuaW50ZWdlckxlbisrO1xuICAgIH0gZWxzZSB7XG4gICAgICBkaWdpdHNbcm91bmRBdCAtIDFdKys7XG4gICAgfVxuICB9XG5cbiAgLy8gUGFkIG91dCB3aXRoIHplcm9zIHRvIGdldCB0aGUgcmVxdWlyZWQgZnJhY3Rpb24gbGVuZ3RoXG4gIGZvciAoOyBmcmFjdGlvbkxlbiA8IE1hdGgubWF4KDAsIGZyYWN0aW9uU2l6ZSk7IGZyYWN0aW9uTGVuKyspIHtcbiAgICBkaWdpdHMucHVzaCgwKTtcbiAgfVxuXG4gIGxldCBkcm9wVHJhaWxpbmdaZXJvcyA9IGZyYWN0aW9uU2l6ZSAhPT0gMDtcbiAgLy8gTWluaW1hbCBsZW5ndGggPSBuYiBvZiBkZWNpbWFscyByZXF1aXJlZCArIGN1cnJlbnQgbmIgb2YgaW50ZWdlcnNcbiAgLy8gQW55IG51bWJlciBiZXNpZGVzIHRoYXQgaXMgb3B0aW9uYWwgYW5kIGNhbiBiZSByZW1vdmVkIGlmIGl0J3MgYSB0cmFpbGluZyAwXG4gIGNvbnN0IG1pbkxlbiA9IG1pbkZyYWMgKyBwYXJzZWROdW1iZXIuaW50ZWdlckxlbjtcbiAgLy8gRG8gYW55IGNhcnJ5aW5nLCBlLmcuIGEgZGlnaXQgd2FzIHJvdW5kZWQgdXAgdG8gMTBcbiAgY29uc3QgY2FycnkgPSBkaWdpdHMucmVkdWNlUmlnaHQoKGMsIGQsIGksIGRzKSA9PiB7XG4gICAgZCA9IGQgKyBjO1xuICAgIGRzW2ldID0gZCA8IDEwID8gZCA6IGQgLSAxMDsgLy8gZCAlIDEwXG4gICAgaWYgKGRyb3BUcmFpbGluZ1plcm9zKSB7XG4gICAgICAvLyBEbyBub3Qga2VlcCBtZWFuaW5nbGVzcyBmcmFjdGlvbmFsIHRyYWlsaW5nIHplcm9zIChlLmcuIDE1LjUyMDAwIC0tPiAxNS41MilcbiAgICAgIGlmIChkc1tpXSA9PT0gMCAmJiBpID49IG1pbkxlbikge1xuICAgICAgICBkcy5wb3AoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGRyb3BUcmFpbGluZ1plcm9zID0gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBkID49IDEwID8gMSA6IDA7XG4gIH0sIDApO1xuICBpZiAoY2FycnkpIHtcbiAgICBkaWdpdHMudW5zaGlmdChjYXJyeSk7XG4gICAgcGFyc2VkTnVtYmVyLmludGVnZXJMZW4rKztcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { get, isEmpty } from 'lodash-es';
|
|
2
|
+
/**
|
|
3
|
+
*
|
|
4
|
+
* @param source 源复制对象
|
|
5
|
+
* @param other 待合并对象
|
|
6
|
+
* @returns 将待合并对象中 value 为真值的 key-value 合并到 source 中返回新对象
|
|
7
|
+
*/
|
|
8
|
+
export function mergeIfValueTruthy(source, other) {
|
|
9
|
+
if (!other) {
|
|
10
|
+
return source;
|
|
11
|
+
}
|
|
12
|
+
const obj = { ...source };
|
|
13
|
+
Object.entries(other).forEach(([key, value]) => {
|
|
14
|
+
if (value != null) {
|
|
15
|
+
Object.assign(obj, { [key]: value });
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
return obj;
|
|
19
|
+
}
|
|
20
|
+
export function getRootCloudAnnotationAppLink(annotationKey) {
|
|
21
|
+
return get(/app\.(.*)\.url/.exec(annotationKey), '[1]', '');
|
|
22
|
+
}
|
|
23
|
+
export function keyValueFormTableRequiredValidatorFn(control) {
|
|
24
|
+
return isEmpty(control.value) ? { required: true } : null;
|
|
25
|
+
}
|
|
26
|
+
export const placeObjectValues = (condition, value) => (condition ? { ...value } : {});
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL21vZHVsZXMvd29ya2xvYWQvdXRpbC1zaGFyZWQvc3JjL2xpYi91dGlscy9oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXpDOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLGtCQUFrQixDQUFPLE1BQVMsRUFBRSxLQUFRO0lBQzFELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNYLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFDRCxNQUFNLEdBQUcsR0FBRyxFQUFFLEdBQUcsTUFBTSxFQUFFLENBQUM7SUFDMUIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFO1FBQzdDLElBQUksS0FBSyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ2xCLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZDLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztJQUNILE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQUVELE1BQU0sVUFBVSw2QkFBNkIsQ0FBQyxhQUFxQjtJQUNqRSxPQUFPLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQzlELENBQUM7QUFFRCxNQUFNLFVBQVUsb0NBQW9DLENBQUMsT0FBd0I7SUFDM0UsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQzVELENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxDQUMvQixTQUFrQixFQUNsQixLQUE4QixFQUNMLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0Q29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGdldCwgaXNFbXB0eSB9IGZyb20gJ2xvZGFzaC1lcyc7XG5cbi8qKlxuICpcbiAqIEBwYXJhbSBzb3VyY2Ug5rqQ5aSN5Yi25a+56LGhXG4gKiBAcGFyYW0gb3RoZXIg5b6F5ZCI5bm25a+56LGhXG4gKiBAcmV0dXJucyDlsIblvoXlkIjlubblr7nosaHkuK0gdmFsdWUg5Li655yf5YC855qEIGtleS12YWx1ZSDlkIjlubbliLAgc291cmNlIOS4rei/lOWbnuaWsOWvueixoVxuICovXG5leHBvcnQgZnVuY3Rpb24gbWVyZ2VJZlZhbHVlVHJ1dGh5PFQsIEs+KHNvdXJjZTogVCwgb3RoZXI6IEspOiBUIHwgKFQgJiBLKSB7XG4gIGlmICghb3RoZXIpIHtcbiAgICByZXR1cm4gc291cmNlO1xuICB9XG4gIGNvbnN0IG9iaiA9IHsgLi4uc291cmNlIH07XG4gIE9iamVjdC5lbnRyaWVzKG90aGVyKS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgICAgT2JqZWN0LmFzc2lnbihvYmosIHsgW2tleV06IHZhbHVlIH0pO1xuICAgIH1cbiAgfSk7XG4gIHJldHVybiBvYmo7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSb290Q2xvdWRBbm5vdGF0aW9uQXBwTGluayhhbm5vdGF0aW9uS2V5OiBzdHJpbmcpIHtcbiAgcmV0dXJuIGdldCgvYXBwXFwuKC4qKVxcLnVybC8uZXhlYyhhbm5vdGF0aW9uS2V5KSwgJ1sxXScsICcnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGtleVZhbHVlRm9ybVRhYmxlUmVxdWlyZWRWYWxpZGF0b3JGbihjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpIHtcbiAgcmV0dXJuIGlzRW1wdHkoY29udHJvbC52YWx1ZSkgPyB7IHJlcXVpcmVkOiB0cnVlIH0gOiBudWxsO1xufVxuXG5leHBvcnQgY29uc3QgcGxhY2VPYmplY3RWYWx1ZXMgPSAoXG4gIGNvbmRpdGlvbjogYm9vbGVhbixcbiAgdmFsdWU6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuKTogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPT4gKGNvbmRpdGlvbiA/IHsgLi4udmFsdWUgfSA6IHt9KTtcbiJdfQ==
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export * from './code-editor-config';
|
|
2
|
+
export * from './constants';
|
|
3
|
+
export * from './crd';
|
|
4
|
+
export * from './format-number';
|
|
5
|
+
export * from './helpers';
|
|
6
|
+
export * from './k8s-util.service';
|
|
7
|
+
export * from './patterns';
|
|
8
|
+
export * from './pod-util';
|
|
9
|
+
export * from './resource-status';
|
|
10
|
+
export * from './resources-config-util';
|
|
11
|
+
export * from './status';
|
|
12
|
+
export * from './validator';
|
|
13
|
+
export * from './workspace';
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9tb2R1bGVzL3dvcmtsb2FkL3V0aWwtc2hhcmVkL3NyYy9saWIvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLE9BQU8sQ0FBQztBQUN0QixjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jb2RlLWVkaXRvci1jb25maWcnO1xuZXhwb3J0ICogZnJvbSAnLi9jb25zdGFudHMnO1xuZXhwb3J0ICogZnJvbSAnLi9jcmQnO1xuZXhwb3J0ICogZnJvbSAnLi9mb3JtYXQtbnVtYmVyJztcbmV4cG9ydCAqIGZyb20gJy4vaGVscGVycyc7XG5leHBvcnQgKiBmcm9tICcuL2s4cy11dGlsLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9wYXR0ZXJucyc7XG5leHBvcnQgKiBmcm9tICcuL3BvZC11dGlsJztcbmV4cG9ydCAqIGZyb20gJy4vcmVzb3VyY2Utc3RhdHVzJztcbmV4cG9ydCAqIGZyb20gJy4vcmVzb3VyY2VzLWNvbmZpZy11dGlsJztcbmV4cG9ydCAqIGZyb20gJy4vc3RhdHVzJztcbmV4cG9ydCAqIGZyb20gJy4vdmFsaWRhdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vd29ya3NwYWNlJztcbiJdfQ==
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { NAME, K8sSharedUtilService, } from '@alauda-fe/common';
|
|
2
|
+
import { CALICO_ANNOTATION_PREFIX, KUBE_OVN_ANNOTATION_PREFIX, } from '@alauda-fe/network';
|
|
3
|
+
import { Injectable } from '@angular/core';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class K8sUtilService extends K8sSharedUtilService {
|
|
6
|
+
isGrayRelease(resource) {
|
|
7
|
+
return !!this.getLabel(resource, 'canaryrefer', 'servicemesh');
|
|
8
|
+
}
|
|
9
|
+
getReadonlyPodAnnotationKeys() {
|
|
10
|
+
return [
|
|
11
|
+
`${KUBE_OVN_ANNOTATION_PREFIX}/ip_pool`,
|
|
12
|
+
`${KUBE_OVN_ANNOTATION_PREFIX}/egress_rate`,
|
|
13
|
+
`${KUBE_OVN_ANNOTATION_PREFIX}/ingress_rate`,
|
|
14
|
+
`${CALICO_ANNOTATION_PREFIX}/ipAddrs`,
|
|
15
|
+
this.normalizeType(NAME, 'subnet'),
|
|
16
|
+
this.normalizeType('ipAddrs', 'subnet'),
|
|
17
|
+
];
|
|
18
|
+
}
|
|
19
|
+
static { this.ɵfac = /*@__PURE__*/ (() => { let ɵK8sUtilService_BaseFactory; return function K8sUtilService_Factory(t) { return (ɵK8sUtilService_BaseFactory || (ɵK8sUtilService_BaseFactory = i0.ɵɵgetInheritedFactory(K8sUtilService)))(t || K8sUtilService); }; })(); }
|
|
20
|
+
static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: K8sUtilService, factory: K8sUtilService.ɵfac, providedIn: 'root' }); }
|
|
21
|
+
}
|
|
22
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(K8sUtilService, [{
|
|
23
|
+
type: Injectable,
|
|
24
|
+
args: [{
|
|
25
|
+
providedIn: 'root',
|
|
26
|
+
}]
|
|
27
|
+
}], null, null); })();
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiazhzLXV0aWwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL21vZHVsZXMvd29ya2xvYWQvdXRpbC1zaGFyZWQvc3JjL2xpYi91dGlscy9rOHMtdXRpbC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxJQUFJLEVBQ0osb0JBQW9CLEdBRXJCLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxFQUNMLHdCQUF3QixFQUN4QiwwQkFBMEIsR0FDM0IsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxNQUFNLE9BQU8sY0FFWCxTQUFRLG9CQUF1QjtJQUMvQixhQUFhLENBQStCLFFBQVc7UUFDckQsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsYUFBYSxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCw0QkFBNEI7UUFDMUIsT0FBTztZQUNMLEdBQUcsMEJBQTBCLFVBQVU7WUFDdkMsR0FBRywwQkFBMEIsY0FBYztZQUMzQyxHQUFHLDBCQUEwQixlQUFlO1lBQzVDLEdBQUcsd0JBQXdCLFVBQVU7WUFDckMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQztTQUN4QyxDQUFDO0lBQ0osQ0FBQzs0TkFoQlUsY0FBYyxTQUFkLGNBQWM7dUVBQWQsY0FBYyxXQUFkLGNBQWMsbUJBRmIsTUFBTTs7aUZBRVAsY0FBYztjQUgxQixVQUFVO2VBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBLdWJlcm5ldGVzUmVzb3VyY2UsXG4gIE5BTUUsXG4gIEs4c1NoYXJlZFV0aWxTZXJ2aWNlLFxuICBSZXNvdXJjZVR5cGUsXG59IGZyb20gJ0BhbGF1ZGEtZmUvY29tbW9uJztcbmltcG9ydCB7XG4gIENBTElDT19BTk5PVEFUSU9OX1BSRUZJWCxcbiAgS1VCRV9PVk5fQU5OT1RBVElPTl9QUkVGSVgsXG59IGZyb20gJ0BhbGF1ZGEtZmUvbmV0d29yayc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBLOHNVdGlsU2VydmljZTxcbiAgUiBleHRlbmRzIHN0cmluZyA9IFJlc291cmNlVHlwZSxcbj4gZXh0ZW5kcyBLOHNTaGFyZWRVdGlsU2VydmljZTxSPiB7XG4gIGlzR3JheVJlbGVhc2U8VCBleHRlbmRzIEt1YmVybmV0ZXNSZXNvdXJjZT4ocmVzb3VyY2U6IFQpIHtcbiAgICByZXR1cm4gISF0aGlzLmdldExhYmVsKHJlc291cmNlLCAnY2FuYXJ5cmVmZXInLCAnc2VydmljZW1lc2gnKTtcbiAgfVxuXG4gIGdldFJlYWRvbmx5UG9kQW5ub3RhdGlvbktleXMoKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIGAke0tVQkVfT1ZOX0FOTk9UQVRJT05fUFJFRklYfS9pcF9wb29sYCxcbiAgICAgIGAke0tVQkVfT1ZOX0FOTk9UQVRJT05fUFJFRklYfS9lZ3Jlc3NfcmF0ZWAsXG4gICAgICBgJHtLVUJFX09WTl9BTk5PVEFUSU9OX1BSRUZJWH0vaW5ncmVzc19yYXRlYCxcbiAgICAgIGAke0NBTElDT19BTk5PVEFUSU9OX1BSRUZJWH0vaXBBZGRyc2AsXG4gICAgICB0aGlzLm5vcm1hbGl6ZVR5cGUoTkFNRSwgJ3N1Ym5ldCcpLFxuICAgICAgdGhpcy5ub3JtYWxpemVUeXBlKCdpcEFkZHJzJywgJ3N1Ym5ldCcpLFxuICAgIF07XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
export const K8S_RESOURCE_NAME_BASE = {
|
|
2
|
+
pattern: /^[\da-z]([\da-z-]*[\da-z])?$/,
|
|
3
|
+
tip: 'regexp_tip_k8s_resource_name_base',
|
|
4
|
+
};
|
|
5
|
+
export const LOOSE_K8S_RESOURCE_NAME_BASE = {
|
|
6
|
+
pattern: /^[\da-z]([\da-z-]*[\da-z])?(\.[\da-z]([\da-z-]*[\da-z])?)*$/,
|
|
7
|
+
tip: 'regexp_tip_k8s_resource_name_loose',
|
|
8
|
+
};
|
|
9
|
+
export const K8S_CONFIGMAP_KEY = {
|
|
10
|
+
pattern: /^[\w-][\w.-]*$/,
|
|
11
|
+
tip: 'regexp_tip_k8s_configmap_key',
|
|
12
|
+
};
|
|
13
|
+
export const K8S_ENV_VARIABLE_NAME = {
|
|
14
|
+
pattern: /^[.A-Z_a-z-][\w.-]*$/,
|
|
15
|
+
tip: 'regexp_tip_k8s_env_variable_name',
|
|
16
|
+
};
|
|
17
|
+
export const INT_PATTERN = {
|
|
18
|
+
pattern: /^-?\d+$/,
|
|
19
|
+
tip: 'integer_pattern',
|
|
20
|
+
};
|
|
21
|
+
export const POSITIVE_INT_PATTERN = {
|
|
22
|
+
pattern: /^[1-9]\d*$/,
|
|
23
|
+
tip: 'positive_integer_pattern',
|
|
24
|
+
};
|
|
25
|
+
export const POSITIVE_INT_32_PATTERN = {
|
|
26
|
+
pattern: /^(\d{1,9}|1\d{9}|2(0\d{8}|1([0-3]\d{7}|4([0-6]\d{6}|7([0-3]\d{5}|4([0-7]\d{4}|8([0-2]\d{3}|3([0-5]\d{2}|6([0-3]\d|4[0-7])))))))))$/,
|
|
27
|
+
tip: 'positive_integer_pattern',
|
|
28
|
+
};
|
|
29
|
+
export const POSITIVE_NUMBER_PATTERN = {
|
|
30
|
+
pattern: /^([1-9]\d*\.?|0\.)\d*$/,
|
|
31
|
+
tip: 'regexp_tip_positive_number_pattern',
|
|
32
|
+
};
|
|
33
|
+
export const NATURAL_NUMBER_PATTERN = {
|
|
34
|
+
pattern: /^\d+$/,
|
|
35
|
+
tip: 'natural_number_pattern',
|
|
36
|
+
};
|
|
37
|
+
export const AUTO_SCALER_COOL_TIME_PATTERN = {
|
|
38
|
+
pattern: /^(\d|[1-9]\d|[1-9]\d\d|[12]\d\d\d|3[0-5]\d\d|(3600))$/,
|
|
39
|
+
tip: 'natural_number_less_than_3600',
|
|
40
|
+
error: 'natural_number_less_than_3600_error',
|
|
41
|
+
};
|
|
42
|
+
export const REGISTRY_PATH = {
|
|
43
|
+
pattern: /^[\da-z]([\d._a-z-]*[\da-z])?$/,
|
|
44
|
+
tip: 'registry_path_rule',
|
|
45
|
+
};
|
|
46
|
+
export const INGRESS_PATH_PATTERN = {
|
|
47
|
+
pattern: /^\/.*/,
|
|
48
|
+
tip: 'ingress_path_pattern',
|
|
49
|
+
};
|
|
50
|
+
const IP_PATTERN_BASE = '^(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d{1,2})\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d{1,2})$';
|
|
51
|
+
export const IP_ADDRESS_PATTERN = {
|
|
52
|
+
pattern: new RegExp(IP_PATTERN_BASE),
|
|
53
|
+
tip: 'regexp_tip_ip_address',
|
|
54
|
+
};
|
|
55
|
+
const IP_V6_ADDRESS_BASE = '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]+|::(ffff(:0{1,4})?:)?((25[0-5]|(2[0-4]|1?[0-9])?[0-9]).){3}(25[0-5]|(2[0-4]|1?[0-9])?[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1?[0-9])?[0-9]).){3}(25[0-5]|(2[0-4]|1?[0-9])?[0-9]))$';
|
|
56
|
+
export const IP_V6_ADDRESS_PATTERN = {
|
|
57
|
+
pattern: new RegExp(IP_V6_ADDRESS_BASE),
|
|
58
|
+
};
|
|
59
|
+
export const IP_V4_OR_V6_PATTERN = {
|
|
60
|
+
pattern: new RegExp(`(${IP_PATTERN_BASE})|(${IP_V6_ADDRESS_BASE})`),
|
|
61
|
+
};
|
|
62
|
+
export const IP_ADDRESS_PORT_PATTERN = {
|
|
63
|
+
pattern: new RegExp(`${IP_PATTERN_BASE.slice(0, -1)}(?::\\d+)?$`),
|
|
64
|
+
tip: 'regexp_tip_ip_address',
|
|
65
|
+
};
|
|
66
|
+
export const TCP_ADDRESS_PATTERN = {
|
|
67
|
+
pattern: /^(?:(?:[1-9]?\d|1\d{2}|2[0-4]\d|25[0-5])\.){3}(?:[1-9]?\d|1\d{2}|2[0-4]\d|25[0-5]):\d+$/,
|
|
68
|
+
tip: 'input_tcp_placeholder',
|
|
69
|
+
};
|
|
70
|
+
export const CIDR_IP_PATTERN = {
|
|
71
|
+
pattern: /^((2(5[0-5]|[0-4]\d))|1\d{2}|[1-9]\d|\d)(\.(((2(5[0-5]|[0-4]\d))|1\d{1,2}|[1-9]\d|\d))){3}$/,
|
|
72
|
+
};
|
|
73
|
+
export const CIDR_FULL_PATTEN = {
|
|
74
|
+
pattern: /^((2(5[0-5]|[0-4]\d))|1\d{2}|[1-9]\d|\d)(\.(((2(5[0-5]|[0-4]\d))|1\d{1,2}|[1-9]\d|\d))){3}(\/(\d|[12]\d|3[0-2]))$/,
|
|
75
|
+
tip: 'regexp_cidr_pattern',
|
|
76
|
+
};
|
|
77
|
+
export const CIDR_PATTERN = {
|
|
78
|
+
pattern: /^((2(5[0-5]|[0-4]\d))|1\d{2}|[1-9]\d|\d)(\.(((2(5[0-5]|[0-4]\d))|1\d{1,2}|[1-9]\d|\d))){3}(\/(\d|[12]\d|3[0-2]))?$/,
|
|
79
|
+
tip: 'regexp_cidr_pattern',
|
|
80
|
+
};
|
|
81
|
+
export const RESERVED_IP_PATTERN = {
|
|
82
|
+
pattern: /^((2(5[0-5]|[0-4]\d))|1\d{2}|[1-9]\d|\d)(\.(((2(5[0-5]|[0-4]\d))|1\d{1,2}|[1-9]\d|\d))){3}(\.\.((2(5[0-5]|[0-4]\d))|1\d{2}|[1-9]\d|\d)(\.(((2(5[0-5]|[0-4]\d))|1\d{1,2}|[1-9]\d|\d))){3})?$/,
|
|
83
|
+
};
|
|
84
|
+
export const RESERVED_IP_SEGMENT_PATTERN = {
|
|
85
|
+
pattern: /^((2(5[0-5]|[0-4]\d))|1\d{2}|[1-9]\d|\d)(\.(((2(5[0-5]|[0-4]\d))|1\d{1,2}|[1-9]\d|\d))){3}(\.\.((2(5[0-5]|[0-4]\d))|1\d{2}|[1-9]\d|\d)(\.(((2(5[0-5]|[0-4]\d))|1\d{1,2}|[1-9]\d|\d))){3})$/,
|
|
86
|
+
};
|
|
87
|
+
export const CUSTOM_ALARM_NAME_BASE = {
|
|
88
|
+
pattern: /^[\da-z]([\d.a-z]*[\da-z])?$/,
|
|
89
|
+
tip: 'custom_alert_name_placeholder',
|
|
90
|
+
};
|
|
91
|
+
export const ALARM_LABEL_KEY_NAME_PATTERN = {
|
|
92
|
+
pattern: /^[A-Z_a-z]\w*$/,
|
|
93
|
+
tip: 'regexp_tip_alert_label_key_name',
|
|
94
|
+
};
|
|
95
|
+
export const ALARM_THRESHOLD_PATTERN = {
|
|
96
|
+
pattern: /^(?!0\d)\d{0,17}(\.\d{1,4})?$/,
|
|
97
|
+
tip: 'regexp_tip_alert_threshold',
|
|
98
|
+
};
|
|
99
|
+
export const ALARM_METRIC_PATTERN = {
|
|
100
|
+
pattern: /^[\u0020-\u007E]*$/,
|
|
101
|
+
tip: 'regexp_tip_alert_metric',
|
|
102
|
+
};
|
|
103
|
+
export const EMAIL_PATTERN = {
|
|
104
|
+
pattern: /^[\w!#$%&'*+/=?^`{|}~-]+(?:\.[\w!#$%&'*+/=?^`{|}~-]+)*@(?:[\dA-Za-z](?:[\dA-Za-z-]*[\dA-Za-z])?\.)+[\dA-Za-z](?:[\dA-Za-z-]*[\dA-Za-z])?$/,
|
|
105
|
+
tip: 'email_format_limit',
|
|
106
|
+
};
|
|
107
|
+
export const PHONE_PATTERN = {
|
|
108
|
+
pattern: /^\+?\d{7,15}$/,
|
|
109
|
+
tip: 'phone_format_limit',
|
|
110
|
+
};
|
|
111
|
+
export const PUBLIC_KEY_PATTERN = {
|
|
112
|
+
pattern: /^(-{5}BEGIN CERTIFICATE-{5}[\d\n+/=A-Za-z]*-{5}END CERTIFICATE-{5}\n*)+$/,
|
|
113
|
+
placeholder: `-----BEGIN CERTIFICATE-----
|
|
114
|
+
MIIDLjCCAhYCCQDAOF9tLsaXWjANBgkqhkiG9w0BAQsFADBaM
|
|
115
|
+
-----END CERTIFICATE-----`,
|
|
116
|
+
};
|
|
117
|
+
export const PRIVATE_KEY_PATTERN = {
|
|
118
|
+
pattern: /^(-{5}BEGIN (RSA |EC |DSA )?PRIVATE KEY-{5}[\d\n+/=A-Za-z]*-{5}END \2PRIVATE KEY-{5}\n*)+$/,
|
|
119
|
+
placeholder: `-----BEGIN RSA PRIVATE KEY-----
|
|
120
|
+
MIIDLjCCAhYCCQDAOF9tLsaXWjANBgkqhkiG9w0BAQsFADBaM
|
|
121
|
+
-----END RSA PRIVATE KEY-----`,
|
|
122
|
+
};
|
|
123
|
+
export const STRONG_PASSWORD_PATTERN = {
|
|
124
|
+
pattern: /^(?!\/)(?=.*[A-Za-z])(?=.*\d)(?=.*[!#$%&'()*+,./:;<=>?@[\]^_`{|}~-]).{8,30}$/,
|
|
125
|
+
tip: 'regexp_tip_strong_password',
|
|
126
|
+
};
|
|
127
|
+
export const POSITIVE_PERCENTAGE_PATTERN = {
|
|
128
|
+
pattern: /^([1-9]\d?|100)$/,
|
|
129
|
+
tip: 'regexp_positive_percentage_tips',
|
|
130
|
+
};
|
|
131
|
+
export const CUSTOM_INDICATOR_PATTERN = {
|
|
132
|
+
// cspell:disable-next-line
|
|
133
|
+
pattern: /^([+-]?[\d.]+)([EGKMPTeikmnu]*[+-]?\d*)$/,
|
|
134
|
+
tip: '',
|
|
135
|
+
};
|
|
136
|
+
export const PATCH_PATH_PATTERN = {
|
|
137
|
+
pattern: /^\/.*/,
|
|
138
|
+
tip: 'oam_patch_path_pattern',
|
|
139
|
+
};
|
|
140
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0dGVybnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9tb2R1bGVzL3dvcmtsb2FkL3V0aWwtc2hhcmVkL3NyYy9saWIvdXRpbHMvcGF0dGVybnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUc7SUFDcEMsT0FBTyxFQUFFLDhCQUE4QjtJQUN2QyxHQUFHLEVBQUUsbUNBQW1DO0NBQ3pDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRztJQUMxQyxPQUFPLEVBQUUsNkRBQTZEO0lBQ3RFLEdBQUcsRUFBRSxvQ0FBb0M7Q0FDMUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHO0lBQy9CLE9BQU8sRUFBRSxnQkFBZ0I7SUFDekIsR0FBRyxFQUFFLDhCQUE4QjtDQUNwQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUc7SUFDbkMsT0FBTyxFQUFFLHNCQUFzQjtJQUMvQixHQUFHLEVBQUUsa0NBQWtDO0NBQ3hDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUc7SUFDekIsT0FBTyxFQUFFLFNBQVM7SUFDbEIsR0FBRyxFQUFFLGlCQUFpQjtDQUN2QixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUc7SUFDbEMsT0FBTyxFQUFFLFlBQVk7SUFDckIsR0FBRyxFQUFFLDBCQUEwQjtDQUNoQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUc7SUFDckMsT0FBTyxFQUNMLG9JQUFvSTtJQUN0SSxHQUFHLEVBQUUsMEJBQTBCO0NBQ2hDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRztJQUNyQyxPQUFPLEVBQUUsd0JBQXdCO0lBQ2pDLEdBQUcsRUFBRSxvQ0FBb0M7Q0FDMUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHNCQUFzQixHQUFH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R0FBRztJQUMzQixPQUFPLEVBQUUsZUFBZTtJQUN4QixHQUFHLEVBQUUsb0JBQW9CO0NBQzFCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRztJQUNoQyxPQUFPLEVBQ0wsMEVBQTBFO0lBQzVFLFdBQVcsRUFBRTs7MEJBRVc7Q0FDekIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHO0lBQ2pDLE9BQU8sRUFDTCw0RkFBNEY7SUFDOUYsV0FBVyxFQUFFOzs4QkFFZTtDQUM3QixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUc7SUFDckMsT0FBTyxFQUNMLDhFQUE4RTtJQUNoRixHQUFHLEVBQUUsNEJBQTRCO0NBQ2xDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRztJQUN6QyxPQUFPLEVBQUUsa0JBQWtCO0lBQzNCLEdBQUcsRUFBRSxpQ0FBaUM7Q0FDdkMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHO0lBQ3RDLDJCQUEyQjtJQUMzQixPQUFPLEVBQUUsMENBQTBDO0lBQ25ELEdBQUcsRUFBRSxFQUFFO0NBQ1IsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHO0lBQ2hDLE9BQU8sRUFBRSxPQUFPO0lBQ2hCLEdBQUcsRUFBRSx3QkFBd0I7Q0FDOUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBLOFNfUkVTT1VSQ0VfTkFNRV9CQVNFID0ge1xuICBwYXR0ZXJuOiAvXltcXGRhLXpdKFtcXGRhLXotXSpbXFxkYS16XSk/JC8sXG4gIHRpcDogJ3JlZ2V4cF90aXBfazhzX3Jlc291cmNlX25hbWVfYmFzZScsXG59O1xuXG5leHBvcnQgY29uc3QgTE9PU0VfSzhTX1JFU09VUkNFX05BTUVfQkFTRSA9IHtcbiAgcGF0dGVybjogL15bXFxkYS16XShbXFxkYS16LV0qW1xcZGEtel0pPyhcXC5bXFxkYS16XShbXFxkYS16LV0qW1xcZGEtel0pPykqJC8sXG4gIHRpcDogJ3JlZ2V4cF90aXBfazhzX3Jlc291cmNlX25hbWVfbG9vc2UnLFxufTtcblxuZXhwb3J0IGNvbnN0IEs4U19DT05GSUdNQVBfS0VZID0ge1xuICBwYXR0ZXJuOiAvXltcXHctXVtcXHcuLV0qJC8sXG4gIHRpcDogJ3JlZ2V4cF90aXBfazhzX2NvbmZpZ21hcF9rZXknLFxufTtcblxuZXhwb3J0IGNvbnN0IEs4U19FTlZfVkFSSUFCTEVfTkFNRSA9IHtcbiAgcGF0dGVybjogL15bLkEtWl9hLXotXVtcXHcuLV0qJC8sXG4gIHRpcDogJ3JlZ2V4cF90aXBfazhzX2Vudl92YXJpYWJsZV9uYW1lJyxcbn07XG5cbmV4cG9ydCBjb25zdCBJTlRfUEFUVEVSTiA9IHtcbiAgcGF0dGVybjogL14tP1xcZCskLyxcbiAgdGlwOiAnaW50ZWdlcl9wYXR0ZXJuJyxcbn07XG5cbmV4cG9ydCBjb25zdCBQT1NJVElWRV9JTlRfUEFUVEVSTiA9IHtcbiAgcGF0dGVybjogL15bMS05XVxcZCokLyxcbiAgdGlwOiAncG9zaXRpdmVfaW50ZWdlcl9wYXR0ZXJuJyxcbn07XG5cbmV4cG9ydCBjb25zdCBQT1NJVElWRV9JTlRfMzJfUEFUVEVSTiA9IHtcbiAgcGF0dGVybjpcbiAgICAvXihcXGR7MSw5fXwxXFxkezl9fDIoMFxcZHs4fXwxKFswLTNdXFxkezd9fDQoWzAtNl1cXGR7Nn18NyhbMC0zXVxcZHs1fXw0KFswLTddXFxkezR9fDgoWzAtMl1cXGR7M318MyhbMC01XVxcZHsyfXw2KFswLTNdXFxkfDRbMC03XSkpKSkpKSkpKSQvLFxuICB0aXA6ICdwb3NpdGl2ZV9pbnRlZ2VyX3BhdHRlcm4nLFxufTtcblxuZXhwb3J0IGNvbnN0IFBPU0lUSVZFX05VTUJFUl9QQVRURVJOID0ge1xuICBwYXR0ZXJuOiAvXihbMS05XVxcZCpcXC4/fDBcXC4pXFxkKiQvLFxuICB0aXA6ICdyZWdleHBfdGlwX3Bvc2l0aXZlX251bWJlcl9wYXR0ZXJuJyxcbn07XG5cbmV4cG9ydCBjb25zdCBOQVRVUkFMX05VTUJFUl9QQVRURVJOID0ge1xuICBwYXR0ZXJuOiAvXlxcZCskLyxcbiAgdGlwOiAnbmF0dXJhbF9udW1iZXJfcGF0dGVybicsXG59O1xuXG5leHBvcnQgY29uc3QgQVVUT19TQ0FMRVJfQ09PTF9USU1FX1BBVFRFUk4gPSB7XG4gIHBhdHRlcm46IC9eKFxcZHxbMS05XVxcZHxbMS05XVxcZFxcZHxbMTJdXFxkXFxkXFxkfDNbMC01XVxcZFxcZHwoMzYwMCkpJC8sXG4gIHRpcDogJ25hdHVyYWxfbnVtYmVyX2xlc3NfdGhhbl8zNjAwJyxcbiAgZXJyb3I6ICduYXR1cmFsX251bWJlcl9sZXNzX3RoYW5fMzYwMF9lcnJvcicsXG59O1xuXG5leHBvcnQgY29uc3QgUkVHSVNUUllfUEFUSCA9IHtcbiAgcGF0dGVybjogL15bXFxkYS16XShbXFxkLl9hLXotXSpbXFxkYS16XSk/JC8sXG4gIHRpcDogJ3JlZ2lzdHJ5X3BhdGhfcnVsZScsXG59O1xuXG5leHBvcnQgY29uc3QgSU5HUkVTU19QQVRIX1BBVFRFUk4gPSB7XG4gIHBhdHRlcm46IC9eXFwvLiovLFxuICB0aXA6ICdpbmdyZXNzX3BhdGhfcGF0dGVybicsXG59O1xuXG5jb25zdCBJUF9QQVRURVJOX0JBU0UgPVxuICAnXig/Oig/OjI1WzAtNV18MlswLTRdXFxcXGR8WzAxXT9cXFxcZHsxLDJ9KVxcXFwuKXszfSg/OjI1WzAtNV18MlswLTRdXFxcXGR8WzAxXT9cXFxcZHsxLDJ9KSQnO1xuXG5leHBvcnQgY29uc3QgSVBfQUREUkVTU19QQVRURVJOID0ge1xuICBwYXR0ZXJuOiBuZXcgUmVnRXhwKElQX1BBVFRFUk5fQkFTRSksXG4gIHRpcDogJ3JlZ2V4cF90aXBfaXBfYWRkcmVzcycsXG59O1xuXG5jb25zdCBJUF9WNl9BRERSRVNTX0JBU0UgPVxuICAnXigoWzAtOWEtZkEtRl17MSw0fTopezd9WzAtOWEtZkEtRl17MSw0fXwoWzAtOWEtZkEtRl17MSw0fTopezEsN306fChbMC05YS1mQS1GXXsxLDR9Oil7MSw2fTpbMC05YS1mQS1GXXsxLDR9fChbMC05YS1mQS1GXXsxLDR9Oil7MSw1fSg6WzAtOWEtZkEtRl17MSw0fSl7MSwyfXwoWzAtOWEtZkEtRl17MSw0fTopezEsNH0oOlswLTlhLWZBLUZdezEsNH0pezEsM318KFswLTlhLWZBLUZdezEsNH06KXsxLDN9KDpbMC05YS1mQS1GXXsxLDR9KXsxLDR9fChbMC05YS1mQS1GXXsxLDR9Oil7MSwyfSg6WzAtOWEtZkEtRl17MSw0fSl7MSw1fXxbMC05YS1mQS1GXXsxLDR9OigoOlswLTlhLWZBLUZdezEsNH0pezEsNn0pfDooKDpbMC05YS1mQS1GXXsxLDR9KXsxLDd9fDopfGZlODA6KDpbMC05YS1mQS1GXXswLDR9KXswLDR9JVswLTlhLXpBLVpdK3w6OihmZmZmKDowezEsNH0pPzopPygoMjVbMC01XXwoMlswLTRdfDE/WzAtOV0pP1swLTldKS4pezN9KDI1WzAtNV18KDJbMC00XXwxP1swLTldKT9bMC05XSl8KFswLTlhLWZBLUZdezEsNH06KXsxLDR9OigoMjVbMC01XXwoMlswLTRdfDE/WzAtOV0pP1swLTldKS4pezN9KDI1WzAtNV18KDJbMC00XXwxP1swLTldKT9bMC05XSkpJCc7XG5cbmV4cG9ydCBjb25zdCBJUF9WNl9BRERSRVNTX1BBVFRFUk4gPSB7XG4gIHBhdHRlcm46IG5ldyBSZWdFeHAoSVBfVjZfQUREUkVTU19CQVNFKSxcbn07XG5cbmV4cG9ydCBjb25zdCBJUF9WNF9PUl9WNl9QQVRURVJOID0ge1xuICBwYXR0ZXJuOiBuZXcgUmVnRXhwKGAoJHtJUF9QQVRURVJOX0JBU0V9KXwoJHtJUF9WNl9BRERSRVNTX0JBU0V9KWApLFxufTtcblxuZXhwb3J0IGNvbnN0IElQX0FERFJFU1NfUE9SVF9QQVRURVJOID0ge1xuICBwYXR0ZXJuOiBuZXcgUmVnRXhwKGAke0lQX1BBVFRFUk5fQkFTRS5zbGljZSgwLCAtMSl9KD86OlxcXFxkKyk/JGApLFxuICB0aXA6ICdyZWdleHBfdGlwX2lwX2FkZHJlc3MnLFxufTtcblxuZXhwb3J0IGNvbnN0IFRDUF9BRERSRVNTX1BBVFRFUk4gPSB7XG4gIHBhdHRlcm46XG4gICAgL14oPzooPzpbMS05XT9cXGR8MVxcZHsyfXwyWzAtNF1cXGR8MjVbMC01XSlcXC4pezN9KD86WzEtOV0/XFxkfDFcXGR7Mn18MlswLTRdXFxkfDI1WzAtNV0pOlxcZCskLyxcbiAgdGlwOiAnaW5wdXRfdGNwX3BsYWNlaG9sZGVyJyxcbn07XG5cbmV4cG9ydCBjb25zdCBDSURSX0lQX1BBVFRFUk4gPSB7XG4gIHBhdHRlcm46XG4gICAgL14oKDIoNVswLTVdfFswLTRdXFxkKSl8MVxcZHsyfXxbMS05XVxcZHxcXGQpKFxcLigoKDIoNVswLTVdfFswLTRdXFxkKSl8MVxcZHsxLDJ9fFsxLTldXFxkfFxcZCkpKXszfSQvLFxufTtcblxuZXhwb3J0IGNvbnN0IENJRFJfRlVMTF9QQVRURU4gPSB7XG4gIHBhdHRlcm46XG4gICAgL14oKDIoNVswLTVdfFswLTRdXFxkKSl8MVxcZHsyfXxbMS05XVxcZHxcXGQpKFxcLigoKDIoNVswLTVdfFswLTRdXFxkKSl8MVxcZHsxLDJ9fFsxLTldXFxkfFxcZCkpKXszfShcXC8oXFxkfFsxMl1cXGR8M1swLTJdKSkkLyxcbiAgdGlwOiAncmVnZXhwX2NpZHJfcGF0dGVybicsXG59O1xuXG5leHBvcnQgY29uc3QgQ0lEUl9QQVRURVJOID0ge1xuICBwYXR0ZXJuOlxuICAgIC9eKCgyKDVbMC01XXxbMC00XVxcZCkpfDFcXGR7Mn18WzEtOV1cXGR8XFxkKShcXC4oKCgyKDVbMC01XXxbMC00XVxcZCkpfDFcXGR7MSwyfXxbMS05XVxcZHxcXGQpKSl7M30oXFwvKFxcZHxbMTJdXFxkfDNbMC0yXSkpPyQvLFxuICB0aXA6ICdyZWdleHBfY2lkcl9wYXR0ZXJuJyxcbn07XG5cbmV4cG9ydCBjb25zdCBSRVNFUlZFRF9JUF9QQVRURVJOID0ge1xuICBwYXR0ZXJuOlxuICAgIC9eKCgyKDVbMC01XXxbMC00XVxcZCkpfDFcXGR7Mn18WzEtOV1cXGR8XFxkKShcXC4oKCgyKDVbMC01XXxbMC00XVxcZCkpfDFcXGR7MSwyfXxbMS05XVxcZHxcXGQpKSl7M30oXFwuXFwuKCgyKDVbMC01XXxbMC00XVxcZCkpfDFcXGR7Mn18WzEtOV1cXGR8XFxkKShcXC4oKCgyKDVbMC01XXxbMC00XVxcZCkpfDFcXGR7MSwyfXxbMS05XVxcZHxcXGQpKSl7M30pPyQvLFxufTtcblxuZXhwb3J0IGNvbnN0IFJFU0VSVkVEX0lQX1NFR01FTlRfUEFUVEVSTiA9IHtcbiAgcGF0dGVybjpcbiAgICAvXigoMig1WzAtNV18WzAtNF1cXGQpKXwxXFxkezJ9fFsxLTldXFxkfFxcZCkoXFwuKCgoMig1WzAtNV18WzAtNF1cXGQpKXwxXFxkezEsMn18WzEtOV1cXGR8XFxkKSkpezN9KFxcLlxcLigoMig1WzAtNV18WzAtNF1cXGQpKXwxXFxkezJ9fFsxLTldXFxkfFxcZCkoXFwuKCgoMig1WzAtNV18WzAtNF1cXGQpKXwxXFxkezEsMn18WzEtOV1cXGR8XFxkKSkpezN9KSQvLFxufTtcblxuZXhwb3J0IGNvbnN0IENVU1RPTV9BTEFSTV9OQU1FX0JBU0UgPSB7XG4gIHBhdHRlcm46IC9eW1xcZGEtel0oW1xcZC5hLXpdKltcXGRhLXpdKT8kLyxcbiAgdGlwOiAnY3VzdG9tX2FsZXJ0X25hbWVfcGxhY2Vob2xkZXInLFxufTtcblxuZXhwb3J0IGNvbnN0IEFMQVJNX0xBQkVMX0tFWV9OQU1FX1BBVFRFUk4gPSB7XG4gIHBhdHRlcm46IC9eW0EtWl9hLXpdXFx3KiQvLFxuICB0aXA6ICdyZWdleHBfdGlwX2FsZXJ0X2xhYmVsX2tleV9uYW1lJyxcbn07XG5cbmV4cG9ydCBjb25zdCBBTEFSTV9USFJFU0hPTERfUEFUVEVSTiA9IHtcbiAgcGF0dGVybjogL14oPyEwXFxkKVxcZHswLDE3fShcXC5cXGR7MSw0fSk/JC8sXG4gIHRpcDogJ3JlZ2V4cF90aXBfYWxlcnRfdGhyZXNob2xkJyxcbn07XG5cbmV4cG9ydCBjb25zdCBBTEFSTV9NRVRSSUNfUEFUVEVSTiA9IHtcbiAgcGF0dGVybjogL15bXFx1MDAyMC1cXHUwMDdFXSokLyxcbiAgdGlwOiAncmVnZXhwX3RpcF9hbGVydF9tZXRyaWMnLFxufTtcblxuZXhwb3J0IGNvbnN0IEVNQUlMX1BBVFRFUk4gPSB7XG4gIHBhdHRlcm46XG4gICAgL15bXFx3ISMkJSYnKisvPT9eYHt8fX4tXSsoPzpcXC5bXFx3ISMkJSYnKisvPT9eYHt8fX4tXSspKkAoPzpbXFxkQS1aYS16XSg/OltcXGRBLVphLXotXSpbXFxkQS1aYS16XSk/XFwuKStbXFxkQS1aYS16XSg/OltcXGRBLVphLXotXSpbXFxkQS1aYS16XSk/JC8sXG4gIHRpcDogJ2VtYWlsX2Zvcm1hdF9saW1pdCcsXG59O1xuXG5leHBvcnQgY29uc3QgUEhPTkVfUEFUVEVSTiA9IHtcbiAgcGF0dGVybjogL15cXCs/XFxkezcsMTV9JC8sXG4gIHRpcDogJ3Bob25lX2Zvcm1hdF9saW1pdCcsXG59O1xuXG5leHBvcnQgY29uc3QgUFVCTElDX0tFWV9QQVRURVJOID0ge1xuICBwYXR0ZXJuOlxuICAgIC9eKC17NX1CRUdJTiBDRVJUSUZJQ0FURS17NX1bXFxkXFxuKy89QS1aYS16XSotezV9RU5EIENFUlRJRklDQVRFLXs1fVxcbiopKyQvLFxuICBwbGFjZWhvbGRlcjogYC0tLS0tQkVHSU4gQ0VSVElGSUNBVEUtLS0tLVxuTUlJRExqQ0NBaFlDQ1FEQU9GOXRMc2FYV2pBTkJna3Foa2lHOXcwQkFRc0ZBREJhTVxuLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLWAsXG59O1xuXG5leHBvcnQgY29uc3QgUFJJVkFURV9LRVlfUEFUVEVSTiA9IHtcbiAgcGF0dGVybjpcbiAgICAvXigtezV9QkVHSU4gKFJTQSB8RUMgfERTQSApP1BSSVZBVEUgS0VZLXs1fVtcXGRcXG4rLz1BLVphLXpdKi17NX1FTkQgXFwyUFJJVkFURSBLRVktezV9XFxuKikrJC8sXG4gIHBsYWNlaG9sZGVyOiBgLS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLVxuTUlJRExqQ0NBaFlDQ1FEQU9GOXRMc2FYV2pBTkJna3Foa2lHOXcwQkFRc0ZBREJhTVxuLS0tLS1FTkQgUlNBIFBSSVZBVEUgS0VZLS0tLS1gLFxufTtcblxuZXhwb3J0IGNvbnN0IFNUUk9OR19QQVNTV09SRF9QQVRURVJOID0ge1xuICBwYXR0ZXJuOlxuICAgIC9eKD8hXFwvKSg/PS4qW0EtWmEtel0pKD89LipcXGQpKD89LipbISMkJSYnKCkqKywuLzo7PD0+P0BbXFxdXl9ge3x9fi1dKS57OCwzMH0kLyxcbiAgdGlwOiAncmVnZXhwX3RpcF9zdHJvbmdfcGFzc3dvcmQnLFxufTtcblxuZXhwb3J0IGNvbnN0IFBPU0lUSVZFX1BFUkNFTlRBR0VfUEFUVEVSTiA9IHtcbiAgcGF0dGVybjogL14oWzEtOV1cXGQ/fDEwMCkkLyxcbiAgdGlwOiAncmVnZXhwX3Bvc2l0aXZlX3BlcmNlbnRhZ2VfdGlwcycsXG59O1xuXG5leHBvcnQgY29uc3QgQ1VTVE9NX0lORElDQVRPUl9QQVRURVJOID0ge1xuICAvLyBjc3BlbGw6ZGlzYWJsZS1uZXh0LWxpbmVcbiAgcGF0dGVybjogL14oWystXT9bXFxkLl0rKShbRUdLTVBUZWlrbW51XSpbKy1dP1xcZCopJC8sXG4gIHRpcDogJycsXG59O1xuXG5leHBvcnQgY29uc3QgUEFUQ0hfUEFUSF9QQVRURVJOID0ge1xuICBwYXR0ZXJuOiAvXlxcLy4qLyxcbiAgdGlwOiAnb2FtX3BhdGNoX3BhdGhfcGF0dGVybicsXG59O1xuIl19
|