{"version":3,"sources":["Themes/Default/Content/ts/Shared/Buttons/StandardButtons/StandardButtonsBase.ts"],"names":[],"mappings":"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","file":"StandardButtonsBase.js","sourcesContent":["import * as ko from \"knockout\";\nimport * as localisationHelper from 'localisationHelper';\n\nimport { IResourceText } from \"Content/ts/Shared/Localisation/Models/resourceText\";\n\nexport interface IStandardButtonsBase {\n ClickEvent: Function; // Required\n ButtonText: string | KnockoutObservable; // Required\n LocButtonText: IResourceText;\n\n FullLengthButton: boolean; // Optional\n ShowLoading: KnockoutObservable; // Optional\n DisplayCondition: KnockoutObservable; // Optional\n DisableCondition: KnockoutObservable; // Optional\n CssClasses: string; // Optional\n Id: string; // Optional\n TestId?: string | string[]; // Optional\n AriaControls: string | KnockoutObservable // Optional\n AriaExpanded: boolean| KnockoutObservable // Optional\n}\n\nexport default class StandardButtonsBase {\n fullLengthButton: boolean;\n\n clickEvent: Function;\n\n displayCondition: KnockoutObservable;\n disableCondition: KnockoutObservable;\n showLoading: KnockoutObservable;\n\n buttonText: string | KnockoutObservable;\n id: string;\n testId: string | string[];\n ariaControls: string | KnockoutObservable;\n ariaExpanded: boolean | KnockoutObservable;\n ariaExpandedComputed: KnockoutComputed;\n\n _cssClasses: string;\n cssClasses: KnockoutComputed;\n\n constructor(params: IStandardButtonsBase) {\n // Provided Component Properties\n this.id = params.Id;\n this.testId = params.TestId ?? '';\n\n if (params.ButtonText && params.LocButtonText) {\n throw new Error(\"Please only provide text or loc text for the button\");\n }\n\n if (!params.ButtonText && !params.LocButtonText) {\n throw new Error(\"Please provide text or loc text for the button\");\n }\n\n this.buttonText = (params.ButtonText)\n ? params.ButtonText\n : localisationHelper.getString(params.LocButtonText.Section, params.LocButtonText.Key);\n\n this.clickEvent = params.ClickEvent;\n this.fullLengthButton = params.FullLengthButton || false;\n this.displayCondition = params.DisplayCondition || ko.observable(true);\n this.disableCondition = params.DisableCondition || ko.observable(false);\n this.showLoading = params.ShowLoading || ko.observable(false);\n this._cssClasses = params.CssClasses || \"\";\n this.ariaControls = params.AriaControls ?? undefined;\n this.ariaExpanded = params.AriaExpanded ?? undefined;\n \n if (this.fullLengthButton) {\n this._cssClasses += \" btn-block\";\n }\n\n this.setupComputeds();\n }\n\n private setupComputeds() {\n this.cssClasses = ko.pureComputed(() => this._cssClasses);\n\n this.ariaExpandedComputed = ko.pureComputed(() => {\n //In order to meet accessibility, when the value of 'aria-computed' is false, \n // we must still have the attribute on the element and have it explicitly set to \"false\".\n // However, when knockout encounters a false boolean in the attr binding, it removes the attribute\n // Therefore to work around this, we must toString it and bind that.\n var value = ko.unwrap(this.ariaExpanded);\n\n if (value === null || value === undefined) {\n return undefined;\n }\n return value.toString();\n });\n }\n\n onClick() {\n if (this.disableCondition()) {\n return;\n }\n\n this.clickEvent();\n }\n}\n\nconst buttonDarkOutline = \"button-dark-outline\";\nko.components.unregister(buttonDarkOutline);\nko.components.register(buttonDarkOutline, {\n viewModel: StandardButtonsBase,\n template: { require: `text!Content/ts/Shared/Buttons/StandardButtons/Dark/${buttonDarkOutline}.html` }\n});\n\nconst buttonSuccessComponent = \"button-success\";\nko.components.unregister(buttonSuccessComponent);\nko.components.register(buttonSuccessComponent, {\n viewModel: StandardButtonsBase,\n template: { require: `text!Content/ts/Shared/Buttons/StandardButtons/Success/${buttonSuccessComponent}.html` }\n});\n\nconst buttonDangerComponent = \"button-danger\";\nko.components.unregister(buttonDangerComponent);\nko.components.register(buttonDangerComponent, {\n viewModel: StandardButtonsBase,\n template: { require: `text!Content/ts/Shared/Buttons/StandardButtons/Danger/${buttonDangerComponent}.html` }\n});\n\nconst buttonDangerInverse = \"button-danger-inverse\";\nko.components.unregister(buttonDangerInverse);\nko.components.register(buttonDangerInverse, {\n viewModel: StandardButtonsBase,\n template: { require: `text!Content/ts/Shared/Buttons/StandardButtons/Danger/${buttonDangerInverse}.html` }\n});"]}