taxtank-core 0.23.7 → 0.23.10
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/bundles/taxtank-core.umd.js +21 -19
- package/bundles/taxtank-core.umd.js.map +1 -1
- package/esm2015/lib/models/chart-accounts/chart-accounts-categories.const.js +3 -7
- package/esm2015/lib/models/service-subscription/service-subscription.js +11 -4
- package/fesm2015/taxtank-core.js +21 -19
- package/fesm2015/taxtank-core.js.map +1 -1
- package/lib/models/service-subscription/service-subscription.d.ts +5 -2
- package/package.json +1 -1
|
@@ -52,15 +52,11 @@ export const CHART_ACCOUNTS_CATEGORIES = {
|
|
|
52
52
|
],
|
|
53
53
|
workExpense: [
|
|
54
54
|
ChartAccountsCategoryEnum.WORK_EXPENSE,
|
|
55
|
-
ChartAccountsCategoryEnum.OTHER_EXPENSE
|
|
56
|
-
// @TODO Alex why?
|
|
57
|
-
ChartAccountsCategoryEnum.PERSONAL_EXPENSE
|
|
55
|
+
ChartAccountsCategoryEnum.OTHER_EXPENSE
|
|
58
56
|
],
|
|
59
57
|
workIncome: [
|
|
60
58
|
ChartAccountsCategoryEnum.WORK_INCOME,
|
|
61
|
-
ChartAccountsCategoryEnum.OTHER_INCOME
|
|
62
|
-
// @TODO Alex why?
|
|
63
|
-
ChartAccountsCategoryEnum.PERSONAL_INCOME
|
|
59
|
+
ChartAccountsCategoryEnum.OTHER_INCOME
|
|
64
60
|
],
|
|
65
61
|
soleExpense: [
|
|
66
62
|
ChartAccountsCategoryEnum.SOLE_EXPENSE,
|
|
@@ -103,4 +99,4 @@ export const CHART_ACCOUNTS_CATEGORIES = {
|
|
|
103
99
|
ChartAccountsCategoryEnum.PERSONAL_EXPENSE
|
|
104
100
|
]
|
|
105
101
|
};
|
|
106
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
102
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnQtYWNjb3VudHMtY2F0ZWdvcmllcy5jb25zdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R0LWNvcmUvc3JjL2xpYi9tb2RlbHMvY2hhcnQtYWNjb3VudHMvY2hhcnQtYWNjb3VudHMtY2F0ZWdvcmllcy5jb25zdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUV4Rjs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBaUQ7SUFDckYsTUFBTSxFQUFFO1FBQ04seUJBQXlCLENBQUMsZUFBZTtRQUN6Qyx5QkFBeUIsQ0FBQyxXQUFXO1FBQ3JDLHlCQUF5QixDQUFDLFlBQVk7UUFDdEMseUJBQXlCLENBQUMsZUFBZTtRQUN6Qyx5QkFBeUIsQ0FBQyxXQUFXO0tBQ3RDO0lBQ0QsT0FBTyxFQUFFO1FBQ1AseUJBQXlCLENBQUMsZ0JBQWdCO1FBQzFDLHlCQUF5QixDQUFDLHFCQUFxQjtRQUMvQyx5QkFBeUIsQ0FBQyxzQkFBc0I7UUFDaEQseUJBQXlCLENBQUMsaUJBQWlCO1FBQzNDLHlCQUF5QixDQUFDLFlBQVk7UUFDdEMseUJBQXlCLENBQUMsYUFBYTtRQUN2Qyx5QkFBeUIsQ0FBQyxnQkFBZ0I7UUFDMUMseUJBQXlCLENBQUMsWUFBWTtRQUN0Qyx5QkFBeUIsQ0FBQyxpQkFBaUI7S0FDNUM7SUFDRCxRQUFRLEVBQUU7UUFDUix5QkFBeUIsQ0FBQyxnQkFBZ0I7UUFDMUMseUJBQXlCLENBQUMscUJBQXFCO1FBQy9DLHlCQUF5QixDQUFDLHNCQUFzQjtRQUNoRCx5QkFBeUIsQ0FBQyxlQUFlO0tBQzFDO0lBQ0QsSUFBSSxFQUFFO1FBQ0oseUJBQXlCLENBQUMsWUFBWTtRQUN0Qyx5QkFBeUIsQ0FBQyxpQkFBaUI7UUFDM0MseUJBQXlCLENBQUMsV0FBVztRQUNyQyx5QkFBeUIsQ0FBQyxhQUFhO1FBQ3ZDLHlCQUF5QixDQUFDLFlBQVk7S0FDdkM7SUFDRCxJQUFJLEVBQUU7UUFDSix5QkFBeUIsQ0FBQyxXQUFXO1FBQ3JDLHlCQUF5QixDQUFDLFlBQVk7UUFDdEMseUJBQXlCLENBQUMsaUJBQWlCO0tBQzVDO0lBQ0QsUUFBUSxFQUFFO1FBQ1IseUJBQXlCLENBQUMsZ0JBQWdCO1FBQzFDLHlCQUF5QixDQUFDLGVBQWU7S0FDMUM7SUFDRCxlQUFlLEVBQUU7UUFDZix5QkFBeUIsQ0FBQyxnQkFBZ0I7S0FDM0M7SUFDRCxjQUFjLEVBQUU7UUFDZCx5QkFBeUIsQ0FBQyxlQUFlO0tBQzFDO0lBQ0QsV0FBVyxFQUFFO1FBQ1gseUJBQXlCLENBQUMsWUFBWTtRQUN0Qyx5QkFBeUIsQ0FBQyxhQUFhO0tBQ3hDO0lBQ0QsVUFBVSxFQUFFO1FBQ1YseUJBQXlCLENBQUMsV0FBVztRQUNyQyx5QkFBeUIsQ0FBQyxZQUFZO0tBQ3ZDO0lBQ0QsV0FBVyxFQUFFO1FBQ1gseUJBQXlCLENBQUMsWUFBWTtLQUN2QztJQUNELFVBQVUsRUFBRTtRQUNWLHlCQUF5QixDQUFDLFdBQVc7S0FDdEM7SUFDRCxnQkFBZ0IsRUFBRTtRQUNoQix5QkFBeUIsQ0FBQyxpQkFBaUI7S0FDNUM7SUFDRCxjQUFjLEVBQUU7UUFDZCx5QkFBeUIsQ0FBQyxXQUFXO1FBQ3JDLHlCQUF5QixDQUFDLFlBQVk7UUFDdEMseUJBQXlCLENBQUMsWUFBWTtRQUN0Qyx5QkFBeUIsQ0FBQyxhQUFhO0tBQ3hDO0lBQ0Qsb0JBQW9CLEVBQUU7UUFDcEIseUJBQXlCLENBQUMsV0FBVztRQUNyQyx5QkFBeUIsQ0FBQyxZQUFZO0tBQ3ZDO0lBQ0Qsc0JBQXNCLEVBQUU7UUFDdEIseUJBQXlCLENBQUMsWUFBWTtRQUN0Qyx5QkFBeUIsQ0FBQyxhQUFhO0tBQ3hDO0lBQ0QsWUFBWSxFQUFFO1FBQ1oseUJBQXlCLENBQUMscUJBQXFCO1FBQy9DLHlCQUF5QixDQUFDLGlCQUFpQjtLQUM1QztJQUNELEdBQUcsRUFBRTtRQUNILHlCQUF5QixDQUFDLGVBQWU7UUFDekMseUJBQXlCLENBQUMsV0FBVztRQUNyQyx5QkFBeUIsQ0FBQyxZQUFZO1FBQ3RDLHlCQUF5QixDQUFDLGVBQWU7UUFDekMseUJBQXlCLENBQUMsZ0JBQWdCO1FBQzFDLHlCQUF5QixDQUFDLHFCQUFxQjtRQUMvQyx5QkFBeUIsQ0FBQyxzQkFBc0I7UUFDaEQseUJBQXlCLENBQUMsaUJBQWlCO1FBQzNDLHlCQUF5QixDQUFDLFlBQVk7UUFDdEMseUJBQXlCLENBQUMsYUFBYTtRQUN2Qyx5QkFBeUIsQ0FBQyxnQkFBZ0I7S0FDM0M7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhcnRBY2NvdW50c0NhdGVnb3J5RW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zL2NoYXJ0LWFjY291bnRzLWNhdGVnb3J5LmVudW0nO1xyXG5cclxuLyoqXHJcbiAqIEdyb3VwZWQgY2hhcnQgYWNjb3VudHMgY2F0ZWdvcmllcyBmb3IgZmFzdCB3b3JrXHJcbiAqIEBUT0RPIEFsZXg6IENsZWFuIHVwIGFuZC9vciByZW1vdmUgc29tZSBncm91cHNcclxuICovXHJcbmV4cG9ydCBjb25zdCBDSEFSVF9BQ0NPVU5UU19DQVRFR09SSUVTOiB7W2tleTogc3RyaW5nXTogQ2hhcnRBY2NvdW50c0NhdGVnb3J5RW51bVtdfSA9IHtcclxuICBpbmNvbWU6IFtcclxuICAgIENoYXJ0QWNjb3VudHNDYXRlZ29yeUVudW0uUFJPUEVSVFlfSU5DT01FLFxyXG4gICAgQ2hhcnRBY2NvdW50c0NhdGVnb3J5RW51bS5XT1JLX0lOQ09NRSxcclxuICAgIENoYXJ0QWNjb3VudHNDYXRlZ29yeUVudW0uT1RIRVJfSU5DT01FLFxyXG4gICAgQ2hhcnRBY2NvdW50c0NhdGVnb3J5RW51bS5QRVJTT05BTF9JTkNPTUUsXHJcbiAgICBDaGFydEFjY291bnRzQ2F0ZWdvcnlFbnVtLlNPTEVfSU5DT01FLFxyXG4gIF0sXHJcbiAgZXhwZW5zZTogW1xyXG4gICAgQ2hhcnRBY2NvdW50c0NhdGVnb3J5RW51bS5QUk9QRVJUWV9FWFBFTlNFLFxyXG4gICAgQ2hhcnRBY2NvdW50c0NhdGVnb3J5RW51bS5QUk9QRVJUWV9ERVBSRUNJQVRJT04sXHJcbiAgICBDaGFydEFjY291bnRzQ2F0ZWdvcnlFbnVtLlBST1BFUlRZX0NBUElUQUxfV09SS1MsXHJcbiAgICBDaGFydEFjY291bnRzQ2F0ZWdvcnlFbnVtLldPUktfREVQUkVDSUFUSU9OLFxyXG4gICAgQ2hhcnRBY2NvdW50c0NhdGVnb3J5RW51bS5XT1JLX0VYUEVOU0UsXHJcbiAgICBDaGFydEFjY291bnRzQ2F0ZWdvcnlFbnVtLk9USEVSX0VYUEVOU0UsXHJcbiAgICBDaGFydEFjY291bnRzQ2F0ZWdvcnlFbnVtLlBFUlNPTkFMX0VYUEVOU0UsXHJcbiAgICBDaGFydEFjY291bnRzQ2F0ZWdvcnlFbnVtLlNPTEVfRVhQRU5TRSxcclxuICAgIENoYXJ0QWNjb3VudHNDYXRlZ29yeUVudW0uU09MRV9ERVBSRUNJQVRJT05cclxuICBdLFxyXG4gIHByb3BlcnR5OiBbXHJcbiAgICBDaGFydEFjY291bnRzQ2F0ZWdvcnlFbnVtLlBST1BFUlRZX0VYUEVOU0UsXHJcbiAgICBDaGFydEFjY291bnRzQ2F0ZWdvcnlFbnVtLlBST1BFUlRZX0RFUFJFQ0lBVElPTixcclxuICAgIENoYXJ0QWNjb3VudHNDYXRlZ29yeUVudW0uUFJPUEVSVFlfQ0FQSVRBTF9XT1JLUyxcclxuICAgIENoYXJ0QWNjb3VudHNDYXRlZ29yeUVudW0uUFJPUEVSVFlfSU5DT01FXHJcbiAgXSxcclxuICB3b3JrOiBbXHJcbiAgICBDaGFydEFjY291bnRzQ2F0ZWdvcnlFbnVtLldPUktfRVhQRU5TRSxcclxuICAgIENoYXJ0QWNjb3VudHNDYXRlZ29yeUVudW0uV09SS19ERVBSRUNJQVRJT04sXHJcbiAgICBDaGFydEFjY291bnRzQ2F0ZWdvcnlFbnVtLldPUktfSU5DT01FLFxyXG4gICAgQ2hhcnRBY2NvdW50c0NhdGVnb3J5RW51bS5PVEhFUl9FWFBFTlNFLFxyXG4gICAgQ2hhcnRBY2NvdW50c0NhdGVnb3J5RW51bS5PVEhFUl9JTkNPTUVcclxuICBdLFxyXG4gIHNvbGU6IFtcclxuICAgIENoYXJ0QWNjb3VudHNDYXRlZ29yeUVudW0uU09MRV9JTkNPTUUsXHJcbiAgICBDaGFydEFjY291bnRzQ2F0ZWdvcnlFbnVtLlNPTEVfRVhQRU5TRSxcclxuICAgIENoYXJ0QWNjb3VudHNDYXRlZ29yeUVudW0uU09MRV9ERVBSRUNJQVRJT05cclxuICBdLFxyXG4gIHBlcnNvbmFsOiBbXHJcbiAgICBDaGFydEFjY291bnRzQ2F0ZWdvcnlFbnVtLlBFUlNPTkFMX0VYUEVOU0UsXHJcbiAgICBDaGFydEFjY291bnRzQ2F0ZWdvcnlFbnVtLlBFUlNPTkFMX0lOQ09NRVxyXG4gIF0sXHJcbiAgcHJvcGVydHlFeHBlbnNlOiBbXHJcbiAgICBDaGFydEFjY291bnRzQ2F0ZWdvcnlFbnVtLlBST1BFUlRZX0VYUEVOU0VcclxuICBdLFxyXG4gIHByb3BlcnR5SW5jb21lOiBbXHJcbiAgICBDaGFydEFjY291bnRzQ2F0ZWdvcnlFbnVtLlBST1BFUlRZX0lOQ09NRVxyXG4gIF0sXHJcbiAgd29ya0V4cGVuc2U6IFtcclxuICAgIENoYXJ0QWNjb3VudHNDYXRlZ29yeUVudW0uV09SS19FWFBFTlNFLFxyXG4gICAgQ2hhcnRBY2NvdW50c0NhdGVnb3J5RW51bS5PVEhFUl9FWFBFTlNFXHJcbiAgXSxcclxuICB3b3JrSW5jb21lOiBbXHJcbiAgICBDaGFydEFjY291bnRzQ2F0ZWdvcnlFbnVtLldPUktfSU5DT01FLFxyXG4gICAgQ2hhcnRBY2NvdW50c0NhdGVnb3J5RW51bS5PVEhFUl9JTkNPTUVcclxuICBdLFxyXG4gIHNvbGVFeHBlbnNlOiBbXHJcbiAgICBDaGFydEFjY291bnRzQ2F0ZWdvcnlFbnVtLlNPTEVfRVhQRU5TRSxcclxuICBdLFxyXG4gIHNvbGVJbmNvbWU6IFtcclxuICAgIENoYXJ0QWNjb3VudHNDYXRlZ29yeUVudW0uU09MRV9JTkNPTUUsXHJcbiAgXSxcclxuICBzb2xlRGVwcmVjaWF0aW9uOiBbXHJcbiAgICBDaGFydEFjY291bnRzQ2F0ZWdvcnlFbnVtLlNPTEVfREVQUkVDSUFUSU9OLFxyXG4gIF0sXHJcbiAgd29ya1RhbmtIZWFkZXI6IFtcclxuICAgIENoYXJ0QWNjb3VudHNDYXRlZ29yeUVudW0uV09SS19JTkNPTUUsXHJcbiAgICBDaGFydEFjY291bnRzQ2F0ZWdvcnlFbnVtLk9USEVSX0lOQ09NRSxcclxuICAgIENoYXJ0QWNjb3VudHNDYXRlZ29yeUVudW0uV09SS19FWFBFTlNFLFxyXG4gICAgQ2hhcnRBY2NvdW50c0NhdGVnb3J5RW51bS5PVEhFUl9FWFBFTlNFXHJcbiAgXSxcclxuICB3b3JrVGFua0hlYWRlckluY29tZTogW1xyXG4gICAgQ2hhcnRBY2NvdW50c0NhdGVnb3J5RW51bS5XT1JLX0lOQ09NRSxcclxuICAgIENoYXJ0QWNjb3VudHNDYXRlZ29yeUVudW0uT1RIRVJfSU5DT01FXHJcbiAgXSxcclxuICB3b3JrVGFua0hlYWRlckV4cGVuc2VzOiBbXHJcbiAgICBDaGFydEFjY291bnRzQ2F0ZWdvcnlFbnVtLldPUktfRVhQRU5TRSxcclxuICAgIENoYXJ0QWNjb3VudHNDYXRlZ29yeUVudW0uT1RIRVJfRVhQRU5TRVxyXG4gIF0sXHJcbiAgZGVwcmVjaWF0aW9uOiBbXHJcbiAgICBDaGFydEFjY291bnRzQ2F0ZWdvcnlFbnVtLlBST1BFUlRZX0RFUFJFQ0lBVElPTixcclxuICAgIENoYXJ0QWNjb3VudHNDYXRlZ29yeUVudW0uV09SS19ERVBSRUNJQVRJT05cclxuICBdLFxyXG4gIGFsbDogW1xyXG4gICAgQ2hhcnRBY2NvdW50c0NhdGVnb3J5RW51bS5QUk9QRVJUWV9JTkNPTUUsXHJcbiAgICBDaGFydEFjY291bnRzQ2F0ZWdvcnlFbnVtLldPUktfSU5DT01FLFxyXG4gICAgQ2hhcnRBY2NvdW50c0NhdGVnb3J5RW51bS5PVEhFUl9JTkNPTUUsXHJcbiAgICBDaGFydEFjY291bnRzQ2F0ZWdvcnlFbnVtLlBFUlNPTkFMX0lOQ09NRSxcclxuICAgIENoYXJ0QWNjb3VudHNDYXRlZ29yeUVudW0uUFJPUEVSVFlfRVhQRU5TRSxcclxuICAgIENoYXJ0QWNjb3VudHNDYXRlZ29yeUVudW0uUFJPUEVSVFlfREVQUkVDSUFUSU9OLFxyXG4gICAgQ2hhcnRBY2NvdW50c0NhdGVnb3J5RW51bS5QUk9QRVJUWV9DQVBJVEFMX1dPUktTLFxyXG4gICAgQ2hhcnRBY2NvdW50c0NhdGVnb3J5RW51bS5XT1JLX0RFUFJFQ0lBVElPTixcclxuICAgIENoYXJ0QWNjb3VudHNDYXRlZ29yeUVudW0uV09SS19FWFBFTlNFLFxyXG4gICAgQ2hhcnRBY2NvdW50c0NhdGVnb3J5RW51bS5PVEhFUl9FWFBFTlNFLFxyXG4gICAgQ2hhcnRBY2NvdW50c0NhdGVnb3J5RW51bS5QRVJTT05BTF9FWFBFTlNFXHJcbiAgXVxyXG59O1xyXG4iXX0=
|
|
@@ -6,6 +6,7 @@ import { SUBSCRIPTION_TITLE } from './subscription-title.const';
|
|
|
6
6
|
import { SUBSCRIPTION_DESCRIPTION } from './subscription-description.const';
|
|
7
7
|
import { UserRolesEnum } from '../../db/Enums/user-roles.enum';
|
|
8
8
|
import { Type } from 'class-transformer';
|
|
9
|
+
import { ServiceSubscriptionStatusEnum } from '../../db/Enums/subscription/service-subscription-status.enum';
|
|
9
10
|
const PROPERTY_INVESTOR_MAX_PROPERTIES = 2;
|
|
10
11
|
export class ServiceSubscription extends ServiceSubscriptionBase {
|
|
11
12
|
constructor() {
|
|
@@ -56,11 +57,11 @@ export class ServiceSubscription extends ServiceSubscriptionBase {
|
|
|
56
57
|
return SUBSCRIPTION_DESCRIPTION[this.type];
|
|
57
58
|
}
|
|
58
59
|
/**
|
|
59
|
-
*
|
|
60
|
-
* and for user we add check for endDate
|
|
60
|
+
* A subscription is considered active if the end date has not yet arrived and its status is "Active" or "Past due"
|
|
61
61
|
*/
|
|
62
62
|
get isActive() {
|
|
63
|
-
|
|
63
|
+
const isExpired = new Date(this.endDate).getTime() < new Date().getTime();
|
|
64
|
+
return !isExpired && ([ServiceSubscriptionStatusEnum.ACTIVE, ServiceSubscriptionStatusEnum.PAST_DUE].includes(this.status));
|
|
64
65
|
}
|
|
65
66
|
get daysRemain() {
|
|
66
67
|
const daysRemains = Math.round((new Date(this.endDate).getTime() - new Date().getTime()) / (1000 * 3600 * 24));
|
|
@@ -132,6 +133,12 @@ export class ServiceSubscription extends ServiceSubscriptionBase {
|
|
|
132
133
|
// subscription with at least one archived product considered as archived
|
|
133
134
|
return !!this.items.filter((item) => item.price.product.isArchived()).length;
|
|
134
135
|
}
|
|
136
|
+
/**
|
|
137
|
+
* Case when payment was failed, but user has a time to update payment method
|
|
138
|
+
*/
|
|
139
|
+
isPastDue() {
|
|
140
|
+
return this.status === ServiceSubscriptionStatusEnum.PAST_DUE;
|
|
141
|
+
}
|
|
135
142
|
}
|
|
136
143
|
__decorate([
|
|
137
144
|
Type(() => Date)
|
|
@@ -142,4 +149,4 @@ __decorate([
|
|
|
142
149
|
__decorate([
|
|
143
150
|
Type(() => ServiceSubscriptionItem)
|
|
144
151
|
], ServiceSubscription.prototype, "items", void 0);
|
|
145
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1zdWJzY3JpcHRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvbW9kZWxzL3NlcnZpY2Utc3Vic2NyaXB0aW9uL3NlcnZpY2Utc3Vic2NyaXB0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsbUJBQW1CLElBQUksdUJBQXVCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUNuSCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDL0QsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXpDLE1BQU0sZ0NBQWdDLEdBQUcsQ0FBQyxDQUFDO0FBRTNDLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSx1QkFBdUI7SUFBaEU7O1FBVUUsNERBQTREO1FBQzVELGtCQUFhLEdBQVcsQ0FBQyxDQUFDO0lBcUo1QixDQUFDO0lBbkpDLElBQUksT0FBTztRQUNULE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBVyxFQUFFLElBQTZCLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2hHLENBQUM7SUFFRCxJQUFJLGdCQUFnQjtRQUNsQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMs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LENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLGdCQUF5QyxFQUFFLEVBQUU7WUFDckUsT0FBTyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQy9FLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7T0FHRztJQUNILFVBQVU7UUFDUix5RUFBeUU7UUFDekUsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQy9FLENBQUM7Q0FDRjtBQTlKQztJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUM7c0RBQ0Q7QUFHaEI7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDO29EQUNIO0FBR2Q7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsdUJBQXVCLENBQUM7a0RBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZXJ2aWNlU3Vic2NyaXB0aW9uIGFzIFNlcnZpY2VTdWJzY3JpcHRpb25CYXNlIH0gZnJvbSAnLi4vLi4vZGIvTW9kZWxzL3N1YnNjcmlwdGlvbi9zZXJ2aWNlLXN1YnNjcmlwdGlvbic7XG5pbXBvcnQgeyBTZXJ2aWNlU3Vic2NyaXB0aW9uSXRlbSB9IGZyb20gJy4vc2VydmljZS1zdWJzY3JpcHRpb24taXRlbSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb25UeXBlRW51bSB9IGZyb20gJy4vc3Vic2NyaXB0aW9uLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBTVUJTQ1JJUFRJT05fVElUTEUgfSBmcm9tICcuL3N1YnNjcmlwdGlvbi10aXRsZS5jb25zdCc7XG5pbXBvcnQgeyBTVUJTQ1JJUFRJT05fREVTQ1JJUFRJT04gfSBmcm9tICcuL3N1YnNjcmlwdGlvbi1kZXNjcmlwdGlvbi5jb25zdCc7XG5pbXBvcnQgeyBVc2VyUm9sZXNFbnVtIH0gZnJvbSAnLi4vLi4vZGIvRW51bXMvdXNlci1yb2xlcy5lbnVtJztcbmltcG9ydCB7IFR5cGUgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5cbmNvbnN0IFBST1BFUlRZX0lOVkVTVE9SX01BWF9QUk9QRVJUSUVTID0gMjtcblxuZXhwb3J0IGNsYXNzIFNlcnZpY2VTdWJzY3JpcHRpb24gZXh0ZW5kcyBTZXJ2aWNlU3Vic2NyaXB0aW9uQmFzZSB7XG4gIEBUeXBlKCgpID0+IERhdGUpXG4gIHN0YXJ0RGF0ZTogRGF0ZTtcblxuICBAVHlwZSgoKSA9PiBEYXRlKVxuICBlbmREYXRlOiBEYXRlO1xuXG4gIEBUeXBlKCgpID0+IFNlcnZpY2VTdWJzY3JpcHRpb25JdGVtKVxuICBpdGVtczogU2VydmljZVN1YnNjcmlwdGlvbkl0ZW1bXTtcblxuICAvLyBOdW1iZXIgb2YgZGF5cyBhZnRlciB3aGljaCB0aGUgdHJpYWwgdGltZSB3aWxsIGJlIGV4cGlyZWRcbiAgbGFzdFRyaWFsRGF5czogbnVtYmVyID0gNDtcblxuICBnZXQgaXNUcmlhbCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuc3RyaXBlSWQ7XG4gIH1cblxuICBnZXQgcHJpY2UoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5yZWR1Y2UoKHN1bTogbnVtYmVyLCBpdGVtOiBTZXJ2aWNlU3Vic2NyaXB0aW9uSXRlbSkgPT4gc3VtICsgaXRlbS50b3RhbCwgMCk7XG4gIH1cblxuICBnZXQgcHJvcGVydHlRdWFudGl0eSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnByb3BlcnRpZXNJdGVtID8gdGhpcy5wcm9wZXJ0aWVzSXRlbS5xdWFudGl0eSA6IDA7XG4gIH1cblxuICAvKipcbiAgICogZ2V0IHR5cGUgb2Ygc3Vic2NyaXB0aW9uXG4gICAqL1xuICBnZXQgdHlwZSgpOiBTdWJzY3JpcHRpb25UeXBlRW51bSB7XG4gICAgY29uc3Qgd29ya1RhbmtQcm9kdWN0OiBTZXJ2aWNlU3Vic2NyaXB0aW9uSXRlbSA9IHRoaXMuaXRlbXMuZmluZCgoaXRlbTogU2VydmljZVN1YnNjcmlwdGlvbkl0ZW0pOiBib29sZWFuID0+IHtcbiAgICAgIHJldHVybiBpdGVtLnByaWNlLnByb2R1Y3QuaXNXb3JrVGFuaygpO1xuICAgIH0pO1xuXG4gICAgaWYgKCF0aGlzLndvcmtUYW5rSXRlbSB8fCAhdGhpcy5pc0FjdGl2ZSkge1xuICAgICAgcmV0dXJuIFN1YnNjcmlwdGlvblR5cGVFbnVtLldJVEhPVVRfU1VCU0NSSVBUSU9OO1xuICAgIH1cblxuICAgIGlmICh0aGlzLml0ZW1zLmxlbmd0aCA9PT0gMSAmJiAhIXdvcmtUYW5rUHJvZHVjdCkge1xuICAgICAgcmV0dXJuIFN1YnNjcmlwdGlvblR5cGVFbnVtLklORElWSURVQUw7XG4gICAgfVxuXG4gICAgY29uc3QgcHJvcGVydHlUYW5rUHJvZHVjdDogU2VydmljZVN1YnNjcmlwdGlvbkl0ZW0gPSB0aGlzLml0ZW1zLmZpbmQoKGl0ZW06IFNlcnZpY2VTdWJzY3JpcHRpb25JdGVtKTogYm9vbGVhbiA9PiB7XG4gICAgICByZXR1cm4gaXRlbS5wcmljZS5wcm9kdWN0LmlzUHJvcGVydGllcygpO1xuICAgIH0pO1xuXG4gICAgaWYgKCEhdGhpcy5wcm9wZXJ0aWVzSXRlbSAmJiBwcm9wZXJ0eVRhbmtQcm9kdWN0LnF1YW50aXR5ID09PSBQUk9QRVJUWV9JTlZFU1RPUl9NQVhfUFJPUEVSVElFUykge1xuICAgICAgcmV0dXJuIFN1YnNjcmlwdGlvblR5cGVFbnVtLklOVkVTVE9SO1xuICAgIH1cblxuICAgIHJldHVybiBTdWJzY3JpcHRpb25UeXBlRW51bS5JTlZFU1RPUl9QTFVTO1xuICB9XG5cbiAgLyoqXG4gICAqIGdldCB0aXRsZSBvZiBzdWJzY3JpcHRpb25cbiAgICovXG4gIGdldCB0aXRsZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBTVUJTQ1JJUFRJT05fVElUTEVbdGhpcy50eXBlXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBnZXQgZGVzY3JpcHRpb24gb2Ygc3Vic2NyaXB0aW9uXG4gICAqL1xuICBnZXQgZGVzY3JpcHRpb24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gU1VCU0NSSVBUSU9OX0RFU0NSSVBUSU9OW3RoaXMudHlwZV07XG4gIH1cblxuICAvKipcbiAgICogVGhpcyBjaGVjayBvbiBnZXRJc0FjdGl2ZSBuZWVkIGZvciBmaXJtLiBBY2NvdW50YW50IGhhcyBhIGVuZERhdGUsIGJ1dCB1c2VyIGhhcyBub3QgZW5kRGF0ZVxuICAgKiBhbmQgZm9yIHVzZXIgd2UgYWRkIGNoZWNrIGZvciBlbmREYXRlXG4gICAqL1xuICBnZXQgaXNBY3RpdmUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZW5kRGF0ZSA/IG5ldyBEYXRlKHRoaXMuZW5kRGF0ZSkuZ2V0VGltZSgpID4gbmV3IERhdGUoKS5nZXRUaW1lKCkgOiB0cnVlO1xuICB9XG5cbiAgZ2V0IGRheXNSZW1haW4oKTogbnVtYmVyIHtcbiAgICBjb25zdCBkYXlzUmVtYWluczogbnVtYmVyID0gTWF0aC5yb3VuZChcbiAgICAgIChuZXcgRGF0ZSh0aGlzLmVuZERhdGUpLmdldFRpbWUoKSAtIG5ldyBEYXRlKCkuZ2V0VGltZSgpKSAvICgxMDAwICogMzYwMCAqIDI0KVxuICAgICk7XG5cbiAgICByZXR1cm4gZGF5c1JlbWFpbnMgPiAwID8gZGF5c1JlbWFpbnMgOiAwO1xuICB9XG5cbiAgZ2V0VGl0bGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pc1RyaWFsID8gJ1RyaWFsIHBlcmlvZCcgOiB0aGlzLnRpdGxlO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIHN1YnNjcmlwdGlvbiBpcyBJbmRpdmlkdWFsXG4gICAqIFN1YnNjcmlwdGlvbiBpcyBpbmRpdmlkdWFsIHdoZW4gdXNlciBoYXZlIG9ubHkgb25lIHByb2R1Y3QgYW5kIG9ubHkgd29yayB0YW5rXG4gICAqL1xuICBpc0luZGl2aWR1YWwoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gU3Vic2NyaXB0aW9uVHlwZUVudW0uSU5ESVZJRFVBTDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBzdWJzY3JpcHRpb24gaXMgSW52ZXN0b3JcbiAgICogU3Vic2NyaXB0aW9uIGlzIGludmVzdG9yIHdoZW4gdXNlciBoYXZlIHByb3BlcnR5IHRhbmsgcHJvZHVjdCBhbmQgbWF4IGNvdW50IG9mIHByb3BlcnRpZXMgaXMgMlxuICAgKi9cbiAgaXNJbnZlc3RvcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50eXBlID09PSBTdWJzY3JpcHRpb25UeXBlRW51bS5JTlZFU1RPUjtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBzdWJzY3JpcHRpb24gaXMgSW52ZXN0b3IgUGx1c1xuICAgKiBTdWJzY3JpcHRpb24gaXMgaW52ZXN0b3Igd2hlbiB1c2VyIGhhdmUgcHJvcGVydHkgdGFuayBwcm9kdWN0IGFuZCBtYXggY291bnQgb2YgcHJvcGVydGllcyBtb3JlIHRoYW4gMlxuICAgKi9cbiAgaXNJbnZlc3RvclBsdXMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gU3Vic2NyaXB0aW9uVHlwZUVudW0uSU5WRVNUT1JfUExVUztcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiB0cmlhbCBleHBpcmVkXG4gICAqL1xuICBpc1RyaWFsRXhwaXJlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5kYXlzUmVtYWluICYmIHRoaXMuZGF5c1JlbWFpbiA8PSAwO1xuICB9XG5cbiAgaXNUcmlhbEV4cGlyaW5nKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmRheXNSZW1haW4gPiAwICYmIHRoaXMuZGF5c1JlbWFpbiA8PSB0aGlzLmxhc3RUcmlhbERheXM7XG4gIH1cblxuICBpc1JlbmV3YWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuaXNUcmlhbCAmJiB0aGlzLmlzQWN0aXZlO1xuICB9XG5cbiAgLyoqXG4gICAqIEBUT0RPIG1vdmUgdG8gY29sbGVjdGlvblxuICAgKi9cbiAgZ2V0IHdvcmtUYW5rSXRlbSgpOiBTZXJ2aWNlU3Vic2NyaXB0aW9uSXRlbSB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXMuZmluZCgoaXRlbTogU2VydmljZVN1YnNjcmlwdGlvbkl0ZW0pOiBib29sZWFuID0+IGl0ZW0ucHJpY2UucHJvZHVjdC5pc1dvcmtUYW5rKCkpO1xuICB9XG5cbiAgZ2V0IHNvbGVUYW5rSXRlbSgpOiBTZXJ2aWNlU3Vic2NyaXB0aW9uSXRlbSB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXMuZmluZCgoaXRlbTogU2VydmljZVN1YnNjcmlwdGlvbkl0ZW0pOiBib29sZWFuID0+IGl0ZW0ucHJpY2UucHJvZHVjdC5pc1NvbGVUYW5rKCkpO1xuICB9XG5cbiAgZ2V0IHByb3BlcnRpZXNJdGVtKCk6IFNlcnZpY2VTdWJzY3JpcHRpb25JdGVtIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5maW5kKChpdGVtOiBTZXJ2aWNlU3Vic2NyaXB0aW9uSXRlbSk6IGJvb2xlYW4gPT4gaXRlbS5wcmljZS5wcm9kdWN0LmlzUHJvcGVydGllcygpKTtcbiAgfVxuXG4gIGhhc1Byb3BlcnR5VGFuaygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLml0ZW1zLmZpbmQoKHN1YnNjcmlwdGlvbkl0ZW06IFNlcnZpY2VTdWJzY3JpcHRpb25JdGVtKSA9PiB7XG4gICAgICByZXR1cm4gc3Vic2NyaXB0aW9uSXRlbS5wcmljZS5wcm9kdWN0LnJvbGUuaW5jbHVkZXMoVXNlclJvbGVzRW51bS5QUk9QRVJUWV9UQU5LKTtcbiAgICB9KTtcbiAgfVxuXG4gIGhhc1dvcmtUYW5rKCkge1xuICAgIHJldHVybiAhIXRoaXMuaXRlbXMuZmluZCgoc3Vic2NyaXB0aW9uSXRlbTogU2VydmljZVN1YnNjcmlwdGlvbkl0ZW0pID0+IHtcbiAgICAgIHJldHVybiBzdWJzY3JpcHRpb25JdGVtLnByaWNlLnByb2R1Y3Qucm9sZS5pbmNsdWRlcyhVc2VyUm9sZXNFbnVtLldPUktfVEFOSyk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogYm91Z2h0IGJlZm9yZSBwcmljZSB1cGRhdGVzLCBhY3RpdmUgZm9yIHNvbWUgdGltZSB0byBsZXQgY3VzdG9tZXIgc2VsZWN0IGEgbmV3IHBsYW5cbiAgICogaW1wb3NzaWJsZSB0byB1cGRhdGUsIG9ubHkgcHJvbG9uZyBvciBidXkgbmV3XG4gICAqL1xuICBpc0FyY2hpdmVkKCk6IGJvb2xlYW4ge1xuICAgIC8vIHN1YnNjcmlwdGlvbiB3aXRoIGF0IGxlYXN0IG9uZSBhcmNoaXZlZCBwcm9kdWN0IGNvbnNpZGVyZWQgYXMgYXJjaGl2ZWRcbiAgICByZXR1cm4gISF0aGlzLml0ZW1zLmZpbHRlcigoaXRlbSkgPT4gaXRlbS5wcmljZS5wcm9kdWN0LmlzQXJjaGl2ZWQoKSkubGVuZ3RoO1xuICB9XG59XG4iXX0=
|
|
152
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1zdWJzY3JpcHRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dC1jb3JlL3NyYy9saWIvbW9kZWxzL3NlcnZpY2Utc3Vic2NyaXB0aW9uL3NlcnZpY2Utc3Vic2NyaXB0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsbUJBQW1CLElBQUksdUJBQXVCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUNuSCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDL0QsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBRTdHLE1BQU0sZ0NBQWdDLEdBQUcsQ0FBQyxDQUFDO0FBRTNDLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSx1QkFBdUI7SUFBaEU7O1FBVUUsNERBQTREO1FBQzVELGtCQUFhLEdBQVcsQ0FBQyxDQUFDO0lBNko1QixDQUFDO0lBM0pDLElBQUksT0FBTztRQUNULE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBVyxFQUFFLElBQTZCLEVBQUUsRUFBRSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2hHLENBQUM7SUFF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QUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ25GLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDVCxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLGdCQUF5QyxFQUFFLEVBQUU7WUFDckUsT0FBTyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQy9FLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7T0FHRztJQUNILFVBQVU7UUFDUix5RUFBeUU7UUFDekUsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQy9FLENBQUM7SUFFRDs7T0FFRztJQUNILFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxNQUFNLEtBQUssNkJBQTZCLENBQUMsUUFBUSxDQUFDO0lBQ2hFLENBQUM7Q0FDRjtBQXRLQztJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUM7c0RBQ0Q7QUFHaEI7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDO29EQUNIO0FBR2Q7SUFEQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsdUJBQXVCLENBQUM7a0RBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZXJ2aWNlU3Vic2NyaXB0aW9uIGFzIFNlcnZpY2VTdWJzY3JpcHRpb25CYXNlIH0gZnJvbSAnLi4vLi4vZGIvTW9kZWxzL3N1YnNjcmlwdGlvbi9zZXJ2aWNlLXN1YnNjcmlwdGlvbic7XG5pbXBvcnQgeyBTZXJ2aWNlU3Vic2NyaXB0aW9uSXRlbSB9IGZyb20gJy4vc2VydmljZS1zdWJzY3JpcHRpb24taXRlbSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb25UeXBlRW51bSB9IGZyb20gJy4vc3Vic2NyaXB0aW9uLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBTVUJTQ1JJUFRJT05fVElUTEUgfSBmcm9tICcuL3N1YnNjcmlwdGlvbi10aXRsZS5jb25zdCc7XG5pbXBvcnQgeyBTVUJTQ1JJUFRJT05fREVTQ1JJUFRJT04gfSBmcm9tICcuL3N1YnNjcmlwdGlvbi1kZXNjcmlwdGlvbi5jb25zdCc7XG5pbXBvcnQgeyBVc2VyUm9sZXNFbnVtIH0gZnJvbSAnLi4vLi4vZGIvRW51bXMvdXNlci1yb2xlcy5lbnVtJztcbmltcG9ydCB7IFR5cGUgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBTZXJ2aWNlU3Vic2NyaXB0aW9uU3RhdHVzRW51bSB9IGZyb20gJy4uLy4uL2RiL0VudW1zL3N1YnNjcmlwdGlvbi9zZXJ2aWNlLXN1YnNjcmlwdGlvbi1zdGF0dXMuZW51bSc7XG5cbmNvbnN0IFBST1BFUlRZX0lOVkVTVE9SX01BWF9QUk9QRVJUSUVTID0gMjtcblxuZXhwb3J0IGNsYXNzIFNlcnZpY2VTdWJzY3JpcHRpb24gZXh0ZW5kcyBTZXJ2aWNlU3Vic2NyaXB0aW9uQmFzZSB7XG4gIEBUeXBlKCgpID0+IERhdGUpXG4gIHN0YXJ0RGF0ZTogRGF0ZTtcblxuICBAVHlwZSgoKSA9PiBEYXRlKVxuICBlbmREYXRlOiBEYXRlO1xuXG4gIEBUeXBlKCgpID0+IFNlcnZpY2VTdWJzY3JpcHRpb25JdGVtKVxuICBpdGVtczogU2VydmljZVN1YnNjcmlwdGlvbkl0ZW1bXTtcblxuICAvLyBOdW1iZXIgb2YgZGF5cyBhZnRlciB3aGljaCB0aGUgdHJpYWwgdGltZSB3aWxsIGJlIGV4cGlyZWRcbiAgbGFzdFRyaWFsRGF5czogbnVtYmVyID0gNDtcblxuICBnZXQgaXNUcmlhbCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuc3RyaXBlSWQ7XG4gIH1cblxuICBnZXQgcHJpY2UoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5yZWR1Y2UoKHN1bTogbnVtYmVyLCBpdGVtOiBTZXJ2aWNlU3Vic2NyaXB0aW9uSXRlbSkgPT4gc3VtICsgaXRlbS50b3RhbCwgMCk7XG4gIH1cblxuICBnZXQgcHJvcGVydHlRdWFudGl0eSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnByb3BlcnRpZXNJdGVtID8gdGhpcy5wcm9wZXJ0aWVzSXRlbS5xdWFudGl0eSA6IDA7XG4gIH1cblxuICAvKipcbiAgICogZ2V0IHR5cGUgb2Ygc3Vic2NyaXB0aW9uXG4gICAqL1xuICBnZXQgdHlwZSgpOiBTdWJzY3JpcHRpb25UeXBlRW51bSB7XG4gICAgY29uc3Qgd29ya1RhbmtQcm9kdWN0OiBTZXJ2aWNlU3Vic2NyaXB0aW9uSXRlbSA9IHRoaXMuaXRlbXMuZmluZCgoaXRlbTogU2VydmljZVN1YnNjcmlwdGlvbkl0ZW0pOiBib29sZWFuID0+IHtcbiAgICAgIHJldHVybiBpdGVtLnByaWNlLnByb2R1Y3QuaXNXb3JrVGFuaygpO1xuICAgIH0pO1xuXG4gICAgaWYgKCF0aGlzLndvcmtUYW5rSXRlbSB8fCAhdGhpcy5pc0FjdGl2ZSkge1xuICAgICAgcmV0dXJuIFN1YnNjcmlwdGlvblR5cGVFbnVtLldJVEhPVVRfU1VCU0NSSVBUSU9OO1xuICAgIH1cblxuICAgIGlmICh0aGlzLml0ZW1zLmxlbmd0aCA9PT0gMSAmJiAhIXdvcmtUYW5rUHJvZHVjdCkge1xuICAgICAgcmV0dXJuIFN1YnNjcmlwdGlvblR5cGVFbnVtLklORElWSURVQUw7XG4gICAgfVxuXG4gICAgY29uc3QgcHJvcGVydHlUYW5rUHJvZHVjdDogU2VydmljZVN1YnNjcmlwdGlvbkl0ZW0gPSB0aGlzLml0ZW1zLmZpbmQoKGl0ZW06IFNlcnZpY2VTdWJzY3JpcHRpb25JdGVtKTogYm9vbGVhbiA9PiB7XG4gICAgICByZXR1cm4gaXRlbS5wcmljZS5wcm9kdWN0LmlzUHJvcGVydGllcygpO1xuICAgIH0pO1xuXG4gICAgaWYgKCEhdGhpcy5wcm9wZXJ0aWVzSXRlbSAmJiBwcm9wZXJ0eVRhbmtQcm9kdWN0LnF1YW50aXR5ID09PSBQUk9QRVJUWV9JTlZFU1RPUl9NQVhfUFJPUEVSVElFUykge1xuICAgICAgcmV0dXJuIFN1YnNjcmlwdGlvblR5cGVFbnVtLklOVkVTVE9SO1xuICAgIH1cblxuICAgIHJldHVybiBTdWJzY3JpcHRpb25UeXBlRW51bS5JTlZFU1RPUl9QTFVTO1xuICB9XG5cbiAgLyoqXG4gICAqIGdldCB0aXRsZSBvZiBzdWJzY3JpcHRpb25cbiAgICovXG4gIGdldCB0aXRsZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBTVUJTQ1JJUFRJT05fVElUTEVbdGhpcy50eXBlXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBnZXQgZGVzY3JpcHRpb24gb2Ygc3Vic2NyaXB0aW9uXG4gICAqL1xuICBnZXQgZGVzY3JpcHRpb24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gU1VCU0NSSVBUSU9OX0RFU0NSSVBUSU9OW3RoaXMudHlwZV07XG4gIH1cblxuICAvKipcbiAgICogQSBzdWJzY3JpcHRpb24gaXMgY29uc2lkZXJlZCBhY3RpdmUgaWYgdGhlIGVuZCBkYXRlIGhhcyBub3QgeWV0IGFycml2ZWQgYW5kIGl0cyBzdGF0dXMgaXMgXCJBY3RpdmVcIiBvciBcIlBhc3QgZHVlXCJcbiAgICovXG4gIGdldCBpc0FjdGl2ZSgpOiBib29sZWFuIHtcbiAgICBjb25zdCBpc0V4cGlyZWQ6IGJvb2xlYW4gPSBuZXcgRGF0ZSh0aGlzLmVuZERhdGUpLmdldFRpbWUoKSA8IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xuXG4gICAgcmV0dXJuICFpc0V4cGlyZWQgJiYgKFtTZXJ2aWNlU3Vic2NyaXB0aW9uU3RhdHVzRW51bS5BQ1RJVkUsIFNlcnZpY2VTdWJzY3JpcHRpb25TdGF0dXNFbnVtLlBBU1RfRFVFXS5pbmNsdWRlcyh0aGlzLnN0YXR1cykpO1xuICB9XG5cbiAgZ2V0IGRheXNSZW1haW4oKTogbnVtYmVyIHtcbiAgICBjb25zdCBkYXlzUmVtYWluczogbnVtYmVyID0gTWF0aC5yb3VuZChcbiAgICAgIChuZXcgRGF0ZSh0aGlzLmVuZERhdGUpLmdldFRpbWUoKSAtIG5ldyBEYXRlKCkuZ2V0VGltZSgpKSAvICgxMDAwICogMzYwMCAqIDI0KVxuICAgICk7XG5cbiAgICByZXR1cm4gZGF5c1JlbWFpbnMgPiAwID8gZGF5c1JlbWFpbnMgOiAwO1xuICB9XG5cbiAgZ2V0VGl0bGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pc1RyaWFsID8gJ1RyaWFsIHBlcmlvZCcgOiB0aGlzLnRpdGxlO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIHN1YnNjcmlwdGlvbiBpcyBJbmRpdmlkdWFsXG4gICAqIFN1YnNjcmlwdGlvbiBpcyBpbmRpdmlkdWFsIHdoZW4gdXNlciBoYXZlIG9ubHkgb25lIHByb2R1Y3QgYW5kIG9ubHkgd29yayB0YW5rXG4gICAqL1xuICBpc0luZGl2aWR1YWwoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gU3Vic2NyaXB0aW9uVHlwZUVudW0uSU5ESVZJRFVBTDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBzdWJzY3JpcHRpb24gaXMgSW52ZXN0b3JcbiAgICogU3Vic2NyaXB0aW9uIGlzIGludmVzdG9yIHdoZW4gdXNlciBoYXZlIHByb3BlcnR5IHRhbmsgcHJvZHVjdCBhbmQgbWF4IGNvdW50IG9mIHByb3BlcnRpZXMgaXMgMlxuICAgKi9cbiAgaXNJbnZlc3RvcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy50eXBlID09PSBTdWJzY3JpcHRpb25UeXBlRW51bS5JTlZFU1RPUjtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiBzdWJzY3JpcHRpb24gaXMgSW52ZXN0b3IgUGx1c1xuICAgKiBTdWJzY3JpcHRpb24gaXMgaW52ZXN0b3Igd2hlbiB1c2VyIGhhdmUgcHJvcGVydHkgdGFuayBwcm9kdWN0IGFuZCBtYXggY291bnQgb2YgcHJvcGVydGllcyBtb3JlIHRoYW4gMlxuICAgKi9cbiAgaXNJbnZlc3RvclBsdXMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gU3Vic2NyaXB0aW9uVHlwZUVudW0uSU5WRVNUT1JfUExVUztcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiB0cmlhbCBleHBpcmVkXG4gICAqL1xuICBpc1RyaWFsRXhwaXJlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5kYXlzUmVtYWluICYmIHRoaXMuZGF5c1JlbWFpbiA8PSAwO1xuICB9XG5cbiAgaXNUcmlhbEV4cGlyaW5nKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmRheXNSZW1haW4gPiAwICYmIHRoaXMuZGF5c1JlbWFpbiA8PSB0aGlzLmxhc3RUcmlhbERheXM7XG4gIH1cblxuICBpc1JlbmV3YWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gIXRoaXMuaXNUcmlhbCAmJiB0aGlzLmlzQWN0aXZlO1xuICB9XG5cbiAgLyoqXG4gICAqIEBUT0RPIG1vdmUgdG8gY29sbGVjdGlvblxuICAgKi9cbiAgZ2V0IHdvcmtUYW5rSXRlbSgpOiBTZXJ2aWNlU3Vic2NyaXB0aW9uSXRlbSB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXMuZmluZCgoaXRlbTogU2VydmljZVN1YnNjcmlwdGlvbkl0ZW0pOiBib29sZWFuID0+IGl0ZW0ucHJpY2UucHJvZHVjdC5pc1dvcmtUYW5rKCkpO1xuICB9XG5cbiAgZ2V0IHNvbGVUYW5rSXRlbSgpOiBTZXJ2aWNlU3Vic2NyaXB0aW9uSXRlbSB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbXMuZmluZCgoaXRlbTogU2VydmljZVN1YnNjcmlwdGlvbkl0ZW0pOiBib29sZWFuID0+IGl0ZW0ucHJpY2UucHJvZHVjdC5pc1NvbGVUYW5rKCkpO1xuICB9XG5cbiAgZ2V0IHByb3BlcnRpZXNJdGVtKCk6IFNlcnZpY2VTdWJzY3JpcHRpb25JdGVtIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5maW5kKChpdGVtOiBTZXJ2aWNlU3Vic2NyaXB0aW9uSXRlbSk6IGJvb2xlYW4gPT4gaXRlbS5wcmljZS5wcm9kdWN0LmlzUHJvcGVydGllcygpKTtcbiAgfVxuXG4gIGhhc1Byb3BlcnR5VGFuaygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLml0ZW1zLmZpbmQoKHN1YnNjcmlwdGlvbkl0ZW06IFNlcnZpY2VTdWJzY3JpcHRpb25JdGVtKSA9PiB7XG4gICAgICByZXR1cm4gc3Vic2NyaXB0aW9uSXRlbS5wcmljZS5wcm9kdWN0LnJvbGUuaW5jbHVkZXMoVXNlclJvbGVzRW51bS5QUk9QRVJUWV9UQU5LKTtcbiAgICB9KTtcbiAgfVxuXG4gIGhhc1dvcmtUYW5rKCkge1xuICAgIHJldHVybiAhIXRoaXMuaXRlbXMuZmluZCgoc3Vic2NyaXB0aW9uSXRlbTogU2VydmljZVN1YnNjcmlwdGlvbkl0ZW0pID0+IHtcbiAgICAgIHJldHVybiBzdWJzY3JpcHRpb25JdGVtLnByaWNlLnByb2R1Y3Qucm9sZS5pbmNsdWRlcyhVc2VyUm9sZXNFbnVtLldPUktfVEFOSyk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogYm91Z2h0IGJlZm9yZSBwcmljZSB1cGRhdGVzLCBhY3RpdmUgZm9yIHNvbWUgdGltZSB0byBsZXQgY3VzdG9tZXIgc2VsZWN0IGEgbmV3IHBsYW5cbiAgICogaW1wb3NzaWJsZSB0byB1cGRhdGUsIG9ubHkgcHJvbG9uZyBvciBidXkgbmV3XG4gICAqL1xuICBpc0FyY2hpdmVkKCk6IGJvb2xlYW4ge1xuICAgIC8vIHN1YnNjcmlwdGlvbiB3aXRoIGF0IGxlYXN0IG9uZSBhcmNoaXZlZCBwcm9kdWN0IGNvbnNpZGVyZWQgYXMgYXJjaGl2ZWRcbiAgICByZXR1cm4gISF0aGlzLml0ZW1zLmZpbHRlcigoaXRlbSkgPT4gaXRlbS5wcmljZS5wcm9kdWN0LmlzQXJjaGl2ZWQoKSkubGVuZ3RoO1xuICB9XG5cbiAgLyoqXG4gICAqIENhc2Ugd2hlbiBwYXltZW50IHdhcyBmYWlsZWQsIGJ1dCB1c2VyIGhhcyBhIHRpbWUgdG8gdXBkYXRlIHBheW1lbnQgbWV0aG9kXG4gICAqL1xuICBpc1Bhc3REdWUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdHVzID09PSBTZXJ2aWNlU3Vic2NyaXB0aW9uU3RhdHVzRW51bS5QQVNUX0RVRTtcbiAgfVxufVxuIl19
|
package/fesm2015/taxtank-core.js
CHANGED
|
@@ -1489,6 +1489,16 @@ const SUBSCRIPTION_DESCRIPTION = {
|
|
|
1489
1489
|
[SubscriptionTypeEnum.INVESTOR_PLUS]: 'Add your whole portfolio, including investment properties, home and properties in trusts. For 3+ properties an extra $6 will be charged per property.'
|
|
1490
1490
|
};
|
|
1491
1491
|
|
|
1492
|
+
var ServiceSubscriptionStatusEnum;
|
|
1493
|
+
(function (ServiceSubscriptionStatusEnum) {
|
|
1494
|
+
ServiceSubscriptionStatusEnum[ServiceSubscriptionStatusEnum["ACTIVE"] = 1] = "ACTIVE";
|
|
1495
|
+
ServiceSubscriptionStatusEnum[ServiceSubscriptionStatusEnum["INCOMPLETE"] = 2] = "INCOMPLETE";
|
|
1496
|
+
ServiceSubscriptionStatusEnum[ServiceSubscriptionStatusEnum["INCOMPLETE_EXPIRED"] = 3] = "INCOMPLETE_EXPIRED";
|
|
1497
|
+
ServiceSubscriptionStatusEnum[ServiceSubscriptionStatusEnum["PAST_DUE"] = 4] = "PAST_DUE";
|
|
1498
|
+
ServiceSubscriptionStatusEnum[ServiceSubscriptionStatusEnum["CANCELED"] = 5] = "CANCELED";
|
|
1499
|
+
ServiceSubscriptionStatusEnum[ServiceSubscriptionStatusEnum["UNPAID"] = 6] = "UNPAID";
|
|
1500
|
+
})(ServiceSubscriptionStatusEnum || (ServiceSubscriptionStatusEnum = {}));
|
|
1501
|
+
|
|
1492
1502
|
const PROPERTY_INVESTOR_MAX_PROPERTIES = 2;
|
|
1493
1503
|
class ServiceSubscription extends ServiceSubscription$1 {
|
|
1494
1504
|
constructor() {
|
|
@@ -1539,11 +1549,11 @@ class ServiceSubscription extends ServiceSubscription$1 {
|
|
|
1539
1549
|
return SUBSCRIPTION_DESCRIPTION[this.type];
|
|
1540
1550
|
}
|
|
1541
1551
|
/**
|
|
1542
|
-
*
|
|
1543
|
-
* and for user we add check for endDate
|
|
1552
|
+
* A subscription is considered active if the end date has not yet arrived and its status is "Active" or "Past due"
|
|
1544
1553
|
*/
|
|
1545
1554
|
get isActive() {
|
|
1546
|
-
|
|
1555
|
+
const isExpired = new Date(this.endDate).getTime() < new Date().getTime();
|
|
1556
|
+
return !isExpired && ([ServiceSubscriptionStatusEnum.ACTIVE, ServiceSubscriptionStatusEnum.PAST_DUE].includes(this.status));
|
|
1547
1557
|
}
|
|
1548
1558
|
get daysRemain() {
|
|
1549
1559
|
const daysRemains = Math.round((new Date(this.endDate).getTime() - new Date().getTime()) / (1000 * 3600 * 24));
|
|
@@ -1615,6 +1625,12 @@ class ServiceSubscription extends ServiceSubscription$1 {
|
|
|
1615
1625
|
// subscription with at least one archived product considered as archived
|
|
1616
1626
|
return !!this.items.filter((item) => item.price.product.isArchived()).length;
|
|
1617
1627
|
}
|
|
1628
|
+
/**
|
|
1629
|
+
* Case when payment was failed, but user has a time to update payment method
|
|
1630
|
+
*/
|
|
1631
|
+
isPastDue() {
|
|
1632
|
+
return this.status === ServiceSubscriptionStatusEnum.PAST_DUE;
|
|
1633
|
+
}
|
|
1618
1634
|
}
|
|
1619
1635
|
__decorate([
|
|
1620
1636
|
Type(() => Date)
|
|
@@ -1836,15 +1852,11 @@ const CHART_ACCOUNTS_CATEGORIES = {
|
|
|
1836
1852
|
],
|
|
1837
1853
|
workExpense: [
|
|
1838
1854
|
ChartAccountsCategoryEnum.WORK_EXPENSE,
|
|
1839
|
-
ChartAccountsCategoryEnum.OTHER_EXPENSE
|
|
1840
|
-
// @TODO Alex why?
|
|
1841
|
-
ChartAccountsCategoryEnum.PERSONAL_EXPENSE
|
|
1855
|
+
ChartAccountsCategoryEnum.OTHER_EXPENSE
|
|
1842
1856
|
],
|
|
1843
1857
|
workIncome: [
|
|
1844
1858
|
ChartAccountsCategoryEnum.WORK_INCOME,
|
|
1845
|
-
ChartAccountsCategoryEnum.OTHER_INCOME
|
|
1846
|
-
// @TODO Alex why?
|
|
1847
|
-
ChartAccountsCategoryEnum.PERSONAL_INCOME
|
|
1859
|
+
ChartAccountsCategoryEnum.OTHER_INCOME
|
|
1848
1860
|
],
|
|
1849
1861
|
soleExpense: [
|
|
1850
1862
|
ChartAccountsCategoryEnum.SOLE_EXPENSE,
|
|
@@ -6136,16 +6148,6 @@ var ServicePriceTypeEnum;
|
|
|
6136
6148
|
ServicePriceTypeEnum[ServicePriceTypeEnum["RECURRING"] = 2] = "RECURRING";
|
|
6137
6149
|
})(ServicePriceTypeEnum || (ServicePriceTypeEnum = {}));
|
|
6138
6150
|
|
|
6139
|
-
var ServiceSubscriptionStatusEnum;
|
|
6140
|
-
(function (ServiceSubscriptionStatusEnum) {
|
|
6141
|
-
ServiceSubscriptionStatusEnum[ServiceSubscriptionStatusEnum["ACTIVE"] = 1] = "ACTIVE";
|
|
6142
|
-
ServiceSubscriptionStatusEnum[ServiceSubscriptionStatusEnum["INCOMPLETE"] = 2] = "INCOMPLETE";
|
|
6143
|
-
ServiceSubscriptionStatusEnum[ServiceSubscriptionStatusEnum["INCOMPLETE_EXPIRED"] = 3] = "INCOMPLETE_EXPIRED";
|
|
6144
|
-
ServiceSubscriptionStatusEnum[ServiceSubscriptionStatusEnum["PAST_DUE"] = 4] = "PAST_DUE";
|
|
6145
|
-
ServiceSubscriptionStatusEnum[ServiceSubscriptionStatusEnum["CANCELED"] = 5] = "CANCELED";
|
|
6146
|
-
ServiceSubscriptionStatusEnum[ServiceSubscriptionStatusEnum["UNPAID"] = 6] = "UNPAID";
|
|
6147
|
-
})(ServiceSubscriptionStatusEnum || (ServiceSubscriptionStatusEnum = {}));
|
|
6148
|
-
|
|
6149
6151
|
var SpareDocumentSpareTypeEnum;
|
|
6150
6152
|
(function (SpareDocumentSpareTypeEnum) {
|
|
6151
6153
|
SpareDocumentSpareTypeEnum[SpareDocumentSpareTypeEnum["DOCUMENT"] = 1] = "DOCUMENT";
|