--!strict local Sizing = require(script.Parent.Sizing) local Types = require(script.Parent.Types) local Bindings = {} function Bindings.ApplyAlpha(Helper: Types.Helper) local Alpha = Helper.Label.TextTransparency for _, Part in Helper.TextParts do Part.TextTransparency = Alpha end for _, Part in Helper.ImageParts do Part.ImageTransparency = Alpha end end function Bindings.ApplyScaledSize(Helper: Types.Helper) if not Helper.Scaled then return end local Box = Helper.Label.AbsoluteSize if Box.Y <= 0 then return end local Version = Helper.Version local Size = Sizing.Resolve(Helper.BareText, Helper.Label.FontFace, Box) if Helper.Version ~= Version then return end for _, Part in Helper.TextParts do Part.TextSize = Size end end function Bindings.Connect(Helper: Types.Helper, Version: number) Helper:ApplyAlpha() Helper.AlphaConnection = Helper.Label:GetPropertyChangedSignal("TextTransparency"):Connect(function() Helper:ApplyAlpha() end) if not Helper.Scaled then return end Helper.Connection = Helper.Label:GetPropertyChangedSignal("AbsoluteSize"):Connect(function() Helper:ApplyScaledSize() end) if Helper.Label.AbsoluteSize.Y <= 0 then task.defer(function() if Helper.Version == Version then Helper:ApplyScaledSize() end end) end end function Bindings.Disconnect(Helper: Types.Helper) local Connection = Helper.Connection if Connection then Connection:Disconnect() Helper.Connection = nil end local AlphaConnection = Helper.AlphaConnection if AlphaConnection then AlphaConnection:Disconnect() Helper.AlphaConnection = nil end end return Bindings