A#Ą2018.1.6f1ţ˙˙˙˙˙’3$řĚuń옲e+ Í=^7€˙˙˙˙€Ś€˛€ЀŚ€Ś€Ś€#Ś€+H€3˙˙˙˙€1€1€˙˙˙˙@ހ€ Q€j€ H€<˙˙˙˙ €1€1€˙˙˙˙ @ހ€ Q€j€Ő€I˙˙˙˙€1€1€˙˙˙˙Ŕހ€H€j€˙˙˙˙€1€1€˙˙˙˙@ހ€Q€j€™€PAssetMetaDataguiddata[0]data[1]data[2]data[3]pathNameoriginalNamelabelsassetStoreRef ˙˙ŢšőRkVc}­j˘9Ź­;Ę7€˙˙˙˙€Ś€˛€ Ő€ ހ#€.€,€†€Ä€ ހ#€.€,€H€Ť€˙˙˙˙€1€1€˙˙˙˙ @ހ€ Q€j€ ń€5˙˙˙˙ €1€1€˙˙˙˙ €ހ€€j€˙˙˙˙€G›€˙˙˙˙€H€]˙˙˙˙€1€1€˙˙˙˙@ހ€Q€j€H€b˙˙˙˙€1€1€˙˙˙˙@ހ€Q€j€H€k˙˙˙˙€1€1€˙˙˙˙@ހ€Q€j€y€ € ހ#€.€,€Ő€p˙˙˙˙ €1€1€˙˙˙˙!Ŕހ€"€j€˙˙˙˙#€H€›€˙˙˙˙$€1€1€˙˙˙˙%@ހ€&Q€j€'y€ € (ހ#)€.€,*€ €„+@ž€“ ,@ހ#-€.€,.€H€˜˙˙˙˙/€1€1€˙˙˙˙0@ހ€1Q€j€2H€Ł˙˙˙˙3€1€1€˙˙˙˙4@ހ€5Q€j€6H€ľ˙˙˙˙7€1€1€˙˙˙˙8@ހ€9Q€j€:MonoImporterPPtrm_FileIDm_PathIDm_ExternalObjectsSourceAssetIdentifiertypeassemblynamem_DefaultReferencesexecutionOrdericonm_UserDatam_AssetBundleNamem_AssetBundleVariants˙˙˙8-l'€Łć„hŒÎA,Œ€7€˙˙˙˙€Ś€˛€Ő€ ހ€.€€†€Ä€ ހ€.€€H€Ť€˙˙˙˙€1€1€˙˙˙˙ @ހ€ Q€j€ H€ę€˙˙˙˙ €1€1€˙˙˙˙ @ހ€Q€j€ń€(˙˙˙˙€1€1€˙˙˙˙€ހ€€j€˙˙˙˙€H€›€˙˙˙˙€1€1€˙˙˙˙@ހ€Q€j€y€ € ހ€.€€y€< ހ€.€€ހCH€T˙˙˙˙€1€1€˙˙˙˙ @ހ€!Q€j€"H€`˙˙˙˙#€1€1€˙˙˙˙$@ހ€%Q€j€&H€l˙˙˙˙'€1€1€˙˙˙˙(@ހ€)Q€j€*L€{+PPtrm_FileIDm_PathIDm_DefaultReferencesm_Iconm_ExecutionOrderm_ClassNamem_Namespacem_AssemblyNamem_IsEditorScriptppDŕyŻ¸él¸ZK#ţFn§űGi€ŠFPackages/com.unity.package-manager-ui/Editor/Sources/UI/PackageItem.cs PackageItemFusing UnityEngine; using UnityEngine.Experimental.UIElements; using System; namespace UnityEditor.PackageManager.UI { internal class PackageItemFactory : UxmlFactory { protected override PackageItem DoCreate(IUxmlAttributes bag, CreationContext cc) { return new PackageItem(); } } internal class PackageItem : VisualElement { public static string SelectedClassName = "selected"; public event Action OnSelected = delegate { }; private const string loadingSpinnerId = "loadingSpinnerContainer"; private readonly VisualElement root; private string currentStateClass; public Package package { get; private set; } public PackageItem previousItem; public PackageItem nextItem; public PackageGroup packageGroup; public PackageItem(Package package = null) { root = Resources.Load("Templates/PackageItem").CloneTree(null); Add(root); root.Q(loadingSpinnerId).clippingOptions = ClippingOptions.NoClipping; root.AddManipulator(new Clickable(Select)); if (package != null) SetItem(package); } // Package version to display public PackageInfo Display(Package package) { return PackageCollection.Instance.Filter == PackageFilter.All || package.Current == null ? package.Latest : package.Current; } private void Select() { OnSelected(this); } public void SetSelected(bool value) { if (value) PackageContainer.AddToClassList(SelectedClassName); else PackageContainer.RemoveFromClassList(SelectedClassName); Spinner.InvertColor = value; } private void SetItem(Package package) { var displayPackage = Display(package); if (displayPackage == null) return; this.package = package; OnPackageChanged(); this.package.AddSignal.WhenOperation(OnPackageAdd); this.package.RemoveSignal.WhenOperation(OnPackageRemove); } private void OnPackageRemove(IRemoveOperation operation) { operation.OnOperationError += error => Spinner.Stop(); OnPackageUpdate(); } private void OnPackageAdd(IAddOperation operation) { operation.OnOperationError += error => Spinner.Stop(); OnPackageUpdate(); } private void OnPackageChanged() { var displayPackage = Display(package); if (displayPackage == null) return; NameLabel.text = displayPackage.DisplayName; VersionLabel.text = displayPackage.Version.ToString(); var stateClass = GetIconStateId(package.Current ?? package.Latest); StateLabel.RemoveFromClassList(currentStateClass); StateLabel.AddToClassList(stateClass); if(package.Current == null && PackageCollection.Instance.Filter == PackageFilter.All) PackageContainer.AddToClassList("not-installed"); else PackageContainer.RemoveFromClassList("not-installed"); UIUtils.SetElementDisplay(VersionLabel, !PackageInfo.IsModule(package.Name)); currentStateClass = stateClass; if (displayPackage.State != PackageState.InProgress && Spinner.Started) Spinner.Stop(); } private void OnPackageUpdate() { Spinner.Start(); } private Label NameLabel { get { return root.Q