tin-spa 2.3.4 → 2.3.6
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/esm2020/lib/classes/Classes.mjs +2 -1
- package/esm2020/lib/classes/TinCore.mjs +2 -1
- package/esm2020/lib/components/accounts/accountDialog.component.mjs +1 -1
- package/esm2020/lib/components/change-password/change-password.component.mjs +1 -1
- package/esm2020/lib/components/create-account/create-account.component.mjs +1 -1
- package/esm2020/lib/components/date/date.component.mjs +18 -6
- package/esm2020/lib/components/datetime/datetime.component.mjs +19 -6
- package/esm2020/lib/components/form/form.component.mjs +17 -9
- package/esm2020/lib/components/inventory/quantityDialog.component.mjs +1 -1
- package/esm2020/lib/components/label/label.component.mjs +3 -3
- package/esm2020/lib/components/login/login.component.mjs +1 -1
- package/esm2020/lib/components/message/messageDialog.component.mjs +3 -3
- package/esm2020/lib/components/money/money.component.mjs +18 -6
- package/esm2020/lib/components/number/number.component.mjs +19 -5
- package/esm2020/lib/components/option/option.component.mjs +1 -1
- package/esm2020/lib/components/profile/profile.component.mjs +1 -1
- package/esm2020/lib/components/recover-account/recover-account.component.mjs +1 -1
- package/esm2020/lib/components/select/select.component.mjs +60 -12
- package/esm2020/lib/components/signup/signup.component.mjs +1 -1
- package/esm2020/lib/components/table/detailsDialog.component.mjs +24 -4
- package/esm2020/lib/components/table/table.component.mjs +31 -8
- package/esm2020/lib/components/table-internal/detailsDialog-internal.component.mjs +24 -4
- package/esm2020/lib/components/table-internal/table-internal.component.mjs +30 -7
- package/esm2020/lib/components/table-row/table-row.component.mjs +1 -1
- package/esm2020/lib/components/tenant-settings/inviteDialog.component.mjs +1 -1
- package/esm2020/lib/components/tenant-settings/tenant-settings.component.mjs +1 -1
- package/esm2020/lib/components/text/text.component.mjs +15 -3
- package/esm2020/lib/components/transactions/transactDialog.component.mjs +1 -1
- package/esm2020/lib/components/welcome/welcome.component.mjs +1 -1
- package/esm2020/lib/services/dialog.service.mjs +44 -1
- package/esm2020/lib/services/table-config.service.mjs +7 -3
- package/fesm2015/tin-spa.mjs +320 -87
- package/fesm2015/tin-spa.mjs.map +1 -1
- package/fesm2020/tin-spa.mjs +319 -87
- package/fesm2020/tin-spa.mjs.map +1 -1
- package/lib/classes/Classes.d.ts +13 -3
- package/lib/components/date/date.component.d.ts +4 -1
- package/lib/components/datetime/datetime.component.d.ts +4 -1
- package/lib/components/form/form.component.d.ts +1 -0
- package/lib/components/money/money.component.d.ts +4 -1
- package/lib/components/number/number.component.d.ts +5 -1
- package/lib/components/select/select.component.d.ts +16 -2
- package/lib/components/table/detailsDialog.component.d.ts +4 -2
- package/lib/components/table/table.component.d.ts +1 -0
- package/lib/components/table-internal/detailsDialog-internal.component.d.ts +4 -2
- package/lib/components/table-internal/table-internal.component.d.ts +1 -0
- package/lib/components/text/text.component.d.ts +5 -1
- package/lib/services/dialog.service.d.ts +2 -1
- package/lib/services/table-config.service.d.ts +2 -1
- package/package.json +1 -1
|
@@ -49,7 +49,7 @@ export class inviteDialog {
|
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
51
|
inviteDialog.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: inviteDialog, deps: [{ token: i1.LoaderService }, { token: i2.MessageService }, { token: i3.DataServiceLib }, { token: i4.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
|
|
52
|
-
inviteDialog.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: inviteDialog, selector: "app-addModel", ngImport: i0, template: "\r\n<div >\r\n <label style=\"font-size: 28px;\">Invite</label>\r\n</div>\r\n\r\n<mat-dialog-content class=\"mat-typography\">\r\n\r\n<div class=\"mt-3\" style=\"font-size:14px\">\r\n\r\n <div>\r\n <spa-text display=\"Email\" [(value)]=\"email\" ></spa-text>\r\n <spa-select display=\"Role\" [(value)]=\"roleID\" [options]=\"roles\" optionDisplay=\"roleName\" optionValue=\"roleID\" [defaultFirstValue]=\"true\"></spa-select>\r\n </div>\r\n</div>\r\n\r\n</mat-dialog-content>\r\n\r\n<mat-dialog-actions>\r\n <button [disabled]=\"isProcessing\" mat-stroked-button color=\"primary\" (click)=\"submit()\">Submit</button>\r\n <button mat-button mat-dialog-close>Cancel</button>\r\n</mat-dialog-actions>\r\n\r\n\r\n\r\n", styles: [".title{margin-top:1em;font-size:28px;font-weight:300}.subtitle{font-size:smaller}\n"], dependencies: [{ kind: "component", type: i5.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i4.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i4.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i4.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: i6.TextComponent, selector: "spa-text", inputs: ["readonly", "hint", "display", "placeholder", "value", "format", "type", "rows", "width", "options", "optionValue", "required", "min", "max", "regex"], outputs: ["valueChange", "leave", "enterPress"] }, { kind: "component", type: i7.SelectComponent, selector: "spa-select", inputs: ["width", "readonly", "required", "defaultFirstValue", "readonlyMode", "hint", "placeholder", "multiple", "display", "value", "options", "masterOptions", "optionValue", "optionDisplay", "optionDisplayExtra", "nullable"], outputs: ["valueChange"] }] });
|
|
52
|
+
inviteDialog.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: inviteDialog, selector: "app-addModel", ngImport: i0, template: "\r\n<div >\r\n <label style=\"font-size: 28px;\">Invite</label>\r\n</div>\r\n\r\n<mat-dialog-content class=\"mat-typography\">\r\n\r\n<div class=\"mt-3\" style=\"font-size:14px\">\r\n\r\n <div>\r\n <spa-text display=\"Email\" [(value)]=\"email\" ></spa-text>\r\n <spa-select display=\"Role\" [(value)]=\"roleID\" [options]=\"roles\" optionDisplay=\"roleName\" optionValue=\"roleID\" [defaultFirstValue]=\"true\"></spa-select>\r\n </div>\r\n</div>\r\n\r\n</mat-dialog-content>\r\n\r\n<mat-dialog-actions>\r\n <button [disabled]=\"isProcessing\" mat-stroked-button color=\"primary\" (click)=\"submit()\">Submit</button>\r\n <button mat-button mat-dialog-close>Cancel</button>\r\n</mat-dialog-actions>\r\n\r\n\r\n\r\n", styles: [".title{margin-top:1em;font-size:28px;font-weight:300}.subtitle{font-size:smaller}\n"], dependencies: [{ kind: "component", type: i5.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i4.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i4.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i4.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: i6.TextComponent, selector: "spa-text", inputs: ["readonly", "hint", "display", "placeholder", "value", "format", "type", "rows", "width", "options", "optionValue", "required", "min", "max", "regex", "suffix", "infoMessage"], outputs: ["valueChange", "leave", "enterPress", "infoClick"] }, { kind: "component", type: i7.SelectComponent, selector: "spa-select", inputs: ["width", "readonly", "required", "defaultFirstValue", "readonlyMode", "hint", "placeholder", "multiple", "display", "value", "options", "masterOptions", "optionValue", "optionDisplay", "optionDisplayExtra", "nullable", "peekConfig", "infoMessage"], outputs: ["valueChange", "infoClick"] }] });
|
|
53
53
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: inviteDialog, decorators: [{
|
|
54
54
|
type: Component,
|
|
55
55
|
args: [{ selector: "app-addModel", template: "\r\n<div >\r\n <label style=\"font-size: 28px;\">Invite</label>\r\n</div>\r\n\r\n<mat-dialog-content class=\"mat-typography\">\r\n\r\n<div class=\"mt-3\" style=\"font-size:14px\">\r\n\r\n <div>\r\n <spa-text display=\"Email\" [(value)]=\"email\" ></spa-text>\r\n <spa-select display=\"Role\" [(value)]=\"roleID\" [options]=\"roles\" optionDisplay=\"roleName\" optionValue=\"roleID\" [defaultFirstValue]=\"true\"></spa-select>\r\n </div>\r\n</div>\r\n\r\n</mat-dialog-content>\r\n\r\n<mat-dialog-actions>\r\n <button [disabled]=\"isProcessing\" mat-stroked-button color=\"primary\" (click)=\"submit()\">Submit</button>\r\n <button mat-button mat-dialog-close>Cancel</button>\r\n</mat-dialog-actions>\r\n\r\n\r\n\r\n", styles: [".title{margin-top:1em;font-size:28px;font-weight:300}.subtitle{font-size:smaller}\n"] }]
|
|
@@ -148,7 +148,7 @@ export class TenantSettingsComponent {
|
|
|
148
148
|
}
|
|
149
149
|
}
|
|
150
150
|
TenantSettingsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TenantSettingsComponent, deps: [{ token: i1.DataServiceLib }, { token: i2.MessageService }, { token: i3.AuthService }, { token: i4.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
|
|
151
|
-
TenantSettingsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: TenantSettingsComponent, selector: "spa-tenant-settings", ngImport: i0, template: "<div class=\"container\">\r\n\r\n <div>\r\n\r\n <label class=\"title\" >Organisation Details</label>\r\n <hr style=\"margin-top: 0px; margin-bottom: 0px;\">\r\n\r\n <div *ngIf=\"currTenant && plan\" class=\"mb-2 mt-3 tin-grid\" style=\" font-size: 14px;\">\r\n\r\n <div class=\"tin-col mb-3\" *ngIf=\"ownTenant\" style=\"max-width: 500px;\">\r\n <spa-text display=\"Name\" [(value)]=\"currTenant.name\" hint=\"This name will be displayed to all members of your organisation.\" style=\"min-width: 300px;\"> </spa-text>\r\n <button mat-stroked-button color=\"primary\" (click)=\"renameTenant()\">Save</button>\r\n </div>\r\n\r\n <div class=\"tin-col mb-3\" style=\"max-width: 500px;\">\r\n <spa-select display=\"Current Organisation\" [options]=\"tenants\" optionDisplay=\"name\" optionValue=\"tenantID\" [(value)]=\"currentTenantID\"\r\n hint=\"You are required to login again after switching organisations.\" style=\"min-width: 300px;\"></spa-select>\r\n <button mat-stroked-button color=\"primary\" (click)=\"switchTenant()\">Switch</button>\r\n </div>\r\n\r\n <div *ngIf=\"ownTenant\">\r\n <spa-label display=\"Plan\" [value]=\"plan.name\"></spa-label>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n\r\n <!-- Members -->\r\n <div class=\"mt-3\" *ngIf=\"ownTenant\">\r\n\r\n <label class=\"title\" >Members</label>\r\n <hr style=\"margin-top: 0px; margin-bottom: 0px;\">\r\n <label class=\"subtitle text-muted\">Invite other users to join your organisation as partners or employees to form a partnership or company.</label>\r\n\r\n <spa-table [config]=\"membersTableConfig\" [reload]=\"tableReload\" (actionClick)=\"inviteActionClicked($event)\"></spa-table>\r\n\r\n </div>\r\n\r\n\r\n <!-- Invitations -->\r\n <div class=\"mt-3\" *ngIf=\"ownTenant\">\r\n\r\n <label class=\"title\" >Invitations</label>\r\n <hr style=\"margin-top: 0px; margin-bottom: 0px;\">\r\n <label class=\"subtitle text-muted\">Requests for you to join other organisations.</label>\r\n\r\n\r\n <spa-invitations-table></spa-invitations-table>\r\n\r\n </div>\r\n\r\n\r\n<!-- Member Organisations -->\r\n <div class=\"mt-3\" *ngIf=\"ownTenant\">\r\n\r\n <label class=\"title\" >Member Organisations</label>\r\n <hr style=\"margin-top: 0px; margin-bottom: 0px;\">\r\n <label class=\"subtitle text-muted\">Organisations that you are a member of.</label>\r\n\r\n <spa-table [config]=\"orgsTableConfig\" [reload]=\"orgsReload\"></spa-table>\r\n\r\n </div>\r\n\r\n\r\n <!-- New Organisation -->\r\n <div class=\"mt-3\" *ngIf=\"ownTenant\">\r\n\r\n <label class=\"title\">New Organisation</label>\r\n <hr style=\"margin-top: 0px; margin-bottom: 0px;\">\r\n <label class=\"subtitle text-muted\">Create another organisation</label>\r\n\r\n <div class=\"tin-col mb-3\" *ngIf=\"ownTenant\" style=\"max-width: 500px;\">\r\n <spa-text display=\"Name\" [(value)]=\"newName\" style=\"min-width: 300px;\"> </spa-text>\r\n <button mat-stroked-button color=\"primary\" (click)=\"newTenant()\">Create</button>\r\n </div>\r\n\r\n\r\n </div>\r\n\r\n\r\n <!-- Billing -->\r\n <div class=\"mt-3 mb-5\" *ngIf=\"ownTenant\">\r\n\r\n <label class=\"title\" >Billing and Subscription</label>\r\n <hr style=\"margin-top: 0px; margin-bottom: 0px;\">\r\n\r\n <div *ngIf=\"currTenant && plan\" class=\"mb-1 mt-3\" style=\"max-width: 300px; font-size: 14px;\">\r\n <spa-label display=\"Plan\" [value]=\"plan.name\"></spa-label>\r\n <spa-label display=\"Next Payment\" format=\"money\" [value]=\"plan.price\"></spa-label>\r\n <spa-label display=\"Due Date\" format=\"date\" value=\"2024-01-01\"></spa-label>\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n</div>\r\n\r\n\r\n", styles: [".title{margin-top:1em;font-size:28px;font-weight:300}.subtitle{font-size:smaller}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i7.TextComponent, selector: "spa-text", inputs: ["readonly", "hint", "display", "placeholder", "value", "format", "type", "rows", "width", "options", "optionValue", "required", "min", "max", "regex"], outputs: ["valueChange", "leave", "enterPress"] }, { kind: "component", type: i8.LabelComponent, selector: "spa-label", inputs: ["display", "value", "format"] }, { kind: "component", type: i9.SelectComponent, selector: "spa-select", inputs: ["width", "readonly", "required", "defaultFirstValue", "readonlyMode", "hint", "placeholder", "multiple", "display", "value", "options", "masterOptions", "optionValue", "optionDisplay", "optionDisplayExtra", "nullable"], outputs: ["valueChange"] }, { kind: "component", type: i10.TableComponent, selector: "spa-table", inputs: ["hideTitle", "data", "config", "reload"], outputs: ["dataLoad", "refreshClick", "searchClick", "createClick", "actionClick", "inputChange"] }, { kind: "component", type: i11.InvitationsTableComponent, selector: "spa-invitations-table" }] });
|
|
151
|
+
TenantSettingsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: TenantSettingsComponent, selector: "spa-tenant-settings", ngImport: i0, template: "<div class=\"container\">\r\n\r\n <div>\r\n\r\n <label class=\"title\" >Organisation Details</label>\r\n <hr style=\"margin-top: 0px; margin-bottom: 0px;\">\r\n\r\n <div *ngIf=\"currTenant && plan\" class=\"mb-2 mt-3 tin-grid\" style=\" font-size: 14px;\">\r\n\r\n <div class=\"tin-col mb-3\" *ngIf=\"ownTenant\" style=\"max-width: 500px;\">\r\n <spa-text display=\"Name\" [(value)]=\"currTenant.name\" hint=\"This name will be displayed to all members of your organisation.\" style=\"min-width: 300px;\"> </spa-text>\r\n <button mat-stroked-button color=\"primary\" (click)=\"renameTenant()\">Save</button>\r\n </div>\r\n\r\n <div class=\"tin-col mb-3\" style=\"max-width: 500px;\">\r\n <spa-select display=\"Current Organisation\" [options]=\"tenants\" optionDisplay=\"name\" optionValue=\"tenantID\" [(value)]=\"currentTenantID\"\r\n hint=\"You are required to login again after switching organisations.\" style=\"min-width: 300px;\"></spa-select>\r\n <button mat-stroked-button color=\"primary\" (click)=\"switchTenant()\">Switch</button>\r\n </div>\r\n\r\n <div *ngIf=\"ownTenant\">\r\n <spa-label display=\"Plan\" [value]=\"plan.name\"></spa-label>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n\r\n <!-- Members -->\r\n <div class=\"mt-3\" *ngIf=\"ownTenant\">\r\n\r\n <label class=\"title\" >Members</label>\r\n <hr style=\"margin-top: 0px; margin-bottom: 0px;\">\r\n <label class=\"subtitle text-muted\">Invite other users to join your organisation as partners or employees to form a partnership or company.</label>\r\n\r\n <spa-table [config]=\"membersTableConfig\" [reload]=\"tableReload\" (actionClick)=\"inviteActionClicked($event)\"></spa-table>\r\n\r\n </div>\r\n\r\n\r\n <!-- Invitations -->\r\n <div class=\"mt-3\" *ngIf=\"ownTenant\">\r\n\r\n <label class=\"title\" >Invitations</label>\r\n <hr style=\"margin-top: 0px; margin-bottom: 0px;\">\r\n <label class=\"subtitle text-muted\">Requests for you to join other organisations.</label>\r\n\r\n\r\n <spa-invitations-table></spa-invitations-table>\r\n\r\n </div>\r\n\r\n\r\n<!-- Member Organisations -->\r\n <div class=\"mt-3\" *ngIf=\"ownTenant\">\r\n\r\n <label class=\"title\" >Member Organisations</label>\r\n <hr style=\"margin-top: 0px; margin-bottom: 0px;\">\r\n <label class=\"subtitle text-muted\">Organisations that you are a member of.</label>\r\n\r\n <spa-table [config]=\"orgsTableConfig\" [reload]=\"orgsReload\"></spa-table>\r\n\r\n </div>\r\n\r\n\r\n <!-- New Organisation -->\r\n <div class=\"mt-3\" *ngIf=\"ownTenant\">\r\n\r\n <label class=\"title\">New Organisation</label>\r\n <hr style=\"margin-top: 0px; margin-bottom: 0px;\">\r\n <label class=\"subtitle text-muted\">Create another organisation</label>\r\n\r\n <div class=\"tin-col mb-3\" *ngIf=\"ownTenant\" style=\"max-width: 500px;\">\r\n <spa-text display=\"Name\" [(value)]=\"newName\" style=\"min-width: 300px;\"> </spa-text>\r\n <button mat-stroked-button color=\"primary\" (click)=\"newTenant()\">Create</button>\r\n </div>\r\n\r\n\r\n </div>\r\n\r\n\r\n <!-- Billing -->\r\n <div class=\"mt-3 mb-5\" *ngIf=\"ownTenant\">\r\n\r\n <label class=\"title\" >Billing and Subscription</label>\r\n <hr style=\"margin-top: 0px; margin-bottom: 0px;\">\r\n\r\n <div *ngIf=\"currTenant && plan\" class=\"mb-1 mt-3\" style=\"max-width: 300px; font-size: 14px;\">\r\n <spa-label display=\"Plan\" [value]=\"plan.name\"></spa-label>\r\n <spa-label display=\"Next Payment\" format=\"money\" [value]=\"plan.price\"></spa-label>\r\n <spa-label display=\"Due Date\" format=\"date\" value=\"2024-01-01\"></spa-label>\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n</div>\r\n\r\n\r\n", styles: [".title{margin-top:1em;font-size:28px;font-weight:300}.subtitle{font-size:smaller}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i7.TextComponent, selector: "spa-text", inputs: ["readonly", "hint", "display", "placeholder", "value", "format", "type", "rows", "width", "options", "optionValue", "required", "min", "max", "regex", "suffix", "infoMessage"], outputs: ["valueChange", "leave", "enterPress", "infoClick"] }, { kind: "component", type: i8.LabelComponent, selector: "spa-label", inputs: ["display", "value", "format"] }, { kind: "component", type: i9.SelectComponent, selector: "spa-select", inputs: ["width", "readonly", "required", "defaultFirstValue", "readonlyMode", "hint", "placeholder", "multiple", "display", "value", "options", "masterOptions", "optionValue", "optionDisplay", "optionDisplayExtra", "nullable", "peekConfig", "infoMessage"], outputs: ["valueChange", "infoClick"] }, { kind: "component", type: i10.TableComponent, selector: "spa-table", inputs: ["hideTitle", "data", "config", "reload"], outputs: ["dataLoad", "refreshClick", "searchClick", "createClick", "actionClick", "inputChange"] }, { kind: "component", type: i11.InvitationsTableComponent, selector: "spa-invitations-table" }] });
|
|
152
152
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TenantSettingsComponent, decorators: [{
|
|
153
153
|
type: Component,
|
|
154
154
|
args: [{ selector: 'spa-tenant-settings', template: "<div class=\"container\">\r\n\r\n <div>\r\n\r\n <label class=\"title\" >Organisation Details</label>\r\n <hr style=\"margin-top: 0px; margin-bottom: 0px;\">\r\n\r\n <div *ngIf=\"currTenant && plan\" class=\"mb-2 mt-3 tin-grid\" style=\" font-size: 14px;\">\r\n\r\n <div class=\"tin-col mb-3\" *ngIf=\"ownTenant\" style=\"max-width: 500px;\">\r\n <spa-text display=\"Name\" [(value)]=\"currTenant.name\" hint=\"This name will be displayed to all members of your organisation.\" style=\"min-width: 300px;\"> </spa-text>\r\n <button mat-stroked-button color=\"primary\" (click)=\"renameTenant()\">Save</button>\r\n </div>\r\n\r\n <div class=\"tin-col mb-3\" style=\"max-width: 500px;\">\r\n <spa-select display=\"Current Organisation\" [options]=\"tenants\" optionDisplay=\"name\" optionValue=\"tenantID\" [(value)]=\"currentTenantID\"\r\n hint=\"You are required to login again after switching organisations.\" style=\"min-width: 300px;\"></spa-select>\r\n <button mat-stroked-button color=\"primary\" (click)=\"switchTenant()\">Switch</button>\r\n </div>\r\n\r\n <div *ngIf=\"ownTenant\">\r\n <spa-label display=\"Plan\" [value]=\"plan.name\"></spa-label>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n\r\n <!-- Members -->\r\n <div class=\"mt-3\" *ngIf=\"ownTenant\">\r\n\r\n <label class=\"title\" >Members</label>\r\n <hr style=\"margin-top: 0px; margin-bottom: 0px;\">\r\n <label class=\"subtitle text-muted\">Invite other users to join your organisation as partners or employees to form a partnership or company.</label>\r\n\r\n <spa-table [config]=\"membersTableConfig\" [reload]=\"tableReload\" (actionClick)=\"inviteActionClicked($event)\"></spa-table>\r\n\r\n </div>\r\n\r\n\r\n <!-- Invitations -->\r\n <div class=\"mt-3\" *ngIf=\"ownTenant\">\r\n\r\n <label class=\"title\" >Invitations</label>\r\n <hr style=\"margin-top: 0px; margin-bottom: 0px;\">\r\n <label class=\"subtitle text-muted\">Requests for you to join other organisations.</label>\r\n\r\n\r\n <spa-invitations-table></spa-invitations-table>\r\n\r\n </div>\r\n\r\n\r\n<!-- Member Organisations -->\r\n <div class=\"mt-3\" *ngIf=\"ownTenant\">\r\n\r\n <label class=\"title\" >Member Organisations</label>\r\n <hr style=\"margin-top: 0px; margin-bottom: 0px;\">\r\n <label class=\"subtitle text-muted\">Organisations that you are a member of.</label>\r\n\r\n <spa-table [config]=\"orgsTableConfig\" [reload]=\"orgsReload\"></spa-table>\r\n\r\n </div>\r\n\r\n\r\n <!-- New Organisation -->\r\n <div class=\"mt-3\" *ngIf=\"ownTenant\">\r\n\r\n <label class=\"title\">New Organisation</label>\r\n <hr style=\"margin-top: 0px; margin-bottom: 0px;\">\r\n <label class=\"subtitle text-muted\">Create another organisation</label>\r\n\r\n <div class=\"tin-col mb-3\" *ngIf=\"ownTenant\" style=\"max-width: 500px;\">\r\n <spa-text display=\"Name\" [(value)]=\"newName\" style=\"min-width: 300px;\"> </spa-text>\r\n <button mat-stroked-button color=\"primary\" (click)=\"newTenant()\">Create</button>\r\n </div>\r\n\r\n\r\n </div>\r\n\r\n\r\n <!-- Billing -->\r\n <div class=\"mt-3 mb-5\" *ngIf=\"ownTenant\">\r\n\r\n <label class=\"title\" >Billing and Subscription</label>\r\n <hr style=\"margin-top: 0px; margin-bottom: 0px;\">\r\n\r\n <div *ngIf=\"currTenant && plan\" class=\"mb-1 mt-3\" style=\"max-width: 300px; font-size: 14px;\">\r\n <spa-label display=\"Plan\" [value]=\"plan.name\"></spa-label>\r\n <spa-label display=\"Next Payment\" format=\"money\" [value]=\"plan.price\"></spa-label>\r\n <spa-label display=\"Due Date\" format=\"date\" value=\"2024-01-01\"></spa-label>\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n</div>\r\n\r\n\r\n", styles: [".title{margin-top:1em;font-size:28px;font-weight:300}.subtitle{font-size:smaller}\n"] }]
|
|
@@ -11,6 +11,7 @@ import * as i5 from "@angular/material/form-field";
|
|
|
11
11
|
import * as i6 from "@angular/material/input";
|
|
12
12
|
import * as i7 from "@angular/material/core";
|
|
13
13
|
import * as i8 from "@angular/material/autocomplete";
|
|
14
|
+
import * as i9 from "@angular/material/tooltip";
|
|
14
15
|
export class TextComponent {
|
|
15
16
|
constructor() {
|
|
16
17
|
this.multiDimension = false;
|
|
@@ -37,6 +38,7 @@ export class TextComponent {
|
|
|
37
38
|
this.min = 0;
|
|
38
39
|
this.max = 9000000000000000; //Math.max
|
|
39
40
|
this.regex = ""; //"[a-zA-Z ]*" //"/\S+@\S+\.\S+/";
|
|
41
|
+
this.infoClick = new EventEmitter();
|
|
40
42
|
//validation
|
|
41
43
|
this.myControl = new FormControl('', [Validators.required, Validators.minLength(this.min), Validators.maxLength(this.max), Validators.pattern(this.regex)]);
|
|
42
44
|
this.control = new FormControl(this.value, [Validators.required, Validators.minLength(this.min), Validators.maxLength(this.max), Validators.pattern(this.regex)]);
|
|
@@ -56,6 +58,10 @@ export class TextComponent {
|
|
|
56
58
|
this.initControl(this.control);
|
|
57
59
|
this.initControl(this.myControl);
|
|
58
60
|
}
|
|
61
|
+
onInfoClick(event) {
|
|
62
|
+
event.stopPropagation();
|
|
63
|
+
this.infoClick.emit();
|
|
64
|
+
}
|
|
59
65
|
initFilter() {
|
|
60
66
|
const objKeyList = Object.keys(this.options[0]);
|
|
61
67
|
const firstKey = objKeyList[0];
|
|
@@ -125,10 +131,10 @@ export class TextComponent {
|
|
|
125
131
|
}
|
|
126
132
|
}
|
|
127
133
|
TextComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
128
|
-
TextComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: TextComponent, selector: "spa-text", inputs: { readonly: "readonly", hint: "hint", display: "display", placeholder: "placeholder", value: "value", format: "format", type: "type", rows: "rows", width: "width", options: "options", optionValue: "optionValue", required: "required", min: "min", max: "max", regex: "regex" }, outputs: { valueChange: "valueChange", leave: "leave", enterPress: "enterPress" }, ngImport: i0, template: "\r\n<!-- General Text -->\r\n<mat-form-field *ngIf=\"(!rows || rows == 1) && (format=='text' || format =='date') && options.length==0\" [hideRequiredMarker]=\"!required\" [hintLabel]=\"hint\" [ngStyle]=\"{'width':width}\" style=\"margin-right: 5px;\" >\r\n<mat-label *ngIf=\"format=='text'\">{{display}}</mat-label>\r\n<mat-label *ngIf=\"format=='date'\">{{display | date:'dd/MM/yyyy'}}</mat-label>\r\n<input matInput autocomplete=\"off\" [(ngModel)]=\"value\" (change)=\"changed()\" (blur)=\"leaved()\" (keyup.enter)=\"enterPressed()\" [type]=\"type\" [placeholder]=\"placeholder\" [formControl]=\"control\" [required]=\"required\" [readonly]=\"readonly\"/>\r\n<mat-error *ngIf=\"control.invalid\">{{validate(control)}}</mat-error>\r\n</mat-form-field>\r\n\r\n\r\n<!-- password -->\r\n<mat-form-field class=\"spa-text\" *ngIf=\"format=='password'\" [hideRequiredMarker]=\"!required\" [hintLabel]=\"hint\" [ngStyle]=\"{'width':width}\" style=\"margin-right: 5px\">\r\n <mat-label>{{display}}</mat-label>\r\n <input matInput [type]=\"hide ? 'password' : 'text'\" (keyup.enter)=\"enterPressed()\" (change)=\"changed()\" (blur)=\"leaved()\" [(ngModel)]=\"value\" autocomplete=\"off\" [placeholder]=\"placeholder\" [formControl]=\"control\" [required]=\"required\">\r\n <mat-error *ngIf=\"control.invalid\">{{validate(control)}}</mat-error>\r\n <button mat-icon-button matSuffix (click)=\"hide = !hide\" [attr.aria-label]=\"'Hide password'\" [attr.aria-pressed]=\"hide\">\r\n <mat-icon style=\"font-size: 18px;\">{{hide ? 'visibility_off' : 'visibility'}}</mat-icon>\r\n </button>\r\n</mat-form-field>\r\n\r\n\r\n<!-- TextArea copy - Only change input to textarea and change ngif to not -->\r\n\r\n<mat-form-field *ngIf=\"rows > 1 && options.length==0\" [hideRequiredMarker]=\"!required\" [hintLabel]=\"hint\" [ngStyle]=\"{'width':width}\" style=\"margin-right: 5px;\">\r\n<mat-label>{{display}}</mat-label>\r\n<textarea matInput autocomplete=\"off\" [rows]=\"rows\" [(ngModel)]=\"value\" (change)=\"changed()\" (keyup.enter)=\"enterPressed()\" [placeholder]=\"placeholder\" [formControl]=\"control\" [required]=\"required\" [readonly]=\"readonly\"></textarea>\r\n<mat-error *ngIf=\"control.invalid\">{{validate(control)}}</mat-error>\r\n</mat-form-field>\r\n\r\n\r\n\r\n<!-- Auto Complete-->\r\n\r\n <mat-form-field *ngIf=\"(!rows || rows == 1) && format=='text' && options.length>0 \" [hideRequiredMarker]=\"!required\" [hintLabel]=\"hint\" [ngStyle]=\"{'width':width}\" style=\"margin-right: 5px;\">\r\n <mat-label>{{display}}</mat-label>\r\n <input [type]=\"type\" [placeholder]=\"placeholder\" [(ngModel)]=\"value\" (change)=\"changed()\" matInput [formControl]=\"myControl\" [matAutocomplete]=\"auto\" [required]=\"required\" [readonly]=\"readonly\">\r\n <mat-error *ngIf=\"control.invalid\">{{validate(myControl)}}</mat-error>\r\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"changed()\">\r\n\r\n <ng-container *ngIf=\"!multiDimension\">\r\n <mat-option *ngFor=\"let option of filteredOptions | async\" [value]=\"option\">\r\n {{option}}\r\n </mat-option>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"multiDimension\">\r\n <mat-option *ngFor=\"let row of filteredOptions | async\" [value]=\"row[optionValue]\">\r\n {{row[optionValue]}}\r\n </mat-option>\r\n </ng-container>\r\n\r\n\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n\r\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i5.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatLabel, selector: "mat-label" }, { kind: "directive", type: i5.MatSuffix, selector: "[matSuffix]" }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i7.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i8.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i8.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.DatePipe, name: "date" }] });
|
|
134
|
+
TextComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: TextComponent, selector: "spa-text", inputs: { readonly: "readonly", hint: "hint", display: "display", placeholder: "placeholder", value: "value", format: "format", type: "type", rows: "rows", width: "width", options: "options", optionValue: "optionValue", required: "required", min: "min", max: "max", regex: "regex", suffix: "suffix", infoMessage: "infoMessage" }, outputs: { valueChange: "valueChange", leave: "leave", enterPress: "enterPress", infoClick: "infoClick" }, ngImport: i0, template: "\r\n<!-- General Text -->\r\n<mat-form-field *ngIf=\"(!rows || rows == 1) && (format=='text' || format =='date') && options.length==0\" [hideRequiredMarker]=\"!required\" [hintLabel]=\"hint\" [ngStyle]=\"{'width':width}\" style=\"margin-right: 5px;\" >\r\n<mat-label *ngIf=\"format=='text'\">{{display}}</mat-label>\r\n<mat-label *ngIf=\"format=='date'\">{{display | date:'dd/MM/yyyy'}}</mat-label>\r\n<input matInput autocomplete=\"off\" [(ngModel)]=\"value\" (change)=\"changed()\" (blur)=\"leaved()\" (keyup.enter)=\"enterPressed()\" [type]=\"type\" [placeholder]=\"placeholder\" [formControl]=\"control\" [required]=\"required\" [readonly]=\"readonly\"/>\r\n<mat-error *ngIf=\"control.invalid\">{{validate(control)}}</mat-error>\r\n <div matSuffix class=\"suffix-icons\">\r\n <label *ngIf=\"suffix\">{{suffix}}</label>\r\n <button mat-icon-button *ngIf=\"infoMessage\" (click)=\"onInfoClick($event)\" matTooltip=\"Info\" matTooltipPosition=\"above\">\r\n <mat-icon style=\"color: steelblue;\">info</mat-icon>\r\n </button>\r\n\r\n </div>\r\n</mat-form-field>\r\n\r\n\r\n<!-- password -->\r\n<mat-form-field class=\"spa-text\" *ngIf=\"format=='password'\" [hideRequiredMarker]=\"!required\" [hintLabel]=\"hint\" [ngStyle]=\"{'width':width}\" style=\"margin-right: 5px\">\r\n <mat-label>{{display}}</mat-label>\r\n <input matInput [type]=\"hide ? 'password' : 'text'\" (keyup.enter)=\"enterPressed()\" (change)=\"changed()\" (blur)=\"leaved()\" [(ngModel)]=\"value\" autocomplete=\"off\" [placeholder]=\"placeholder\" [formControl]=\"control\" [required]=\"required\">\r\n <mat-error *ngIf=\"control.invalid\">{{validate(control)}}</mat-error>\r\n <button mat-icon-button matSuffix (click)=\"hide = !hide\" [attr.aria-label]=\"'Hide password'\" [attr.aria-pressed]=\"hide\">\r\n <mat-icon style=\"font-size: 18px;\">{{hide ? 'visibility_off' : 'visibility'}}</mat-icon>\r\n </button>\r\n</mat-form-field>\r\n\r\n\r\n<!-- TextArea copy - Only change input to textarea and change ngif to not -->\r\n\r\n<mat-form-field *ngIf=\"rows > 1 && options.length==0\" [hideRequiredMarker]=\"!required\" [hintLabel]=\"hint\" [ngStyle]=\"{'width':width}\" style=\"margin-right: 5px;\">\r\n<mat-label>{{display}}</mat-label>\r\n<textarea matInput autocomplete=\"off\" [rows]=\"rows\" [(ngModel)]=\"value\" (change)=\"changed()\" (keyup.enter)=\"enterPressed()\" [placeholder]=\"placeholder\" [formControl]=\"control\" [required]=\"required\" [readonly]=\"readonly\"></textarea>\r\n<mat-error *ngIf=\"control.invalid\">{{validate(control)}}</mat-error>\r\n <div matSuffix class=\"suffix-icons\">\r\n <button mat-icon-button *ngIf=\"infoMessage\" (click)=\"onInfoClick($event)\" matTooltip=\"Info\" matTooltipPosition=\"above\">\r\n <mat-icon style=\"color: steelblue;\">info</mat-icon>\r\n </button>\r\n </div>\r\n</mat-form-field>\r\n\r\n\r\n\r\n<!-- Auto Complete-->\r\n\r\n <mat-form-field *ngIf=\"(!rows || rows == 1) && format=='text' && options.length>0 \" [hideRequiredMarker]=\"!required\" [hintLabel]=\"hint\" [ngStyle]=\"{'width':width}\" style=\"margin-right: 5px;\">\r\n <mat-label>{{display}}</mat-label>\r\n <input [type]=\"type\" [placeholder]=\"placeholder\" [(ngModel)]=\"value\" (change)=\"changed()\" matInput [formControl]=\"myControl\" [matAutocomplete]=\"auto\" [required]=\"required\" [readonly]=\"readonly\">\r\n <mat-error *ngIf=\"control.invalid\">{{validate(myControl)}}</mat-error>\r\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"changed()\">\r\n\r\n <ng-container *ngIf=\"!multiDimension\">\r\n <mat-option *ngFor=\"let option of filteredOptions | async\" [value]=\"option\">\r\n {{option}}\r\n </mat-option>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"multiDimension\">\r\n <mat-option *ngFor=\"let row of filteredOptions | async\" [value]=\"row[optionValue]\">\r\n {{row[optionValue]}}\r\n </mat-option>\r\n </ng-container>\r\n\r\n\r\n </mat-autocomplete>\r\n <div matSuffix class=\"suffix-icons\">\r\n <button mat-icon-button *ngIf=\"infoMessage\" (click)=\"onInfoClick($event)\" matTooltip=\"Info\" matTooltipPosition=\"above\">\r\n <mat-icon style=\"color: steelblue;\">info</mat-icon>\r\n </button>\r\n </div>\r\n </mat-form-field>\r\n\r\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i5.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatLabel, selector: "mat-label" }, { kind: "directive", type: i5.MatSuffix, selector: "[matSuffix]" }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i7.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i8.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i8.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { kind: "directive", type: i9.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.DatePipe, name: "date" }] });
|
|
129
135
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TextComponent, decorators: [{
|
|
130
136
|
type: Component,
|
|
131
|
-
args: [{ selector: 'spa-text', template: "\r\n<!-- General Text -->\r\n<mat-form-field *ngIf=\"(!rows || rows == 1) && (format=='text' || format =='date') && options.length==0\" [hideRequiredMarker]=\"!required\" [hintLabel]=\"hint\" [ngStyle]=\"{'width':width}\" style=\"margin-right: 5px;\" >\r\n<mat-label *ngIf=\"format=='text'\">{{display}}</mat-label>\r\n<mat-label *ngIf=\"format=='date'\">{{display | date:'dd/MM/yyyy'}}</mat-label>\r\n<input matInput autocomplete=\"off\" [(ngModel)]=\"value\" (change)=\"changed()\" (blur)=\"leaved()\" (keyup.enter)=\"enterPressed()\" [type]=\"type\" [placeholder]=\"placeholder\" [formControl]=\"control\" [required]=\"required\" [readonly]=\"readonly\"/>\r\n<mat-error *ngIf=\"control.invalid\">{{validate(control)}}</mat-error>\r\n</mat-form-field>\r\n\r\n\r\n<!-- password -->\r\n<mat-form-field class=\"spa-text\" *ngIf=\"format=='password'\" [hideRequiredMarker]=\"!required\" [hintLabel]=\"hint\" [ngStyle]=\"{'width':width}\" style=\"margin-right: 5px\">\r\n <mat-label>{{display}}</mat-label>\r\n <input matInput [type]=\"hide ? 'password' : 'text'\" (keyup.enter)=\"enterPressed()\" (change)=\"changed()\" (blur)=\"leaved()\" [(ngModel)]=\"value\" autocomplete=\"off\" [placeholder]=\"placeholder\" [formControl]=\"control\" [required]=\"required\">\r\n <mat-error *ngIf=\"control.invalid\">{{validate(control)}}</mat-error>\r\n <button mat-icon-button matSuffix (click)=\"hide = !hide\" [attr.aria-label]=\"'Hide password'\" [attr.aria-pressed]=\"hide\">\r\n <mat-icon style=\"font-size: 18px;\">{{hide ? 'visibility_off' : 'visibility'}}</mat-icon>\r\n </button>\r\n</mat-form-field>\r\n\r\n\r\n<!-- TextArea copy - Only change input to textarea and change ngif to not -->\r\n\r\n<mat-form-field *ngIf=\"rows > 1 && options.length==0\" [hideRequiredMarker]=\"!required\" [hintLabel]=\"hint\" [ngStyle]=\"{'width':width}\" style=\"margin-right: 5px;\">\r\n<mat-label>{{display}}</mat-label>\r\n<textarea matInput autocomplete=\"off\" [rows]=\"rows\" [(ngModel)]=\"value\" (change)=\"changed()\" (keyup.enter)=\"enterPressed()\" [placeholder]=\"placeholder\" [formControl]=\"control\" [required]=\"required\" [readonly]=\"readonly\"></textarea>\r\n<mat-error *ngIf=\"control.invalid\">{{validate(control)}}</mat-error>\r\n</mat-form-field>\r\n\r\n\r\n\r\n<!-- Auto Complete-->\r\n\r\n <mat-form-field *ngIf=\"(!rows || rows == 1) && format=='text' && options.length>0 \" [hideRequiredMarker]=\"!required\" [hintLabel]=\"hint\" [ngStyle]=\"{'width':width}\" style=\"margin-right: 5px;\">\r\n <mat-label>{{display}}</mat-label>\r\n <input [type]=\"type\" [placeholder]=\"placeholder\" [(ngModel)]=\"value\" (change)=\"changed()\" matInput [formControl]=\"myControl\" [matAutocomplete]=\"auto\" [required]=\"required\" [readonly]=\"readonly\">\r\n <mat-error *ngIf=\"control.invalid\">{{validate(myControl)}}</mat-error>\r\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"changed()\">\r\n\r\n <ng-container *ngIf=\"!multiDimension\">\r\n <mat-option *ngFor=\"let option of filteredOptions | async\" [value]=\"option\">\r\n {{option}}\r\n </mat-option>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"multiDimension\">\r\n <mat-option *ngFor=\"let row of filteredOptions | async\" [value]=\"row[optionValue]\">\r\n {{row[optionValue]}}\r\n </mat-option>\r\n </ng-container>\r\n\r\n\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n\r\n" }]
|
|
137
|
+
args: [{ selector: 'spa-text', template: "\r\n<!-- General Text -->\r\n<mat-form-field *ngIf=\"(!rows || rows == 1) && (format=='text' || format =='date') && options.length==0\" [hideRequiredMarker]=\"!required\" [hintLabel]=\"hint\" [ngStyle]=\"{'width':width}\" style=\"margin-right: 5px;\" >\r\n<mat-label *ngIf=\"format=='text'\">{{display}}</mat-label>\r\n<mat-label *ngIf=\"format=='date'\">{{display | date:'dd/MM/yyyy'}}</mat-label>\r\n<input matInput autocomplete=\"off\" [(ngModel)]=\"value\" (change)=\"changed()\" (blur)=\"leaved()\" (keyup.enter)=\"enterPressed()\" [type]=\"type\" [placeholder]=\"placeholder\" [formControl]=\"control\" [required]=\"required\" [readonly]=\"readonly\"/>\r\n<mat-error *ngIf=\"control.invalid\">{{validate(control)}}</mat-error>\r\n <div matSuffix class=\"suffix-icons\">\r\n <label *ngIf=\"suffix\">{{suffix}}</label>\r\n <button mat-icon-button *ngIf=\"infoMessage\" (click)=\"onInfoClick($event)\" matTooltip=\"Info\" matTooltipPosition=\"above\">\r\n <mat-icon style=\"color: steelblue;\">info</mat-icon>\r\n </button>\r\n\r\n </div>\r\n</mat-form-field>\r\n\r\n\r\n<!-- password -->\r\n<mat-form-field class=\"spa-text\" *ngIf=\"format=='password'\" [hideRequiredMarker]=\"!required\" [hintLabel]=\"hint\" [ngStyle]=\"{'width':width}\" style=\"margin-right: 5px\">\r\n <mat-label>{{display}}</mat-label>\r\n <input matInput [type]=\"hide ? 'password' : 'text'\" (keyup.enter)=\"enterPressed()\" (change)=\"changed()\" (blur)=\"leaved()\" [(ngModel)]=\"value\" autocomplete=\"off\" [placeholder]=\"placeholder\" [formControl]=\"control\" [required]=\"required\">\r\n <mat-error *ngIf=\"control.invalid\">{{validate(control)}}</mat-error>\r\n <button mat-icon-button matSuffix (click)=\"hide = !hide\" [attr.aria-label]=\"'Hide password'\" [attr.aria-pressed]=\"hide\">\r\n <mat-icon style=\"font-size: 18px;\">{{hide ? 'visibility_off' : 'visibility'}}</mat-icon>\r\n </button>\r\n</mat-form-field>\r\n\r\n\r\n<!-- TextArea copy - Only change input to textarea and change ngif to not -->\r\n\r\n<mat-form-field *ngIf=\"rows > 1 && options.length==0\" [hideRequiredMarker]=\"!required\" [hintLabel]=\"hint\" [ngStyle]=\"{'width':width}\" style=\"margin-right: 5px;\">\r\n<mat-label>{{display}}</mat-label>\r\n<textarea matInput autocomplete=\"off\" [rows]=\"rows\" [(ngModel)]=\"value\" (change)=\"changed()\" (keyup.enter)=\"enterPressed()\" [placeholder]=\"placeholder\" [formControl]=\"control\" [required]=\"required\" [readonly]=\"readonly\"></textarea>\r\n<mat-error *ngIf=\"control.invalid\">{{validate(control)}}</mat-error>\r\n <div matSuffix class=\"suffix-icons\">\r\n <button mat-icon-button *ngIf=\"infoMessage\" (click)=\"onInfoClick($event)\" matTooltip=\"Info\" matTooltipPosition=\"above\">\r\n <mat-icon style=\"color: steelblue;\">info</mat-icon>\r\n </button>\r\n </div>\r\n</mat-form-field>\r\n\r\n\r\n\r\n<!-- Auto Complete-->\r\n\r\n <mat-form-field *ngIf=\"(!rows || rows == 1) && format=='text' && options.length>0 \" [hideRequiredMarker]=\"!required\" [hintLabel]=\"hint\" [ngStyle]=\"{'width':width}\" style=\"margin-right: 5px;\">\r\n <mat-label>{{display}}</mat-label>\r\n <input [type]=\"type\" [placeholder]=\"placeholder\" [(ngModel)]=\"value\" (change)=\"changed()\" matInput [formControl]=\"myControl\" [matAutocomplete]=\"auto\" [required]=\"required\" [readonly]=\"readonly\">\r\n <mat-error *ngIf=\"control.invalid\">{{validate(myControl)}}</mat-error>\r\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"changed()\">\r\n\r\n <ng-container *ngIf=\"!multiDimension\">\r\n <mat-option *ngFor=\"let option of filteredOptions | async\" [value]=\"option\">\r\n {{option}}\r\n </mat-option>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"multiDimension\">\r\n <mat-option *ngFor=\"let row of filteredOptions | async\" [value]=\"row[optionValue]\">\r\n {{row[optionValue]}}\r\n </mat-option>\r\n </ng-container>\r\n\r\n\r\n </mat-autocomplete>\r\n <div matSuffix class=\"suffix-icons\">\r\n <button mat-icon-button *ngIf=\"infoMessage\" (click)=\"onInfoClick($event)\" matTooltip=\"Info\" matTooltipPosition=\"above\">\r\n <mat-icon style=\"color: steelblue;\">info</mat-icon>\r\n </button>\r\n </div>\r\n </mat-form-field>\r\n\r\n" }]
|
|
132
138
|
}], ctorParameters: function () { return []; }, propDecorators: { readonly: [{
|
|
133
139
|
type: Input
|
|
134
140
|
}], hint: [{
|
|
@@ -165,5 +171,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
165
171
|
type: Input
|
|
166
172
|
}], regex: [{
|
|
167
173
|
type: Input
|
|
174
|
+
}], suffix: [{
|
|
175
|
+
type: Input
|
|
176
|
+
}], infoMessage: [{
|
|
177
|
+
type: Input
|
|
178
|
+
}], infoClick: [{
|
|
179
|
+
type: Output
|
|
168
180
|
}] } });
|
|
169
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90aW4tc3BhL3NyYy9saWIvY29tcG9uZW50cy90ZXh0L3RleHQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL2NvbXBvbmVudHMvdGV4dC90ZXh0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLFdBQVcsRUFBYSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVwRSxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7OztBQU83QyxNQUFNLE9BQU8sYUFBYTtJQUV4QjtRQTRCQSxtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUV2QixzQkFBc0I7UUFDdEIsd0JBQW1CLEdBQUcsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUMsU0FBSSxHQUFHLElBQUksQ0FBQyxDQUFDLG1CQUFtQjtRQUV2QixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLFNBQUksR0FBRyxFQUFFLENBQUM7UUFDVixZQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2IsZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFDakIsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUNWLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNsQyxXQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ2hCLFNBQUksR0FBRyxFQUFFLENBQUM7UUFFVCxVQUFLLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMzQixlQUFVLEdBQUcs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STtzQkFBWixLQUFLO2dCQUVJLEtBQUs7c0JBQWQsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQUVFLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBSUcsT0FBTztzQkFBZixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBR0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAsIHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgQ29yZSB9IGZyb20gJy4uLy4uL2NsYXNzZXMvVGluQ29yZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NwYS10ZXh0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdGV4dC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdGV4dC5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFRleHRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcblxyXG4gICAgaWYgKCF0aGlzLm9wdGlvbnMpe1xyXG4gICAgICB0aGlzLm9wdGlvbnMgPSBbXVxyXG4gICAgfVxyXG5cclxuICAgIGlmKHRoaXMub3B0aW9ucy5sZW5ndGggPiAwKXtcclxuICAgICAgdGhpcy5pbml0RmlsdGVyKCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMucGxhY2Vob2xkZXIgPT0gXCJcIikge1xyXG4gICAgICB0aGlzLnBsYWNlaG9sZGVyID0gXCJFbnRlciBcIiArIHRoaXMuZGlzcGxheTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcblxyXG4gICAgdGhpcy5pbml0Q29udHJvbCh0aGlzLmNvbnRyb2wpXHJcblxyXG4gICAgdGhpcy5pbml0Q29udHJvbCh0aGlzLm15Q29udHJvbClcclxuXHJcbiAgfVxyXG5cclxuXHJcbiAgZmlsdGVyZWRPcHRpb25zOiBPYnNlcnZhYmxlPHN0cmluZ1tdPjtcclxuICBtdWx0aURpbWVuc2lvbiA9IGZhbHNlO1xyXG5cclxuICAvLyBvcHRpb25zOiBGb3JtR3JvdXA7XHJcbiAgaGlkZVJlcXVpcmVkQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCh0cnVlKTtcclxuICBoaWRlID0gdHJ1ZTsgLy9mb3IgcGFzc3dvcmQgb25seVxyXG5cclxuICBASW5wdXQoKSByZWFkb25seSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGhpbnQgPSBcIlwiO1xyXG4gIEBJbnB1dCgpIGRpc3BsYXkgPSBcIlwiO1xyXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gXCJcIjtcclxuICBASW5wdXQoKSB2YWx1ZSA9IFwiXCI7XHJcbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBJbnB1dCgpIGZvcm1hdCA9IFwidGV4dFwiO1xyXG4gIEBJbnB1dCgpIHR5cGUgPSBcIlwiO1xyXG5cclxuICBAT3V0cHV0KCkgbGVhdmUgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGVudGVyUHJlc3MgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBJbnB1dCgpIHJvd3MgPSAxO1xyXG4gIEBJbnB1dCgpIHdpZHRoID0gXCIxMDAlXCJcclxuXHJcblxyXG4gIC8vQXV0b2NvbXBsZXRlIGl0ZW1zXHJcbiAgQElucHV0KCkgb3B0aW9uczogYW55ID0gW107XHJcbiAgQElucHV0KCkgb3B0aW9uVmFsdWUgPSBcIlwiO1xyXG5cclxuICAvL3ZhbGlkYXRpb24gaW5wdXRcclxuICBASW5wdXQoKSByZXF1aXJlZCA9IHRydWU7XHJcbiAgQElucHV0KCkgbWluID0gMDtcclxuICBASW5wdXQoKSBtYXggPSA5MDAwMDAwMDAwMDAwMDAwOyAvL01hdGgubWF4XHJcbiAgQElucHV0KCkgcmVnZXggPSBcIlwiIC8vXCJbYS16QS1aIF0qXCIgLy9cIi9cXFMrQFxcUytcXC5cXFMrL1wiO1xyXG5cclxuXHJcblxyXG4gIHByaXZhdGUgaW5pdEZpbHRlcigpIHtcclxuXHJcbiAgICBjb25zdCBvYmpLZXlMaXN0ID0gT2JqZWN0LmtleXModGhpcy5vcHRpb25zWzBdKTtcclxuICAgIGNvbnN0IGZpcnN0S2V5ID0gb2JqS2V5TGlzdFswXTtcclxuICAgIHRoaXMubXVsdGlEaW1lbnNpb24gPSAhQ29yZS5pc051bWJlcihmaXJzdEtleSk7XHJcblxyXG4gICAgdGhpcy5maWx0ZXJlZE9wdGlvbnMgPSB0aGlzLm15Q29udHJvbC52YWx1ZUNoYW5nZXMucGlwZShcclxuICAgICAgc3RhcnRXaXRoKFwiXCIpLFxyXG4gICAgICBtYXAoKHZhbHVlKSA9PiB0aGlzLl9maWx0ZXIodmFsdWUpKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2ZpbHRlcih2YWx1ZSk6IHN0cmluZ1tdIHtcclxuXHJcbiAgICBpZiAodGhpcy5tdWx0aURpbWVuc2lvbil7XHJcblxyXG4gICAgICBsZXQgZmlsdGVyVmFsdWUgPSBcIlwiO1xyXG4gICAgICBpZiAodmFsdWUgIT0gXCJcIiAmJiB2YWx1ZSl7XHJcbiAgICAgICAgZmlsdGVyVmFsdWUgPSB2YWx1ZS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gdGhpcy5vcHRpb25zLmZpbHRlcigob3B0aW9uKSA9PiBvcHRpb25bYCR7dGhpcy5vcHRpb25WYWx1ZX1gXS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGZpbHRlclZhbHVlKSk7XHJcblxyXG4gICAgfWVsc2V7XHJcbiAgICAgIGNvbnN0IGZpbHRlclZhbHVlID0gdmFsdWUudG9Mb3dlckNhc2UoKTtcclxuICAgICAgcmV0dXJuIHRoaXMub3B0aW9ucy5maWx0ZXIob3B0aW9uID0+IG9wdGlvbi50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGZpbHRlclZhbHVlKSk7XHJcbiAgICB9XHJcblxyXG5cclxuICB9XHJcblxyXG5cclxuICBpbml0Q29udHJvbChjb250cm9sOiBGb3JtQ29udHJvbCl7XHJcbiAgICBpZiAodGhpcy5yZWFkb25seSkge1xyXG4gICAgICBjb250cm9sLnNldFZhbGlkYXRvcnMobnVsbCk7XHJcbiAgICAgIGNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgfVxyXG4gICAgaWYgKCF0aGlzLnJlcXVpcmVkICYmICF0aGlzLnJlYWRvbmx5KSB7XHJcblxyXG4gICAgICBjb250cm9sLnNldFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMubWluTGVuZ3RoKHRoaXMubWluKSwgVmFsaWRhdG9ycy5tYXhMZW5ndGgodGhpcy5tYXgpLCBWYWxpZGF0b3JzLnBhdHRlcm4odGhpcy5yZWdleCldKTtcclxuICAgICAgdGhpcy5jb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICAvL0V2ZW50c1xyXG4gIGNoYW5nZWQoKXtcclxuXHJcbiAgICBpZiAodGhpcy5vcHRpb25zLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHRoaXMubXlDb250cm9sLnZhbHVlKTtcclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgbGVhdmVkKCl7XHJcbiAgICB0aGlzLmxlYXZlLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIGVudGVyUHJlc3NlZCgpIHtcclxuICAgIHRoaXMuZW50ZXJQcmVzcy5lbWl0KCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLy92YWxpZGF0aW9uXHJcbiAgbXlDb250cm9sID0gbmV3IEZvcm1Db250cm9sKCcnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5taW5MZW5ndGgodGhpcy5taW4pLCBWYWxpZGF0b3JzLm1heExlbmd0aCh0aGlzLm1heCksIFZhbGlkYXRvcnMucGF0dGVybih0aGlzLnJlZ2V4KV0pO1xyXG4gIGNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woIHRoaXMudmFsdWUsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbkxlbmd0aCh0aGlzLm1pbiksIFZhbGlkYXRvcnMubWF4TGVuZ3RoKHRoaXMubWF4KSwgVmFsaWRhdG9ycy5wYXR0ZXJuKHRoaXMucmVnZXgpICBdKTtcclxuXHJcbiAgdmFsaWRhdGUoY29udHJvbDogRm9ybUNvbnRyb2wpIDogc3RyaW5ne1xyXG5cclxuXHJcbiAgICBpZiAoKHRoaXMucmVxdWlyZWQgfHwgdGhpcy5taW4gPiAwKSAmJiBjb250cm9sLmhhc0Vycm9yKCdyZXF1aXJlZCcpICl7XHJcbiAgICAgIHJldHVybiBgUmVxdWlyZWRgO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChjb250cm9sLmhhc0Vycm9yKCdtaW5sZW5ndGgnKSApe1xyXG4gICAgICByZXR1cm4gYE1pbmltdW4gbGVuZ3RoIGlzICR7dGhpcy5taW59YDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoY29udHJvbC5oYXNFcnJvcignbWF4bGVuZ3RoJykpIHtcclxuICAgICAgcmV0dXJuIGBNYXhpbXVtIGxlbmd0aCBpcyAke3RoaXMubWF4fWA7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGNvbnRyb2wuaGFzRXJyb3IoJ3BhdHRlcm4nKSkge1xyXG4gICAgICByZXR1cm4gYEludmFsaWQgSW5wdXRgO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICAvLyBpZiAodGhpcy5yZWdleCAhPSBcIlwiKXtcclxuXHJcbiAgICAvLyAgIGxldCByID0gbmV3IFJlZ0V4cCh0aGlzLnJlZ2V4LCBcImdcIik7XHJcblxyXG4gICAgLy8gICBpZiAoIXIudGVzdCh0aGlzLnZhbHVlKSl7XHJcbiAgICAvLyAgICAgdGhpcy52YWxpZCA9IGZhbHNlO1xyXG4gICAgLy8gICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gXCJJbnZhbGlkIGlucHV0XCI7XHJcbiAgICAvLyAgICAgcmV0dXJuIHRoaXMuZXJyb3JNZXNzYWdlO1xyXG4gICAgLy8gICB9XHJcbiAgICAvLyB9XHJcblxyXG4gICAgcmV0dXJuIFwiXCI7XHJcbiAgfVxyXG5cclxufVxyXG4iLCJcclxuPCEtLSBHZW5lcmFsIFRleHQgLS0+XHJcbjxtYXQtZm9ybS1maWVsZCAqbmdJZj1cIighcm93cyB8fCByb3dzID09IDEpICYmIChmb3JtYXQ9PSd0ZXh0JyB8fCBmb3JtYXQgPT0nZGF0ZScpICYmIG9wdGlvbnMubGVuZ3RoPT0wXCIgW2hpZGVSZXF1aXJlZE1hcmtlcl09XCIhcmVxdWlyZWRcIiBbaGludExhYmVsXT1cImhpbnRcIiAgW25nU3R5bGVdPVwieyd3aWR0aCc6d2lkdGh9XCIgc3R5bGU9XCJtYXJnaW4tcmlnaHQ6IDVweDtcIiA+XHJcbjxtYXQtbGFiZWwgKm5nSWY9XCJmb3JtYXQ9PSd0ZXh0J1wiPnt7ZGlzcGxheX19PC9tYXQtbGFiZWw+XHJcbjxtYXQtbGFiZWwgKm5nSWY9XCJmb3JtYXQ9PSdkYXRlJ1wiPnt7ZGlzcGxheSB8IGRhdGU6J2RkL01NL3l5eXknfX08L21hdC1sYWJlbD5cclxuPGlucHV0IG1hdElucHV0IGF1dG9jb21wbGV0ZT1cIm9mZlwiIFsobmdNb2RlbCldPVwidmFsdWVcIiAgKGNoYW5nZSk9XCJjaGFuZ2VkKClcIiAoYmx1cik9XCJsZWF2ZWQoKVwiIChrZXl1cC5lbnRlcik9XCJlbnRlclByZXNzZWQoKVwiIFt0eXBlXT1cInR5cGVcIiBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIiBbZm9ybUNvbnRyb2xdPVwiY29udHJvbFwiIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiIFtyZWFkb25seV09XCJyZWFkb25seVwiLz5cclxuPG1hdC1lcnJvciAqbmdJZj1cImNvbnRyb2wuaW52YWxpZFwiPnt7dmFsaWRhdGUoY29udHJvbCl9fTwvbWF0LWVycm9yPlxyXG48L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuXHJcbjwhLS0gcGFzc3dvcmQgLS0+XHJcbjxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInNwYS10ZXh0XCIgKm5nSWY9XCJmb3JtYXQ9PSdwYXNzd29yZCdcIiBbaGlkZVJlcXVpcmVkTWFya2VyXT1cIiFyZXF1aXJlZFwiIFtoaW50TGFiZWxdPVwiaGludFwiICBbbmdTdHlsZV09XCJ7J3dpZHRoJzp3aWR0aH1cIiBzdHlsZT1cIm1hcmdpbi1yaWdodDogNXB4XCI+XHJcbiAgPG1hdC1sYWJlbD57e2Rpc3BsYXl9fTwvbWF0LWxhYmVsPlxyXG4gIDxpbnB1dCBtYXRJbnB1dCBbdHlwZV09XCJoaWRlID8gJ3Bhc3N3b3JkJyA6ICd0ZXh0J1wiIChrZXl1cC5lbnRlcik9XCJlbnRlclByZXNzZWQoKVwiIChjaGFuZ2UpPVwiY2hhbmdlZCgpXCIgKGJsdXIpPVwibGVhdmVkKClcIiBbKG5nTW9kZWwpXT1cInZhbHVlXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCIgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIiBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIj5cclxuICA8bWF0LWVycm9yICpuZ0lmPVwiY29udHJvbC5pbnZhbGlkXCI+e3t2YWxpZGF0ZShjb250cm9sKX19PC9tYXQtZXJyb3I+XHJcbiAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gbWF0U3VmZml4IChjbGljayk9XCJoaWRlID0gIWhpZGVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIidIaWRlIHBhc3N3b3JkJ1wiIFthdHRyLmFyaWEtcHJlc3NlZF09XCJoaWRlXCI+XHJcbiAgICA8bWF0LWljb24gc3R5bGU9XCJmb250LXNpemU6IDE4cHg7XCI+e3toaWRlID8gJ3Zpc2liaWxpdHlfb2ZmJyA6ICd2aXNpYmlsaXR5J319PC9tYXQtaWNvbj5cclxuICA8L2J1dHRvbj5cclxuPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcblxyXG48IS0tIFRleHRBcmVhIGNvcHkgLSBPbmx5IGNoYW5nZSBpbnB1dCB0byB0ZXh0YXJlYSBhbmQgY2hhbmdlIG5naWYgdG8gbm90IC0tPlxyXG5cclxuPG1hdC1mb3JtLWZpZWxkICpuZ0lmPVwicm93cyA+IDEgICYmIG9wdGlvbnMubGVuZ3RoPT0wXCIgW2hpZGVSZXF1aXJlZE1hcmtlcl09XCIhcmVxdWlyZWRcIiBbaGludExhYmVsXT1cImhpbnRcIiAgW25nU3R5bGVdPVwieyd3aWR0aCc6d2lkdGh9XCIgc3R5bGU9XCJtYXJnaW4tcmlnaHQ6IDVweDtcIj5cclxuPG1hdC1sYWJlbD57e2Rpc3BsYXl9fTwvbWF0LWxhYmVsPlxyXG48dGV4dGFyZWEgbWF0SW5wdXQgYXV0b2NvbXBsZXRlPVwib2ZmXCIgW3Jvd3NdPVwicm93c1wiIFsobmdNb2RlbCldPVwidmFsdWVcIiAoY2hhbmdlKT1cImNoYW5nZWQoKVwiIChrZXl1cC5lbnRlcik9XCJlbnRlclByZXNzZWQoKVwiIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiIFtmb3JtQ29udHJvbF09XCJjb250cm9sXCIgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCIgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCI+PC90ZXh0YXJlYT5cclxuPG1hdC1lcnJvciAqbmdJZj1cImNvbnRyb2wuaW52YWxpZFwiPnt7dmFsaWRhdGUoY29udHJvbCl9fTwvbWF0LWVycm9yPlxyXG48L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuXHJcblxyXG48IS0tIEF1dG8gQ29tcGxldGUtLT5cclxuXHJcbiAgPG1hdC1mb3JtLWZpZWxkICAqbmdJZj1cIighcm93cyB8fCByb3dzID09IDEpICYmIGZvcm1hdD09J3RleHQnICYmIG9wdGlvbnMubGVuZ3RoPjAgXCIgW2hpZGVSZXF1aXJlZE1hcmtlcl09XCIhcmVxdWlyZWRcIiBbaGludExhYmVsXT1cImhpbnRcIiBbbmdTdHlsZV09XCJ7J3dpZHRoJzp3aWR0aH1cIiBzdHlsZT1cIm1hcmdpbi1yaWdodDogNXB4O1wiPlxyXG4gICAgPG1hdC1sYWJlbD57e2Rpc3BsYXl9fTwvbWF0LWxhYmVsPlxyXG4gICAgPGlucHV0IFt0eXBlXT1cInR5cGVcIiBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIiBbKG5nTW9kZWwpXT1cInZhbHVlXCIgKGNoYW5nZSk9XCJjaGFuZ2VkKClcIiBtYXRJbnB1dCBbZm9ybUNvbnRyb2xdPVwibXlDb250cm9sXCIgIFttYXRBdXRvY29tcGxldGVdPVwiYXV0b1wiIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIj5cclxuICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJjb250cm9sLmludmFsaWRcIj57e3ZhbGlkYXRlKG15Q29udHJvbCl9fTwvbWF0LWVycm9yPlxyXG4gICAgPG1hdC1hdXRvY29tcGxldGUgI2F1dG89XCJtYXRBdXRvY29tcGxldGVcIiAob3B0aW9uU2VsZWN0ZWQpPVwiY2hhbmdlZCgpXCI+XHJcblxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIW11bHRpRGltZW5zaW9uXCI+XHJcbiAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBmaWx0ZXJlZE9wdGlvbnMgfCBhc3luY1wiIFt2YWx1ZV09XCJvcHRpb25cIj5cclxuICAgICAgICAgIHt7b3B0aW9ufX1cclxuICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm11bHRpRGltZW5zaW9uXCI+XHJcbiAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHJvdyBvZiBmaWx0ZXJlZE9wdGlvbnMgfCBhc3luY1wiIFt2YWx1ZV09XCJyb3dbb3B0aW9uVmFsdWVdXCI+XHJcbiAgICAgICAgICB7e3Jvd1tvcHRpb25WYWx1ZV19fVxyXG4gICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG5cclxuICAgIDwvbWF0LWF1dG9jb21wbGV0ZT5cclxuICA8L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuIl19
|
|
181
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90aW4tc3BhL3NyYy9saWIvY29tcG9uZW50cy90ZXh0L3RleHQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGluLXNwYS9zcmMvbGliL2NvbXBvbmVudHMvdGV4dC90ZXh0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLFdBQVcsRUFBYSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVwRSxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7Ozs7Ozs7QUFPN0MsTUFBTSxPQUFPLGFBQWE7SUFFeEI7UUE0QkEsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFFdkIsc0JBQXNCO1FBQ3RCLHdCQUFtQixHQUFHLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVDLFNBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxtQkFBbUI7UUFFdkIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixTQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ1YsWUFBTyxHQUFHLEVBQUUsQ0FBQztRQUNiLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLFVBQUssR0FBRyxFQUFFLENBQUM7UUFDVixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDbEMsV0FBTSxHQUFHLE1BQU0sQ0FBQztRQUNoQixTQUFJLEdBQUcsRUFBRSxDQUFDO1FBRVQsVUFBSyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFDM0IsZUFBVSxHQUFH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QUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0ksV0FBVztzQkFBcEIsTUFBTTtnQkFDRSxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUVJLEtBQUs7c0JBQWQsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNO2dCQUVFLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBSUcsT0FBTztzQkFBZixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBR0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFFRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDSSxTQUFTO3NCQUFsQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1hcCwgc3RhcnRXaXRoIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBDb3JlIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9UaW5Db3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc3BhLXRleHQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90ZXh0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90ZXh0LmNvbXBvbmVudC5jc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGV4dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuXHJcbiAgICBpZiAoIXRoaXMub3B0aW9ucyl7XHJcbiAgICAgIHRoaXMub3B0aW9ucyA9IFtdXHJcbiAgICB9XHJcblxyXG4gICAgaWYodGhpcy5vcHRpb25zLmxlbmd0aCA+IDApe1xyXG4gICAgICB0aGlzLmluaXRGaWx0ZXIoKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5wbGFjZWhvbGRlciA9PSBcIlwiKSB7XHJcbiAgICAgIHRoaXMucGxhY2Vob2xkZXIgPSBcIkVudGVyIFwiICsgdGhpcy5kaXNwbGF5O1xyXG4gICAgfVxyXG5cclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuXHJcbiAgICB0aGlzLmluaXRDb250cm9sKHRoaXMuY29udHJvbClcclxuXHJcbiAgICB0aGlzLmluaXRDb250cm9sKHRoaXMubXlDb250cm9sKVxyXG5cclxuICB9XHJcblxyXG5cclxuICBmaWx0ZXJlZE9wdGlvbnM6IE9ic2VydmFibGU8c3RyaW5nW10+O1xyXG4gIG11bHRpRGltZW5zaW9uID0gZmFsc2U7XHJcblxyXG4gIC8vIG9wdGlvbnM6IEZvcm1Hcm91cDtcclxuICBoaWRlUmVxdWlyZWRDb250cm9sID0gbmV3IEZvcm1Db250cm9sKHRydWUpO1xyXG4gIGhpZGUgPSB0cnVlOyAvL2ZvciBwYXNzd29yZCBvbmx5XHJcblxyXG4gIEBJbnB1dCgpIHJlYWRvbmx5ID0gZmFsc2U7XHJcbiAgQElucHV0KCkgaGludCA9IFwiXCI7XHJcbiAgQElucHV0KCkgZGlzcGxheSA9IFwiXCI7XHJcbiAgQElucHV0KCkgcGxhY2Vob2xkZXIgPSBcIlwiO1xyXG4gIEBJbnB1dCgpIHZhbHVlID0gXCJcIjtcclxuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQElucHV0KCkgZm9ybWF0ID0gXCJ0ZXh0XCI7XHJcbiAgQElucHV0KCkgdHlwZSA9IFwiXCI7XHJcblxyXG4gIEBPdXRwdXQoKSBsZWF2ZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgZW50ZXJQcmVzcyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQElucHV0KCkgcm93cyA9IDE7XHJcbiAgQElucHV0KCkgd2lkdGggPSBcIjEwMCVcIlxyXG5cclxuXHJcbiAgLy9BdXRvY29tcGxldGUgaXRlbXNcclxuICBASW5wdXQoKSBvcHRpb25zOiBhbnkgPSBbXTtcclxuICBASW5wdXQoKSBvcHRpb25WYWx1ZSA9IFwiXCI7XHJcblxyXG4gIC8vdmFsaWRhdGlvbiBpbnB1dFxyXG4gIEBJbnB1dCgpIHJlcXVpcmVkID0gdHJ1ZTtcclxuICBASW5wdXQoKSBtaW4gPSAwO1xyXG4gIEBJbnB1dCgpIG1heCA9IDkwMDAwMDAwMDAwMDAwMDA7IC8vTWF0aC5tYXhcclxuICBASW5wdXQoKSByZWdleCA9IFwiXCIgLy9cIlthLXpBLVogXSpcIiAvL1wiL1xcUytAXFxTK1xcLlxcUysvXCI7XHJcblxyXG4gIEBJbnB1dCgpIHN1ZmZpeDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGluZm9NZXNzYWdlOiBzdHJpbmc7XHJcbiAgQE91dHB1dCgpIGluZm9DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgb25JbmZvQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgdGhpcy5pbmZvQ2xpY2suZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbml0RmlsdGVyKCkge1xyXG5cclxuICAgIGNvbnN0IG9iaktleUxpc3QgPSBPYmplY3Qua2V5cyh0aGlzLm9wdGlvbnNbMF0pO1xyXG4gICAgY29uc3QgZmlyc3RLZXkgPSBvYmpLZXlMaXN0WzBdO1xyXG4gICAgdGhpcy5tdWx0aURpbWVuc2lvbiA9ICFDb3JlLmlzTnVtYmVyKGZpcnN0S2V5KTtcclxuXHJcbiAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucyA9IHRoaXMubXlDb250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKFxyXG4gICAgICBzdGFydFdpdGgoXCJcIiksXHJcbiAgICAgIG1hcCgodmFsdWUpID0+IHRoaXMuX2ZpbHRlcih2YWx1ZSkpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfZmlsdGVyKHZhbHVlKTogc3RyaW5nW10ge1xyXG5cclxuICAgIGlmICh0aGlzLm11bHRpRGltZW5zaW9uKXtcclxuXHJcbiAgICAgIGxldCBmaWx0ZXJWYWx1ZSA9IFwiXCI7XHJcbiAgICAgIGlmICh2YWx1ZSAhPSBcIlwiICYmIHZhbHVlKXtcclxuICAgICAgICBmaWx0ZXJWYWx1ZSA9IHZhbHVlLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMuZmlsdGVyKChvcHRpb24pID0+IG9wdGlvbltgJHt0aGlzLm9wdGlvblZhbHVlfWBdLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoZmlsdGVyVmFsdWUpKTtcclxuXHJcbiAgICB9ZWxzZXtcclxuICAgICAgY29uc3QgZmlsdGVyVmFsdWUgPSB2YWx1ZS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICByZXR1cm4gdGhpcy5vcHRpb25zLmZpbHRlcihvcHRpb24gPT4gb3B0aW9uLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoZmlsdGVyVmFsdWUpKTtcclxuICAgIH1cclxuXHJcblxyXG4gIH1cclxuXHJcblxyXG4gIGluaXRDb250cm9sKGNvbnRyb2w6IEZvcm1Db250cm9sKXtcclxuICAgIGlmICh0aGlzLnJlYWRvbmx5KSB7XHJcbiAgICAgIGNvbnRyb2wuc2V0VmFsaWRhdG9ycyhudWxsKTtcclxuICAgICAgY29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICB9XHJcbiAgICBpZiAoIXRoaXMucmVxdWlyZWQgJiYgIXRoaXMucmVhZG9ubHkpIHtcclxuXHJcbiAgICAgIGNvbnRyb2wuc2V0VmFsaWRhdG9ycyhbVmFsaWRhdG9ycy5taW5MZW5ndGgodGhpcy5taW4pLCBWYWxpZGF0b3JzLm1heExlbmd0aCh0aGlzLm1heCksIFZhbGlkYXRvcnMucGF0dGVybih0aGlzLnJlZ2V4KV0pO1xyXG4gICAgICB0aGlzLmNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIC8vRXZlbnRzXHJcbiAgY2hhbmdlZCgpe1xyXG5cclxuICAgIGlmICh0aGlzLm9wdGlvbnMubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy5teUNvbnRyb2wudmFsdWUpO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBsZWF2ZWQoKXtcclxuICAgIHRoaXMubGVhdmUuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgZW50ZXJQcmVzc2VkKCkge1xyXG4gICAgdGhpcy5lbnRlclByZXNzLmVtaXQoKTtcclxuICB9XHJcblxyXG5cclxuICAvL3ZhbGlkYXRpb25cclxuICBteUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbkxlbmd0aCh0aGlzLm1pbiksIFZhbGlkYXRvcnMubWF4TGVuZ3RoKHRoaXMubWF4KSwgVmFsaWRhdG9ycy5wYXR0ZXJuKHRoaXMucmVnZXgpXSk7XHJcbiAgY29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCggdGhpcy52YWx1ZSwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWluTGVuZ3RoKHRoaXMubWluKSwgVmFsaWRhdG9ycy5tYXhMZW5ndGgodGhpcy5tYXgpLCBWYWxpZGF0b3JzLnBhdHRlcm4odGhpcy5yZWdleCkgIF0pO1xyXG5cclxuICB2YWxpZGF0ZShjb250cm9sOiBGb3JtQ29udHJvbCkgOiBzdHJpbmd7XHJcblxyXG5cclxuICAgIGlmICgodGhpcy5yZXF1aXJlZCB8fCB0aGlzLm1pbiA+IDApICYmIGNvbnRyb2wuaGFzRXJyb3IoJ3JlcXVpcmVkJykgKXtcclxuICAgICAgcmV0dXJuIGBSZXF1aXJlZGA7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGNvbnRyb2wuaGFzRXJyb3IoJ21pbmxlbmd0aCcpICl7XHJcbiAgICAgIHJldHVybiBgTWluaW11biBsZW5ndGggaXMgJHt0aGlzLm1pbn1gO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChjb250cm9sLmhhc0Vycm9yKCdtYXhsZW5ndGgnKSkge1xyXG4gICAgICByZXR1cm4gYE1heGltdW0gbGVuZ3RoIGlzICR7dGhpcy5tYXh9YDtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoY29udHJvbC5oYXNFcnJvcigncGF0dGVybicpKSB7XHJcbiAgICAgIHJldHVybiBgSW52YWxpZCBJbnB1dGA7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8vIGlmICh0aGlzLnJlZ2V4ICE9IFwiXCIpe1xyXG5cclxuICAgIC8vICAgbGV0IHIgPSBuZXcgUmVnRXhwKHRoaXMucmVnZXgsIFwiZ1wiKTtcclxuXHJcbiAgICAvLyAgIGlmICghci50ZXN0KHRoaXMudmFsdWUpKXtcclxuICAgIC8vICAgICB0aGlzLnZhbGlkID0gZmFsc2U7XHJcbiAgICAvLyAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSBcIkludmFsaWQgaW5wdXRcIjtcclxuICAgIC8vICAgICByZXR1cm4gdGhpcy5lcnJvck1lc3NhZ2U7XHJcbiAgICAvLyAgIH1cclxuICAgIC8vIH1cclxuXHJcbiAgICByZXR1cm4gXCJcIjtcclxuICB9XHJcblxyXG59XHJcbiIsIlxyXG48IS0tIEdlbmVyYWwgVGV4dCAtLT5cclxuPG1hdC1mb3JtLWZpZWxkICpuZ0lmPVwiKCFyb3dzIHx8IHJvd3MgPT0gMSkgJiYgKGZvcm1hdD09J3RleHQnIHx8IGZvcm1hdCA9PSdkYXRlJykgJiYgb3B0aW9ucy5sZW5ndGg9PTBcIiBbaGlkZVJlcXVpcmVkTWFya2VyXT1cIiFyZXF1aXJlZFwiIFtoaW50TGFiZWxdPVwiaGludFwiICBbbmdTdHlsZV09XCJ7J3dpZHRoJzp3aWR0aH1cIiBzdHlsZT1cIm1hcmdpbi1yaWdodDogNXB4O1wiID5cclxuPG1hdC1sYWJlbCAqbmdJZj1cImZvcm1hdD09J3RleHQnXCI+e3tkaXNwbGF5fX08L21hdC1sYWJlbD5cclxuPG1hdC1sYWJlbCAqbmdJZj1cImZvcm1hdD09J2RhdGUnXCI+e3tkaXNwbGF5IHwgZGF0ZTonZGQvTU0veXl5eSd9fTwvbWF0LWxhYmVsPlxyXG48aW5wdXQgbWF0SW5wdXQgYXV0b2NvbXBsZXRlPVwib2ZmXCIgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiICAoY2hhbmdlKT1cImNoYW5nZWQoKVwiIChibHVyKT1cImxlYXZlZCgpXCIgKGtleXVwLmVudGVyKT1cImVudGVyUHJlc3NlZCgpXCIgW3R5cGVdPVwidHlwZVwiIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiIFtmb3JtQ29udHJvbF09XCJjb250cm9sXCIgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCIgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCIvPlxyXG48bWF0LWVycm9yICpuZ0lmPVwiY29udHJvbC5pbnZhbGlkXCI+e3t2YWxpZGF0ZShjb250cm9sKX19PC9tYXQtZXJyb3I+XHJcbiAgPGRpdiBtYXRTdWZmaXggY2xhc3M9XCJzdWZmaXgtaWNvbnNcIj5cclxuICAgIDxsYWJlbCAqbmdJZj1cInN1ZmZpeFwiPnt7c3VmZml4fX08L2xhYmVsPlxyXG4gICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKm5nSWY9XCJpbmZvTWVzc2FnZVwiIChjbGljayk9XCJvbkluZm9DbGljaygkZXZlbnQpXCIgbWF0VG9vbHRpcD1cIkluZm9cIiBtYXRUb29sdGlwUG9zaXRpb249XCJhYm92ZVwiPlxyXG4gICAgICA8bWF0LWljb24gc3R5bGU9XCJjb2xvcjogc3RlZWxibHVlO1wiPmluZm88L21hdC1pY29uPlxyXG4gICAgPC9idXR0b24+XHJcblxyXG4gIDwvZGl2PlxyXG48L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuXHJcbjwhLS0gcGFzc3dvcmQgLS0+XHJcbjxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInNwYS10ZXh0XCIgKm5nSWY9XCJmb3JtYXQ9PSdwYXNzd29yZCdcIiBbaGlkZVJlcXVpcmVkTWFya2VyXT1cIiFyZXF1aXJlZFwiIFtoaW50TGFiZWxdPVwiaGludFwiICBbbmdTdHlsZV09XCJ7J3dpZHRoJzp3aWR0aH1cIiBzdHlsZT1cIm1hcmdpbi1yaWdodDogNXB4XCI+XHJcbiAgPG1hdC1sYWJlbD57e2Rpc3BsYXl9fTwvbWF0LWxhYmVsPlxyXG4gIDxpbnB1dCBtYXRJbnB1dCBbdHlwZV09XCJoaWRlID8gJ3Bhc3N3b3JkJyA6ICd0ZXh0J1wiIChrZXl1cC5lbnRlcik9XCJlbnRlclByZXNzZWQoKVwiIChjaGFuZ2UpPVwiY2hhbmdlZCgpXCIgKGJsdXIpPVwibGVhdmVkKClcIiBbKG5nTW9kZWwpXT1cInZhbHVlXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCIgW2Zvcm1Db250cm9sXT1cImNvbnRyb2xcIiBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIj5cclxuICA8bWF0LWVycm9yICpuZ0lmPVwiY29udHJvbC5pbnZhbGlkXCI+e3t2YWxpZGF0ZShjb250cm9sKX19PC9tYXQtZXJyb3I+XHJcbiAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gbWF0U3VmZml4IChjbGljayk9XCJoaWRlID0gIWhpZGVcIiBbYXR0ci5hcmlhLWxhYmVsXT1cIidIaWRlIHBhc3N3b3JkJ1wiIFthdHRyLmFyaWEtcHJlc3NlZF09XCJoaWRlXCI+XHJcbiAgICA8bWF0LWljb24gc3R5bGU9XCJmb250LXNpemU6IDE4cHg7XCI+e3toaWRlID8gJ3Zpc2liaWxpdHlfb2ZmJyA6ICd2aXNpYmlsaXR5J319PC9tYXQtaWNvbj5cclxuICA8L2J1dHRvbj5cclxuPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcblxyXG48IS0tIFRleHRBcmVhIGNvcHkgLSBPbmx5IGNoYW5nZSBpbnB1dCB0byB0ZXh0YXJlYSBhbmQgY2hhbmdlIG5naWYgdG8gbm90IC0tPlxyXG5cclxuPG1hdC1mb3JtLWZpZWxkICpuZ0lmPVwicm93cyA+IDEgICYmIG9wdGlvbnMubGVuZ3RoPT0wXCIgW2hpZGVSZXF1aXJlZE1hcmtlcl09XCIhcmVxdWlyZWRcIiBbaGludExhYmVsXT1cImhpbnRcIiAgW25nU3R5bGVdPVwieyd3aWR0aCc6d2lkdGh9XCIgc3R5bGU9XCJtYXJnaW4tcmlnaHQ6IDVweDtcIj5cclxuPG1hdC1sYWJlbD57e2Rpc3BsYXl9fTwvbWF0LWxhYmVsPlxyXG48dGV4dGFyZWEgbWF0SW5wdXQgYXV0b2NvbXBsZXRlPVwib2ZmXCIgW3Jvd3NdPVwicm93c1wiIFsobmdNb2RlbCldPVwidmFsdWVcIiAoY2hhbmdlKT1cImNoYW5nZWQoKVwiIChrZXl1cC5lbnRlcik9XCJlbnRlclByZXNzZWQoKVwiIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiIFtmb3JtQ29udHJvbF09XCJjb250cm9sXCIgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCIgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCI+PC90ZXh0YXJlYT5cclxuPG1hdC1lcnJvciAqbmdJZj1cImNvbnRyb2wuaW52YWxpZFwiPnt7dmFsaWRhdGUoY29udHJvbCl9fTwvbWF0LWVycm9yPlxyXG4gIDxkaXYgbWF0U3VmZml4IGNsYXNzPVwic3VmZml4LWljb25zXCI+XHJcbiAgICA8YnV0dG9uIG1hdC1pY29uLWJ1dHRvbiAqbmdJZj1cImluZm9NZXNzYWdlXCIgKGNsaWNrKT1cIm9uSW5mb0NsaWNrKCRldmVudClcIiBtYXRUb29sdGlwPVwiSW5mb1wiIG1hdFRvb2x0aXBQb3NpdGlvbj1cImFib3ZlXCI+XHJcbiAgICAgIDxtYXQtaWNvbiBzdHlsZT1cImNvbG9yOiBzdGVlbGJsdWU7XCI+aW5mbzwvbWF0LWljb24+XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcblxyXG5cclxuPCEtLSBBdXRvIENvbXBsZXRlLS0+XHJcblxyXG4gIDxtYXQtZm9ybS1maWVsZCAgKm5nSWY9XCIoIXJvd3MgfHwgcm93cyA9PSAxKSAmJiBmb3JtYXQ9PSd0ZXh0JyAmJiBvcHRpb25zLmxlbmd0aD4wIFwiIFtoaWRlUmVxdWlyZWRNYXJrZXJdPVwiIXJlcXVpcmVkXCIgW2hpbnRMYWJlbF09XCJoaW50XCIgW25nU3R5bGVdPVwieyd3aWR0aCc6d2lkdGh9XCIgc3R5bGU9XCJtYXJnaW4tcmlnaHQ6IDVweDtcIj5cclxuICAgIDxtYXQtbGFiZWw+e3tkaXNwbGF5fX08L21hdC1sYWJlbD5cclxuICAgIDxpbnB1dCBbdHlwZV09XCJ0eXBlXCIgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCIgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiIChjaGFuZ2UpPVwiY2hhbmdlZCgpXCIgbWF0SW5wdXQgW2Zvcm1Db250cm9sXT1cIm15Q29udHJvbFwiICBbbWF0QXV0b2NvbXBsZXRlXT1cImF1dG9cIiBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIiAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCI+XHJcbiAgICA8bWF0LWVycm9yICpuZ0lmPVwiY29udHJvbC5pbnZhbGlkXCI+e3t2YWxpZGF0ZShteUNvbnRyb2wpfX08L21hdC1lcnJvcj5cclxuICAgIDxtYXQtYXV0b2NvbXBsZXRlICNhdXRvPVwibWF0QXV0b2NvbXBsZXRlXCIgKG9wdGlvblNlbGVjdGVkKT1cImNoYW5nZWQoKVwiPlxyXG5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFtdWx0aURpbWVuc2lvblwiPlxyXG4gICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBvcHRpb24gb2YgZmlsdGVyZWRPcHRpb25zIHwgYXN5bmNcIiBbdmFsdWVdPVwib3B0aW9uXCI+XHJcbiAgICAgICAgICB7e29wdGlvbn19XHJcbiAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJtdWx0aURpbWVuc2lvblwiPlxyXG4gICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCByb3cgb2YgZmlsdGVyZWRPcHRpb25zIHwgYXN5bmNcIiBbdmFsdWVdPVwicm93W29wdGlvblZhbHVlXVwiPlxyXG4gICAgICAgICAge3tyb3dbb3B0aW9uVmFsdWVdfX1cclxuICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuXHJcbiAgICA8L21hdC1hdXRvY29tcGxldGU+XHJcbiAgICAgIDxkaXYgbWF0U3VmZml4IGNsYXNzPVwic3VmZml4LWljb25zXCI+XHJcbiAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKm5nSWY9XCJpbmZvTWVzc2FnZVwiIChjbGljayk9XCJvbkluZm9DbGljaygkZXZlbnQpXCIgbWF0VG9vbHRpcD1cIkluZm9cIiBtYXRUb29sdGlwUG9zaXRpb249XCJhYm92ZVwiPlxyXG4gICAgICAgICAgPG1hdC1pY29uIHN0eWxlPVwiY29sb3I6IHN0ZWVsYmx1ZTtcIj5pbmZvPC9tYXQtaWNvbj5cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgPC9kaXY+XHJcbiAgPC9tYXQtZm9ybS1maWVsZD5cclxuXHJcbiJdfQ==
|
|
@@ -68,7 +68,7 @@ export class transactDialog {
|
|
|
68
68
|
}
|
|
69
69
|
}
|
|
70
70
|
transactDialog.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: transactDialog, deps: [{ token: i1.LoaderService }, { token: i2.MessageService }, { token: i3.DataServiceLib }, { token: i4.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
|
|
71
|
-
transactDialog.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: transactDialog, selector: "app-quanityDiag", ngImport: i0, template: "\r\n<h2 mat-dialog-title>{{action | titlecase}}</h2>\r\n\r\n\r\n<mat-dialog-content class=\"mat-typography\">\r\n\r\n <div class=\"tin-input\" style=\"font-size:14px\">\r\n\r\n <spa-select *ngIf=\"action == 'transfer'\" [(value)]=\"txn.destinationID\" display=\"Transfer to\" [options]=\"accounts\" optionDisplay=\"name\" optionValue=\"accountID\"></spa-select>\r\n\r\n <spa-date display=\"Date\" [(value)]=\"txn.date\"></spa-date>\r\n <spa-money display=\"Amount\" [(value)]=\"txn.amount\"></spa-money>\r\n <spa-text display=\"Narration\" [(value)]=\"txn.narration\"></spa-text>\r\n <spa-select display=\"Category\" [(value)]=\"txn.categoryID\" [options]=\"categories\" optionDisplay=\"name\" optionValue=\"listItemID\" [defaultFirstValue]=\"true\"></spa-select>\r\n\r\n\r\n\r\n </div>\r\n\r\n</mat-dialog-content>\r\n\r\n\r\n<mat-dialog-actions>\r\n<button mat-button [disabled]=\"isProcessing\" (click)=\"submit()\" cdkFocusInitial>Submit</button>\r\n<button mat-button [disabled]=\"isProcessing\" cdkFocusInitial mat-dialog-close>Cancel</button>\r\n</mat-dialog-actions>\r\n\r\n\r\n\r\n", styles: [".info{color:#4682b4;margin-top:5px;margin-right:5px;font-size:18px}.sign{margin-top:5px;font-size:18px}.actionbuttons{gap:1px}button{padding-left:7px}.mat-mini-fab{width:32px;height:32px}.mat-mini-fab mat-icon{font-size:16px;margin-top:-3px}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i4.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i4.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i4.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i4.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: i7.TextComponent, selector: "spa-text", inputs: ["readonly", "hint", "display", "placeholder", "value", "format", "type", "rows", "width", "options", "optionValue", "required", "min", "max", "regex"], outputs: ["valueChange", "leave", "enterPress"] }, { kind: "component", type: i8.DateComponent, selector: "spa-date", inputs: ["required", "min", "max", "readonly", "hint", "value", "display", "placeholder", "width"], outputs: ["valueChange"] }, { kind: "component", type: i9.SelectComponent, selector: "spa-select", inputs: ["width", "readonly", "required", "defaultFirstValue", "readonlyMode", "hint", "placeholder", "multiple", "display", "value", "options", "masterOptions", "optionValue", "optionDisplay", "optionDisplayExtra", "nullable"], outputs: ["valueChange"] }, { kind: "component", type: i10.MoneyComponent, selector: "spa-money", inputs: ["readonly", "hint", "display", "placeholder", "value", "width", "currency", "required", "min", "max"], outputs: ["valueChange", "leave", "enterPress"] }, { kind: "pipe", type: i5.TitleCasePipe, name: "titlecase" }] });
|
|
71
|
+
transactDialog.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: transactDialog, selector: "app-quanityDiag", ngImport: i0, template: "\r\n<h2 mat-dialog-title>{{action | titlecase}}</h2>\r\n\r\n\r\n<mat-dialog-content class=\"mat-typography\">\r\n\r\n <div class=\"tin-input\" style=\"font-size:14px\">\r\n\r\n <spa-select *ngIf=\"action == 'transfer'\" [(value)]=\"txn.destinationID\" display=\"Transfer to\" [options]=\"accounts\" optionDisplay=\"name\" optionValue=\"accountID\"></spa-select>\r\n\r\n <spa-date display=\"Date\" [(value)]=\"txn.date\"></spa-date>\r\n <spa-money display=\"Amount\" [(value)]=\"txn.amount\"></spa-money>\r\n <spa-text display=\"Narration\" [(value)]=\"txn.narration\"></spa-text>\r\n <spa-select display=\"Category\" [(value)]=\"txn.categoryID\" [options]=\"categories\" optionDisplay=\"name\" optionValue=\"listItemID\" [defaultFirstValue]=\"true\"></spa-select>\r\n\r\n\r\n\r\n </div>\r\n\r\n</mat-dialog-content>\r\n\r\n\r\n<mat-dialog-actions>\r\n<button mat-button [disabled]=\"isProcessing\" (click)=\"submit()\" cdkFocusInitial>Submit</button>\r\n<button mat-button [disabled]=\"isProcessing\" cdkFocusInitial mat-dialog-close>Cancel</button>\r\n</mat-dialog-actions>\r\n\r\n\r\n\r\n", styles: [".info{color:#4682b4;margin-top:5px;margin-right:5px;font-size:18px}.sign{margin-top:5px;font-size:18px}.actionbuttons{gap:1px}button{padding-left:7px}.mat-mini-fab{width:32px;height:32px}.mat-mini-fab mat-icon{font-size:16px;margin-top:-3px}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i4.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i4.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i4.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i4.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: i7.TextComponent, selector: "spa-text", inputs: ["readonly", "hint", "display", "placeholder", "value", "format", "type", "rows", "width", "options", "optionValue", "required", "min", "max", "regex", "suffix", "infoMessage"], outputs: ["valueChange", "leave", "enterPress", "infoClick"] }, { kind: "component", type: i8.DateComponent, selector: "spa-date", inputs: ["required", "min", "max", "readonly", "hint", "value", "display", "placeholder", "width", "infoMessage"], outputs: ["valueChange", "infoClick"] }, { kind: "component", type: i9.SelectComponent, selector: "spa-select", inputs: ["width", "readonly", "required", "defaultFirstValue", "readonlyMode", "hint", "placeholder", "multiple", "display", "value", "options", "masterOptions", "optionValue", "optionDisplay", "optionDisplayExtra", "nullable", "peekConfig", "infoMessage"], outputs: ["valueChange", "infoClick"] }, { kind: "component", type: i10.MoneyComponent, selector: "spa-money", inputs: ["readonly", "hint", "display", "placeholder", "value", "width", "currency", "required", "min", "max", "infoMessage"], outputs: ["valueChange", "leave", "enterPress", "infoClick"] }, { kind: "pipe", type: i5.TitleCasePipe, name: "titlecase" }] });
|
|
72
72
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: transactDialog, decorators: [{
|
|
73
73
|
type: Component,
|
|
74
74
|
args: [{ selector: 'app-quanityDiag', template: "\r\n<h2 mat-dialog-title>{{action | titlecase}}</h2>\r\n\r\n\r\n<mat-dialog-content class=\"mat-typography\">\r\n\r\n <div class=\"tin-input\" style=\"font-size:14px\">\r\n\r\n <spa-select *ngIf=\"action == 'transfer'\" [(value)]=\"txn.destinationID\" display=\"Transfer to\" [options]=\"accounts\" optionDisplay=\"name\" optionValue=\"accountID\"></spa-select>\r\n\r\n <spa-date display=\"Date\" [(value)]=\"txn.date\"></spa-date>\r\n <spa-money display=\"Amount\" [(value)]=\"txn.amount\"></spa-money>\r\n <spa-text display=\"Narration\" [(value)]=\"txn.narration\"></spa-text>\r\n <spa-select display=\"Category\" [(value)]=\"txn.categoryID\" [options]=\"categories\" optionDisplay=\"name\" optionValue=\"listItemID\" [defaultFirstValue]=\"true\"></spa-select>\r\n\r\n\r\n\r\n </div>\r\n\r\n</mat-dialog-content>\r\n\r\n\r\n<mat-dialog-actions>\r\n<button mat-button [disabled]=\"isProcessing\" (click)=\"submit()\" cdkFocusInitial>Submit</button>\r\n<button mat-button [disabled]=\"isProcessing\" cdkFocusInitial mat-dialog-close>Cancel</button>\r\n</mat-dialog-actions>\r\n\r\n\r\n\r\n", styles: [".info{color:#4682b4;margin-top:5px;margin-right:5px;font-size:18px}.sign{margin-top:5px;font-size:18px}.actionbuttons{gap:1px}button{padding-left:7px}.mat-mini-fab{width:32px;height:32px}.mat-mini-fab mat-icon{font-size:16px;margin-top:-3px}\n"] }]
|
|
@@ -78,7 +78,7 @@ export class WelcomeComponent {
|
|
|
78
78
|
}
|
|
79
79
|
}
|
|
80
80
|
WelcomeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: WelcomeComponent, deps: [{ token: i1.DataServiceLib }, { token: i2.AuthService }], target: i0.ɵɵFactoryTarget.Component });
|
|
81
|
-
WelcomeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: WelcomeComponent, selector: "spa-welcome", ngImport: i0, template: "<label class=\"title\">Welcome, {{username}}</label>\n\n\n\n<!-- terms -->\n<div class=\"mt-3\" *ngIf=\"step=='terms'\">\n\n <label class=\"subtitle text-muted mb-2\" >We care about our users and are dedicated to protecting your data and privacy -\n thats why we want to be clear about what data we collect and how we use it to improve your experience.</label>\n\n <br>\n <spa-check display=\"I agree to the Terms and Privacy Policy\" [(value)]=\"agree\"></spa-check>\n</div>\n\n<!-- owner -->\n<div class=\"mt-3\" *ngIf=\"step=='name' && own\">\n\n <label class=\"subtitle text-muted\" style=\" margin-bottom: 20px;\">The follow steps will guide you to customise your application.</label>\n\n <div style=\"max-width: 400px;\">\n <spa-text display=\"Organisation Name\" [(value)]=\"myTenant.name\" ></spa-text>\n </div>\n\n <label class=\"text-muted\" style=\" font-size: 12px;\">You can change the Organisation's name to your team or company name.</label><br>\n <label class=\"text-muted\" style=\" font-size: 12px;margin-top: 10px;\">The name can be changed later.</label>\n\n</div>\n\n<!-- guest -->\n<div *ngIf=\"step=='hi' && !own\">\n <label class=\"subtitle text-muted\">You are now signed in to {{myTenant.name}}.</label>\n</div>\n\n\n<!-- invitations -->\n<div class=\"mt-3\" *ngIf=\"step=='invitations' && own\">\n\n <label class=\"subtitle text-muted\">You have been requested to join the following organisations. If you accept, you have the option to switch to that org now or stay in you org.</label><br>\n <label class=\"text-muted\" style=\" font-size: 12px;margin-top: 10px;\">You will be able to switch later.</label>\n <spa-invitations-table></spa-invitations-table>\n\n</div>\n\n\n<!-- Actions -->\n<div class=\"mt-3\">\n <button mat-stroked-button color=\"primary\" [disabled]=\"!agree\" (click)=\"next()\">Next <mat-icon>arrow_right_alt</mat-icon></button>\n</div>\n", styles: [".title{margin-top:1em;font-size:28px;font-weight:300}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i6.TextComponent, selector: "spa-text", inputs: ["readonly", "hint", "display", "placeholder", "value", "format", "type", "rows", "width", "options", "optionValue", "required", "min", "max", "regex"], outputs: ["valueChange", "leave", "enterPress"] }, { kind: "component", type: i7.CheckComponent, selector: "spa-check", inputs: ["readonly", "display", "value"], outputs: ["valueChange", "click", "check", "uncheck"] }, { kind: "component", type: i8.InvitationsTableComponent, selector: "spa-invitations-table" }] });
|
|
81
|
+
WelcomeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: WelcomeComponent, selector: "spa-welcome", ngImport: i0, template: "<label class=\"title\">Welcome, {{username}}</label>\n\n\n\n<!-- terms -->\n<div class=\"mt-3\" *ngIf=\"step=='terms'\">\n\n <label class=\"subtitle text-muted mb-2\" >We care about our users and are dedicated to protecting your data and privacy -\n thats why we want to be clear about what data we collect and how we use it to improve your experience.</label>\n\n <br>\n <spa-check display=\"I agree to the Terms and Privacy Policy\" [(value)]=\"agree\"></spa-check>\n</div>\n\n<!-- owner -->\n<div class=\"mt-3\" *ngIf=\"step=='name' && own\">\n\n <label class=\"subtitle text-muted\" style=\" margin-bottom: 20px;\">The follow steps will guide you to customise your application.</label>\n\n <div style=\"max-width: 400px;\">\n <spa-text display=\"Organisation Name\" [(value)]=\"myTenant.name\" ></spa-text>\n </div>\n\n <label class=\"text-muted\" style=\" font-size: 12px;\">You can change the Organisation's name to your team or company name.</label><br>\n <label class=\"text-muted\" style=\" font-size: 12px;margin-top: 10px;\">The name can be changed later.</label>\n\n</div>\n\n<!-- guest -->\n<div *ngIf=\"step=='hi' && !own\">\n <label class=\"subtitle text-muted\">You are now signed in to {{myTenant.name}}.</label>\n</div>\n\n\n<!-- invitations -->\n<div class=\"mt-3\" *ngIf=\"step=='invitations' && own\">\n\n <label class=\"subtitle text-muted\">You have been requested to join the following organisations. If you accept, you have the option to switch to that org now or stay in you org.</label><br>\n <label class=\"text-muted\" style=\" font-size: 12px;margin-top: 10px;\">You will be able to switch later.</label>\n <spa-invitations-table></spa-invitations-table>\n\n</div>\n\n\n<!-- Actions -->\n<div class=\"mt-3\">\n <button mat-stroked-button color=\"primary\" [disabled]=\"!agree\" (click)=\"next()\">Next <mat-icon>arrow_right_alt</mat-icon></button>\n</div>\n", styles: [".title{margin-top:1em;font-size:28px;font-weight:300}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i6.TextComponent, selector: "spa-text", inputs: ["readonly", "hint", "display", "placeholder", "value", "format", "type", "rows", "width", "options", "optionValue", "required", "min", "max", "regex", "suffix", "infoMessage"], outputs: ["valueChange", "leave", "enterPress", "infoClick"] }, { kind: "component", type: i7.CheckComponent, selector: "spa-check", inputs: ["readonly", "display", "value"], outputs: ["valueChange", "click", "check", "uncheck"] }, { kind: "component", type: i8.InvitationsTableComponent, selector: "spa-invitations-table" }] });
|
|
82
82
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: WelcomeComponent, decorators: [{
|
|
83
83
|
type: Component,
|
|
84
84
|
args: [{ selector: 'spa-welcome', template: "<label class=\"title\">Welcome, {{username}}</label>\n\n\n\n<!-- terms -->\n<div class=\"mt-3\" *ngIf=\"step=='terms'\">\n\n <label class=\"subtitle text-muted mb-2\" >We care about our users and are dedicated to protecting your data and privacy -\n thats why we want to be clear about what data we collect and how we use it to improve your experience.</label>\n\n <br>\n <spa-check display=\"I agree to the Terms and Privacy Policy\" [(value)]=\"agree\"></spa-check>\n</div>\n\n<!-- owner -->\n<div class=\"mt-3\" *ngIf=\"step=='name' && own\">\n\n <label class=\"subtitle text-muted\" style=\" margin-bottom: 20px;\">The follow steps will guide you to customise your application.</label>\n\n <div style=\"max-width: 400px;\">\n <spa-text display=\"Organisation Name\" [(value)]=\"myTenant.name\" ></spa-text>\n </div>\n\n <label class=\"text-muted\" style=\" font-size: 12px;\">You can change the Organisation's name to your team or company name.</label><br>\n <label class=\"text-muted\" style=\" font-size: 12px;margin-top: 10px;\">The name can be changed later.</label>\n\n</div>\n\n<!-- guest -->\n<div *ngIf=\"step=='hi' && !own\">\n <label class=\"subtitle text-muted\">You are now signed in to {{myTenant.name}}.</label>\n</div>\n\n\n<!-- invitations -->\n<div class=\"mt-3\" *ngIf=\"step=='invitations' && own\">\n\n <label class=\"subtitle text-muted\">You have been requested to join the following organisations. If you accept, you have the option to switch to that org now or stay in you org.</label><br>\n <label class=\"text-muted\" style=\" font-size: 12px;margin-top: 10px;\">You will be able to switch later.</label>\n <spa-invitations-table></spa-invitations-table>\n\n</div>\n\n\n<!-- Actions -->\n<div class=\"mt-3\">\n <button mat-stroked-button color=\"primary\" [disabled]=\"!agree\" (click)=\"next()\">Next <mat-icon>arrow_right_alt</mat-icon></button>\n</div>\n", styles: [".title{margin-top:1em;font-size:28px;font-weight:300}\n"] }]
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
|
+
import { Observable } from 'rxjs';
|
|
3
|
+
import { DetailsDialogProcessor } from '../classes/TinCore';
|
|
2
4
|
import * as i0 from "@angular/core";
|
|
3
5
|
import * as i1 from "@angular/material/dialog";
|
|
4
6
|
import * as i2 from "@angular/cdk/layout";
|
|
@@ -26,6 +28,47 @@ export class DialogService {
|
|
|
26
28
|
dialogRef: dialogRef
|
|
27
29
|
};
|
|
28
30
|
}
|
|
31
|
+
openConfiguredDetailsDialog(buttonName, row, config, dialogComponent, column) {
|
|
32
|
+
const button = column ? { name: column.name, dialog: true, detailsConfig: column.detailsConfig } : config.buttons?.find(b => b.name === buttonName);
|
|
33
|
+
if (!button || !button.dialog) {
|
|
34
|
+
return new Observable(observer => {
|
|
35
|
+
observer.next({ action: 'doAction', name: buttonName, row: row });
|
|
36
|
+
observer.complete();
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
let dialogConfig = {
|
|
40
|
+
formConfig: config.formConfig,
|
|
41
|
+
buttons: config.buttons,
|
|
42
|
+
details: row,
|
|
43
|
+
heroField: config.heroField,
|
|
44
|
+
};
|
|
45
|
+
if (button.detailsConfig) {
|
|
46
|
+
dialogConfig = buttonName === 'create' ? button.detailsConfig : DetailsDialogProcessor.processDetailsConfig(button.detailsConfig, row);
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
dialogConfig = DetailsDialogProcessor.processDetailsConfig(dialogConfig, row);
|
|
50
|
+
}
|
|
51
|
+
if (button.detailsConfig && button.detailsConfig.mode) {
|
|
52
|
+
dialogConfig.formConfig.mode = button.detailsConfig.mode;
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
dialogConfig.formConfig.mode = buttonName === 'create' ? 'create' : (buttonName === 'edit' ? 'edit' : 'view');
|
|
56
|
+
}
|
|
57
|
+
if (buttonName === 'create') {
|
|
58
|
+
dialogConfig.heroField = config.heroField;
|
|
59
|
+
dialogConfig.heroValue = config.heroValue;
|
|
60
|
+
}
|
|
61
|
+
const dialogResult = this.openDetailsDialog(dialogConfig, dialogComponent);
|
|
62
|
+
return new Observable(observer => {
|
|
63
|
+
dialogResult.afterClosed.subscribe(result => {
|
|
64
|
+
observer.next(result);
|
|
65
|
+
observer.complete();
|
|
66
|
+
});
|
|
67
|
+
dialogResult.inputChange.subscribe(change => {
|
|
68
|
+
observer.next({ action: 'inputChange', change: change });
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
}
|
|
29
72
|
}
|
|
30
73
|
DialogService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DialogService, deps: [{ token: i1.MatDialog }, { token: i2.BreakpointObserver }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
31
74
|
DialogService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DialogService, providedIn: 'root' });
|
|
@@ -35,4 +78,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
35
78
|
providedIn: 'root'
|
|
36
79
|
}]
|
|
37
80
|
}], ctorParameters: function () { return [{ type: i1.MatDialog }, { type: i2.BreakpointObserver }]; } });
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90aW4tc3BhL3NyYy9saWIvc2VydmljZXMvZGlhbG9nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBSWxDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7O0FBSzVELE1BQU0sT0FBTyxhQUFhO0lBR3hCLFlBQ1UsTUFBaUIsRUFDakIsa0JBQXNDO1FBRHRDLFdBQU0sR0FBTixNQUFNLENBQVc7UUFDakIsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQUp4QyxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQU0xQiw2QkFBNkI7UUFDN0IsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUF1QixFQUFFLEVBQUU7WUFDNUYsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGlCQUFpQixDQUFLLE1BQTJCLEVBQUUsZUFBMEM7UUFLM0YsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLFlBQVksRUFBRSxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBRWxELE1BQU0sYUFBYSxHQUFHO1lBQ3BCLEtBQUssRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztZQUNqRSxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxD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QyxDQUFDO2dCQUN0QixRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDdEIsQ0FBQyxDQUFDLENBQUM7WUFFSCxZQUFZLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDMUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7WUFDM0QsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OzBHQXZGVSxhQUFhOzhHQUFiLGFBQWEsY0FGWixNQUFNOzJGQUVQLGFBQWE7a0JBSHpCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2csIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQ29sdW1uLCBEZXRhaWxzRGlhbG9nQ29uZmlnLCBUYWJsZUNvbmZpZyB9IGZyb20gJy4uL2NsYXNzZXMvQ2xhc3Nlcyc7XHJcbi8vIGltcG9ydCB7IERldGFpbHNEaWFsb2cgfSBmcm9tICcuLi9jb21wb25lbnRzL3RhYmxlL2RldGFpbHNEaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQnJlYWtwb2ludE9ic2VydmVyLCBCcmVha3BvaW50U3RhdGUgfSBmcm9tICdAYW5ndWxhci9jZGsvbGF5b3V0JztcclxuaW1wb3J0IHsgRGV0YWlsc0RpYWxvZ1Byb2Nlc3NvciB9IGZyb20gJy4uL2NsYXNzZXMvVGluQ29yZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEaWFsb2dTZXJ2aWNlIHtcclxuICBwcml2YXRlIHNtYWxsU2NyZWVuID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZyxcclxuICAgIHByaXZhdGUgYnJlYWtwb2ludE9ic2VydmVyOiBCcmVha3BvaW50T2JzZXJ2ZXJcclxuICApIHtcclxuICAgIC8vIERldGVjdCBzY3JlZW4gc2l6ZSBjaGFuZ2VzXHJcbiAgICB0aGlzLmJyZWFrcG9pbnRPYnNlcnZlci5vYnNlcnZlKFtcIihtYXgtd2lkdGg6IDYwMHB4KVwiXSkuc3Vic2NyaWJlKChyZXN1bHQ6IEJyZWFrcG9pbnRTdGF0ZSkgPT4ge1xyXG4gICAgICB0aGlzLnNtYWxsU2NyZWVuID0gcmVzdWx0Lm1hdGNoZXM7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9wZW5EZXRhaWxzRGlhbG9nPFQ+KCBjb25maWc6IERldGFpbHNEaWFsb2dDb25maWcsIGRpYWxvZ0NvbXBvbmVudDogbmV3ICguLi5hcmdzOiBhbnlbXSkgPT4gVCAgKToge1xyXG4gICAgYWZ0ZXJDbG9zZWQ6IE9ic2VydmFibGU8YW55PixcclxuICAgIGlucHV0Q2hhbmdlOiBPYnNlcnZhYmxlPGFueT4sXHJcbiAgICBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxUPlxyXG4gIH0ge1xyXG4gICAgY29uc3QgaGFzVGFibGVzID0gY29uZmlnLnRhYmxlQ29uZmlncz8ubGVuZ3RoID4gMDtcclxuXHJcbiAgICBjb25zdCBkaWFsb2dPcHRpb25zID0ge1xyXG4gICAgICB3aWR0aDogdGhpcy5zbWFsbFNjcmVlbiA/ICc5MDBweCcgOiAoaGFzVGFibGVzID8gJzkwJScgOiAnOTAwcHgnKSxcclxuICAgICAgaGVpZ2h0OiBoYXNUYWJsZXMgPyAnOTAlJyA6ICdhdXRvJyxcclxuICAgICAgZGF0YTogY29uZmlnXHJcbiAgICB9O1xyXG5cclxuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oZGlhbG9nQ29tcG9uZW50LCBkaWFsb2dPcHRpb25zKTtcclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBhZnRlckNsb3NlZDogZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCksXHJcbiAgICAgIGlucHV0Q2hhbmdlOiAoZGlhbG9nUmVmLmNvbXBvbmVudEluc3RhbmNlIGFzIGFueSkuaW5wdXRDaGFuZ2UsXHJcbiAgICAgIGRpYWxvZ1JlZjogZGlhbG9nUmVmXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgb3BlbkNvbmZpZ3VyZWREZXRhaWxzRGlhbG9nPFQ+KCBidXR0b25OYW1lOiBzdHJpbmcsIHJvdzogYW55LCBjb25maWc6IFRhYmxlQ29uZmlnIHwgRGV0YWlsc0RpYWxvZ0NvbmZpZywgZGlhbG9nQ29tcG9uZW50OiBuZXcgKC4uLmFyZ3M6IGFueVtdKSA9PiBULCBjb2x1bW4/OiBDb2x1bW4gICk6IE9ic2VydmFibGU8YW55PiB7XHJcblxyXG4gICAgY29uc3QgYnV0dG9uID0gY29sdW1uID8geyBuYW1lOiBjb2x1bW4ubmFtZSwgZGlhbG9nOiB0cnVlLCBkZXRhaWxzQ29uZmlnOiBjb2x1bW4uZGV0YWlsc0NvbmZpZyB9IDogY29uZmlnLmJ1dHRvbnM/LmZpbmQoYiA9PiBiLm5hbWUgPT09IGJ1dHRvbk5hbWUpO1xyXG5cclxuICAgIGlmICghYnV0dG9uIHx8ICFidXR0b24uZGlhbG9nKSB7XHJcbiAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZShvYnNlcnZlciA9PiB7XHJcbiAgICAgICAgb2JzZXJ2ZXIubmV4dCh7IGFjdGlvbjogJ2RvQWN0aW9uJywgbmFtZTogYnV0dG9uTmFtZSwgcm93OiByb3cgfSk7XHJcbiAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGxldCBkaWFsb2dDb25maWc6IERldGFpbHNEaWFsb2dDb25maWcgPSB7XHJcbiAgICAgIGZvcm1Db25maWc6IGNvbmZpZy5mb3JtQ29uZmlnLFxyXG4gICAgICBidXR0b25zOiBjb25maWcuYnV0dG9ucyxcclxuICAgICAgZGV0YWlsczogcm93LFxyXG4gICAgICBoZXJvRmllbGQgOiBjb25maWcuaGVyb0ZpZWxkLFxyXG5cclxuICAgIH07XHJcblxyXG5cclxuICAgIGlmIChidXR0b24uZGV0YWlsc0NvbmZpZykge1xyXG4gICAgICBkaWFsb2dDb25maWcgPSBidXR0b25OYW1lID09PSAnY3JlYXRlJyA/IGJ1dHRvbi5kZXRhaWxzQ29uZmlnIDogRGV0YWlsc0RpYWxvZ1Byb2Nlc3Nvci5wcm9jZXNzRGV0YWlsc0NvbmZpZyhidXR0b24uZGV0YWlsc0NvbmZpZywgcm93KTtcclxuICAgIH1lbHNle1xyXG4gICAgICBkaWFsb2dDb25maWcgPSBEZXRhaWxzRGlhbG9nUHJvY2Vzc29yLnByb2Nlc3NEZXRhaWxzQ29uZmlnKGRpYWxvZ0NvbmZpZywgcm93KTtcclxuICAgIH1cclxuXHJcblxyXG5cclxuICAgIGlmIChidXR0b24uZGV0YWlsc0NvbmZpZyAmJiBidXR0b24uZGV0YWlsc0NvbmZpZy5tb2RlKSB7XHJcbiAgICAgIGRpYWxvZ0NvbmZpZy5mb3JtQ29uZmlnLm1vZGUgPSBidXR0b24uZGV0YWlsc0NvbmZpZy5tb2RlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZGlhbG9nQ29uZmlnLmZvcm1Db25maWcubW9kZSA9IGJ1dHRvbk5hbWUgPT09ICdjcmVhdGUnID8gJ2NyZWF0ZScgOiAoYnV0dG9uTmFtZSA9PT0gJ2VkaXQnID8gJ2VkaXQnIDogJ3ZpZXcnKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoYnV0dG9uTmFtZSA9PT0gJ2NyZWF0ZScpIHtcclxuICAgICAgZGlhbG9nQ29uZmlnLmhlcm9GaWVsZCA9IGNvbmZpZy5oZXJvRmllbGQ7XHJcbiAgICAgIGRpYWxvZ0NvbmZpZy5oZXJvVmFsdWUgPSBjb25maWcuaGVyb1ZhbHVlO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGRpYWxvZ1Jlc3VsdCA9IHRoaXMub3BlbkRldGFpbHNEaWFsb2coZGlhbG9nQ29uZmlnLCBkaWFsb2dDb21wb25lbnQpO1xyXG5cclxuICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZShvYnNlcnZlciA9PiB7XHJcbiAgICAgIGRpYWxvZ1Jlc3VsdC5hZnRlckNsb3NlZC5zdWJzY3JpYmUocmVzdWx0ID0+IHtcclxuICAgICAgICBvYnNlcnZlci5uZXh0KHJlc3VsdCk7XHJcbiAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgICBkaWFsb2dSZXN1bHQuaW5wdXRDaGFuZ2Uuc3Vic2NyaWJlKGNoYW5nZSA9PiB7XHJcbiAgICAgICAgb2JzZXJ2ZXIubmV4dCh7IGFjdGlvbjogJ2lucHV0Q2hhbmdlJywgY2hhbmdlOiBjaGFuZ2UgfSk7XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -6,10 +6,14 @@ export class TableConfigService {
|
|
|
6
6
|
if (!config?.columns) {
|
|
7
7
|
return [];
|
|
8
8
|
}
|
|
9
|
+
let visibleColumns = this.getVisibleColumns(config);
|
|
9
10
|
if (smallScreen && config.minColumns) {
|
|
10
|
-
return config.minColumns.filter(col =>
|
|
11
|
+
return config.minColumns.filter(col => visibleColumns.some(x => x.name === col));
|
|
11
12
|
}
|
|
12
|
-
return
|
|
13
|
+
return visibleColumns.map(({ name }) => name);
|
|
14
|
+
}
|
|
15
|
+
getVisibleColumns(config) {
|
|
16
|
+
return config.columns.filter(column => !column.hiddenCondition || !column.hiddenCondition(config.parentData));
|
|
13
17
|
}
|
|
14
18
|
getActionsWidth(buttons) {
|
|
15
19
|
return `${buttons?.length * 40 + 20}px`;
|
|
@@ -23,4 +27,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
23
27
|
providedIn: 'root'
|
|
24
28
|
}]
|
|
25
29
|
}] });
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
30
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29uZmlnLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90aW4tc3BhL3NyYy9saWIvc2VydmljZXMvdGFibGUtY29uZmlnLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsMEJBQTBCO0FBQzFCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTTNDLE1BQU0sT0FBTyxrQkFBa0I7SUFFN0IsVUFBVSxDQUFDLE1BQW1CLEVBQUUsV0FBb0I7UUFFbEQsSUFBSSxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUU7WUFDcEIsT0FBTyxFQUFFLENBQUM7U0FDWDtRQUVELElBQUksY0FBYyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUdwRCxJQUFJLFdBQVcsSUFBSSxNQUFNLENBQUMsVUFBVSxFQUFFO1lBQ3BDLE9BQU8sTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FDcEMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssR0FBRyxDQUFDLENBQ3pDLENBQUM7U0FDSDtRQUVELE9BQU8sY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxNQUFtQjtRQUNuQyxPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQ3BDLENBQUMsTUFBTSxDQUFDLGVBQWUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUN0RSxDQUFDO0lBQ0osQ0FBQztJQUVELGVBQWUsQ0FBQyxPQUFpQjtRQUMvQixPQUFPLEdBQUcsT0FBTyxFQUFFLE1BQU0sR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUM7SUFDMUMsQ0FBQzs7K0dBNUJVLGtCQUFrQjttSEFBbEIsa0JBQWtCLGNBRmpCLE1BQU07MkZBRVAsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbIi8vIHRhYmxlLWNvbmZpZy5zZXJ2aWNlLnRzXHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQnV0dG9uLCBDb2x1bW4sIFRhYmxlQ29uZmlnIH0gZnJvbSAnLi4vY2xhc3Nlcy9DbGFzc2VzJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFRhYmxlQ29uZmlnU2VydmljZSB7XHJcblxyXG4gIHNldENvbHVtbnMoY29uZmlnOiBUYWJsZUNvbmZpZywgc21hbGxTY3JlZW46IGJvb2xlYW4pOiBzdHJpbmdbXSB7XHJcblxyXG4gICAgaWYgKCFjb25maWc/LmNvbHVtbnMpIHtcclxuICAgICAgcmV0dXJuIFtdO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCB2aXNpYmxlQ29sdW1ucyA9IHRoaXMuZ2V0VmlzaWJsZUNvbHVtbnMoY29uZmlnKTtcclxuXHJcblxyXG4gICAgaWYgKHNtYWxsU2NyZWVuICYmIGNvbmZpZy5taW5Db2x1bW5zKSB7XHJcbiAgICAgIHJldHVybiBjb25maWcubWluQ29sdW1ucy5maWx0ZXIoY29sID0+XHJcbiAgICAgICAgdmlzaWJsZUNvbHVtbnMuc29tZSh4ID0+IHgubmFtZSA9PT0gY29sKVxyXG4gICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB2aXNpYmxlQ29sdW1ucy5tYXAoKHsgbmFtZSB9KSA9PiBuYW1lKTtcclxuICB9XHJcblxyXG4gIGdldFZpc2libGVDb2x1bW5zKGNvbmZpZzogVGFibGVDb25maWcpOiBDb2x1bW5bXSB7XHJcbiAgICByZXR1cm4gY29uZmlnLmNvbHVtbnMuZmlsdGVyKGNvbHVtbiA9PlxyXG4gICAgICAhY29sdW1uLmhpZGRlbkNvbmRpdGlvbiB8fCAhY29sdW1uLmhpZGRlbkNvbmRpdGlvbihjb25maWcucGFyZW50RGF0YSlcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRBY3Rpb25zV2lkdGgoYnV0dG9uczogQnV0dG9uW10pOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGAke2J1dHRvbnM/Lmxlbmd0aCAqIDQwICsgMjB9cHhgO1xyXG4gIH1cclxufVxyXG4iXX0=
|