A library of lightweight Salesforce Lightning components that simplify developing in Lightning by automatically:
- Honoring SObject-level security & field-level security for displaying fields & allowing fields to be edited
 - Displaying the correct input field type based on the field's metadata, including lookup fields & support for polymorphic fields like Task.WhoId & Task.WhatId
 - Translating SObject labels, field labels and picklist options
 
- simpleAdmin.cmp - this is a demo component that provides examples of how to use the other components. It's also a handy admin tool to quickly get information about your org.
 
Several no-markup components are included. These can be used to dynamically access metadata about your org in Lightning components
- currentUser.cmp: return info about the current user. Additional user fields can be returned by setting currentUser.additionalFieldApiNames
 - environmentMetadata.cmp: returns an instance of EnvironmentMetadata for the specified SObjectenvironmentMetadata.cmp
 - fieldMetadata.cmp: returns an instance of FieldMetadata for the specified SObjectfieldMetadata.cmp
 - fieldSetMetadata.cmp: returns an instance of FieldSetMetadata for the specified SObjectfieldSetMetadata.cmp
 - listviewMetadata.cmp: returns an instance of ListviewMetadata for the specified SObjectlistviewMetadata.cmp
 - queueMetadata.cmp: returns an instance of QueueMetadata for the specified SObjectqueueMetadata.cmp
 - recordTypeMetadata.cmp: returns an instance of RecordTypeMetadata for the specified SObjectrecordTypeMetadata.cmp
 - sobjectMetadata.cmp: returns an instance of SObjectMetadata for the specified SObjectsobjectMetadata.cmp
 
These components are used to build UIs in Lightning - several of these leverage the metadata service components
- fieldLabel.cmp: Displays the localized version of the provided field's label
 - inputField.cmp: Provides a simple way to display an SObject's field as an input (editable) that automatically determines sobject-level security, field-level security, the field type, field label, etc. Attributes can be overridden to allow control over the field when needed
 - lookup.cmp: Provides lookup functionality that Salesforce does not provide for developers in LEX. This component is used by inputField.cmp for lookup fields.
 - modal.cmp: Generates a modal window and displays your contents inside
 - objectPropertyValue.cmp: Displays the specified property of any javascript object - this is helpful since Lightning does not allow you to dynamically get a property value by name (like 'myObject[someProperty]')
 - outputField.cmp: Provides a simple way to display an SObject's field as an output (read-only) that automatically determines sobject-level security, field-level security, the field type, field label, etc. Attributes can be overridden to allow control over the field when needed
 - sobjectLabel.cmp: Displays the localized version of the provided SObject's label
 
Contains methods for describing your orgs metadata and returning the info as aura-friendly objects that can be consumed by Lightning Components
- getSObjectMetadata(String sobjectName) - returns an instance of LightningMetadataController.SObjectMetadata
 - getFieldMetadata(String sobjectName, String fieldName) - returns an instance of LightningMetadataController.FieldMetadata
 
The remaining metadata classes (SObjectMetadata.cls, FieldMetadata.cls, etc) are part of the SimpleMetadata project - any bugs or enhancements for those classes are maintained in that project, and the latest version is used in this repo.