diff --git a/.gitignore b/.gitignore index 85105d3..3c99507 100644 --- a/.gitignore +++ b/.gitignore @@ -38,4 +38,9 @@ nosetests.xml # idea .idea/* sublime.py -sublime_plugin.py \ No newline at end of file +sublime_plugin.py + +# temp remove +apex_tag.py +aura_tag.py +sp.py \ No newline at end of file diff --git a/HISTORY.rst b/HISTORY.rst index 870b489..1ca9c64 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -1,11 +1,20 @@ .. :changelog: Release History - --------------- +Release 3.5.7 (2020-03-26) +++++++++++++++++++++++++++++++++++++ + +* Refine Creating Lightning Web Component (``lwc``) process +* Add Retrieving, Destructing, Deploying lwc from both sidebar and context menu +* Add Creating CSS style, SVG file for lwc in context menu +* Fix auto completion for aura component bug +* Fix issue #198 + + Release 3.5.4 (2019-07-31) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Add component tag attr desc completion when hover on attr * Add user interface api doc reference toc * lwc supports label, staticresource, custom object and fields import @@ -14,20 +23,20 @@ Release 3.5.4 (2019-07-31) Release 3.5.4 (2018-02-12) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Fix issue #172 * Fix issue #173 Release 3.5.3 (2018-02-06) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Add missing base components from lightning developer guide by script: https://gist.github.com/xjsender/265d237fbeafebabff6c8669f9359fff#file-read-json-from-lightning-compnent-js * Add $A.localizationService lib * Fix some minor bugs Release 3.5.2 (2018-02-03) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Support oAuth2 Login, check https://github.com/xjsender/haoide#project-configuration for guide * Add Lightning event methods completion * Add customlabel and staticresource completions for lightning component @@ -42,12 +51,12 @@ Release 3.5.2 (2018-02-03) Release 3.5.1 (2018-01-25) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Basic completion support for component controller or helper Release 3.5.0 (2018-01-21) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Add aura component and attribute completion, contributed by @lushang * Add some missed base component * Add lightning component implements completion @@ -60,7 +69,7 @@ Release 3.5.0 (2018-01-21) Release 3.4.7 (2017-07-29) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Really and still busy on project delivery work in the past year, will continue in the next days. * New Fetaure: Combine package.xml in selected folders * New Feature: Custom Label completion support, which is fetched from ``project/.config/package.json`` by ``Reload Project Cache`` command @@ -69,7 +78,7 @@ Release 3.4.7 (2017-07-29) Release 3.4.6 (2016-09-26) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Deliver enhancement for issue #132 * Deliver enhancement for issue #134 * Deliver enhancement for issue #140 @@ -77,7 +86,7 @@ Release 3.4.6 (2016-09-26) Release 3.4.5 (2016-06-16) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Fix bug: sublime will be closed when view debug log by logId with pressing alt + dblclick left mouse * Fix issue #126 * Deliver feature #119 @@ -85,12 +94,12 @@ Release 3.4.5 (2016-06-16) Release 3.4.4 (2016-06-11) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Fix Urgent ``FileNotFoundError`` problem when create new code Release 3.4.3 (2016-06-06) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Hide ``execute query`` command in the context menu, use ``REST TEST Query`` instead * Rename Snippet ``HttpRequest - Authorization Basic Credentials.sublime-snippet`` to ``HttpRequest - Callout.sublime-snippet`` * Add new snippet named ``Page - loading action status.sublime-snippet`` @@ -101,12 +110,12 @@ Release 3.4.3 (2016-06-06) Release 3.4.2 (2016-05-23) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Change api version back to 35, fix issue #116 Release 3.4.1 (2016-05-23) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Fix issue #113 * Fix issue #115 * Fix Bug for conflict checking bug caused by solution for issue #108 @@ -115,7 +124,7 @@ Release 3.4.1 (2016-05-23) Release 3.4.0 (2016-05-20) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - Deliver enhancement for issue #108 - Deliver enhancement for issue #111 - Fix bug when test class failed caused by dependency compilation @@ -134,7 +143,7 @@ Release 3.4.0 (2016-05-20) Release 3.3.9 (2016-04-18) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Force login every two hours * Add retry operation for list package if session is expired * Change display format for REST TEST Response, add a new setting ``remove_slash_for_rest_response`` @@ -146,7 +155,7 @@ Release 3.3.9 (2016-04-18) Release 3.3.8 (2016-04-12) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Enhancement for code template, welcome new template pull request * Add runSpecifiedTest support for deploying files * Change mousemap key mapping, see more detail at Q&A @@ -154,7 +163,7 @@ Release 3.3.8 (2016-04-12) Release 3.3.7 (2016-03-28) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Fix issue #88 * Fix issue #99, problem of ``reload document`` * Deliver enhancement for issue #96 @@ -162,7 +171,7 @@ Release 3.3.7 (2016-03-28) Release 3.3.6 (2016-03-28) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Fix issue #98 * Add ``Return to First Step`` feature when open documentation by type * Remove build-in reference settings which is replaced ``Reload Salesforce Document`` @@ -171,7 +180,7 @@ Release 3.3.6 (2016-03-28) Release 3.3.5 (2016-03-26) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Greatly improve performance of code completion * Fix invalid scope problem for custom class completion * Enhancement for document reference @@ -179,7 +188,7 @@ Release 3.3.5 (2016-03-26) Release 3.3.4 (2016-03-23) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Fix issue #93 * Fix issue #97 * Optimize for methods in ``metadata.py`` @@ -187,19 +196,19 @@ Release 3.3.4 (2016-03-23) Release 3.3.3 (2016-03-14) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Fix issue #94 * Enhance ``refresh package`` command * Add package.xml update support for command ``build_package_xml`` Release 3.3.2 (2016-03-12) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Fix issue #92 Release 3.3.1 (2016-03-11) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Rename ``deploy_package_to_server`` command to ``deploy_package`` * Add new command ``refresh_package``, see issue #91 for detail * Add LastModifiedBy check for conflict check logic, see issue #89 @@ -207,14 +216,14 @@ Release 3.3.1 (2016-03-11) Release 3.3.0 (2016-03-11) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Deliver enhancement #91 * Fix bug issue #92 * Fix package.xml onload XML parse exception Release 3.2.9 (2016-03-10) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Enhancement for ``role hierarchy exporting`` * Add new settings ``include_users_in_role_hierarchy`` to control whether including user in the CSV * Deliver new feature, see issue #89 @@ -223,7 +232,7 @@ Release 3.2.9 (2016-03-10) Release 3.2.8 (2016-02-26) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Fix issue #88 * Fix bug for ``export workflow rules`` feature * Add parameter ``vertical`` for ``export_data_template`` command for exporting Layout Workbook @@ -232,55 +241,55 @@ Release 3.2.8 (2016-02-26) Release 3.2.7 (2015-12-21) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Fix issue #86 Release 3.2.6 (2015-12-20) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Fix issue #84 * Fix issue #85 * New ``Export > Export Role Hierarchy`` command Release 3.2.5 (2015-12-15) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Fix urgent bug issue #83 * Fix urgent bug for sobject cache reloading * Remove ``allowed_sobjects`` setting Release 3.2.4 (2015-12-09) -++++++++++++++++++ -* Enhancement for lighting development +++++++++++++++++++++++++++++++++++++ +* Enhancement for lightning development * Add new command for creating ``SVG`` and ``design`` -* Update lighting related library +* Update lightning related library * Change default ``api_version`` from ``34`` to ``35`` Release 3.2.3 (2015-12-01) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Bug Fix: - Fix bug for lighting development when deploying cmp or app + Fix bug for lightning development when deploying cmp or app * Enhancement: - - Display the lighting type in the input panel when creating lighting components + - Display the lightning type in the input panel when creating lightning components - Change ``No change`` to ``no difference`` in non-difference message when executing ``diff_with_server`` command * Update: - - Remove four commands ``create_lighting_application``, ``create_lighting_component``, ``create_lighting_interface``, ``create_lighting_event``, bind the four features to ``create_lighting_definition`` by difference ``_type`` + - Remove four commands ``create_lightning_application``, ``create_lightning_component``, ``create_lightning_interface``, ``create_lightning_event``, bind the four features to ``create_lightning_definition`` by difference ``_type`` - Optimize completion for Boolean attribute in the html related page - Stop keeping useless ``settings.json`` to ``.config`` folder Release 3.2.2 (2015-11-19) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Bug Fix: - Fix TypeError when export soql to csv - Fix aura app preview problem - Fix bug for missing standard Objects when retrieve all - Fix bug for `deploy selected open files` fetaure - - Fix instance parse problem for lighting app preview + - Fix instance parse problem for lightning app preview - Fix bug of aura helperjs or controoler deploy * New Feature: @@ -292,25 +301,25 @@ Release 3.2.2 (2015-11-19) Release 3.2.1 (2015-11-10) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Fix issue #81 Release 3.2.0 (2015-10-07) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Deliver enhancement #73 * Deliver enhancement #77 Release 3.1.9 (2015-08-26) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Fix issue #71, export workbooks by user input * Fix bug for visibility problem of ``Retrieve Package.xml`` * Add bootstrap3 support for styleClass attribute of salesforce standard components Release 3.1.8 (2015-08-08) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Bug Fix: - Fix bug for bootstrap3 completion - Fix bug for ``toggle_metadata_objects`` command if project is not initiated @@ -334,7 +343,7 @@ Release 3.1.8 (2015-08-08) Release 3.1.7 (2015-08-05) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Enhancement: - Add `with sharing` for `Utility Class` in template - When you want to view code coverage, if you didn't download code, you can't view code coverage and you will get the reminder message in the status bar @@ -355,7 +364,7 @@ Release 3.1.7 (2015-08-05) Release 3.1.6 (2015-07-29) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Bug fix: - If controller name is same with page name, there will have problem when view code coverage - Fix bug when file is loaded @@ -369,7 +378,7 @@ Release 3.1.6 (2015-07-29) Release 3.1.5 (2015-07-27) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * New Feature: - Add bootstrap3 support for html class completion - Add a new setting ``disable_bootstrap_completion`` to control bootstrap completion @@ -383,7 +392,7 @@ Release 3.1.5 (2015-07-27) Release 3.1.4 (2015-07-25) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Bug Fix: - Fix issue #23? - Fix issue #58 @@ -395,8 +404,8 @@ Release 3.1.4 (2015-07-25) - Add keymap for some frequently-used commands - Add visibility control for some CURD command on code file - Aura related features - - Merge ``Deploy Lighting To Server`` command with ``Deploy File to Server`` command - - Merge ``Retrieve Lighting To Server`` command with ``Retrieve File to Server`` command + - Merge ``Deploy Lightning To Server`` command with ``Deploy File to Server`` command + - Merge ``Retrieve Lightning To Server`` command with ``Retrieve File to Server`` command - Use file full name as key in ``component_metadata.sublime-settings``, originally, we use name as key, for example, originally, ``AccountController`` is key, now is ``AccountController.cls`` - Change ``Diff With Server`` command to just visible when code file is ``classes, triggers, components or pages`` @@ -412,18 +421,18 @@ Release 3.1.4 (2015-07-25) Release 3.1.3 (2015-07-18) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Fix issue #54 * Fix issue #56 Release 3.1.2 (2015-07-17) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Fix issue #55 Release 3.1.1 (2015-07-16) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Bug fix: - Fix a issue for ``save_to_server`` command when ``api_version`` is less than 29 - Fix problem in ``Class Body - test data util body-sublime-snippet.sublime-snippet`` @@ -442,7 +451,7 @@ Release 3.1.1 (2015-07-16) Release 3.1.0 (2015-07-09) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Enhancement: - Sometimes, the inner class name is same with standard class or sObject, if this inner class is matched, ignore the standard completion - Add Notation [EU] for external or unique field in field completion, ``E`` means External, ``U`` means Unique @@ -462,7 +471,7 @@ Release 3.1.0 (2015-07-09) Release 3.0.9 (2015-07-01) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Bug Fix: - Fix bug for snippet ``SOQL - SELECT * FROM.sublime-snippet`` - Fix bug for ``extract_to_here`` command @@ -473,7 +482,7 @@ Release 3.0.9 (2015-07-01) Release 3.0.8 (2015-06-28) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Bug Fix: - Fix bug when build package.xml for whole org @@ -489,7 +498,7 @@ Release 3.0.8 (2015-06-28) Release 3.0.7 (2015-06-26) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Bug Fix: - Fix issue #46 - Fix bugs caused by ``describe_global`` change in the ``tooling.py`` @@ -504,7 +513,7 @@ Release 3.0.7 (2015-06-26) Release 3.0.6 (2015-06-23) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Bug Fix: - Merge pull request #42 by @pgAdmin(https://github.com/pgAdmin) - Merge pull request #43 by @reyesml(https://github.com/reyesml), fixed issue #6 @@ -512,7 +521,7 @@ Release 3.0.6 (2015-06-23) Release 3.0.5 (2015-06-15) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Bug Fix: - Custom component attributes completion bug when component file is not exist in the target path @@ -521,7 +530,7 @@ Release 3.0.5 (2015-06-15) Release 3.0.4 (2015-06-15) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Bug Fix: - Fix bug for issue #41 - Fix bug for ``delete_file_from_server`` keybinding for windows @@ -543,7 +552,7 @@ Release 3.0.4 (2015-06-15) Release 3.0.3 (2015-06-11) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Bug Fix: - Fix duplicate save check bug caused by release 3.0.2 - Fix fields completion bug for cross sObjects between tooling and non-tooling, for example ``User``, ``RecordType`` @@ -557,7 +566,7 @@ Release 3.0.3 (2015-06-11) Release 3.0.2 (2015-06-07) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Bug fix: - Fix NoneType exception in the console when open context menu, this is caused by release 3.0.1 - Fix bug for ``Debug > Track All Debug Logs`` in the main menu @@ -580,7 +589,7 @@ Release 3.0.2 (2015-06-07) Release 3.0.1 (2015-06-04) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Bug fix: - Fix bug #39 - Fix bug #40 @@ -602,7 +611,7 @@ Release 3.0.1 (2015-06-04) Release 3.0.0 (2015-05-26) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Bug fix: - Fix bug #38 - Fix bug for SOQL fields completion @@ -613,7 +622,7 @@ Release 3.0.0 (2015-05-26) Release 2.9.9 (2015-05-25) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Enhancement - SOQL fields completion, see demo at plugin home page @@ -622,7 +631,7 @@ Release 2.9.9 (2015-05-25) Release 2.9.8 (2015-05-24) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Update: - Update the plugin install message for package control @@ -639,7 +648,7 @@ Release 2.9.8 (2015-05-24) Release 2.9.7 (2015-05-22) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Bug Fix: - Fix issue #36 - Fix bug for ``childXmlNames`` parsing and ``childXmlNames`` completion for package.xml @@ -663,7 +672,7 @@ Release 2.9.7 (2015-05-22) Release 2.9.6 (2015-05-20) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Bug Fix: - Fix issue #33 - Fix issue #35 @@ -685,7 +694,7 @@ Release 2.9.6 (2015-05-20) Release 2.9.5 (2015-05-16) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Enhancement: - Add callback for ``toggle_metadata_objects`` if ``.config/metadata.json`` is not exist - Move ``export_query_to_csv`` command from context menu to ``Data Loader`` in the main menu, add check logic for input soql and allow to try again. @@ -709,7 +718,7 @@ Release 2.9.5 (2015-05-16) Release 2.9.4 (2015-05-13) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Bug Fix: - If there is only one member, just remove the type and the related member when ``build package xml`` - When execute ``query_to_csv`` command and field value contains ``"`` or ``,`` @@ -730,7 +739,7 @@ Release 2.9.4 (2015-05-13) Release 2.9.3 (2015-05-11) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Enhancement: - Package.xml completion read cache from ``.config/package.json``, no longer read cache from project file - Sort for items in quick panel of package.xml building @@ -742,7 +751,7 @@ Release 2.9.3 (2015-05-11) Release 2.9.2 (2015-05-10) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Bug Fix: - Fix bug for ``combine_soql`` which is invoked by ``Generate SOQL`` and ``Bulk Query`` - Fix bug for ``export_profile`` command @@ -772,7 +781,7 @@ Release 2.9.2 (2015-05-10) Release 2.9.1 (2015-05-05) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Fix bug for ``switch_project``, see issue #24 * Enhancement for speeding up ``Save To Server`` operation * Rename ``save_component`` command to ``save_to_server`` @@ -783,7 +792,7 @@ Release 2.9.1 (2015-05-05) Release 2.9.0 (2015-05-03) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Fix bug for messy code in debug log detail * Enhancement for not refreshing sidebar when ``retrieve_files_from_other_server`` * Enhancement for adding folder name to retrieve request when ``list_package`` for folders @@ -800,7 +809,7 @@ Release 2.9.0 (2015-05-03) Release 2.8.9 (2015-04-28) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Fix urgent bug for issue #22 * Enhancement for speeding up ``Save To Server`` operation * Enhancement for supporting ``list_package`` when execute retrieve operation @@ -811,7 +820,7 @@ Release 2.8.9 (2015-04-28) Release 2.8.8 (2015-04-26) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Fix bug: If user don't have `Author Apex` privilege, plugin will give wrong information * Fix bug: Show alert message if no available package.xml to combine * Enhancement: Issue 15 about linking ``sublime-project`` with plugin project, deliver Windows solution but keep unchanged for OSX @@ -822,7 +831,7 @@ Release 2.8.8 (2015-04-26) Release 2.8.7 (2015-04-22) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Fix plugin loading NoneType issue * Combine ``retrieve_package_file`` and ``retrieve_package_xml`` command to only ``retrieve_package_xml`` * Allow user to input extractTo path, enhancement for issue #19 @@ -831,7 +840,7 @@ Release 2.8.7 (2015-04-22) Release 2.8.6 (2015-04-20) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Optimization for parsing project name by path or file * Change the default workspace of plugin level to empty * Change the workspace to optional, if workspace of plugin level and project level are both empty, plugin will save the project to ``/User/HaoIDE``, @@ -843,7 +852,7 @@ Release 2.8.6 (2015-04-20) Release 2.8.5 (2015-04-10) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Biggest optimization for variable completion: - Exclude comment statement - Choose the nearest matched one @@ -852,7 +861,7 @@ Release 2.8.5 (2015-04-10) Release 2.8.4 (2015-04-09) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Add error popup display for latest version of sublime * Add a new settings ``disable_html_completion`` to disable html completion * Set default value of ``disable_html_completion`` as true because of conflict with sublime @@ -867,13 +876,13 @@ Release 2.8.4 (2015-04-09) Release 2.8.3 (2015-04-02) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * If no CRUD privilege on profile object, just leave blank in the output csv * Add field FLS export feature, it's a wonderful feature for document Release 2.8.2 (2015-03-28) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Fix package.xml completion bug if file name contains multiple dot * Fix package.xml completion bug if there have extracted zip resource * Pull request for #14 @@ -883,19 +892,19 @@ Release 2.8.2 (2015-03-28) Release 2.8.1 (2015-03-05) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Fix issue #6 * Enhancement for issue #13 Release 2.8.0 (2015-02-11) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Fix issue #11, #12 * Add two commands ``Retrieve All`` and ``Retrieve sObject and Workflow`` in the command palette Release 2.7.9 (2015-02-06) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Fix issue #4 * Fix issue #7 * Enhancement for ``diff_with_server``, allow diff compare with different project @@ -904,19 +913,19 @@ Release 2.7.9 (2015-02-06) Release 2.7.8 (2015-02-02) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Rename ``refresh_component`` command to ``refresh_file_from_server`` * Rename ``refresh_selected_components`` command to ``refresh_files_from_server`` * Rename ``delete_selected_components`` command to ``delete_files_from_server`` * Add a new command for ``retrieve file from other server`` for retrieve file from different project. -* Add a settings ``switch_back_after_migration`` to control whether switch back to original project after ``deploy to server``, ``deploy package to server``, ``deploy lighting to server`` or ``retrieve file from other server``, issue haoide:#3 +* Add a settings ``switch_back_after_migration`` to control whether switch back to original project after ``deploy to server``, ``deploy package to server``, ``deploy lightning to server`` or ``retrieve file from other server``, issue haoide:#3 * Fix issue #5 * Move ``pretty_json`` command from context menu to ``HaoIDE > Utilities > JSON Pretty`` in the main menu * Update README.MD Release 2.7.7 (2015-01-22) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Fix bug for ``Package.xml Completion`` * Enhancement: display error column in XML if deploy failed * Enhancement for ``json_to_apex`` @@ -928,7 +937,7 @@ Release 2.7.7 (2015-01-22) Release 2.7.6 (2015-01-20) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Enhancement for ``create_trace_flag`` command * Add a enabled check logic for ``export profiles`` command * Add a new ``haoide > Utilities > Convert JSON to Apex`` command for converting JSON to Apex @@ -937,7 +946,7 @@ Release 2.7.6 (2015-01-20) Release 2.7.5 (2015-01-18) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Fix bug: messy code when view debug log detail in sublime * Fix bug: timeout exception is not caught when save component * Enhancement for completions @@ -947,7 +956,7 @@ Release 2.7.5 (2015-01-18) Release 2.7.4 (2015-01-16) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Fix bug for issue #75 * Update ``Chanel`` to ``Channel`` in the plugin copyright information * Update license information @@ -959,7 +968,7 @@ Release 2.7.4 (2015-01-16) Release 2.7.3 (2015-01-14) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Fix bug for ``extract here`` command * Fix bug for ``bulk api`` caused by release 2.7.2 * Fix long-term bug for inProgress message of deployment @@ -971,7 +980,7 @@ Release 2.7.3 (2015-01-14) Release 2.7.2 (2015-01-12) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Fix bug for issue #74 * Fix bug for ``cancel_deployment`` * Fix bug for ``reload symbol table`` when symbol_table is None @@ -983,7 +992,7 @@ Release 2.7.2 (2015-01-12) Release 2.7.1 (2015-01-09) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Enhancement for ``standardController completion`` in `` Email`` for ``Debug Log User List`` * Milestone change for soap body request @@ -1005,21 +1014,21 @@ Release 2.7.0 (2015-01-03) Release 2.6.0 (2014-12-20) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Enhancement for ``refresh_folder`` * Enhancement for ``retrieve_all`` and ``retrieve_sobjects_and_workflows`` * Move export csv files to ``.export`` folder, for example, CustomFields, ValidationRules, Workflows and Workbooks, etc. Release 2.5.9 (2014-12-17) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Completion enhancement for building package.xml * Fix duplicate MetadataContainerId for issue #69 * `Build Package.xml Demo `_ Release 2.5.8 (2014-12-15) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Add all ``sharingRules`` metadata types to default components setting * Rename ``.package`` to ``.deploy`` for ``deploy to server`` execution * Remove ``subscribe_component`` and ``unsubscribe_component`` commands @@ -1031,7 +1040,7 @@ Release 2.5.8 (2014-12-15) Release 2.5.7 (2014-12-14) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Fix Bug for creating extension or controller after input # in visualforce page * Adjust the location of ``Cache`` menu item * Add a new command for ``retrieve package.xml`` in sidebar menu @@ -1046,28 +1055,28 @@ Release 2.5.7 (2014-12-14) Release 2.5.6 (2014-12-13) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Fix Bug for issue #65 * Fix Bug for issue #66 * Enhancement for issue #48, after deployed, the `package.xml` is saved to `.package` in workspace * Before files are deployed to server, save them to local -* When you deploy any lighting element, just deploy the whole lighting component +* When you deploy any lightning element, just deploy the whole lightning component * Convert StartTime of debug log to local time by timezone module Release 2.5.5 (2014-12-09) -++++++++++++++++++ -* Fix Bug for creating Lighting Component Element +++++++++++++++++++++++++++++++++++++ +* Fix Bug for creating Lightning Component Element * When deploy failed due to lower code coverage, display the coverage warning message * When new component is created, create the meta.xml file for it -* Hide ``Retrieve Lighting from Server`` command when chosen folder is not aura folder -* Hide ``Destruct Lighting from Server`` command when chosen folder is not aura folder +* Hide ``Retrieve Lightning from Server`` command when chosen folder is not aura folder +* Hide ``Destruct Lightning from Server`` command when chosen folder is not aura folder * Hide ``Extract to Here`` command if file extension is not `zip` or `resource` * Update the Documentation Release 2.5.4 (2014-12-07) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Add `dateutil` module for supporting timezone converting * Fix Bug for `track debug log` * Trim the space for `REST URI` automatically @@ -1076,45 +1085,45 @@ Release 2.5.4 (2014-12-07) Release 2.5.3 (2014-12-05) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Adjust the context menu from most bottom to center * Adjust the sidebar menu from most bottom to center * Fix Bug for issue #62: 'module' object has no attribute 'populate_classes' * Fix Bug for issue #61: KeyError: 'name' in `get_component_completion` * Fix Bug for issue #60: Error with 'Update Project' -* Add lighting component description for `Lighting Component` development +* Add lightning component description for `Lightning Component` development Release 2.5.2 (2014-11-27) -++++++++++++++++++ -* After new lighting component is created, deploy it to server +++++++++++++++++++++++++++++++++++++ +* After new lightning component is created, deploy it to server * Add a new command for ``pretty json`` in the context menu * hide the status message in progress bar when track self debug log after save succeed Release 2.5.1 (2014-11-26) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Fix Bug: NoneType Exception when destruct files from server * Fix Bug: when saving component, the active view is not file * Add a new settings ``track_log_after_saved`` to control whether track log after save succeed Release 2.5.0 (2014-11-26) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Fix Bug: when delete component, if there is a open view which is not bind to file, it will throw TypeError: argument of type 'NoneType' is not iterable, and then, file is deleted from server but local file is not removed * Fix Bug: After folder is refreshed or project is updated, update the component cache -* Add `Lighting Component` document reference -* Add `Lighting Component` component tags to completions -* Add `Lighting Component` to `components` settings and set it as default subscribed component -* Add `Lighting Component` update feature -* Add `Lighting Component` components update feature -* Add `Lighting Component` component create feature -* Add `Lighting Component` component destruct feature +* Add `Lightning Component` document reference +* Add `Lightning Component` component tags to completions +* Add `Lightning Component` to `components` settings and set it as default subscribed component +* Add `Lightning Component` update feature +* Add `Lightning Component` components update feature +* Add `Lightning Component` component create feature +* Add `Lightning Component` component destruct feature * Change default ``api_version`` from 31 to 32 * Remove ``Open Coverage Panel`` menu item in the main menu * Add ``duration`` column for debug logs and rearrange it's columns order * Add new document reference for ``Analytic Api``, ``Analytics Cloud Dashboard JSON``, ``Security Implementation`` - and ``Lighting Component`` + and ``Lightning Component`` * Add new command for viewing release notes * Rename ``Extract Static Resource`` command to ``Extract To Here``, which command can be used to extract all zip source file but not only static resource for Salesforce * Add ``settings`` to ``components`` settings @@ -1122,7 +1131,7 @@ Release 2.5.0 (2014-11-26) Release 2.4.0 (2014-11-18) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Fix issue #55 * Fix issue: non-english words are encoded to Unicode in result of ``Rest Test`` * Fix issue: when read local cache of record type, ``global name 'users' is not defined`` exception @@ -1133,7 +1142,7 @@ Release 2.4.0 (2014-11-18) Release 2.3.0 (2014-11-14) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Use local ``/.config/session.json`` to reuse session but not globals() again * Use local ``/.config/recordtype.json`` to ``record type`` but not globals() again * Use local ``/.config/users.json`` to ``users`` but not globals() again @@ -1144,7 +1153,7 @@ Release 2.3.0 (2014-11-14) Release 2.2.0 (2014-11-12) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ Fix Issue: * Fix issue: TypeError: string indices must be integers when refreshed folder is empty @@ -1165,7 +1174,7 @@ New Feature: Release 2.1.0 (2014-11-10) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ + Fix Bug: ``IndexError: list index out of range`` caused by release 2.0.0 + Fix Bug for test class judgment: test class is that starts with `test` or ends with `test` + Add a new apex.py module, move execute_anonymous method from metadata.py to apex.py @@ -1177,7 +1186,7 @@ Release 2.1.0 (2014-11-10) Release 2.0.0 (2014-11-08) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ + Fix minor bug for ``Duplicate Save Execution of Same Component`` + Remove useless message from ``message.py`` + Add a space between parameters for completion of standard apex class @@ -1191,7 +1200,7 @@ Release 2.0.0 (2014-11-08) Release 1.9.0 (2014-11-04) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ + Fix issue #50 + Fix minor issue for ``delete_component`` + Fix potential issue for retrieve and deploy @@ -1202,14 +1211,14 @@ Release 1.9.0 (2014-11-04) Release 1.8.0 (2014-11-03) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ + In order to prevent UI freeze, use thread to extract encoded zipFile to path + Solution for issue #49, add a new settings ``maximum_concurrent_connections`` to control concurrent connections + In order to prevent UI freeze, set default value of ``maximum_concurrent_connections`` to ``30`` Release 1.7.0 (2014-10-31) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ + Fix Bug: If just compile component but not save, no need to keep history + Fix Bug: SOQL Field Completion problem if there is more than one character between from and sObject + Fix Bug: Replace all `LIST` to `List` @@ -1217,7 +1226,7 @@ Release 1.7.0 (2014-10-31) Release 1.6.0 (2014-10-25) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ + Fix Bug: issue #44 caused by release 1.5.0 + Fix Bug: display ExpatError when retrieve package + Fix Bug: display json parse error message when execute rest test @@ -1231,14 +1240,14 @@ Release 1.6.0 (2014-10-25) Release 1.5.0 (2014-10-21) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ + Fix Bug for package import error in ``bulk api`` + Add more detailed action summary for ``save component``, issue #45, issue #46 + Add description for ``quick controller`` in README.MD Release 1.4.0 (2014-10-18) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ + Fix bug for completion: No completions for ``strMap`` if there has ``// Populate Map\nMap strMap = new Map();`` + Fix Bug: ``deploy open files to server`` + Add a new command for ``preview_page`` in the command palette @@ -1247,14 +1256,14 @@ Release 1.4.0 (2014-10-18) Release 1.3.0 (2014-10-14) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ + Fix Minor bug for standard class completion: duplicate class in different namespace, for example, Communities, TimeZone, UnsupportedOperationException, Test, QueryException, Action + Fix Critical bug: non code file can't be retrieve from server, now, objects, reports and others can be retrieve from server + Fix Critical bug: Deploy exception after session cache is expired Release 1.2.0 (2014-10-11) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ + ``get_static_resource_body`` settings is deprecated + Change default ``api_version`` from ``30`` to ``31`` + Add a new command ``deploy open files to server`` in the main menu, which is used to deploy open files in the sublime to target server @@ -1265,7 +1274,7 @@ Release 1.2.0 (2014-10-11) Release 1.1.0 (2014-10-09) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ + Fix Bug for Windows: After ``export`` is finished, refresh the project folders to ensure the new folder is shown in the sidebar + Fix Bug: display deploy failed message if deploy is failed. + Fix Bug: symbol table is null when iterate symbol table @@ -1273,17 +1282,17 @@ Release 1.1.0 (2014-10-09) Release 1.0.9 (2014-10-04) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ + Fix Bug: After open a new view, open context menu, it will throw NoneType exception Release 1.0.8 (2014-10-02) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ + Fix issue at ``https://success.salesforce.com/answers?id=90630000000gxvwAAA`` Release 1.0.7 (2014-09-30) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ + Fix Minor Bug for windows: After ``.config`` is generated, invoke the sublime command: ``refresh_folder_list`` + Enhancement for checking whether current project is active project + Fix Critical Bug: If session is expired, we want to refresh the folder or update project, the console will always stop at the step of ``[sf:retrieve] Start request for a retrieve...`` @@ -1291,7 +1300,7 @@ Release 1.0.7 (2014-09-30) Release 1.0.6 (2014-09-28) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ + Fix Minor Bug: After ``retrieve_package_file`` is succeed, hide the output panel + Fix Minor Bug: If current project is not ``active project``, disable the ``Retrieve Files From Server`` functionality + Fix Minor Bug: If current project is not ``active project``, disable the ``Retrieve File From Server`` functionality @@ -1299,14 +1308,14 @@ Release 1.0.6 (2014-09-28) Release 1.0.5 (2014-09-27) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ + Fix bug: Exception when ``new project`` in a new org + Fix bug: If there is no any trigger, after ``new project``, the folder of ``trigger`` is not created. + Fix bug: ``subscribed_meta_folders`` and ``meta_folders`` in settings are not correct Release 1.0.4 (2014-09-25) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ + Fix urgent issue #40 + Remove the useless soap related codes, for example, ``retrieve_apex_code_body``, ``retrieve_static_resource_body`` and so on + Fix minor bug: Don't allow to refresh or delete ``*-meta.xml`` file @@ -1325,14 +1334,14 @@ Release 1.0.4 (2014-09-25) Release 1.0.3 (2014-09-24) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ + After ``Update Project`` is finished, remove the original ``src`` tree and then extract the zipFile to ``src`` + After ``Refresh Folder`` is finished, remove the original folders and then extract the zipFile to specified folders + Fix urgent bug: if no project in sidebar and sidebar is hidden, after ``new project`` or ``update project``, the sidebar is not open automatically. Release 1.0.2 (2014-09-23) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ + Update the default value of ``checkOnly`` in ``deploy_options`` settings from ``true`` to ``false`` + Fix Urgent bug: If one class is created in the server, after ``refresh folder``, cache of this folder will override all components + Remove some useless ``print`` statement @@ -1343,7 +1352,7 @@ Release 1.0.2 (2014-09-23) Release 1.0.1 (2014-09-22) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ + Add ``LogLength`` column to result of ``fetch debug logs`` + Update default value of ``display_field_name_and_label`` setting from ``false`` to ``true`` + Remove the ``\n`` from success message in ``document.py`` @@ -1353,7 +1362,7 @@ Release 1.0.1 (2014-09-22) Release 1.0.0 (2014-09-21) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ + Add a new command ``Deploy To Server`` in the context menu + Fix bug for ``retrieve`` when session is expired + Fix bug for ``New ApexClass``, ``New ApexTrigger``, ``New ApexComponent`` and ``New ApexPage`` @@ -1363,13 +1372,13 @@ Release 1.0.0 (2014-09-21) Release 0.9.9 (2014-09-20) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ + Try to fix bug for ``new release messages display`` or who can tell me how to display ``release message`` + Fix bug for ``quick go to component`` Release 0.9.8 (2014-09-20) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ + Support multiply folder refresh + Add standard sObjects to CustomObject Package Members when create new project if CustomObject is subscribed + Update default subscribed components @@ -1380,7 +1389,7 @@ Release 0.9.8 (2014-09-20) Release 0.9.7 (2014-09-19) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ + Milestone for Metadata Api Migration from ``Tooling Api`` for non-code meta + remove some time stamp for deploy + Functionality check for ``convert xml to json`` @@ -1393,21 +1402,21 @@ Release 0.9.7 (2014-09-19) Release 0.9.6 (2014-09-16) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ + Fix bug for issue #38, remove ``ownerRules``, ``criteriaBasedRules`` and ``installedPackages`` from default package.xml + Add a command to export CustomLables to csv + Update ``SOQL - SELECT FROM`` snippet Release 0.9.5 (2014-09-15) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ + Add confirm request for ``new project`` + Add screenshot for ``Convert XML to JSON`` + Fix KeyError Exception bug: cancel save operation if conflict. Release 0.9.4 (2014-09-14) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ + Move ``check_enabled`` from ``main.py`` to ``util.py`` + If ``deploy status`` is in ``canceling``, continue to check deploy status until it's canceled. + Remove useless ``mkdir`` method from context.py @@ -1416,14 +1425,14 @@ Release 0.9.4 (2014-09-14) Release 0.9.3 (2014-09-13) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ + Add a command to convert selection to JSON if selection is valid XML format + Add context menu item, commands for this command + Fix a bug for parsing ``apexrest`` url when executing rest test Release 0.9.2 (2014-09-13) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ + Fix bug when ``sosl_string`` contains ``-, ?, *`` + Update ``query`` method in ``api.py`` + Separate ``api.py`` to ``metadata.py`` and ``tooling.py`` and move them to new ``api`` folder @@ -1433,12 +1442,12 @@ Release 0.9.2 (2014-09-13) Release 0.9.1 (2014-09-12) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ + Fix bug when code has conflict and user cancel the save operation Release 0.9.0 (2014-09-12) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ + Fix bug for windows sidebar folder refresh + Not keep ``default_project`` settings in the settings of ``.config`` + Add ``reload_symbol_tables_when_create_project`` setting @@ -1447,7 +1456,7 @@ Release 0.9.0 (2014-09-12) Release 0.8.9 (2014-09-11) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ + If ``retrieve`` is in ``Queued``, thread sleep 2 seconds, else, thread sleep 1 seconds + If ``deploy`` is in ``Pending``, thread sleep 2 seconds, else, thread sleep 1 seconds + After project is switched, set status for all view of all window. @@ -1456,25 +1465,25 @@ Release 0.8.9 (2014-09-11) Release 0.8.8 (2014-09-11) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ + Fix some bug for ``deploy`` Release 0.8.7 (2014-09-10) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ + Update README + When ``New Project``, no need to select project + Fix bug ``c:`` completion Release 0.8.6 (2014-09-09) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ + Add ``c:`` prefix for custom component completion + Add space between timestamp and message in the panel Release 0.8.5 (2014-09-08) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ + Move some methods from processor.py to util.py + Optimize sObject Cache download + Add time stamp prefix for panel message @@ -1488,7 +1497,7 @@ Release 0.8.5 (2014-09-08) Release 0.8.4 (2014-09-08) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ + If just checkOnly, output VALIDATE, otherwise, output DEPLOY + Update comments for ``mousemap`` + Big Milestone, originally, we use ``tooling api`` to download apex code, now it is changed to retrieving by ``metadata api`` @@ -1496,7 +1505,7 @@ Release 0.8.4 (2014-09-08) Release 0.8.3 (2014-09-07) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ + Rearrange the attribute position in ``soap_bodies.py`` + Update README.MD + When start ``deploy`` command, if clipboard content is not valid zip file path, set path with empty, otherwise, paste it to input panel @@ -1520,13 +1529,13 @@ Release 0.8.3 (2014-09-07) Release 0.8.2 (2014-09-05) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ + when ``retrieve package.xml``, if file in package.xml is not found in target org, display the message + Add ``deploy package.zip`` command to deploy zip file Release 0.8.1 (2014-09-05) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ + Change the UI of ``retrieve`` + Add a command ``retrieve_package`` in the main menu to retrieve metadata by specified package.xml + Fix a bug for ``get_static_resource_body`` when creating a new project @@ -1535,7 +1544,7 @@ Release 0.8.1 (2014-09-05) Release 0.8.0 (2014-09-04) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - Change ``se`` Snippet from ``SELECT Id, $2 FROM $1$0`` to ``SELECT Id$2 FROM $1$0`` - Stop to open console when ``Refresh Selected Component`` - Originally, press ``shift+button1*3`` to open class in background and press ``shift+button1*2`` to open class in foreground, now it is changed to ``shift+button1*3`` for background and ``shift+button1*2`` for foreground @@ -1544,20 +1553,20 @@ Release 0.8.0 (2014-09-04) Patch for Release 0.7.9 (2014-09-01) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ + ``output_session_info`` setting is deprecated and replaced by ``.config/session.json`` + Do not keep ``projects`` settings in the ``.config/settings.json``, because it's private confidential Release 0.7.9 (2014-09-01) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ + Fix the display problem of ``Run Test`` and ``LoginTo ApexCode`` cause by History Item 1 of release 0.7.7 + Rename the path name of ``Test Operation History`` from ``test`` to ``Test`` + Fix bug for ``Create Component`` and ``Refresh Component Folder`` caused by History Item 1 of release 0.7.7 Release 0.7.8 (2014-08-31) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ + Fix Operation History Format Problem + Inner class completion format ``Inner Class `` + After Project is created, automatically keep the settings to ``.config`` path @@ -1566,7 +1575,7 @@ Release 0.7.8 (2014-08-31) Release 0.7.7 (2014-08-30) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ + In order to avoid component is not available to CRUD to server because of Sensitive Case, save the component name with lower case into local cache + Read custom class from ``Component Attribute Cache`` but not read them from ``Symbol Table Cache`` + After input ``Page.``, list all custom visualforce page if have @@ -1575,21 +1584,21 @@ Release 0.7.7 (2014-08-30) Release 0.7.6 (2014-08-29) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ + Deep process for result of ``Execute Rest`` if result is json string + Change Operation History Format + Add ``report_issue`` command Release 0.7.5 (2014-08-24) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - Add snippet ``Class Body - Get Child Roles By Role`` - ``Local Change History`` functionality is removed from events.py, just if ``save to server`` is succeed, the local change history will be kept - Inner class completion format ``Inner Class `` Release 0.7.4 (2014-08-17) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - Inner Class Completion format - Add compress header for ``get`` method in api.py - Fix ``Reload Sobject Cache`` bug caused by release 0.7.3 @@ -1597,7 +1606,7 @@ Release 0.7.4 (2014-08-17) Release 0.7.3 (2014-08-16) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - Add MIT-LICENSE - Remove ``quick visualforce`` functionality - Rename method name ``get_toolingapi_settings`` in context.py to ``get_settings`` and update corresponding invoker @@ -1607,7 +1616,7 @@ Release 0.7.3 (2014-08-16) Release 0.7.2 (2014-08-15) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - Rename ``Toggle Log Panel`` menu item to ``Open Output Panel`` - Update README.MD - Add ``Preview Page`` command to preview visualforce page in server, just enabled when opening page @@ -1615,20 +1624,20 @@ Release 0.7.2 (2014-08-15) Release 0.7.1 (2014-08-12) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - Add ``delay_seconds_for_hidden_output_panel_when_succeed`` for control delay seconds to hide output panel when saving succeed - Rename setting ``delay_seconds_for_hidden_console`` to ``delay_seconds_for_hidden_output_panel_when_failed`` Release 0.7.0 (2014-08-11) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - Even if component saving is succeed, show the output panel - If component saving is succeed, hide the open output panel after 1.5 seconds - When generating workbook or describe sobject, write the type column with Formula() or Release 0.6.9 (2014-08-09) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - When export workbooks, check whether input are valid, if any one is not valid, allow user to input again - ``Folder Refresh`` reminder message is changed - Add ``Update Project`` command to just update the apex code but not include sobject metadata @@ -1642,12 +1651,12 @@ Release 0.6.9 (2014-08-09) Release 0.6.8 (2014-08-08) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - Add remind message to show output panel Release 0.6.7 (2014-08-06) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - Console Message --> OutputPanel Message - Add a new command ``Open Log Panel`` for display log panel - Click ``super+``` to open output panel @@ -1655,51 +1664,51 @@ Release 0.6.7 (2014-08-06) Release 0.6.6 (2014-08-05) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - Set ``delay_seconds_for_hidden_console`` default value from ``15`` to ``9999`` - Update description for default settings - Add property and method completion for inner class Release 0.6.5 (2014-08-03) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - Fix picklist completion bug - Add keymap for ``Execute Rest Test`` command - Remove catalog from README Release 0.6.4 (2014-07-30) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - fix TypeError: save_component() missing 1 required positional argument: 'is_check_only' - Compatible to api 31 because `compile fail response change `_ Release 0.6.3 (2014-07-30) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - Optimize Rest Test when response result is str - Add ``proxies`` support, just beta Release 0.6.2 (2014-07-29) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - Fix issue for ``Delete`` command when list in returned json result is empty Release 0.6.1 (2014-07-22) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - **Picklist Value** completion from ``value`` to ``value(label)`` - **Save Conflict** functionality new format: **Modified by at 2014-05-04 10:03:31, continue?** Release 0.6.0 (2014-07-19) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - Add search class and its methods for apex lib - Fix bug for picklist value completion - Change ``user`` to ``User`` for issue #31 Release 0.5.9 (2014-07-10) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - Remove useless message from message.py - Add some buld-in emmet supported snippets - Add command ``quick_visualforce`` for emmet supported snippets @@ -1707,7 +1716,7 @@ Release 0.5.9 (2014-07-10) Release 0.5.8 (2014-06-13) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - Add a new class template ``Test Class`` - Add description for class template quick choose panel - ``Clear Cache`` functionality change, display ``project name`` not ``username`` any more @@ -1715,7 +1724,7 @@ Release 0.5.8 (2014-06-13) Release 0.5.7 (2014-06-05) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - Optimize for opening url with browser - Update OSX Keymap - Fix bug for ``generate workbook`` in OSX @@ -1724,7 +1733,7 @@ Release 0.5.7 (2014-06-05) Release 0.5.6 (2014-05-18) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - Fix bug for ``SELECT * FROM Sobject``, issue #30 - Add time stamp for ``save conflict`` confirm message - Optimize for ``Fetch Debug Log`` @@ -1732,7 +1741,7 @@ Release 0.5.6 (2014-05-18) Release 0.5.5 (2014-05-15) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - Add ``*`` support for ``Rest Query``, if ``*`` query, just replace it with all fields of related sobject - Add doc for Wild-card Character query - Fix ``Run Test`` bug caused by previous release @@ -1741,14 +1750,14 @@ Release 0.5.5 (2014-05-15) Release 0.5.4 (2014-05-15) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - Narrow down the code coverage column of test run result - When run specified test class by main menu, if no test class, show the alert message - Try to fix issue # 23 Release 0.5.3 (2014-05-12) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - Add new snippet ``Sobject - sobject bracket`` - Update description of ``Update Sobjects``, ``Delete Sobjects`` - Add two commands for command ``Reload Cache`` and ``Clear Cache`` @@ -1756,13 +1765,13 @@ Release 0.5.3 (2014-05-12) Release 0.5.2 (2014-05-10) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - Since from API 30, compound field (queryByDistance=true) can't be in soql field list - Fix bug for bulk api caused by release 0.5.1 Release 0.5.1 (2014-05-10) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - Fix Bug: ``Export CustomField`` - Update OSX keymap - Add ``Export SOQL`` command to export sobject records by specified soql @@ -1771,21 +1780,21 @@ Release 0.5.1 (2014-05-10) Release 0.5.0 (2014-05-09) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - Update ``README.MD`` - Fix bug UnicodeError for ``Export Workflows`` and ``Export Validation Rule`` in OSX - Remove some useless code, for example, ``Export Field Dependency`` Release 0.4.9 (2014-05-04) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - Change default setting ``delay_seconds_for_hidden_console`` from ``10`` to ``15`` - Change default ``api_version`` from ``29`` to ``30`` - Add command ``Retrieve Sobject And Workflow`` Release 0.4.8 (2014-04-27) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - Optimize picklist value completion - Remove ``.no-sublime-package`` - Replace ``excluded_sobjects`` settings with ``allowed_sobjects`` settings @@ -1794,7 +1803,7 @@ Release 0.4.8 (2014-04-27) Release 0.4.7 (2014-04-26) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - Fix some flaw for trigger completion - Optimize Apex Completion - Update READMD.MD @@ -1802,13 +1811,13 @@ Release 0.4.7 (2014-04-26) Release 0.4.6 (2014-04-21) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - Add ``last_n_logs`` setting to control the return number by fetching logs - Add ``check_save_conflict`` setting to control saving conflict when LastModifiedBy is not running user Release 0.4.5 (2014-04-20) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - Update snippet: ``Exception - try catch finally`` and ``Exception - try catch`` - Add doc for api.py - Originally, Keyword completion will exclude the existing-variable completion, now, bug mei le. @@ -1818,7 +1827,7 @@ Release 0.4.5 (2014-04-20) Release 0.4.4 (2014-04-17) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - Optimize SOQL Field completion - Update build-in apex lib - Update ``query_all`` rest api from ``query`` to ``queryAll`` which is available since winter 14 @@ -1827,14 +1836,14 @@ Release 0.4.4 (2014-04-17) Release 0.4.3 (2014-04-16) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - Add ``Search`` and ``Quick Search`` for ``Execute Rest Test`` - Update ``README.MD`` - When view is activated, display the default project in the sidebar Release 0.4.2 (2014-04-16) (Millstone for fixing some flaw in completion) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - Change ``display_field_name_and_label`` setting default value to false - BUG: Find variable type by variable name in view (Ignore comment code) - BUG: Find matched block in visualforce page (the matched region must contains current cursor point) @@ -1843,20 +1852,20 @@ Release 0.4.2 (2014-04-16) (Millstone for fixing some flaw in completion) Release 0.4.1 (2014-04-14) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - Update ``Visualforce`` xPath and Document source code - Change ``api_version`` back to 29 - Change the default test org password to updated one Release 0.4.0 (2014-04-14) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - ``Track Trace Flag`` expiration date verify logic change - Return all sobjects when call ``Global Describe`` method in api.py, originally default return value is createable and queryable sobjects Release 0.3.9 (2014-04-12) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - Update project folder structure, you can change it to original strcture by remove the ``src/`` from every component attribute - If visualforce component attribute type is ``Object`` in visualforce completion, return ```_ Release 0.3.6 (2014-03-30) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - Add thread progress for document reloading - Add confirm request for document reloading @@ -1897,19 +1906,19 @@ Release 0.3.6 (2014-03-30) Release 0.3.5 (2014-03-29) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - Clarify Usage of kinds of feature in README.MD Release 0.3.4 (2014-03-26) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - Fix urgent bug for `Issue #22 `_ Release 0.3.3 (2014-03-22) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - Add confirmation request for ``Refresh Component`` - Add a new command for ``Compile Component`` @@ -1917,14 +1926,14 @@ Release 0.3.3 (2014-03-22) Release 0.3.2 (2014-03-22) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - Upgrade ``xmltodict`` lib to latest - Add ``namespace`` for standard class in the completion **Release 0.3.1** (Milestone of Code Completion) (2014-03-22) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - Fix bug: ``KeyError: 'symbol_table'`` when save component is not ``ApexClass`` - Add some new standard class to completion @@ -1933,7 +1942,7 @@ Release 0.3.2 (2014-03-22) Release 0.3.0 (2014-03-20) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - Remove the duplicate ``New Component`` command and add ``New ApexPage`` command in the quick command palette - Update the apex standard class lib @@ -1941,7 +1950,7 @@ Release 0.3.0 (2014-03-20) Release 0.2.9 (2014-03-20) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - Move the fields describe part from the bottom to top in the sobject describe result - Change the default apex log level from ``Finest`` to ``Debug`` @@ -1950,7 +1959,7 @@ Release 0.2.9 (2014-03-20) Release 0.2.8 (2014-03-19) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - Add ``Tooling Query`` for ``Rest Explorer`` - Add ``SOQL & SOSL`` for Salesforce Document Reference @@ -1959,13 +1968,13 @@ Release 0.2.8 (2014-03-19) Release 0.2.7 (2014-03-17) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - Update the tabTrigger from muti-bytes to less than 5-bytes for all snippets Release 0.2.6 (2014-03-16) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - Fix the bug of ``Rest Post`` - Remove ``Request``, ``Application``, ``LogLength``, ``DurationMilliseconds`` from ``List Debug Log`` columns @@ -1974,7 +1983,7 @@ Release 0.2.6 (2014-03-16) Release 0.2.5 (2014-03-15) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - Remove the command ``New Component`` from the side bar - Remove four shortcut keys for the four new component @@ -1984,7 +1993,7 @@ Release 0.2.5 (2014-03-15) Release 0.2.4 (2014-03-11) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - Update README.MD - Remove shortcut key ``Ctrl+Alt+N`` for creating new component @@ -1992,7 +2001,7 @@ Release 0.2.4 (2014-03-11) Release 0.2.3 (2014-03-10) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - Add ``Console Toolkit``, ``Standard Objects``, ``Data Model`` and ``Tooling APi`` references to document list - Update Main Menu Item @@ -2004,21 +2013,21 @@ Release 0.2.3 (2014-03-10) Release 0.2.2 (2014-03-07) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - Remove some useless print statement in the document.py - Update README.MD for latest release Release 0.2.1 (2014-03-07) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - Add ``Rest Api``, ``Visualforce``, ``Chatter Api``, ``Streaming Api`` and ``Bulk Api`` to document list - Add methods redirect to document list Release 0.2.0 (2014-03-07) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - Change ``default_browser_path`` setting name to ``default_chrome_path`` - Add a new salesforce reference function from `Salesforce Reference `_ @@ -2026,7 +2035,7 @@ Release 0.2.0 (2014-03-07) Release 0.1.9 (2014-03-06) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - Fix the static resource bug ``Can't convert 'dict' object to str implicitly`` - When creating trigger, just list the triggerable sobject - If project is not created, ``New Component`` and ``Refresh Folder`` are disabled @@ -2034,7 +2043,7 @@ Release 0.1.9 (2014-03-06) Pre-release 0.1.8 (2014-03-05) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - When save component and error happened, ``go to`` the error line - Change the ``new component`` to separate ones @@ -2047,7 +2056,7 @@ Pre-release 0.1.8 (2014-03-05) Release 0.1.7 (2014-03-04) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - If project is not created, ``New Component`` and ``Refresh Folder`` are disabled - Allow empty json body for ``Post`` Action @@ -2057,14 +2066,14 @@ Release 0.1.7 (2014-03-04) Release 0.1.6 (2014-03-01) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - Update README.MD - Refractoring api.py Release 0.1.5 (2014-02-28) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - Change new view event type from ``on_new_sync`` to ``on_new`` - Set the default format for rest test result to ``JavaScript`` @@ -2072,21 +2081,21 @@ Release 0.1.5 (2014-02-28) Release 0.1.4 (2014-02-26) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - Update comments for ``toolingapi.sublime-settings`` - Fix the bug for ``open console`` Release 0.1.3 (2014-02-24) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - Add the support the static resource refresh functionality for the side bar menu - Add the support the static resource refresh functionality for the context menu - Add ``Patch`` method for ``Rest Explorer`` Release 0.1.2 (2014-02-22) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - Add a new setting ``default_chrome_path`` - Optimize the ``Rest Explorer`` functionality @@ -2094,7 +2103,7 @@ Release 0.1.2 (2014-02-22) Release 0.1.1 (2014-02-22) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - Add snippets for console toolkit - Add time stamp for success message of save component result @@ -2103,7 +2112,7 @@ Release 0.1.1 (2014-02-22) Release 0.1.0 (2014-02-20) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - Add snippets for console toolkit - Update README @@ -2111,7 +2120,7 @@ Release 0.1.0 (2014-02-20) Release 0.0.9 (2014-02-19) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - Update the snippets for debug - Add a new snippet "ReRender Form in JavaScript" @@ -2121,39 +2130,39 @@ Release 0.0.9 (2014-02-19) Patch for 0.0.8 (2014-02-12) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - Add two template for new component command: Controller and Utility Class - Add two snippets Patch for 0.0.7 (2014-02-12) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - Fix bug for `Issue #11 `_ Release 0.0.7 (2014-02-08) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - Fix problem when execute anonymous return error - Change ``disable_keyword_completion`` from true to false Release 0.0.6 (2014-02-08) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - Fix retrieve metadata exception Patch for 0.0.5 (2014-01-31) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - Update README.MD 0.0.5 (2014-01-22) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - Add Run All Test functionality - Adjust the format of test run result of single test class @@ -2161,13 +2170,13 @@ Patch for 0.0.5 (2014-01-31) 0.0.4 (2014-01-21) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - Remove ``Widget.sublime-settings`` from plugin 0.0.3 (2014-01-20) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - Add time stamp for all error message displayed in console - Disable deploy metadata command @@ -2176,13 +2185,13 @@ Patch for 0.0.5 (2014-01-31) Patch 0.0.2 (2014-01-11) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - Change the default test project 0.0.2 (2014-01-07) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - Remove ``debug_log_headers`` and ``debug_log_headers_properties`` settings - Unquote and unescape the error message returned by ``Save to Server`` @@ -2190,7 +2199,7 @@ Patch 0.0.2 (2014-01-11) Patch for 0.0.1 (2014-01-06) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - When creating new component, if user input is not valid, user can try again if need - Bug: if project is not created, just create the project for the new component @@ -2200,7 +2209,7 @@ Patch for 0.0.1 (2014-01-06) 0.0.1 (2014-01-05) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ - Remove ``Loop - for.sublime-snippet`` snippet - Remove ``all_views_completions.py`` dependency lib @@ -2208,7 +2217,7 @@ Patch for 0.0.1 (2014-01-06) Pre-release x.x.x (2013-12-06 -> 2013-12-31) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++++++++++ - There is a long confusing term on github version control - Add picklist value completions feature @@ -2236,7 +2245,7 @@ Pre-release x.x.x (2013-12-06 -> 2013-12-31) 0.0.0 (2013-04-14) -++++++++++++++++++ +++++++++++++++++++++++++++++++++++++ * Birth! diff --git a/README.md b/README.md index ede582e..83c45a1 100644 --- a/README.md +++ b/README.md @@ -51,7 +51,7 @@ If you don't want to keep your user credential information in the plugin , you j * Data Loader * Document Quick Reference * Plugin Operation -* Lighting Development +* Lightning Development * Completions Demo * Request Proxies diff --git a/aura.py b/aura.py index 5b11dcd..66d35e7 100644 --- a/aura.py +++ b/aura.py @@ -1,4 +1,5 @@ -import sublime, sublime_plugin +import sublime +import sublime_plugin import os import re @@ -21,21 +22,22 @@ def run(self): def is_enabled(self): self.settings = context.get_settings() metadata = util.get_described_metadata(self.settings) - if not metadata: + if not metadata: return False - + return True -class DeployLightingToServer(sublime_plugin.WindowCommand): +class DeployLightningToServer(sublime_plugin.WindowCommand): def __init__(self, *args, **kwargs): - super(DeployLightingToServer, self).__init__(*args, **kwargs) + super(DeployLightningToServer, self).__init__(*args, **kwargs) + self.meta_type = '' def run(self, dirs, switch_project=True, source_org=None, element=None, update_meta=False): if switch_project: return self.window.run_command("switch_project", { "callback_options": { - "callback_command": "deploy_lighting_to_server", + "callback_command": "deploy_lightning_to_server", "args": { "switch_project": False, "source_org": self.settings["default_project_name"], @@ -46,11 +48,11 @@ def run(self, dirs, switch_project=True, source_org=None, element=None, update_m } }) - base64_package = util.build_aura_package(dirs, meta_type=element) + base64_package = util.build_lightning_package(dirs, meta_type=self.meta_type) processor.handle_deploy_thread( - base64_package, - source_org=source_org, - element=element, + base64_package, + source_org=source_org, + element=element, update_meta=update_meta ) @@ -61,17 +63,19 @@ def is_visible(self, dirs, switch_project=True): self.settings = context.get_settings() for _dir in dirs: attributes = util.get_file_attributes(_dir) - metadata_folder = attributes["metadata_folder"] - if metadata_folder not in ["aura", "lwc"]: + meta_folder = attributes["metadata_folder"] + if meta_folder not in ["aura", "lwc"]: return False + self.meta_type = 'AuraDefinitionBundle' if meta_folder == 'aura' else 'LightningComponentBundle' if self.settings["default_project_name"] not in _dir: return False return True -class PreviewLightingAppInServer(sublime_plugin.WindowCommand): + +class PreviewLightningAppInServer(sublime_plugin.WindowCommand): def __init__(self, *args, **kwargs): - super(PreviewLightingAppInServer, self).__init__(*args, **kwargs) + super(PreviewLightningAppInServer, self).__init__(*args, **kwargs) def run(self, app_name=None): if app_name: @@ -107,23 +111,24 @@ def preview_app(self, app_name): def is_enabled(self): self.settings = context.get_settings() metadata = util.get_described_metadata(self.settings) - if not metadata: + if not metadata: return False - + self.namespace = metadata["organizationNamespace"] if not self.namespace: self.namespace = 'c' return True + class PreviewThisAppInServer(sublime_plugin.TextCommand): def run(self, edit): - self.view.window().run_command('preview_lighting_app_in_server', { + self.view.window().run_command('preview_lightning_app_in_server', { "app_name": self.app_name }) def is_enabled(self): - if not self.view.file_name(): + if not self.view.file_name(): return False attrs = util.get_file_attributes(self.view.file_name()) @@ -136,48 +141,59 @@ def is_enabled(self): def is_visible(self): return self.is_enabled() -class RetrieveLightingFromServer(sublime_plugin.WindowCommand): + +class RetrieveLightningFromServer(sublime_plugin.WindowCommand): def __init__(self, *args, **kwargs): - super(RetrieveLightingFromServer, self).__init__(*args, **kwargs) + super(RetrieveLightningFromServer, self).__init__(*args, **kwargs) + self.settings = context.get_settings() def run(self, dirs): message = "Are you sure you really want to continue refreshing" if sublime.ok_cancel_dialog(message, "Confirm?"): processor.handle_retrieve_package( - self.types, - self.settings["workspace"], + self.types, + self.settings["workspace"], ignore_package_xml=True ) def is_visible(self, dirs): - if len(dirs) == 0: return False - self.settings = context.get_settings() self.types = {} + if len(dirs) == 0: + return False for _dir in dirs: - if os.path.isfile(_dir): continue + if os.path.isfile(_dir): + continue base, _name = os.path.split(_dir) base, _folder = os.path.split(base) # Check Metadata Type - if _folder != "aura": continue + if _folder not in ["aura", "lwc"]: + continue # Check Project Name pn = self.settings["default_project_name"] - if pn not in _dir: continue + if pn not in _dir: + continue if "AuraDefinitionBundle" in self.types: self.types["AuraDefinitionBundle"].append(_name) - else: + elif "LightningComponentBundle" in self.types: + self.types["LightningComponentBundle"].append(_name) + elif _folder == 'aura': self.types["AuraDefinitionBundle"] = [_name] - + elif _folder == 'lwc': + self.types["LightningComponentBundle"] = [_name] + # Check whether any aura components are chosen - if not self.types: return False + if not self.types: + return False return True -class DestructLightingFromServer(sublime_plugin.WindowCommand): + +class DestructLightningFromServer(sublime_plugin.WindowCommand): def __init__(self, *args, **kwargs): - super(DestructLightingFromServer, self).__init__(*args, **kwargs) + super(DestructLightningFromServer, self).__init__(*args, **kwargs) def run(self, dirs): if sublime.ok_cancel_dialog("Confirm to continue?"): @@ -188,16 +204,17 @@ def is_visible(self, dirs): self.settings = context.get_settings() for _dir in dirs: attributes = util.get_file_attributes(_dir) - if attributes["metadata_folder"] != "aura": + if attributes["metadata_folder"] not in ["aura", "lwc"]: return False - if not util.check_enabled(_dir, check_cache=False): + if not util.check_enabled(_dir, check_cache=False): return False return True -class CreateLightingElement(sublime_plugin.WindowCommand): + +class CreateLightningElement(sublime_plugin.WindowCommand): def __init__(self, *args, **kwargs): - super(CreateLightingElement, self).__init__(*args, **kwargs) + super(CreateLightningElement, self).__init__(*args, **kwargs) def run(self, dirs, element=""): """ element: Component, Controller, Helper, Style, Documentation, Render @@ -207,16 +224,16 @@ def run(self, dirs, element=""): templates = util.load_templates() template = templates.get("AuraElement").get(element) settings = context.get_settings() - tempaltes_path = os.path.join(settings["workspace"], + templates_path = os.path.join(settings["workspace"], ".templates", template["directory"]) - with open(tempaltes_path) as fp: + with open(templates_path) as fp: body = fp.read() - + # JS Component is different with others extension = template["extension"] element_name = "%s%s%s" % ( self.aura_name, - element if extension == ".js" else "", + element if extension == ".js" else "", extension ) @@ -236,7 +253,7 @@ def run(self, dirs, element=""): self.window.run_command("refresh_folder_list") # Deploy Aura to server - self.window.run_command("deploy_lighting_to_server", { + self.window.run_command("deploy_lightning_to_server", { "dirs": [self._dir], "switch_project": False, "element": element, @@ -258,26 +275,27 @@ def is_visible(self, dirs, element=""): return False self.aura_name = attributes["name"] - # Check lighting type - lighting_extensions = [] + # Check lightning type + lightning_extensions = [] for dirpath, dirnames, filenames in os.walk(self._dir): for filename in filenames: extension = filename[filename.find("."):] - lighting_extensions.append(extension) + lightning_extensions.append(extension) # Just Component and Application can have child elements - if ".cmp" in lighting_extensions or ".app" in lighting_extensions: + if ".cmp" in lightning_extensions or ".app" in lightning_extensions: return True return False -class CreateLightingDefinition(sublime_plugin.WindowCommand): + +class CreateLightningDefinition(sublime_plugin.WindowCommand): def __init__(self, *args, **kwargs): - super(CreateLightingDefinition, self).__init__(*args, **kwargs) + super(CreateLightningDefinition, self).__init__(*args, **kwargs) def run(self, _type=""): self._type = _type - self.window.show_input_panel("Please Input %s Name: " % _type, + self.window.show_input_panel("Please Input %s Name: " % _type, "", self.on_input, None, None) def on_input(self, lightning_name): @@ -285,7 +303,7 @@ def on_input(self, lightning_name): if not re.match('^[a-zA-Z]+\\w+$', lightning_name): message = 'Invalid format, do you want to try again?' if not sublime.ok_cancel_dialog(message): return - self.window.show_input_panel("Please Input %s Name: " % self._type, + self.window.show_input_panel("Please Input %s Name: " % self._type, "", self.on_input, None, None) return @@ -299,20 +317,20 @@ def on_input(self, lightning_name): with open(os.path.join(workspace, ".templates", template["directory"])) as fp: body = fp.read() - # Build dir for new lighting component + # Build dir for new lightning component component_dir = os.path.join(workspace, "src", "aura", lightning_name) if not os.path.exists(component_dir): os.makedirs(component_dir) else: message = "%s is already exist, do you want to try again?" % lightning_name if not sublime.ok_cancel_dialog(message, "Try Again?"): return - self.window.show_input_panel("Please Input Lighting Name: ", + self.window.show_input_panel("Please Input Lightning Name: ", "", self.on_input, None, None) return - + lightning_file = os.path.join(component_dir, lightning_name+template["extension"]) - # Create Aura lighting file + # Create Aura lightning file with open(lightning_file, "w") as fp: fp.write(body) @@ -322,7 +340,7 @@ def on_input(self, lightning_name): window.run_command("refresh_folder_list") # Deploy Aura to server - self.window.run_command("deploy_lighting_to_server", { + self.window.run_command("deploy_lightning_to_server", { "dirs": [component_dir], "switch_project": False, "element": self._type, diff --git a/completions.py b/completions.py index cfac169..67e5c21 100644 --- a/completions.py +++ b/completions.py @@ -10,6 +10,7 @@ from .salesforce.lib import apex from .salesforce.lib import vf from .salesforce.lib import lightning +from .salesforce.lib import lwc from .salesforce.lib import html from .salesforce.lib import bootstrap from .salesforce.lib import slds @@ -655,11 +656,19 @@ def on_query_completions(self, view, prefix, locations): file_name = view.file_name() if not file_name : is_lightning = False + meta_type = None else: is_lightning = True if file_name.split(".")[-1] in ["app", "cmp", "evt", "html", "js"] else False + meta_type = util.get_meta_type(file_name) - # Get tag definition of Visualforce page or Lightning component - tag_defs = lightning.tag_defs if is_lightning else vf.tag_defs + # Get tag definition of Visualforce page or Lightning aura component or Lightning Web component + tag_defs = [] + if meta_type == 'aura': + tag_defs = lightning.tag_defs + elif meta_type == 'lwc': + tag_defs = lwc.tag_defs + elif meta_type in ['pages', 'components']: + tag_defs = vf.tag_defs # In order to speed up code completion, # store the "metadata" into globals() @@ -961,7 +970,7 @@ def on_query_completions(self, view, prefix, locations): if not mr.contains(pt): continue class_name = view.substr(mr).split("=")[0] - print (class_name) + # print (class_name) if class_name.lower() == "class": for class_name in slds.classes: completion_list.append(("%s\tSLDS" % class_name, class_name)) diff --git a/config/commands/main.sublime-commands b/config/commands/main.sublime-commands index ee39de3..6f6466a 100644 --- a/config/commands/main.sublime-commands +++ b/config/commands/main.sublime-commands @@ -72,39 +72,46 @@ }, { - "caption": "HaoIDE: New Lighting Application", - "command": "create_lighting_definition", + "caption": "HaoIDE: New lightning Application", + "command": "create_lightning_definition", "args": { "_type": "Application" } }, { - "caption": "HaoIDE: New Lighting Component", - "command": "create_lighting_definition", + "caption": "HaoIDE: New lightning Component", + "command": "create_lightning_definition", "args": { "_type": "Component" } }, { - "caption": "HaoIDE: New Lighting Interface", - "command": "create_lighting_definition", + "caption": "HaoIDE: New lightning Interface", + "command": "create_lightning_definition", "args": { "_type": "Interface" } }, { - "caption": "HaoIDE: New Lighting Event", - "command": "create_lighting_definition", + "caption": "HaoIDE: New lightning Event", + "command": "create_lightning_definition", "args": { "_type": "Event" } }, + {"caption": "-"}, + + { + "caption": "HaoIDE: New Lightning Web Component", + "command": "create_lightning_web_component" + }, + { - "caption": "HaoIDE: New Lighting Web Component", + "caption": "HaoIDE: New lightning Web Component", "command": "create_lightning_web_component" }, @@ -124,12 +131,12 @@ }, { - "caption": "HaoIDE: Preview Lighting App In Server", - "command": "preview_lighting_app_in_server" + "caption": "HaoIDE: Preview lightning App In Server", + "command": "preview_lightning_app_in_server" }, { - "caption": "HaoIDE: Preview This Lighting App In Server", + "caption": "HaoIDE: Preview This lightning App In Server", "command": "preview_this_app_in_server" }, @@ -140,7 +147,7 @@ { "caption": "HaoIDE: Deploy Auras to Server", - "command": "deploy_lighting_to_server", + "command": "deploy_lightning_to_server", "args": {"dirs": []} }, diff --git a/config/menus/Main.sublime-menu b/config/menus/Main.sublime-menu index 29e6ec1..427be83 100644 --- a/config/menus/Main.sublime-menu +++ b/config/menus/Main.sublime-menu @@ -50,7 +50,7 @@ { "caption": "New Lightning Application", - "command": "create_lighting_definition", + "command": "create_lightning_definition", "args": { "_type": "Application" } @@ -58,7 +58,7 @@ { "caption": "New Lightning Component", - "command": "create_lighting_definition", + "command": "create_lightning_definition", "args": { "_type": "Component" } @@ -66,7 +66,7 @@ { "caption": "New Lightning Interface", - "command": "create_lighting_definition", + "command": "create_lightning_definition", "args": { "_type": "Interface" } @@ -74,7 +74,7 @@ { "caption": "New Lightning Event", - "command": "create_lighting_definition", + "command": "create_lightning_definition", "args": { "_type": "Event" } diff --git a/config/menus/Side bar.sublime-menu b/config/menus/Side bar.sublime-menu index 353eadd..1773989 100644 --- a/config/menus/Side bar.sublime-menu +++ b/config/menus/Side bar.sublime-menu @@ -81,19 +81,19 @@ { "caption": "Retrieve Lightning From Server", - "command": "retrieve_lighting_from_server", + "command": "retrieve_lightning_from_server", "args": {"dirs": []} }, { "caption": "Destruct Lightning From Server", - "command": "destruct_lighting_from_server", + "command": "destruct_lightning_from_server", "args": {"dirs": []} }, { "caption": "Deploy Lightning To Server", - "command": "deploy_lighting_to_server", + "command": "deploy_lightning_to_server", "args": {"dirs": []} }, @@ -101,46 +101,65 @@ { "caption": "Create Lightning Controller", - "command": "create_lighting_element", + "command": "create_lightning_element", "args": {"dirs": [], "element": "Controller"} }, { "caption": "Create Lightning Helper", - "command": "create_lighting_element", + "command": "create_lightning_element", "args": {"dirs": [], "element": "Helper"} }, { "caption": "Create Lightning Style", - "command": "create_lighting_element", + "command": "create_lightning_element", "args": {"dirs": [], "element": "Style"} }, { "caption": "Create Lightning Documentation", - "command": "create_lighting_element", + "command": "create_lightning_element", "args": {"dirs": [], "element": "Documentation"} }, { "caption": "Create Lightning Renderer", - "command": "create_lighting_element", + "command": "create_lightning_element", "args": {"dirs": [], "element": "Renderer"} }, { "caption": "Create Lightning Design", - "command": "create_lighting_element", + "command": "create_lightning_element", "args": {"dirs": [], "element": "Design"} }, { "caption": "Create Lightning SVG", - "command": "create_lighting_element", + "command": "create_lightning_element", "args": {"dirs": [], "element": "SVG"} }, + { + "caption": "Create Lwc Style", + "command": "create_lwc_element", + "args": {"dirs": [], "element": "CSS"} + }, + + { + "caption": "Create Lwc SVG", + "command": "create_lwc_element", + "args": {"dirs": [], "element": "SVG"} + }, + + // do not support additional js current + // { +// "caption": "Add Lwc Additional JS", +// "command": "create_lwc_element", +// "args": {"dirs": [], "element": "AdditionalJS"} +// }, + {"caption": "-"}, { diff --git a/config/snippets/Apex/Class Header - class header.sublime-snippet b/config/snippets/Apex/Class Header - class header.sublime-snippet index 3babad5..fcc0873 100644 --- a/config/snippets/Apex/Class Header - class header.sublime-snippet +++ b/config/snippets/Apex/Class Header - class header.sublime-snippet @@ -5,9 +5,9 @@ * Object: $2 * Purpose: $3 * Author: $4 ($5) - * Create Date: 2018-${6:05-07} + * Create Date: 2019-${6:07-15} * Modify History: - * 2019-${6:02-25} $4 ${7:Create this class} + * 2019-${6:07-15} $4 ${7:Create this class} **************************************************************************************************/ ]]> ch diff --git a/config/templates/lwc/lwc.html b/config/templates/Lwc/lwc.html similarity index 95% rename from config/templates/lwc/lwc.html rename to config/templates/Lwc/lwc.html index ba53413..af9fa97 100644 --- a/config/templates/lwc/lwc.html +++ b/config/templates/Lwc/lwc.html @@ -1,2 +1,3 @@ \ No newline at end of file diff --git a/config/templates/lwc/lwc.js b/config/templates/Lwc/lwc.js similarity index 95% rename from config/templates/lwc/lwc.js rename to config/templates/Lwc/lwc.js index 2bfae5b..0ddaf1d 100644 --- a/config/templates/lwc/lwc.js +++ b/config/templates/Lwc/lwc.js @@ -1,5 +1,5 @@ import { LightningElement, track, wire } from 'lwc'; export default class {class_name__c} extends LightningElement { - + } \ No newline at end of file diff --git a/config/templates/lwc/lwc.js-meta.xml b/config/templates/Lwc/lwc.js-meta.xml similarity index 86% rename from config/templates/lwc/lwc.js-meta.xml rename to config/templates/Lwc/lwc.js-meta.xml index ec53795..cfee44c 100644 --- a/config/templates/lwc/lwc.js-meta.xml +++ b/config/templates/Lwc/lwc.js-meta.xml @@ -1,5 +1,5 @@ {api_version}.0 - false + true \ No newline at end of file diff --git a/config/templates/LwcElement/Additional.js b/config/templates/LwcElement/Additional.js new file mode 100644 index 0000000..8fae127 --- /dev/null +++ b/config/templates/LwcElement/Additional.js @@ -0,0 +1 @@ +//sample additional js file \ No newline at end of file diff --git a/config/templates/LwcElement/SVG.svg b/config/templates/LwcElement/SVG.svg new file mode 100644 index 0000000..3e1b694 --- /dev/null +++ b/config/templates/LwcElement/SVG.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/config/templates/LwcElement/Style.css b/config/templates/LwcElement/Style.css new file mode 100644 index 0000000..1fabb2c --- /dev/null +++ b/config/templates/LwcElement/Style.css @@ -0,0 +1 @@ +/* sample css file */ \ No newline at end of file diff --git a/config/templates/templates.json b/config/templates/templates.json index 6af8196..f70a14a 100644 --- a/config/templates/templates.json +++ b/config/templates/templates.json @@ -167,5 +167,39 @@ "extension": ".page", "description": "Visualforce Page Template" } + }, + + "Lwc": { + "HTLM": { + "directory": "Lwc/lwc.html", + "extension": ".html" + }, + + "JavaScript": { + "directory": "Lwc/lwc.js", + "extension": ".js" + }, + + "Configuration": { + "directory": "Lwc/lwc.js-meta.xml", + "extension": ".js-meta.xml" + } + }, + + "LwcElement": { + "AdditionalJS": { + "directory": "LwcElement/Additional.js", + "extension": ".js" + }, + + "CSS": { + "directory": "LwcElement/Style.css", + "extension": ".css" + }, + + "SVG": { + "directory": "LwcElement/SVG.svg", + "extension": ".svg" + } } } \ No newline at end of file diff --git a/context.py b/context.py index a151a68..97df5b3 100644 --- a/context.py +++ b/context.py @@ -22,6 +22,7 @@ 'svg': '.svg' } + def get_settings(): """ Load all settings in toolingapi.sublime-settings @@ -77,10 +78,11 @@ def get_settings(): else: settings["security_token"] = "" - # Get the default api version + # Get the default api version, updated the very default version to v45 for + # the support of Lightning Web Component api_version = default_project.get("api_version") if not api_version: - api_version = s.get("api_version", 37) + api_version = s.get("api_version", 45) # Set deploy options deploy_options = default_project.get("deploy_options") @@ -246,6 +248,7 @@ def get_default_project_name(): return default_project_name + def build_metadata_objects_settings(settings, metadata_objects): settings["all_metadata_folders"] = [c["directoryName"] for c in metadata_objects] settings["all_metadata_objects"] = [c["xmlName"] for c in metadata_objects] diff --git a/docs/lwc.md b/docs/lwc.md new file mode 100644 index 0000000..3b35db6 --- /dev/null +++ b/docs/lwc.md @@ -0,0 +1,25 @@ +# Lightning Web Componnent + Lightning web components are custom HTML elements built using HTML and modern JavaScript. + + ## Create Lightning Web Component + +For better convenience, will create the `lwc` as `LightningComponentBundle` with three `LwcResources`: HTML File, JavaScript File and Configuration File. + + ``` + myComponent + ├──myComponent.html + ├──myComponent.js + └──myComponent.js-meta.xml +``` + +## Add CSS File + +## Add SVG Icon + +## Add Additional JavaScript File + +## Component Tests + +## Destruct File + +## Destruct lwc \ No newline at end of file diff --git a/lwc.py b/lwc.py index 403c1ff..deb3489 100644 --- a/lwc.py +++ b/lwc.py @@ -1,4 +1,5 @@ -import sublime, sublime_plugin +import sublime +import sublime_plugin import os import re @@ -11,74 +12,172 @@ class CreateLightningWebComponent(sublime_plugin.WindowCommand): def __init__(self, *args, **kwargs): super(CreateLightningWebComponent, self).__init__(*args, **kwargs) + # Get settings + self._settings = context.get_settings() + self._workspace = self._settings["workspace"] - def run(self): - self.window.show_input_panel("Please Input Your Component Name: ", - "", self.on_input, None, None) + def run(self, *args): + if self._settings["api_version"] < 45: + message = "Lightning Web Component only available for API Version >= 45, current is %s" + sublime.error_message(message % self._settings["api_version"]) + return + self.window.show_input_panel("Please Input Lightning Web Component Name: ", + "", self.on_input, None, None) def on_input(self, lwc_name): # Create component to local according to user input - if not re.match('^[a-zA-Z]+\\w+$', lwc_name): + if not re.match('^[a-z]+\\w*[A-Za-z0-9]$', lwc_name) or re.match('__+', lwc_name): message = 'Invalid format, do you want to try again?' - if not sublime.ok_cancel_dialog(message): + if not sublime.ok_cancel_dialog(message): return - return self.window.show_input_panel( - "Please Input Your Component Name: ", - "", self.on_input, None, None - ) - - # Update first letter to lower case - lwc_name = lwc_name[0].lower() + lwc_name[1:] - - # Get settings - settings = context.get_settings() - workspace = settings["workspace"] - - # Get template attribute - templates = util.load_templates() - template = templates.get("lwc") + self.window.show_input_panel("Please Input Lightning Web Component Name: ", + "", self.on_input, None, None) + return - # Build dir for new LWC - component_dir = os.path.join(workspace, "src", "lwc", lwc_name) + # Build dir for new Lightning web component + component_dir = os.path.join(self._workspace, "src", "lwc", lwc_name) if not os.path.exists(component_dir): os.makedirs(component_dir) else: message = "%s is already exist, do you want to try again?" % lwc_name - if not sublime.ok_cancel_dialog(message, "Try Again?"): return - self.window.show_input_panel("Please Input Lighting Name: ", - "", self.on_input, None, None) + if not sublime.ok_cancel_dialog(message, "Try Again?"): + return + self.window.show_input_panel("Input Lightning Web Component Name: ", + "", self.on_input, None, None) return - # Create lwc init files - for k, v in template.items(): - with open(os.path.join(workspace, ".templates", v["directory"])) as fp: + # Get template attribute + templates = util.load_templates() + template_bundle = templates.get("lwc") + for tpl_name in template_bundle: + template = template_bundle.get(tpl_name) + with open(os.path.join(self._workspace, ".templates", template["directory"])) as fp: body = fp.read() + # Insert lwc name and api version into files + body = body.replace('{class_name__c}', lwc_name) + body = body.replace('{api_version}', str(self._settings["api_version"])) - # Update dynamic parameters in the template - body = body.replace("{class_name__c}", lwc_name[:1].upper() + lwc_name[1:]) - body = body.replace("{api_version}", str(settings["api_version"])) - - lwc_file = os.path.join(component_dir, lwc_name + v["extension"]) + lwc_file = os.path.join(component_dir, lwc_name + template["extension"]) - # Create Aura lightning file + # Create Aura Lightning file with open(lwc_file, "w") as fp: fp.write(body) - # If created succeed, open lwc html - if v["extension"] == ".html": - window = sublime.active_window() - window.open_file(lwc_file) - - # Refresh sidebar folder list - window.run_command("refresh_folder_list") + # If created succeed, just open it and refresh project + window = sublime.active_window() + window.open_file(lwc_file) + window.run_command("refresh_folder_list") - # Deploy Aura to server - self.window.run_command("deploy_lighting_to_server", { + # Deploy Lightning Web Component to server + self.window.run_command("deploy_lwc_to_server", { "dirs": [component_dir], "switch_project": False, - "element": "LightningComponentBundle", "update_meta": True }) def is_enabled(self): return util.check_action_enabled() + + def is_visible(self): + if self._settings["api_version"] < 45: + return False + return True + + +class DeployLwcToServer(sublime_plugin.WindowCommand): + def __init__(self, *args, **kwargs): + super(DeployLwcToServer, self).__init__(*args, **kwargs) + self.settings = context.get_settings() + + def run(self, dirs, switch_project=True, source_org=None, update_meta=False): + if switch_project: + return self.window.run_command("switch_project", { + "callback_options": { + "callback_command": "deploy_lwc_to_server", + "args": { + "switch_project": False, + "source_org": self.settings["default_project_name"], + "dirs": dirs, + "update_meta": update_meta + } + } + }) + + base64_package = util.build_lightning_package(dirs, 'LightningComponentBundle') + processor.handle_deploy_thread(base64_package, source_org=source_org, update_meta=update_meta) + + def is_visible(self, dirs, switch_project=True): + visible = True + if not dirs or len(dirs) == 0: + visible = False + + for _dir in dirs: + attributes = util.get_file_attributes(_dir) + metadata_folder = attributes["metadata_folder"] + if metadata_folder != "lwc": + visible = False + if self.settings["default_project_name"] not in _dir: + visible = False + + return visible + + +class CreateLwcElement(sublime_plugin.WindowCommand): + def __init__(self, *args, **kwargs): + super(CreateLwcElement, self).__init__(*args, **kwargs) + self.settings = context.get_settings() + + def run(self, dirs, element=""): + """ element: Component, Controller, Helper, Style, Documentation, Render + """ + + # Get template attribute + templates = util.load_templates() + template = templates.get("LwcElement").get(element) + templates_path = os.path.join(self.settings["workspace"], + ".templates", template["directory"]) + with open(templates_path) as fp: + body = fp.read() + + extension = template["extension"] + element_name = self.lwc_name + extension + + # Combine lwc element component name + element_file = os.path.join(self._dir, element_name) + + # If element file is already exist, just alert + if os.path.isfile(element_file): + return self.window.open_file(element_file) + + # Create lwc Element file + with open(element_file, "w") as fp: + fp.write(body) + + # If created succeed, just open it and refresh project + self.window.open_file(element_file) + self.window.run_command("refresh_folder_list") + + # Deploy Aura to server + self.window.run_command("deploy_lightning_to_server", { + "dirs": [self._dir], + "switch_project": False, + "element": element, + "update_meta": True + }) + + def is_visible(self, dirs, element=""): + if not dirs or len(dirs) != 1: + return False + self._dir = dirs[0] + + # Check whether project is the active one + if self.settings["default_project_name"] not in self._dir: + return False + + # Check metadata folder + attributes = util.get_file_attributes(self._dir) + if attributes["metadata_folder"] != "lwc": + return False + self.lwc_name = attributes["name"] + + return True diff --git a/main.py b/main.py index c136e4c..5ef7d3a 100644 --- a/main.py +++ b/main.py @@ -606,6 +606,7 @@ def on_input_name(self, name): if not name: return processor.handle_export_query_to_csv(self.tooling, self.soql, name) + class ExportDataTemplateCommand(sublime_plugin.WindowCommand): def __init__(self, *args, **kwargs): super(ExportDataTemplateCommand, self).__init__(*args, **kwargs) @@ -633,6 +634,7 @@ def on_choose_recordtype(self, index): def is_enabled(self): return util.check_action_enabled() + class ExecuteRestTest(sublime_plugin.TextCommand): def run(self, edit): self.items = ["Get", "Post", "Put", "Patch", "Delete", "Tooling Query", @@ -664,6 +666,7 @@ def is_enabled(self): if not self.sel: return False return True + class GotoComponentCommand(sublime_plugin.TextCommand): """ Move the cursor to the class name, press shift key and double click left mouse, @@ -693,16 +696,19 @@ def run(self, edit, is_background=False, allowed_folders=None): if is_background: self.view.window().focus_view(self.view) + class SetCheckPointCommand(sublime_plugin.TextCommand): def run(self, edit, mark): sel = [s for s in self.view.sel()] self.view.add_regions(mark, sel, "invalid", "dot", sublime.DRAW_SOLID_UNDERLINE | sublime.DRAW_EMPTY_AS_OVERWRITE) + class RemoveCheckPointCommand(sublime_plugin.TextCommand): def run(self, edit, mark): self.view.erase_regions(mark) + class ViewCodeCoverageCommand(sublime_plugin.TextCommand): def run(self, edit): util.view_coverage(self.attributes["name"], self.file_name, self.body) @@ -724,7 +730,6 @@ def is_enabled(self): if self.attributes["metadata_folder"] not in ["classes", "triggers"]: return False - # Can't be Test Class with open(self.file_name, encoding="utf-8") as fp: self.body = fp.read() @@ -735,7 +740,9 @@ def is_enabled(self): return True def is_visible(self): - return self.is_enabled() + # return self.is_enabled() + return False + class ViewSelectedCodeCoverageCommand(sublime_plugin.TextCommand): def run(self, edit): @@ -2389,6 +2396,7 @@ def on_input(self, password): def is_enabled(self): return util.check_action_enabled() + class UpdateProjectPatternsCommand(sublime_plugin.WindowCommand): def __init__(self, *args, **kwargs): super(UpdateProjectPatternsCommand, self).__init__(*args, **kwargs) @@ -2400,6 +2408,7 @@ def run(self): def is_enabled(self): return util.check_action_enabled() + class UpdateProjectCommand(sublime_plugin.WindowCommand): def __init__(self, *args, **kwargs): super(UpdateProjectCommand, self).__init__(*args, **kwargs) @@ -2412,6 +2421,7 @@ def run(self): def is_enabled(self): return util.check_action_enabled() + class CreateNewProject(sublime_plugin.WindowCommand): def __init__(self, *args, **kwargs): super(CreateNewProject, self).__init__(*args, **kwargs) diff --git a/processor.py b/processor.py index 376d76d..ada3f98 100644 --- a/processor.py +++ b/processor.py @@ -1333,6 +1333,7 @@ def handle_thread(thread, timeout): ThreadProgress(api, thread, "Describe Global", "Describe Global Succeed") handle_thread(thread, timeout) + def handle_new_project(is_update=False, timeout=120): def handle_thread(thread, timeout): if thread.is_alive(): @@ -1406,6 +1407,7 @@ def handle_thread(thread, timeout): ThreadProgress(api, thread, wating_message, wating_message + " Finished") handle_thread(thread, timeout) + def handle_describe_metadata(callback_options, timeout=120): def handle_thread(thread, timeout): if thread.is_alive(): diff --git a/salesforce/api/apex.py b/salesforce/api/apex.py index fbbeee1..3b92497 100644 --- a/salesforce/api/apex.py +++ b/salesforce/api/apex.py @@ -13,7 +13,7 @@ from ... import requests, util -class ApexApi(): +class ApexApi: def __init__(self, settings, **kwargs): self.settings = settings self.soap = SOAP(settings) @@ -62,7 +62,7 @@ def run_all_test(self): "SOAPAction": '""' } - soap_body = soap.run_all_test.format(session_id=self.session["session_id"]) + soap_body = SOAP.run_all_test.format(session_id=self.session["session_id"]) body = self.soap.create_request('run_all_test') try: diff --git a/salesforce/api/metadata.py b/salesforce/api/metadata.py index a4327c3..65bef25 100644 --- a/salesforce/api/metadata.py +++ b/salesforce/api/metadata.py @@ -13,7 +13,8 @@ from ... import requests, util from ..lib.panel import Printer -class MetadataApi(): + +class MetadataApi: def __init__(self, settings, **kwargs): self.settings = settings self.api_version = settings["api_version"] @@ -113,8 +114,8 @@ def check_status(self, async_process_id, timeout=120): session = requests.Session() adapter = requests.adapters.HTTPAdapter(max_retries=10) session.mount(self.metadata_url, adapter) - response = session.post(self.metadata_url, soap_body, verify=False, - headers=headers, timeout=timeout) + response = session.post(self.metadata_url, soap_body, verify=False, + headers=headers, timeout=timeout) except requests.exceptions.RequestException as e: self.result = { "Error Message": "Network connection timeout when checking status for retrieve", @@ -151,7 +152,7 @@ def check_retrieve_status(self, async_process_id): adapter = requests.adapters.HTTPAdapter(max_retries=10) session.mount(self.metadata_url, adapter) response = session.post(self.metadata_url, soap_body, - verify=False, headers=headers, timeout=120) + verify=False, headers=headers, timeout=120) except requests.exceptions.RequestException as e: self.result = { "Error Message": "Network connection timeout when checking retrieve status", @@ -383,7 +384,7 @@ def prepare_members(self, _types, list_package_for_all=False): if "CustomObject" in _types and "*" in _types["CustomObject"]: _types_list.append("CustomObject") - print (_types) + print(_types) if "InstalledPackage" in _types and "*" in _types["InstalledPackage"]: _types_list.append("InstalledPackage") else: @@ -459,7 +460,7 @@ def list_package(self, _types): try: response = requests.post(self.metadata_url, soap_body, - verify=False, headers=self.headers) + verify=False, headers=self.headers) except requests.exceptions.RequestException as e: Printer.get("log").write("Connection timeout when list package for %s" % ( ", ".join(list(_types.keys())) diff --git a/salesforce/lib/lightning.py b/salesforce/lib/lightning.py index e21bf02..6ef5a8f 100644 --- a/salesforce/lib/lightning.py +++ b/salesforce/lib/lightning.py @@ -2312,7 +2312,9 @@ "extends": { "type": "Picklist", "values": [ - "force:slds" + "${1:Customize}", + "force:slds", + "ltng:outApp" ] }, "extensible": { @@ -2386,24 +2388,6 @@ "type": "aura" }, - "design:attribute": { - "attribs": { - "default": { - "type": "String" - }, - "description": { - "type": "String" - }, - "name": { - "type": "String" - }, - "required": { - "type": "Boolean" - } - }, - "simple": False, - "type": "aura" - }, "aura:component": { "attribs": { "access": { @@ -2788,6 +2772,63 @@ "type": "aura" }, + "design:attribute": { + "attribs": { + "datasource": { + "description": "Renders a field as a picklist, with static values. Only supported for String attributes.", + "type": "String" + }, + "default": { + "description": "Sets a default value on an attribute in a design resource.", + "type": "String" + }, + "description": { + "description": "Displays as an i-bubble for the attribute in the tool.", + "type": "String" + }, + "label": { + "description": "Attribute label that displays in the tool.", + "type": "String" + }, + "max": { + "description": "If the attribute is an Integer, this sets its maximum allowed value. If the attribute is a String, this is the maximum length allowed.", + "type": "Integer" + }, + "min": { + "description": "If the attribute is an Integer, this sets its minimum allowed value. If the attribute is a String, this is the minimum length allowed.", + "type": "Integer" + }, + "": { + "description": "", + "type": "String" + }, + "name": { + "description": "Required attribute. Its value must match the aura:attribute name value in the .cmp resource.", + "type": "String" + }, + "placeholder": { + "description": "Input placeholder text for the attribute when it displays in the tool.", + "type": "String" + }, + "required": { + "description": "Denotes whether the attribute is required. If omitted, defaults to false.", + "type": "String" + } + }, + "simple": False, + "type": "aura" + }, + "design:component": { + "attribs": { + "label": { + "description": "Sets the label of the component when it displays in tools such as App Builder.", + "type": "String" + } + }, + "simple": False, + "type": "aura" + }, + "force:canvasApp": { "attribs": { "applicationName": { @@ -10723,4250 +10764,5 @@ }, "simple": False, "type": "aura" - }, - - "template": { - "simple": False, - "type": "lwc", - "attribs": { - "for:each": { - "type": "TrackObject", - "access": "global", - "required": False, - "default": "", - "description": "Use this directive to iterate over an array and render a list." - }, - "for:item": { - "type": "TrackObject", - "access": "global", - "required": False, - "default": "", - "description": "" - }, - "if:true": { - "type": "TrackObject", - "access": "global", - "required": False, - "default": "", - "description": "Use this directive to conditionally render DOM elements in a template." - }, - "if:false": { - "type": "TrackObject", - "access": "global", - "required": False, - "default": "", - "description": "Use this directive to conditionally render DOM elements in a template." - }, - "key": { - "type": "TrackObject", - "access": "global", - "required": False, - "default": "", - "description": "Use this directive to improve rendering performance by assigning a unique identifier to each item in a list. The key must be a string or a number, it can’t be an object. The engine uses the keys to determine which items have changed." - }, - "lwc:dom": { - "type": "TrackObject", - "access": "global", - "required": False, - "default": "", - "description": "Add this directive to a native HTML element to call appendChild() on the element from the owner’s JavaScript class and preserve styling." - } - } - }, - - "lightning-accordion": { - "simple": False, - "type": "lwc", - "attribs": { - "title": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Displays tooltip text when the mouse moves over the element." - }, - "active-section-name": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Changes the default expanded section.\nThe first section in the accordion is expanded by default." - }, - "allow-multiple-sections-open": { - "type": "Boolean", - "access": "global", - "required": False, - "default": "", - "description": "If present, the accordion allows multiple open sections.\nOtherwise, opening a section closes another that's currently open." - } - }, - "events": { - "onsectiontoggle": { - "type": "COMPONENT", - "description": "The event fired when an accordion section is toggled" - } - } - }, - - "lightning-accordion-section": { - "simple": False, - "type": "lwc", - "attribs": { - "name": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The unique section name to use with the active-section-name attribute in the accordion component." - }, - "label": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The text that displays as the title of the section." - }, - "title": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Displays a tooltip text when the mouse moves over the element." - } - } - }, - - "lightning-avatar": { - "simple": False, - "type": "lwc", - "attribs": { - "alternative-text": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The alternative text used to describe the avatar, which is displayed as\nhover text on the image." - }, - "fallback-icon-name": { - "type": "Picklist", - "values": icon_names, - "access": "global", - "required": False, - "default": "", - "description": "The Lightning Design System name of the icon used as a fallback when the\nimage fails to load. The initials fallback relies on this for its\nbackground color. Names are written in the format 'standard:account'\nwhere 'standard' is the category, and 'account' is the specific icon to\nbe displayed. Only icons from the standard and custom categories are\nallowed." - }, - "initials": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "If the record name contains two words, like first and last name, use the\nfirst capitalized letter of each. For records that only have a single\nword name, use the first two letters of that word using one capital and\none lower case letter." - }, - "size": { - "type": "Picklist", - "values": ["xx-small", "x-small", "small", "medium", "large"], - "access": "global", - "required": False, - "default": "", - "description": "The size of the avatar. Valid values are x-small, small, medium, and large. This value defaults to medium." - }, - "src": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The URL for the image." - }, - "variant": { - "type": "Picklist", - "values": ["square", "circle", ""], - "access": "global", - "required": False, - "default": "", - "description": "The variant changes the shape of the avatar. Valid values are empty,\ncircle, and square. This value defaults to square." - } - } - }, - - "lightning-badge": { - "simple": False, - "type": "lwc", - "attribs": { - "label": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The text to be displayed inside the badge." - } - } - }, - - "lightning-breadcrumb": { - "simple": False, - "type": "lwc", - "attribs": { - "href": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The URL of the page that the breadcrumb goes to." - }, - "label": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The text label for the breadcrumb." - }, - "name": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The name for the breadcrumb component. This value is optional and can be\nused to identify the breadcrumb in a callback." - } - } - }, - - "lightning-breadcrumbs": { - "simple": False, - "type": "lwc", - "attribs": {} - }, - - "lightning-button": { - "simple": False, - "type": "lwc", - "attribs": { - "name": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "" - }, - "value": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "" - }, - "label": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "" - }, - "variant": { - "type": "Picklist", - "values": [ - "base", - "neutral", - "brand", - "destructive", - "inverse", - "success" - ], - "access": "global", - "required": False, - "default": "neutral", - "description": "" - }, - "icon-name": { - "type": "Picklist", - "values": icon_names, - "access": "global", - "required": False, - "default": "", - "description": "" - }, - "icon-position": { - "type": "Picklist", - "values": ["left", "right"], - "access": "global", - "required": False, - "default": "left", - "description": "" - }, - "type": { - "type": "Picklist", - "values": ["reset", "submit", "button"], - "access": "global", - "required": False, - "default": "button", - "description": "" - } - } - }, - - "lightning-button-group": { - "simple": False, - "type": "lwc", - "attribs": {} - }, - - "lightning-button-icon": { - "simple": False, - "type": "lwc", - "attribs": { - "name": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "" - }, - "value": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "" - }, - "variant": { - "type": "Picklist", - "values": [ - "base", - "neutral", - "brand", - "destructive", - "inverse", - "success" - ], - "access": "global", - "required": False, - "default": "", - "description": "" - }, - "icon-name": { - "type": "Picklist", - "values": icon_names, - "access": "global", - "required": False, - "default": "", - "description": "" - }, - "icon-class": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "" - }, - "size": { - "type": "Picklist", - "values": ["xx-small", "x-small", "small", "medium", "large"], - "access": "global", - "required": False, - "default": "", - "description": "" - }, - "type": { - "type": "Picklis", - "values": ["button", "rest", "submit"], - "access": "global", - "required": False, - "default": "", - "description": "" - }, - "alternative-text": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "" - }, - "tooltip": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "" - } - } - }, - - "lightning-button-icon-stateful": { - "simple": False, - "type": "lwc", - "attribs": { - "name": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "" - }, - "value": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "" - }, - "variant": { - "type": "Picklist", - "values": [ - "base", - "neutral", - "brand", - "destructive", - "inverse", - "success" - ], - "access": "global", - "required": False, - "default": "", - "description": "" - }, - "icon-name": { - "type": "Picklist", - "values": icon_names, - "access": "global", - "required": False, - "default": "", - "description": "" - }, - "size": { - "type": "Picklist", - "values": ["xx-small", "x-small", "small", "medium", "large"], - "access": "global", - "required": False, - "default": "", - "description": "" - }, - "alternative-text": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "" - }, - "selected": { - "type": "Boolean", - "access": "global", - "required": False, - "default": "", - "description": "" - } - } - }, - - "lightning-button-menu": { - "simple": False, - "type": "lwc", - "attribs": { - "variant": { - "type": "Picklist", - "values": [ - "bare", - "container", - "border", - "border-filled", - "bare-inverse", - "border-inverse" - ], - "access": "global", - "required": False, - "default": "border", - "description": "The variant changes the look of the button.\nAccepted variants include bare, container, border, border-filled, bare-inverse, and border-inverse.\nThis value defaults to border." - }, - "icon-size": { - "type": "Picklist", - "values": ["xx-small", "x-small", "small", "medium", "large"], - "access": "global", - "required": False, - "default": "medium", - "description": "The size of the icon.\nOptions include xx-small, x-small, medium, or large.\nThis value defaults to medium." - }, - "icon-name": { - "type": "Picklist", - "values": icon_names, - "access": "global", - "required": False, - "default": "utility:down", - "description": "The name of the icon to be used in the format 'utility:down'.\nIf an icon other than 'utility:down' or 'utility:chevrondown' is used,\na utility:down icon is appended to the right of that icon.\nThis value defaults to utility:down." - }, - "value": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The value for the button element.\nThis value is optional and can be used when submitting a form." - }, - "alternative-text": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The assistive text for the button." - }, - "loading-state-alternative-text": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Message displayed while the menu is in the loading state." - }, - "label": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Optional text to be shown on the button." - }, - "draft-alternative-text": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Describes the reason for showing the draft indicator.\nThis is required when is-draft is true." - }, - "menu-alignment": { - "type": "String", - "values": ["auto", "left", "center", "right", "bottom-left", "bottom-center", "bottom-right"], - "access": "global", - "required": False, - "default": "", - "description": "Determines the alignment of the menu relative to the button.\nAvailable options are: auto, left, center, right, bottom-left, bottom-center, bottom-right.\nThe auto option aligns the dropdown menu based on available space.\nThis value defaults to left." - }, - "disabled": { - "type": "Boolean", - "access": "global", - "required": False, - "default": "", - "description": "If present, the menu can be opened by users." - }, - "nubbin": { - "type": "Boolean", - "access": "global", - "required": False, - "default": "", - "description": "If present, a nubbin is present on the menu.\nA nubbin is a stub that protrudes from the menu item towards the button menu.\nThe nubbin position is based on the menu-alignment." - }, - "title": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Displays tooltip text when the mouse moves over the button menu." - }, - "is-draft": { - "type": "Boolean", - "access": "global", - "required": False, - "default": "", - "description": "If present, the menu trigger shows a draft indicator." - }, - "is-loading": { - "type": "Boolean", - "access": "global", - "required": False, - "default": "", - "description": "If present, the menu is in a loading state and shows a spinner." - }, - "access-key": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The keyboard shortcut for the button menu." - }, - "tab-index": { - "type": "Integer", - "access": "global", - "required": False, - "default": "", - "description": "Reserved for internal use. Use tabindex instead to indicate if an element should be focusable.\ntabindex can be set to 0 or -1.\nThe default tabindex value is 0, which means that the button is focusable and participates in sequential keyboard navigation.\n-1 means that the button is focusable but does not participate in keyboard navigation." - }, - "tooltip": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Text to display when the user mouses over or focuses on the button.\nThe tooltip is auto-positioned relative to the button and screen space." - } - } - }, - - "lightning-button-stateful": { - "simple": False, - "type": "lwc", - "attribs": { - "icon-name-when-on": { - "type": "Picklist", - "values": icon_names, - "access": "global", - "required": False, - "default": "", - "description": "The name of the icon to be used in the format 'utility:check' when the state is true." - }, - "icon-name-when-off": { - "type": "Picklist", - "values": icon_names, - "access": "global", - "required": False, - "default": "", - "description": "The name of the icon to be used in the format 'utility:add' when the state is false." - }, - "icon-name-when-hover": { - "type": "Picklist", - "values": icon_names, - "access": "global", - "required": False, - "default": "", - "description": "The name of the icon to be used in the format 'utility:close' when the state is true and the button receives focus." - }, - "label-when-off": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The text to be displayed inside the button when state is false." - }, - "label-when-on": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The text to be displayed inside the button when state is true." - }, - "label-when-hover": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The text to be displayed inside the button when state is true and the button receives focus." - }, - "variant": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The variant changes the appearance of the button.\nAccepted variants include brand, destructive, inverse, neutral, success, and text." - }, - "selected": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "If present, the button is in the selected state." - } - } - }, - - "lightning-card": { - "simple": False, - "type": "lwc", - "attribs": { - "title": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The title can include text, and is displayed in the header.\nTo include additional markup or another component, use the title slot." - }, - "icon-name": { - "type": "Picklist", - "access": "global", - "required": False, - "default": "", - "description": "The Lightning Design System name of the icon.\nNames are written in the format 'utility:down' where 'utility' is the category,\nand 'down' is the specific icon to be displayed.\nThe icon is displayed in the header to the left of the title.", - "values": icon_names - }, - "variant": { - "type": "Picklist", - "values": [ - "base", "narrow" - ], - "access": "global", - "required": False, - "default": "", - "description": "The variant changes the appearance of the card.\nAccepted variants include base or narrow.\nThis value defaults to base." - } - } - }, - - "lightning-carousel": { - "simple": False, - "type": "lwc", - "attribs": { - "disable-auto-scroll": { - "type": "Boolean", - "access": "global", - "required": False, - "default": "", - "description": "If present, images do not automatically scroll and users must click the indicators to scroll." - }, - "disable-auto-refresh": { - "type": "Boolean", - "access": "global", - "required": False, - "default": "", - "description": "If present, the carousel stops looping\nafter the last item is displayed." - }, - "scroll-duration": { - "type": "String", - "access": "global", - "required": False, - "default": "5", - "description": "The auto scroll duration. The default is 5 seconds, after that the next\nimage is displayed." - } - } - }, - - "lightning-carousel-image": { - "simple": False, - "type": "lwc", - "attribs": { - "src": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The path to the image." - }, - "header": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Text for the label that's displayed under the image." - }, - "description": { - "type": "String", - "access": "global", - "required": False, - "default": "5", - "description": "Text displayed under the header." - }, - "alternative-text": { - "type": "String", - "access": "global", - "required": False, - "default": "5", - "description": "Assistive text for the image." - }, - "href": { - "type": "String", - "access": "global", - "required": False, - "default": "5", - "description": "A URL to create a link for the image. Clicking the image opens the link in the same frame." - } - } - }, - - "lightning-checkbox-group": { - "simple": False, - "type": "lwc", - "attribs": { - "label": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Text label for the checkbox group." - }, - "options": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Array of label-value pairs for each checkbox." - }, - "message-when-value-missing": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Optional message to be displayed when no checkbox is selected\nand the required attribute is set." - }, - "name": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The name of the checkbox group." - }, - "value": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The list of selected checkboxes.\nEach array entry contains the value of a selected checkbox.\nThe value of each checkbox is set in the options attribute." - }, - "disabled": { - "type": "Boolean", - "access": "global", - "required": False, - "default": "", - "description": "If present, the checkbox group is disabled.\nCheckbox selections can't be changed for a disabled checkbox group." - }, - "required": { - "type": "Boolean", - "access": "global", - "required": False, - "default": "", - "description": "If present, at least one checkbox must be selected." - }, - "variant": { - "type": "Picklist", - "access": "global", - "required": False, - "default": "", - "description": "The variant changes the appearance of the checkbox group.\nAccepted variants include standard, label-hidden, label-inline, and label-stacked.\nThis value defaults to standard.\nUse label-hidden to hide the label but make it available to assistive technology.\nUse label-inline to horizontally align the label and checkbox group.\nUse label-stacked to place the label above the checkbox group." - }, - "validity": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Represents the validity states that an element can be in, with respect to constraint validation." - } - } - }, - - "lightning-click-to-dial": { - "simple": False, - "type": "lwc", - "attribs": { - "body": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Inherited from aura:componentThe body of the component. In markup, this is everything in the body of the tag." - }, - "class": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "InheritedA CSS class for the outer element, in addition to the component's base classes." - }, - "title": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "InheritedDisplays tooltip text when the mouse moves over the element." - }, - "value": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The phone number." - }, - "recordId": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The Salesforce record Id that's associated with the phone number." - }, - "params": { - "type": "List", - "access": "global", - "required": False, - "default": "", - "description": "Comma-separated list of parameters to pass to the third-party phone system." - } - } - }, - - "lightning-combobox": { - "simple": False, - "type": "lwc", - "attribs": { - "body": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Inherited from aura:componentThe body of the component. In markup, this is everything in the body of the tag." - }, - "name": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "InheritedSpecifies the name of an input element." - }, - "value": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "InheritedSpecifies the value of an input element." - }, - "variant": { - "type": "Picklist", - "values": ["standard", "label-inline", "label-hidden", "label-stacked"], - "access": "global", - "required": False, - "default": "standard", - "description": "InheritedThe variant changes the appearance of an input field. Accepted variants include standard, label-inline, label-hidden, and label-stacked. This value defaults to standard, which displays the label above the field. Use label-hidden to hide the label but make it available to assistive technology. Use label-inline to horizontally align the label and input field. Use label-stacked to place the label above the input field." - }, - "disabled": { - "type": "Boolean", - "access": "global", - "required": False, - "default": "false", - "description": "InheritedSpecifies that an input element should be disabled. This value defaults to false." - }, - "readonly": { - "type": "Boolean", - "access": "global", - "required": False, - "default": "false", - "description": "InheritedSpecifies that an input field is read-only. This value defaults to false." - }, - "required": { - "type": "Boolean", - "access": "global", - "required": False, - "default": "false", - "description": "InheritedSpecifies that an input field must be filled out before submitting the form. This value defaults to false." - }, - "validity": { - "type": "Boolean", - "access": "global", - "required": False, - "default": "", - "description": "InheritedRepresents the validity states that an element can be in, with respect to constraint validation." - }, - "onchange": { - "type": "Method", - "access": "global", - "required": False, - "default": "", - "description": "InheritedThe action triggered when a value attribute changes." - }, - "accesskey": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "InheritedSpecifies a shortcut key to activate or focus an element." - }, - "tabindex": { - "type": "Integer", - "access": "global", - "required": False, - "default": "", - "description": "InheritedSpecifies the tab order of an element when the Tab key is used for navigating. The tabindex value can be set to 0 or -1. The default is 0, which means that the component is focusable and participates in sequential keyboard navigation. -1 means that the component is focusable but does not participate in keyboard navigation." - }, - "onfocus": { - "type": "Method", - "access": "global", - "required": False, - "default": "", - "description": "InheritedThe action triggered when the element receives focus." - }, - "onblur": { - "type": "Method", - "access": "global", - "required": False, - "default": "", - "description": "InheritedThe action triggered when the element releases focus." - }, - "class": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "InheritedA CSS class for the outer element, in addition to the component's base classes." - }, - "title": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "InheritedDisplays tooltip text when the mouse moves over the element." - }, - "options": { - "type": "List", - "access": "global", - "required": False, - "default": "", - "description": "A list of options that are available for selection. Each option has the following attributes: label and value." - }, - "label": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Text label for the combobox." - }, - "placeholder": { - "type": "String", - "access": "global", - "required": False, - "default": "Select an Option", - "description": "Text that is displayed before an option is selected, to prompt the user to select an option. The default is \"Select an Option\"." - }, - "dropdownAlignment": { - "type": "String", - "access": "global", - "required": False, - "default": "left", - "description": "Specifies where the drop-down list is aligned with or anchored to the selection field. By default the list is aligned with the selection field at the top so the list opens down. Use bottom-left to make the selection field display at the bottom so the list opens above it. Use auto to let the component determine where to open the list based on space available." - }, - "messageWhenValueMissing": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Error message to be displayed when the value is missing and input is required." - }, - "fieldLevelHelp": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Help text detailing the purpose and function of the combobox." - }, - "spinnerActive": { - "type": "Boolean", - "access": "global", - "required": False, - "default": "false", - "description": "Displays a spinner to indicate activity in the dropdown list. This value defaults to false." - } - } - }, - - "lightning-datatable": { - "simple": False, - "type": "lwc", - "attribs": { - "columns": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Array of the columns object that's used to define the data types.\nRequired properties include 'label', 'fieldName', and 'type'. The default type is 'text'.\nSee the Documentation tab for more information." - }, - "data": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The array of data to be displayed." - }, - "key-field": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Required for better performance.\nAssociates each row with a unique ID." - }, - "hide-checkbox-column": { - "type": "Boolean", - "access": "global", - "required": False, - "default": "", - "description": "If present, the checkbox column for row selection is hidden." - }, - "show-row-number-column": { - "type": "Boolean", - "access": "global", - "required": False, - "default": "", - "description": "If present, the row numbers are shown in the first column." - }, - "row-number-offset": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Determines where to start counting the row number.\nThe default is 0." - }, - "resize-column-disabled": { - "type": "Boolean", - "access": "global", - "required": False, - "default": "", - "description": "If present, column resizing is disabled." - }, - "min-column-width": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The minimum width for all columns.\nThe default is 50px." - }, - "max-column-width": { - "type": "Integer", - "access": "global", - "required": False, - "default": "", - "description": "The maximum width for all columns.\nThe default is 1000px." - }, - "resize-step": { - "type": "String", - "access": "global", - "required": False, - "default": "10px", - "description": "The width to resize the column when a user presses left or right arrow.\nThe default is 10px." - }, - "sorted-by": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The column fieldName that controls the sorting order.\nSort the data using the onsort event handler." - }, - "sorted-direction": { - "type": "Picklist", - "values": ["asc", "desc"], - "access": "global", - "required": False, - "default": "", - "description": "Specifies the sorting direction.\nSort the data using the onsort event handler.\nValid options include 'asc' and 'desc'." - }, - "default-sort-direction": { - "type": "Picklist", - "values": ["asc", "desc"], - "access": "global", - "required": False, - "default": "", - "description": "Specifies the default sorting direction on an unsorted column.\nValid options include 'asc' and 'desc'.\nThe default is 'asc' for sorting in ascending order." - }, - "enable-infinite-loading": { - "type": "Boolean", - "access": "global", - "required": False, - "default": "", - "description": "If present, you can load a subset of data and then display more\nwhen users scroll to the end of the table.\nUse with the onloadmore event handler to retrieve more data." - }, - "load-more-offset": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Determines when to trigger infinite loading based on\nhow many pixels the table's scroll position is from the bottom of the table.\nThe default is 20." - }, - "is-loading": { - "type": "Boolean", - "access": "global", - "required": False, - "default": "", - "description": "If present, a spinner is shown to indicate that more data is loading." - }, - "max-row-selection": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The maximum number of rows that can be selected.\nCheckboxes are used for selection by default,\nand radio buttons are used when maxRowSelection is 1." - }, - "selected-rows": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Enables programmatic row selection with a list of key-field values." - }, - "errors": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Specifies an object containing information about cell level, row level, and table level errors.\nWhen it's set, error messages are displayed on the table accordingly." - }, - "draft-values": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The current values per row that are provided during inline edit." - }, - "hide-table-header": { - "type": "Boolean", - "access": "global", - "required": False, - "default": "", - "description": "If present, the table header is hidden." - }, - "suppress-bottom-bar": { - "type": "Boolean", - "access": "global", - "required": False, - "default": "", - "description": "If present, the footer that displays the Save and Cancel buttons is hidden during inline editing." - } - } - }, - - "lightning-dual-listbox": { - "simple": False, - "type": "lwc", - "attribs": { - "source-label": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Label for the source options listbox." - }, - "selected-label": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Label for the selected options listbox." - }, - "label": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Label for the dual listbox." - }, - "options": { - "type": "List", - "access": "global", - "required": False, - "default": "", - "description": "A list of options that are available for selection. Each option has the following attributes: label and value." - }, - "min": { - "type": "Integer", - "access": "global", - "required": False, - "default": "0", - "description": "Minimum number of options required in the selected options listbox." - }, - "max": { - "type": "Integer", - "access": "global", - "required": False, - "default": "", - "description": "Maximum number of options allowed in the selected options listbox." - }, - "name": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Specifies the name of an input element." - }, - "message-when-value-missing": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Error message to be displayed when the value is missing and input is required." - }, - "message-when-range-overflow": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Error message to be displayed when a range overflow is detected." - }, - "message-when-range-underflow": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Error message to be displayed when a range underflow is detected." - }, - "disabled": { - "type": "Boolean", - "access": "global", - "required": False, - "default": "", - "description": "If present, the listbox is disabled and users cannot interact with it." - }, - "required": { - "type": "Boolean", - "access": "global", - "required": False, - "default": "", - "description": "If present, the user must add an item to the selected listbox before submitting the form." - }, - "value": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "A list of default options that are included in the selected options listbox. This list is populated with values from the options attribute." - }, - "required-options": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "A list of required options that cannot be removed from selected options listbox. This list is populated with values from the options attribute." - }, - "variant": { - "type": "Picklist", - "values": ["standard", "label-hidden", "label-inline", "label-stacked"], - "access": "global", - "required": False, - "default": "", - "description": "The variant changes the appearance of the dual listbox.\nAccepted variants include standard, label-hidden, label-inline, and label-stacked.\nThis value defaults to standard.\nUse label-hidden to hide the label but make it available to assistive technology.\nUse label-inline to horizontally align the label and dual listbox.\nUse label-stacked to place the label above the dual listbox." - }, - "size": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Number of items that display in the listboxes before vertical scrollbars are displayed. Determines the vertical size of the listbox." - }, - "field-level-help": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Help text detailing the purpose and function of the dual listbox." - }, - "disable-reordering": { - "type": "Boolean", - "access": "global", - "required": False, - "default": "", - "description": "If present, the Up and Down buttons used for reordering the selected list items are hidden." - }, - "show-activity-indicator": { - "type": "Boolean", - "access": "global", - "required": False, - "default": "", - "description": "If present, a spinner is displayed in the first listbox to indicate loading activity." - }, - "validity": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Represents the validity states that an element can be in, with respect to constraint validation." - }, - "add-button-label": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Label for add button." - }, - "remove-button-label": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Label for remove button." - }, - "up-button-label": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Label for up button." - }, - "down-button-label": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Label for down button." - } - } - }, - - "lightning-dynamic-icon": { - "simple": False, - "type": "lwc", - "attribs": { - "alternative-text": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The alternative text used to describe the dynamic icon.\nThis text should describe what's happening.\nFor example, 'Graph is refreshing', not what the icon looks like, 'Graph'." - }, - "type": { - "type": "Picklist", - "values": ["ellie", "eq", "score", "strength", "trend", "waffle"], - "access": "global", - "required": False, - "default": "", - "description": "The Lightning Design System name of the dynamic icon.\nValid values are: ellie, eq, score, strength, trend, and waffle." - }, - "option": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The option attribute changes the appearance of the dynamic icon.\nThe options available depend on the type.\neq: play (default) or stop\nscore: positive (default) or negative\nstrength: -3, -2, -1, 0 (default), 1, 2, 3\ntrend: neutral (default), up, or down" - } - } - }, - - "lightning-emp-api": { - "simple": False, - "type": "lwc", - "attribs": {} - }, - - "lightning-file-upload": { - "simple": False, - "type": "lwc", - "attribs": { - "name": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Specifies the name of the input element." - }, - "label": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The text label for the file uploader." - }, - "accept": { - "type": "Picklist", - "values": [ - ".avi", ".doc", ".dot", ".docx", ".exe", - ".msg", ".wrf", ".html", ".acgi", ".htm", - ".htx", ".shtm", ".shtml", ".htt", ".mht", - ".mhtm", ".mhtml", ".mov", ".mp3", ".mp4", - ".mpeg", ".mpg", ".pdf", ".ppt", ".pot", - ".pps", ".pptx", ".svg", ".svgz", ".swf", - ".txml", ".unknown", ".wav", ".wma", ".wmv", - ".xhtml", ".xls", ".xlt", ".xlsx", ".xm" - ], - "access": "global", - "required": False, - "default": "", - "description": "Comma-separated list of file extensions that can be uploaded\nin the format .ext, such as .pdf, .jpg, or .png." - }, - "record-id": { - "type": "TrackObject", - "access": "global", - "required": False, - "default": "", - "description": "The record Id of the record that the uploaded file is associated to." - }, - "disabled": { - "type": "Boolean", - "access": "global", - "required": False, - "default": "false", - "description": "Specifies whether this component should be displayed in a disabled state.\nDisabled components can't be clicked. The default is false." - }, - "multiple": { - "type": "Boolean", - "access": "global", - "required": False, - "default": "false", - "description": "Specifies whether a user can upload more than one file simultanesouly.\nThe default is false." - } - } - }, - - "lightning-formatted-address": { - "simple": False, - "type": "lwc", - "attribs": { - "street": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The street detail for the address." - }, - "city": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The city detail for the address." - }, - "province": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The province detail for the address." - }, - "country": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The country detail for the address." - }, - "postal-code": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The postal code detail for the address." - }, - "latitude": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The latitude of the location if known. Latitude values must be within -90 and 90." - }, - "longitude": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The longitude of the location if known. Longitude values must be within -180 and 180." - }, - "disabled": { - "type": "Boolean", - "access": "global", - "required": False, - "default": "", - "description": "If present, the address is displayed as plain text and is not clickable." - }, - "show-static-map": { - "type": "Boolean", - "access": "global", - "required": False, - "default": "false", - "description": "Displays a static map of the location using Google Maps. This value defaults to false." - } - } - }, - - "lightning-formatted-date-time": { - "simple": False, - "type": "lwc", - "attribs": { - "value": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The value to be formatted, which can be a Date object, timestamp, or an ISO8601 formatted string." - }, - "weekday": { - "type": "Picklist", - "values": ["narrow", "short", "long"], - "access": "global", - "required": False, - "default": "", - "description": "Specifies how to display the day of the week. Allowed values are narrow, short, or long." - }, - "era": { - "type": "Picklist", - "values": ["narrow", "short", "long"], - "access": "global", - "required": False, - "default": "", - "description": "Allowed values are narrow, short, or long." - }, - "year": { - "type": "Integer", - "access": "global", - "required": False, - "default": "", - "description": "Allowed values are numeric or 2-digit." - }, - "month": { - "type": "Integer", - "access": "global", - "required": False, - "default": "", - "description": "Allowed values are 2-digit, narrow, short, or long." - }, - "day": { - "type": "Integer", - "access": "global", - "required": False, - "default": "", - "description": "Allowed values are numeric or 2-digit." - }, - "hour": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Allowed values are numeric or 2-digit." - }, - "minute": { - "type": "Integer", - "access": "global", - "required": False, - "default": "", - "description": "Allowed values are numeric or 2-digit." - }, - "second": { - "type": "Integer", - "access": "global", - "required": False, - "default": "", - "description": "Allowed values are numeric or 2-digit." - }, - "time-zone-name": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Allowed values are short or long. For example, the Pacific time zone would display as 'PST'\nif you specify 'short', or 'Pacific Standard Time' if you specify 'long.'" - }, - "time-zone": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The time zone to display. Use this attribute only if you want to override the default, which is the runtime's\ntime zone. Specify a time zone listed in the IANA time zone database (https://www.iana.org/time-zones). For example, set\nthe value to 'Pacific/Honolulu' to display Hawaii time. The short code UTC is also accepted." - }, - "hour12": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Determines whether time is displayed as 12-hour. If False, time displays as 24-hour. The default setting is determined by the user's locale." - } - } - }, - - "lightning-formatted-email": { - "simple": False, - "type": "lwc", - "attribs": { - "value": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The email address that's displayed if a label is not provided." - }, - "label": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The text label for the email address." - }, - "tab-index": { - "type": "Integer", - "access": "global", - "required": False, - "default": "", - "description": "Reserved for internal use. Use tabindex instead to indicate if an element should be focusable.\nA value of 0 means that the element is focusable and\nparticipates in sequential keyboard navigation. A value of -1 means\nthat the element is focusable but does not participate in keyboard navigation." - }, - "hide-icon": { - "type": "Boolean", - "access": "global", - "required": False, - "default": "false", - "description": "If present, the email icon is hidden and only the email address is displayed." - } - } - }, - - "lightning-formatted-location": { - "simple": False, - "type": "lwc", - "attribs": { - "latitude": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The latitude of the geolocation. Latitude values must be within -90 and 90." - }, - "longitude": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The longitude of the geolocation. Longitude values must be within -180 and 180." - } - } - }, - - "lightning-formatted-name": { - "simple": False, - "type": "lwc", - "attribs": { - "format": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The format to use to display the name. Valid values include short, medium, and long. This value defaults to long." - }, - "salutation": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The value for the salutation, such as Dr. or Mrs." - }, - "first-name": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The value for the first name." - }, - "last-name": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The value for the last name." - }, - "middle-name": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The value for the middle name." - }, - "suffix": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The value for the suffix, such as Jr. or Esq." - }, - "informal-name": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The value for the informal name." - } - } - }, - - "lightning-formatted-number": { - "simple": False, - "type": "lwc", - "attribs": { - "value": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The value to be formatted." - }, - "format-style": { - "type": "Picklist", - "values": ["decimal", "currency", "percent"], - "access": "global", - "required": False, - "default": "decimal", - "description": "The number formatting style to use. Possible values are decimal, currency,\nand percent. This value defaults to decimal." - }, - "currency-code": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Only used if format-style='currency', this attribute determines which currency is\ndisplayed. Possible values are the ISO 4217 currency codes, such as 'USD' for the US dollar." - }, - "currency-display-as": { - "type": "String", - "access": "global", - "required": False, - "default": "symbol", - "description": "Determines how currency is displayed. Possible values are symbol, code, and name. This value defaults to symbol." - }, - "minimum-integer-digits": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The minimum number of integer digits that are required. Possible values are from 1 to 21." - }, - "minimum-fraction-digits": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The minimum number of fraction digits that are required." - }, - "maximum-fraction-digits": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The maximum number of fraction digits that are allowed." - }, - "minimum-significant-digits": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The minimum number of significant digits that are required. Possible values are from 1 to 21." - }, - "maximum-significant-digits": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The maximum number of significant digits that are allowed. Possible values are from 1 to 21." - } - } - }, - - "lightning-formatted-phone": { - "simple": False, - "type": "lwc", - "attribs": { - "value": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Sets the phone number to display." - }, - "tab-index": { - "type": "Integer", - "access": "global", - "required": False, - "default": "", - "description": "Reserved for internal use. Use tabindex instead to indicate if an element should be focusable.\nA value of 0 means that the element is focusable and\nparticipates in sequential keyboard navigation. A value of -1 means\nthat the element is focusable but does not participate in keyboard navigation." - } - } - }, - - "lightning-formatted-rich-text": { - "simple": False, - "type": "lwc", - "attribs": { - "disable-linkify": { - "type": "Boolean", - "access": "global", - "required": False, - "default": "", - "description": "If present, the component does not create links in the rich text." - }, - "value": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Sets the rich text to display." - } - } - }, - - "lightning-formatted-text": { - "simple": False, - "type": "lwc", - "attribs": { - "value": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Sets the text to display." - }, - "linkify": { - "type": "Boolean", - "access": "global", - "required": False, - "default": "", - "description": "If present, URLs and email addresses are displayed in anchor tags.\nThey are displayed in plain text by default." - } - } - }, - - "lightning-formatted-time": { - "simple": False, - "type": "lwc", - "attribs": { - "value": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Time value to format." - } - } - }, - - "lightning-formatted-url": { - "simple": False, - "type": "lwc", - "attribs": { - "target": { - "type": "Picklist", - "values": ["_blank", "_parent", "_self", "_top"], - "access": "global", - "required": False, - "default": "", - "description": "Specifies where to open the link. Options include _blank, _parent, _self, and _top." - }, - "tooltip": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The text to display when the mouse hovers over the link." - }, - "label": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The text to display in the link." - }, - "tab-index": { - "type": "Integer", - "access": "global", - "required": False, - "default": "", - "description": "Reserved for internal use. Use tabindex instead to indicate if an element should be focusable.\nA value of 0 means that the element is focusable and\nparticipates in sequential keyboard navigation. A value of -1 means\nthat the element is focusable but does not participate in keyboard navigation." - }, - "value": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The URL to format." - } - } - }, - - "lightning-helptext": { - "simple": False, - "type": "lwc", - "attribs": { - "content": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Text to be shown in the popover." - }, - "icon-name": { - "type": "Picklist", - "access": "global", - "required": False, - "default": "", - "description": "The Lightning Design System name of the icon used as the visible element.\nNames are written in the format 'utility:info' where 'utility' is the category,\nand 'info' is the specific icon to be displayed.\nThe default is 'utility:info'.", - "values": icon_names - }, - "icon-variant": { - "type": "Picklist", - "values": ["inverse", "warning", "error"], - "access": "global", - "required": False, - "default": "", - "description": "Changes the appearance of the icon.\nAccepted variants include inverse, warning, error." - } - } - }, - - "lightning-icon": { - "simple": False, - "type": "lwc", - "attribs": { - "alternative-text": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The alternative text used to describe the icon.\nThis text should describe what happens when you click the button,\nfor example 'Upload File', not what the icon looks like, 'Paperclip'." - }, - "src": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "A uri path to a custom svg sprite, including the name of the resouce,\nfor example: /assets/icons/standard-sprite/svg/test.svg#icon-heart" - }, - "icon-name": { - "type": "Picklist", - "access": "global", - "required": False, - "default": "", - "description": "The Lightning Design System name of the icon.\nNames are written in the format 'utility:down' where 'utility' is the category,\nand 'down' is the specific icon to be displayed.", - "values": icon_names - }, - "size": { - "type": "Picklist", - "values": ["xx-small", "x-small", "small", "medium", "large"], - "access": "global", - "required": False, - "default": "", - "description": "The size of the icon. Options include xx-small, x-small, small, medium, or large.\nThe default is medium." - }, - "variant": { - "type": "Picklist", - "values": ["inverse", "success", "warning", "error"], - "access": "global", - "required": False, - "default": "", - "description": "The variant changes the appearance of a utility icon.\nAccepted variants include inverse, success, warning, and error.\nUse the inverse variant to implement a white fill in utility icons on dark backgrounds." - } - } - }, - - "lightning-input": { - "simple": False, - "type": "lwc", - "attribs": { - "placeholder": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Text that is displayed when the field is empty, to prompt the user for a valid entry." - }, - "name": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Specifies the name of an input element." - }, - "label": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Text label for the input." - }, - "message-when-bad-input": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Error message to be displayed when a bad input is detected." - }, - "message-when-pattern-mismatch": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Error message to be displayed when a pattern mismatch is detected." - }, - "message-when-range-overflow": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Error message to be displayed when a range overflow is detected." - }, - "message-when-range-underflow": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Error message to be displayed when a range underflow is detected." - }, - "message-when-step-mismatch": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Error message to be displayed when a step mismatch is detected." - }, - "message-when-too-short": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Error message to be displayed when the value is too short." - }, - "message-when-too-long": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Error message to be displayed when the value is too long." - }, - "message-when-type-mismatch": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Error message to be displayed when a type mismatch is detected." - }, - "message-when-value-missing": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Error message to be displayed when the value is missing." - }, - "message-toggle-active": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Text shown for the active state of a toggle. The default is \"Active\"." - }, - "message-toggle-inactive": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Text shown for the inactive state of a toggle. The default is \"Inactive\"." - }, - "aria-label": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Describes the input to assistive technologies." - }, - "autocomplete": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Controls auto-filling of the field. Input types that support autocomplete are\nemail, search, tel, text, and url. Set the attribute to pass\nthrough autocomplete values to be interpreted by the browser." - }, - "format-fraction-digits": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Reserved for internal use." - }, - "time-aria-controls": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "A space-separated list of element IDs whose presence or content is controlled by the\ntime input when type='datetime'. On mobile devices, this is merged with aria-controls\nand date-aria-controls to describe the native date time input." - }, - "date-style": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The display style of the date when type='date' or type='datetime'. Valid values are\nshort, medium (default), and long. The format of each style is specific to the locale.\nOn mobile devices this attribute has no effect." - }, - "time-style": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The display style of the time when type='time' or type='datetime'. Valid values are\nshort (default), medium, and long. Currently, medium and long styles look the same.\nOn mobile devices this attribute has no effect." - }, - "date-aria-label": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Describes the date input to assistive technologies when type='datetime'. On mobile devices,\nthis label is merged with aria-label and time-aria-label to describe the native date time input." - }, - "date-aria-labelled-by": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "A space-separated list of element IDs that provide labels for the date input when type='datetime'.\nOn mobile devices, this is merged with aria-labelled-by and time-aria-labelled-by to describe\nthe native date time input." - }, - "time-aria-labelled-by": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "A space-separated list of element IDs that provide labels for the time input when type='datetime'.\nOn mobile devices, this is merged with aria-labelled-by and date-aria-labelled-by to describe\nthe native date time input." - }, - "time-aria-described-by": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "A space-separated list of element IDs that provide descriptive labels for the time input when\ntype='datetime'. On mobile devices, this is merged with aria-described-by and date-aria-described-by\nto describe the native date time input." - }, - "date-aria-controls": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "A space-separated list of element IDs whose presence or content is controlled by the\ndate input when type='datetime'. On mobile devices, this is merged with aria-controls\nand time-aria-controls to describe the native date time input." - }, - "date-aria-described-by": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "A space-separated list of element IDs that provide descriptive labels for the date input when\ntype='datetime'. On mobile devices, this is merged with aria-described-by and time-aria-described-by\nto describe the native date time input." - }, - "aria-controls": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "A space-separated list of element IDs whose presence or content is controlled by the input." - }, - "aria-labelled-by": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "A space-separated list of element IDs that provide labels for the input." - }, - "aria-described-by": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "A space-separated list of element IDs that provide descriptive labels for the input." - }, - "formatter": { - "type": "Picklist", - "values": ["decimal", "percent", "percent-fixed", "currency"], - "access": "global", - "required": False, - "default": "", - "description": "String value with the formatter to be used for number input. Valid values include\ndecimal, percent, percent-fixed, and currency." - }, - "type": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The type of the input. This value defaults to text." - }, - "is-loading": { - "type": "Boolean", - "access": "global", - "required": False, - "default": "", - "description": "For the search type only. If present, a spinner is displayed to indicate that data is loading." - }, - "pattern": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Specifies the regular expression that the input's value is checked against.\nThis attribute is supported for text, search, url, tel, email, and password types." - }, - "max-length": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The maximum number of characters allowed in the field." - }, - "accept": { - "type": "Picklist", - "values": [ - ".avi", ".doc", ".dot", ".docx", ".exe", - ".msg", ".wrf", ".html", ".acgi", ".htm", - ".htx", ".shtm", ".shtml", ".htt", ".mht", - ".mhtm", ".mhtml", ".mov", ".mp3", ".mp4", - ".mpeg", ".mpg", ".pdf", ".ppt", ".pot", - ".pps", ".pptx", ".svg", ".svgz", ".swf", - ".txml", ".unknown", ".wav", ".wma", ".wmv", - ".xhtml", ".xls", ".xlt", ".xlsx", ".xm" - ], - "access": "global", - "required": False, - "default": "", - "description": "Specifies the types of files that the server accepts. This attribute can be used only when type='file'." - }, - "min-length": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The minimum number of characters allowed in the field." - }, - "max": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The maximum acceptable value for the input. This attribute can be used only with number,\nrange, date, time, and datetime input types. For number and range type, the max value is a\ndecimal number. For the date, time, and datetime types, the max value must use a valid string for the type." - }, - "min": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The minimum acceptable value for the input. This attribute can be used only with number,\nrange, date, time, and datetime input types. For number and range types, the min value\nis a decimal number. For the date, time, and datetime types, the min value must use a valid string for the type." - }, - "step": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Granularity of the value, specified as a positive floating point number.\nUse 'any' when granularity is not a concern. This value defaults to 1." - }, - "checked": { - "type": "Boolean", - "access": "global", - "required": False, - "default": "", - "description": "If present, the checkbox is selected." - }, - "multiple": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Specifies that a user can enter more than one value. This attribute can be used only when type='file' or type='email'." - }, - "value": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Specifies the value of an input element." - }, - "variant": { - "type": "Picklist", - "access": "global", - "required": False, - "default": "", - "description": "The variant changes the appearance of an input field.\nAccepted variants include standard, label-inline, label-hidden, and label-stacked.\nThis value defaults to standard, which displays the label above the field.\nUse label-hidden to hide the label but make it available to assistive technology.\nUse label-inline to horizontally align the label and input field.\nUse label-stacked to place the label above the input field." - }, - "disabled": { - "type": "Boolean", - "access": "global", - "required": False, - "default": "", - "description": "If present, the input field is disabled and users cannot interact with it." - }, - "read-only": { - "type": "Boolean", - "access": "global", - "required": False, - "default": "", - "description": "If present, the input field is read-only and cannot be edited by users." - }, - "required": { - "type": "Boolean", - "access": "global", - "required": False, - "default": "", - "description": "If present, the input field must be filled out before the form is submitted." - }, - "timezone": { - "type": "Picklist", - "values": timezones, - "access": "global", - "required": False, - "default": "", - "description": "Specifies the time zone used when type='datetime' only. This value defaults to the user's Salesforce time zone setting." - }, - "files": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "A FileList that contains selected files. This attribute can be used only when type='file'." - }, - "validity": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Represents the validity states that an element can be in, with respect to constraint validation." - }, - "field-level-help": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Help text detailing the purpose and function of the input.\nThis attribute isn't supported for file, radio, toggle, and checkbox-button types." - }, - "access-key": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Specifies a shortcut key to activate or focus an element." - }, - "checkValidity": { - "type": "Method", - "access": "global", - "arguments": "message", - "description": "Sets a custom error message to be displayed when a form is submitted." - }, - "reportValidity": { - "type": "Method", - "access": "global", - "arguments": "message", - "description": "Displays the error messages and returns false if the input is invalid. If the input is valid, reportValidity() clears displayed error messages and returns true." - }, - "focus": { - "type": "Method", - "access": "global", - "arguments": "message", - "description": "Sets focus on the input element." - }, - "blur": { - "type": "Method", - "access": "global", - "arguments": "message", - "description": "Removes keyboard focus from the input element." - }, - "showHelpMessageIfInvalid": { - "type": "Method", - "access": "global", - "arguments": "message", - "description": "Displays error messages on invalid fields. An invalid field fails at least one constraint validation and returns false when checkValidity() is called." - } - } - }, - - "lightning-input-address": { - "simple": False, - "type": "lwc", - "attribs": { - "address-label": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The label of the address compound field." - }, - "street-label": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The label of the street field of the address." - }, - "city-label": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The label of the city field of the address." - }, - "province-label": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The label of the province field of the address." - }, - "country-label": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The label of the country field of the address." - }, - "postal-code-label": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The label of the postal code field of the address." - }, - "province-options": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The array of label-value pairs for the province. Displays a dropdown menu of options." - }, - "country-options": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The array of label-value pairs for the country. Displays a dropdown menu of options." - }, - "street": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The street field of the address." - }, - "city": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The city field of the address." - }, - "province": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The province field of the address. If province-options is provided, this province value is selected by default." - }, - "country": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The country field of the address. If country-options is provided, this country value is selected by default." - }, - "postal-code": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The postal code field of the address." - }, - "disabled": { - "type": "Boolean", - "access": "global", - "required": False, - "default": "", - "description": "If present, the address fields are disabled and users cannot interact with them." - }, - "show-address-lookup": { - "type": "Boolean", - "access": "global", - "required": False, - "default": "", - "description": "If present, address lookup using Google Maps is enabled." - }, - "read-only": { - "type": "Boolean", - "access": "global", - "required": False, - "default": "", - "description": "If present, the address fields are read-only and cannot be edited." - }, - "required": { - "type": "Boolean", - "access": "global", - "required": False, - "default": "", - "description": "If present, the address fields must be filled before the form is submitted." - }, - "variant": { - "type": "Picklist", - "access": "global", - "required": False, - "default": "", - "description": "The variant changes the appearance of an input address field.\nAccepted variants include standard, label-hidden, label-inline, and label-stacked.\nThis value defaults to standard.\nUse label-hidden to hide the label but make it available to assistive technology.\nUse label-inline to horizontally align the label and input address field.\nUse label-stacked to place the label above the input address field." - }, - "field-level-help": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Help text detailing the purpose and function of the input." - }, - "validity": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Represents the validity states that an element can be in, with respect to constraint validation." - } - } - }, - - "lightning-input-field": { - "simple": False, - "type": "lwc", - "attribs": { - "readonly": { - "type": "Boolean", - "access": "global", - "required": False, - "default": "false", - "description": "Specifies whether the input fields are read-only. This value defaults to false." - }, - "variant": { - "type": "Picklist", - "access": "global", - "required": False, - "default": "", - "description": "The variant changes the label position of an input field.\nAccepted variants include standard, label-hidden, label-inline, and label-stacked.\nIf variant is specified, the label position is determined by the variant.\nOtherwise, it is determined by the density setting of the parent form." - }, - "value": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The field value, which overrides the existing value." - }, - "field-name": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The API name of the field to be displayed." - }, - "disabled": { - "type": "Boolean", - "access": "global", - "required": False, - "default": "", - "description": "If present, the field is disabled and users cannot interact with it.\nRead-only fields are also disabled by default." - }, - "dirty": { - "type": "Boolean", - "access": "global", - "required": False, - "default": "", - "description": "Reserved for internal use. If present, the field has been modified by the user but not saved or submitted." - } - } - }, - - "lightning-input-location": { - "simple": False, - "type": "lwc", - "attribs": { - "label": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The label of the geolocation compound field." - }, - "field-level-help": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Help text detailing the purpose and function of the input." - }, - "latitude": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The latitude value. Latitude values must be within -90 and 90." - }, - "longitude": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The longitude value. Longitude values must be within -180 and 180." - }, - "disabled": { - "type": "Boolean", - "access": "global", - "required": False, - "default": "", - "description": "If present, the geolocation fields are disabled and users cannot interact with them." - }, - "read-only": { - "type": "Boolean", - "access": "global", - "required": False, - "default": "", - "description": "If present, the geolocations fields are read-only and cannot be edited." - }, - "required": { - "type": "Boolean", - "access": "global", - "required": False, - "default": "", - "description": "If present, the geolocation fields must be filled out before the form is submitted.\nAn error message is displayed if a user interacts with the field\nand does not provide a value." - }, - "variant": { - "type": "Picklist", - "access": "global", - "required": False, - "default": "", - "description": "The variant changes the appearance of a geolocation compound field.\nAccepted variants include standard, label-hidden, label-inline, and label-stacked.\nThis value defaults to standard.\nUse label-hidden to hide the label but make it available to assistive technology.\nUse label-inline to horizontally align the label and geolocation fields.\nUse label-stacked to place the label above the geolocation fields." - }, - "validity": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Represents the validity states that an element can be in, with respect to constraint validation." - } - } - }, - - "lightning-input-name": { - "simple": False, - "type": "lwc", - "attribs": { - "label": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The label of the input name field." - }, - "options": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Displays a list of salutation options, such as Dr. or Mrs., provided as label-value pairs." - }, - "fields-to-display": { - "type": "String", - "access": "global", - "required": False, - "default": "[{type=string, value=firstName}, {type=string, value=salutation}, {type=string, value=lastName}]", - "description": "List of fields to be displayed on the component. This value defaults to\n['firstName', 'salutation', 'lastName']. Other field values include middleName,\ninformalName, suffix." - }, - "salutation": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Displays the Salutation field as a dropdown menu. An array of label-value pairs must be provided using the options attribute." - }, - "first-name": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Displays the First Name field." - }, - "middle-name": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Displays the Middle Name field." - }, - "informal-name": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Displays the Informal Name field." - }, - "last-name": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Displays the Last Name field." - }, - "suffix": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Displays the Suffix field." - }, - "disabled": { - "type": "Boolean", - "access": "global", - "required": False, - "default": "", - "description": "If present, the input name field is disabled and users cannot interact with it." - }, - "read-only": { - "type": "Boolean", - "access": "global", - "required": False, - "default": "", - "description": "If present, the input name field is read-only and cannot be edited." - }, - "required": { - "type": "Boolean", - "access": "global", - "required": False, - "default": "", - "description": "If present, the input name field must be filled out before the form is submitted.\nA red asterisk is displayed on the Last Name field. An error\nmessage is displayed if a user interacts with the Last Name\nfield and does not provide a value." - }, - "variant": { - "type": "Picklist", - "access": "global", - "required": False, - "default": "", - "description": "The variant changes the appearance of a name compound field.\nAccepted variants include standard, label-hidden, label-inline, and label-stacked.\nThis value defaults to standard.\nUse label-hidden to hide the label but make it available to assistive technology.\nUse label-inline to horizontally align the label and name fields.\nUse label-stacked to place the label above the name fields." - }, - "field-level-help": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Help text detailing the purpose and function of the input." - }, - "validity": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Represents the validity states that an element can be in, with respect to constraint validation." - } - } - }, - - "lightning-input-rich-text": { - "simple": False, - "type": "lwc", - "attribs": { - "label": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The label of the rich text editor." - }, - "label-visible": { - "type": "Boolean", - "access": "global", - "required": False, - "default": "false", - "description": "If present, the label on the rich text editor is visible." - }, - "placeholder": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Text that is displayed when the field is empty, to prompt the user for a valid entry." - }, - "disabled-categories": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "A comma-separated list of button categories to remove from the toolbar." - }, - "formats": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "A whitelist of formats. By default, the list is computed based on enabled categories.\nThe 'table' format is always enabled to support copying and pasting of tables if formats are not provided." - }, - "variant": { - "type": "Picklist", - "access": "global", - "required": False, - "default": "", - "description": "The variant changes the appearance of the toolbar. Accepted variant is bottom-toolbar which causes\nthe toolbar to be displayed below the text box." - }, - "message-when-bad-input": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Error message to be displayed when invalid input is detected." - }, - "custom-buttons": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Reserved for internal use. Custom buttons to add to the toolbar." - }, - "share-with-entity-id": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Entity ID to share the image with." - }, - "value": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The HTML content in the rich text editor." - }, - "valid": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Specifies whether the editor content is valid. If invalid, the slds-has-error class is added. This value defaults to true." - }, - "disabled": { - "type": "Boolean", - "access": "global", - "required": False, - "default": "", - "description": "If present, the editor is disabled and users cannot interact with it." - } - } - }, - - "lightning-layout": { - "simple": False, - "type": "lwc", - "attribs": { - "horizontal-align": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Determines how to spread the layout items horizontally.\nThe alignment options are center, space, spread, and end." - }, - "vertical-align": { - "type": "Picklist", - "values": ["start", "center", "end", "stretch"], - "access": "global", - "required": False, - "default": "", - "description": "Determines how to align the layout items vertically in the container.\nThe alignment options are start, center, end, and stretch." - }, - "pull-to-boundary": { - "type": "Picklist", - "values": ["small", "medium", "large."], - "access": "global", - "required": False, - "default": "", - "description": "Pulls layout items to the layout boundaries and corresponds\nto the padding size on the layout item. Possible values are small, medium, or large." - }, - "multiple-rows": { - "type": "Boolean", - "access": "global", - "required": False, - "default": "", - "description": "If present, layout items wrap to the following line when they exceed the layout width." - } - } - }, - - "lightning-layout-item": { - "simple": False, - "type": "lwc", - "attribs": { - "flexibility": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Make the item fluid so that it absorbs any extra space in its\ncontainer or shrinks when there is less space. Allowed values are:\nauto (columns grow or shrink equally as space allows),\nshrink (columns shrink equally as space decreases),\nno-shrink (columns don't shrink as space reduces),\ngrow (columns grow equally as space increases),\nno-grow (columns don't grow as space increases),\nno-flex (columns don't grow or shrink as space changes).\nUse a comma-separated value for multiple options, such as 'auto, no-shrink'." - }, - "alignment-bump": { - "type": "Picklist", - "values": ["left", "top", "right", "bottom"], - "access": "global", - "required": False, - "default": "", - "description": "Specifies a direction to bump the alignment of adjacent layout items. Allowed values are left, top, right, bottom." - }, - "padding": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Sets padding to either the right and left sides of a container,\nor all sides of a container. Allowed values are horizontal-small,\nhorizontal-medium, horizontal-large, around-small, around-medium, around-large." - }, - "size": { - "type": "Integer", - "access": "global", - "required": False, - "default": "", - "description": "If the viewport is divided into 12 parts, size indicates the\nrelative space the container occupies. Size is expressed as\nan integer from 1 through 12. This applies for all device-types." - }, - "small-device-size": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "If the viewport is divided into 12 parts, this attribute indicates\nthe relative space the container occupies on device-types larger than\nmobile. It is expressed as an integer from 1 through 12." - }, - "medium-device-size": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "If the viewport is divided into 12 parts, this attribute indicates\nthe relative space the container occupies on device-types larger than\ntablet. It is expressed as an integer from 1 through 12." - }, - "large-device-size": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "If the viewport is divided into 12 parts, this attribute indicates\nthe relative space the container occupies on device-types larger than\ndesktop. It is expressed as an integer from 1 through 12." - } - } - }, - - "lightning-map": { - "simple": False, - "type": "lwc", - "attribs": { - "show-footer": { - "type": "Boolean", - "access": "global", - "required": False, - "default": "false", - "description": "If present, the footer element is displayed below the map.\nThe footer shows an 'Open in Google Maps' link that opens an external window\nto display the selected marker location in Google Maps. Default value is false." - }, - "list-view": { - "type": "String", - "access": "global", - "required": False, - "default": "auto", - "description": "Displays or hides the list of locations. Valid values are visible, hidden, or auto.\nThis value defaults to auto, which shows the list only when multiple markers are present.\nPassing in an invalid value hides the list view." - }, - "zoom-level": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The zoom levels as defined by Google Maps API.\nIf a zoom level is not specified, a default zoom level is applied to accommodate all markers on the map." - }, - "center": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "A location to use as the map's center.\nIf center is not specified, the map centers automatically." - }, - "markers-title": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Provides the heading title for the markers. Required if specifying multiple markers.\nThe title is displayed below the map as a header for the list of clickable addresses." - }, - "map-markers": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "One or more objects with the address or latitude and longitude to be displayed on the map.\nIf latitude and longitude are provided, the address is ignored." - } - } - }, - - "lightning-menu-item": { - "simple": False, - "type": "lwc", - "attribs": { - "value": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "A value associated with the menu item." - }, - "label": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Text of the menu item." - }, - "icon-name": { - "type": "Picklist", - "access": "global", - "required": False, - "default": "", - "description": "The name of an icon to display after the text of the menu item.", - "values": icon_names - }, - "prefix-icon-name": { - "type": "Picklist", - "access": "global", - "required": False, - "default": "", - "description": "The name of an icon to display before the text of the menu item.", - "values": icon_names - }, - "href": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "URL for a link to use for the menu item." - }, - "draft-alternative-text": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Describes the reason for showing the draft indicator.\nThis is required when is-draft is present on the lightning-menu-item tag." - }, - "is-draft": { - "type": "Boolean", - "access": "global", - "required": False, - "default": "", - "description": "If present, a draft indicator is shown on the menu item.\nA draft indicator is denoted by blue asterisk on the left of the menu item.\nWhen you use a draft indicator, include alternative text for accessibility using draft-alternative-text." - }, - "access-key": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The keyboard shortcut for the menu item." - }, - "tab-index": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Reserved for internal use. Use tabindex instead to indicate if an element should be focusable.\ntabindex can be set to 0 or -1.\nThe default tabindex value is 0, which means that the menu item is focusable and\nparticipates in sequential keyboard navigation. The value -1 means\nthat the menu item is focusable but does not participate in keyboard navigation." - }, - "disabled": { - "type": "Boolean", - "access": "global", - "required": False, - "default": "", - "description": "If present, the menu item is disabled and users cannot interact with it." - }, - "checked": { - "type": "Boolean", - "access": "global", - "required": False, - "default": "", - "description": "If present, a check mark displays on the left of the menu item if it's selected." - } - } - }, - - "lightning-navigation": { - "simple": False, - "type": "lwc", - "attribs": {} - }, - - "lightning-output-field": { - "simple": False, - "type": "lwc", - "attribs": { - "field-class": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "A CSS class for the outer element, in addition to the component's base classes." - }, - "variant": { - "type": "Picklist", - "access": "global", - "required": False, - "default": "", - "description": "Changes the appearance of the output. Accepted variants\ninclude standard and label-hidden. This value defaults to standard." - }, - "field-name": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The API name of the field to be displayed." - } - } - }, - - "lightning-pill": { - "simple": False, - "type": "lwc", - "attribs": { - "href": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The URL of the page that the link goes to." - }, - "label": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The text label that displays in the pill." - }, - "name": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The name for the pill. This value is optional and can be used to identify the pill in a callback." - }, - "variant": { - "type": "Picklist", - "access": "global", - "required": False, - "default": "", - "description": "The variant changes the appearance of the pill.\nAccepted variants include link, plain, and plainLink.\nThe default variant is link, which creates a link in the pill when you specify the href attribute.\nThe plain variant renders the pill without a link and ignores the href attribute.\nThe plainLink variant is reserved for internal use." - }, - "has-error": { - "type": "Boolean", - "access": "global", - "required": False, - "default": "", - "description": "If present, the pill is shown with a red border and an error icon on the left of the label." - }, - "is-plain-link": { - "type": "Boolean", - "access": "global", - "required": False, - "default": "", - "description": "Reserved for internal use. Specifies whether the element variant is a plain link." - }, - "tab-index": { - "type": "Integer", - "access": "global", - "required": False, - "default": "", - "description": "Reserved for internal use. Use tabindex instead to indicate if an element should be focusable.\nA value of 0 means that the pill is focusable and\nparticipates in sequential keyboard navigation. A value of -1 means\nthat the pill is focusable but does not participate in keyboard navigation." - }, - "aria-selected": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Specifies the aria-selected of an element." - }, - "role": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Specifies the role of an element." - } - } - }, - - "lightning-pill-container": { - "simple": False, - "type": "lwc", - "attribs": { - "label": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Aria label for the pill container." - }, - "variant": { - "type": "Picklist", - "values": ["standard", "bare"], - "access": "global", - "required": False, - "default": "", - "description": "The variant changes the appearance of the pill container. Accepted variants\ninclude standard and bare. This value defaults to standard." - }, - "single-line": { - "type": "Boolean", - "access": "global", - "required": False, - "default": "", - "description": "Specifies whether to keep the pills in a single line." - }, - "is-collapsible": { - "type": "Boolean", - "access": "global", - "required": False, - "default": "", - "description": "Specifies whether the pill container can be collapsed." - }, - "is-expanded": { - "type": "Boolean", - "access": "global", - "required": False, - "default": "", - "description": "Specifies whether the pill container is expanded." - }, - "items": { - "type": "Object", - "access": "global", - "required": False, - "default": "", - "description": "An array of items to be rendered as pills in a container." - } - } - }, - - "lightning-platform-resource-loader": { - "simple": False, - "type": "lwc", - "attribs": {} - }, - - "lightning-platform-show-toast-event": { - "simple": False, - "type": "lwc", - "attribs": {} - }, - - "lightning-progress-bar": { - "simple": False, - "type": "lwc", - "attribs": { - "value": { - "type": "String", - "access": "global", - "required": False, - "default": "0", - "description": "The percentage value of the progress bar." - }, - "variant": { - "type": "Picklist", - "access": "global", - "required": False, - "default": "", - "description": "The variant changes the appearance of the progress bar.\nAccepted variants include base or circular.\nThis value defaults to base." - }, - "size": { - "type": "Picklist", - "values": ["x-small", "small", "medium", "large"], - "access": "global", - "required": False, - "default": "", - "description": "The size of the progress bar.\nValid values are x-small, small, medium, and large.\nThe default value is medium." - } - } - }, - - "lightning-progress-indicator": { - "simple": False, - "type": "lwc", - "attribs": { - "type": { - "type": "Picklist", - "values": ["base", "path"], - "access": "global", - "required": False, - "default": "base", - "description": "Changes the visual pattern of the indicator. Valid values are base and path.\nThe default is base." - }, - "variant": { - "type": "Picklist", - "access": "global", - "required": False, - "default": "base", - "description": "Changes the appearance of the progress indicator for the base type only.\nValid values are base or shaded. The shaded variant adds a light gray border to the step indicators.\nThe default is base." - }, - "current-step": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Set current-step to match the value attribute of one of progress-step components.\nIf current-step is not provided, the value of the first progress-step component is used." - }, - "has-error": { - "type": "Boolean", - "access": "global", - "required": False, - "default": "false", - "description": "If present, the current step is in error state and a warning icon is displayed on the step indicator.\nOnly the base type can display errors." - } - } - }, - - "lightning-radio-group": { - "simple": False, - "type": "lwc", - "attribs": { - "type": { - "type": "Picklist", - "values": ["radio", "button"], - "access": "global", - "required": False, - "default": "radio", - "description": "The style of the radio group. Options are radio or button. The default is radio." - }, - "label": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Text label for the radio group." - }, - "options": { - "type": "List", - "access": "global", - "required": False, - "default": "", - "description": "Array of label-value pairs for each radio button." - }, - "message-when-value-missing": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Optional message displayed when no radio button is selected and the required attribute is set to true." - }, - "name": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Specifies the name of the radio button group. Only only one button can be selected if a name is specified\nfor the group." - }, - "value": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Specifies the value of the selected radio button." - }, - "disabled": { - "type": "Boolean", - "access": "global", - "required": False, - "default": "", - "description": "If present, the radio group is disabled and users cannot interact with it." - }, - "required": { - "type": "Boolean", - "access": "global", - "required": False, - "default": "", - "description": "If present, a radio button must be selected before the form can be submitted." - }, - "variant": { - "type": "Picklist", - "values": ["label-hidden", "label-inline", "label-stacked"], - "access": "global", - "required": False, - "default": "", - "description": "The variant changes the appearance of the radio group.\nAccepted variants include standard, label-hidden, label-inline, and label-stacked.\nThis value defaults to standard.\nUse label-hidden to hide the label but make it available to assistive technology.\nUse label-inline to horizontally align the label and radio group.\nUse label-stacked to place the label above the radio group." - }, - "validity": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Represents the validity states that an element can be in, with respect to constraint validation." - } - } - }, - - "lightning-record-edit-form": { - "simple": False, - "type": "lwc", - "attribs": { - "field-names": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Reserved for internal use. Names of the fields to include in the form." - }, - "record-type-id": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The ID of the record type, which is required if you created\nmultiple record types but don't have a default." - }, - "form-class": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "A CSS class for the form element." - }, - "layout-type": { - "type": "Picklist", - "values": ["Compact", "Full"], - "access": "global", - "required": False, - "default": "", - "description": "The type of layout to use to display the form fields. Possible values: Compact, Full." - }, - "density": { - "type": "Picklist", - "values": ["compact", "comfy", "auto"], - "access": "global", - "required": False, - "default": "", - "description": "Sets the arrangement style of fields and labels in the form.\nAccepted values are compact, comfy, and auto (default).\nUse compact to display fields and their labels on the same line.\nUse comfy to display fields below their labels.\nUse auto to let the component dynamically set\nthe density according to the user's Display Density setting\nand the width of the form." - }, - "record-id": { - "type": "TrackObject", - "access": "global", - "required": False, - "default": "", - "description": "The ID of the record to be displayed." - }, - "object-api-name": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The API name of the object." - } - } - }, - - "lightning-record-form": { - "simple": False, - "type": "lwc", - "attribs": { - "record-type-id": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The ID of the record type, which is required if you created\nmultiple record types but don't have a default." - }, - "mode": { - "type": "Picklist", - "values": ["view", "edit", "readonly"], - "access": "global", - "required": False, - "default": "view", - "description": "Specifies the interaction and display style for the form.\nPossible values: view, edit, readonly.\nIf a record ID is not provided, the default mode is edit, which displays a form to create new records.\nIf a record ID is provided, the default mode is view, which displays field values with edit icons on updateable fields." - }, - "layout-type": { - "type": "Picklist", - "values": ["Compact", "Full"], - "access": "global", - "required": False, - "default": "", - "description": "The type of layout to use to display the form fields. Possible values: Compact, Full.\nWhen creating a new record, only the full layout is supported." - }, - "density": { - "type": "Picklist", - "values": ["compact", "comfy", "auto"], - "access": "global", - "required": False, - "default": "", - "description": "Sets the arrangement style of fields and labels in the form.\nAccepted values are compact, comfy, and auto (default).\nUse compact to display fields and their labels on the same line.\nUse comfy to display fields below their labels.\nUse auto to let the component dynamically set\nthe density according to the user's Display Density setting\nand the width of the form." - }, - "record-id": { - "type": "TrackObject", - "access": "global", - "required": False, - "default": "", - "description": "The ID of the record to be displayed." - }, - "object-api-name": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The API name of the object." - }, - "columns": { - "type": "Integer", - "access": "global", - "required": False, - "default": "", - "description": "Specifies the number of columns for the form." - }, - "fields": { - "type": "List", - "access": "global", - "required": False, - "default": "", - "description": "List of fields to be displayed. The fields display in the order you list them." - } - } - }, - - "lightning-record-view-form": { - "simple": False, - "type": "lwc", - "attribs": { - "density": { - "type": "Picklist", - "values": ["compact", "comfy", "auto"], - "access": "global", - "required": False, - "default": "", - "description": "Sets the arrangement style of fields and labels in the form.\nAccepted values are compact, comfy, and auto (default).\nUse compact to display fields and their labels on the same line.\nUse comfy to display fields below their labels.\nUse auto to let the component dynamically set\nthe density according to the user's Display Density setting\nand the width of the form." - }, - "record-id": { - "type": "TrackObject", - "access": "global", - "required": False, - "default": "", - "description": "The ID of the record to be displayed." - }, - "object-api-name": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The API name of the object." - } - } - }, - - "lightning-relative-date-time": { - "simple": False, - "type": "lwc", - "attribs": { - "value": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The timestamp or JavaScript Date object to be formatted." - } - } - }, - - "lightning-slider": { - "simple": False, - "type": "lwc", - "attribs": { - "size": { - "type": "Picklist", - "values": ["xx-small", "x-small", "small", "medium", "large"], - "access": "global", - "required": False, - "default": "", - "description": "The size of the slider.\nThe default is an empty string, which sets the slider to the width of the viewport. Accepted values are x-small, small, medium, and large." - }, - "type": { - "type": "Picklist", - "values": ["vertical", "horizontal"], - "access": "global", - "required": False, - "default": "horizontal", - "description": "The type determines the orientation of the slider. Accepted values are vertical and horizontal. The default is horizontal." - }, - "label": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Text label to describe the slider. Provide your own label to describe the slider." - }, - "message-when-range-overflow": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Error message to be displayed when a range overflow is detected." - }, - "message-when-range-underflow": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Error message to be displayed when a range underflow is detected." - }, - "message-when-step-mismatch": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Error message to be displayed when a step mismatch is detected." - }, - "message-when-value-missing": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Error message to be displayed when the value is missing." - }, - "message-when-too-long": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Error message to be displayed when the value is too long." - }, - "message-when-bad-input": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Error message to be displayed when a bad input is detected." - }, - "message-when-pattern-mismatch": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Error message to be displayed when a pattern mismatch is detected." - }, - "message-when-type-mismatch": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Error message to be displayed when a type mismatch is detected." - }, - "min": { - "type": "Number", - "access": "global", - "required": False, - "default": "", - "description": "The minimum value of the input range. The default is 0." - }, - "max": { - "type": "Number", - "access": "global", - "required": False, - "default": "", - "description": "The maximum value of the input range. The default is 100." - }, - "step": { - "type": "Number", - "access": "global", - "required": False, - "default": "", - "description": "The step increment value of the input range.\nExample steps include 0.1, 1, or 10. The default is 1." - }, - "disabled": { - "type": "Boolean", - "access": "global", - "required": False, - "default": "", - "description": "If present, the slider is disabled and users cannot interact with it." - }, - "variant": { - "type": "Picklist", - "values": ["standard", "label-hidden"], - "access": "global", - "required": False, - "default": "", - "description": "The variant changes the appearance of the slider.\nAccepted variants include standard and label-hidden.\nThe default is standard." - }, - "value": { - "type": "Integer", - "access": "global", - "required": False, - "default": "", - "description": "The numerical value of the slider. The default is 0." - }, - "validity": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Represents the validity states of the slider input, with respect to constraint validation." - } - } - }, - - "lightning-spinner": { - "simple": False, - "type": "lwc", - "attribs": { - "alternative-text": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The alternative text used to describe the reason for the wait and need for a spinner." - }, - "size": { - "type": "Picklist", - "values": ["small", "medium", "large"], - "access": "global", - "required": False, - "default": "medium", - "description": "The size of the spinner. Accepted sizes are small, medium, and large. This value defaults to medium." - }, - "variant": { - "type": "Picklist", - "values": ["base", "brand", "inverse"], - "access": "global", - "required": False, - "default": "", - "description": "The variant changes the appearance of the spinner.\nAccepted variants include base, brand, and inverse. The default is base." - } - } - }, - - "lightning-tab": { - "simple": False, - "type": "lwc", - "attribs": { - "value": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The optional string to be used during tabset's select event to determine which tab was clicked.\nThis string is also used by active-tab-value in tabset to open a tab." - }, - "label": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The text displayed in the tab header." - }, - "title": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Specifies text that displays in a tooltip over the tab content." - }, - "icon-name": { - "type": "Picklist", - "values": icon_names, - "access": "global", - "required": False, - "default": "", - "description": "The Lightning Design System name of an icon to display to the left of the tab label.\nSpecify the name in the format 'utility:down' where 'utility' is the category, and\n'down' is the icon to be displayed. Only utility icons can be used." - - }, - "icon-assistive-text": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The alternative text for the icon specified by icon-name." - }, - "show-error-indicator": { - "type": "Boolean", - "access": "global", - "required": False, - "default": "", - "description": "Specifies whether there's an error in the tab content.\nAn error icon is displayed to the right of the tab label." - } - } - }, - - "lightning-tabset": { - "simple": False, - "type": "lwc", - "attribs": { - "title": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Displays tooltip text when the mouse moves over the tabset." - }, - "variant": { - "type": "Picklist", - "values": ["standard", "scoped", "vertical"], - "access": "global", - "required": False, - "default": "", - "description": "The variant changes the appearance of the tabset. Accepted variants are standard, scoped, and vertical." - }, - "active-tab-value": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Sets a specific tab to open by default using a string that matches a tab's value string. If not used, the first tab opens by default." - } - } - }, - - "lightning-textarea": { - "simple": False, - "type": "lwc", - "attribs": { - "label": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Text that describes the textarea input field." - }, - "placeholder": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Text that is displayed when the field is empty,\nto prompt the user for a valid entry." - }, - "name": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Specifies the name of an input element." - }, - "message-when-bad-input": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Error message to be displayed when a bad input is detected." - }, - "message-when-too-short": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Error message to be displayed when the value is too short." - }, - "message-when-too-long": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Error message to be displayed when the value is too long." - }, - "message-when-value-missing": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Error message to be displayed when the value is missing." - }, - "access-key": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The keyboard shortcut for input field." - }, - "max-length": { - "type": "Integer", - "access": "global", - "required": False, - "default": "", - "description": "The maximum number of characters allowed in the textarea." - }, - "min-length": { - "type": "Integer", - "access": "global", - "required": False, - "default": "", - "description": "The minimum number of characters allowed in the textarea." - }, - "value": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The value of the textarea input, also used as the default value during init." - }, - "disabled": { - "type": "Boolean", - "access": "global", - "required": False, - "default": "", - "description": "If present, the textarea field is disabled and users cannot interact with it." - }, - "read-only": { - "type": "Boolean", - "access": "global", - "required": False, - "default": "", - "description": "If present, the textarea field is read-only and cannot be edited." - }, - "required": { - "type": "Boolean", - "access": "global", - "required": False, - "default": "", - "description": "If present, the textarea field must be filled out before the form can be submitted." - }, - "variant": { - "type": "Picklist", - "values": ["standard", "label-hidden", "label-inline", "label-stacked"], - "access": "global", - "required": False, - "default": "", - "description": "The variant changes the appearance of the textarea.\nAccepted variants include standard, label-hidden, label-inline, and label-stacked.\nThis value defaults to standard.\nUse label-hidden to hide the label but make it available to assistive technology.\nUse label-inline to horizontally align the label and textarea.\nUse label-stacked to place the label above the textarea." - }, - "validity": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Represents the validity states of the textarea input, with respect to constraint validation." - }, - "field-level-help": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The help text that appears in a popover.\nSet field-level help to provide an informational tooltip on the textarea input field." - } - } - }, - - "lightning-tile": { - "simple": False, - "type": "lwc", - "attribs": { - "label": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The text label that displays in the tile as the heading and hover text." - }, - "href": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The URL of the page that the link goes to." - }, - "actions": { - "type": "List", - "access": "global", - "required": False, - "default": "", - "description": "A list of actions that's displayed in a dropdown menu." - }, - "type": { - "type": "Picklist", - "values": ["standard" ,"media"], - "access": "global", - "required": False, - "default": "", - "description": "The tile type. Valid values are 'standard' and 'media'.\nThe default is 'standard'." - } - } - }, - - "lightning-tree": { - "simple": False, - "type": "lwc", - "attribs": { - "header": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The text that's displayed as the tree heading." - }, - "items": { - "type": "List", - "access": "global", - "required": False, - "default": "", - "description": "An array of key-value pairs that describe the tree. See the Documentation tab for more information." - } - } - }, - - "lightning-tree-grid": { - "simple": False, - "type": "lwc", - "attribs": { - "hide-checkbox-column": { - "type": "Boolean", - "access": "global", - "required": False, - "default": "false", - "description": "If present, the checkbox column for row selection is hidden." - }, - "is-loading": { - "type": "Boolean", - "access": "global", - "required": False, - "default": "false", - "description": "If present, a spinner is displayed to indicate that more data is being loaded." - }, - "key-field": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Required for better performance. Associates each row with a unique ID." - }, - "max-column-width": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The maximum width for all columns. The default is 1000px." - }, - "min-column-width": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The minimum width for all columns. The default is 50px." - }, - "resize-column-disabled": { - "type": "Boolean", - "access": "global", - "required": False, - "default": "false", - "description": "If present, column resizing is disabled." - }, - "row-number-offset": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Determines where to start counting the row number. The default is 0." - }, - "selected-rows": { - "type": "List", - "access": "global", - "required": False, - "default": "[]", - "description": "The array of unique row IDs that are selected." - }, - "show-row-number-column": { - "type": "Boolean", - "access": "global", - "required": False, - "default": "false", - "description": "If present, the row number column are shown in the first column." - }, - "columns": { - "type": "List", - "access": "global", - "required": False, - "default": "", - "description": "Array of the columns object that's used to define the data types.\nRequired properties include 'label', 'fieldName', and 'type'. The default type is 'text'.\nSee the Documentation tab for more information." - }, - "data": { - "type": "List", - "access": "global", - "required": False, - "default": "", - "description": "The array of data to be displayed." - }, - "expanded-rows": { - "type": "List", - "access": "global", - "required": False, - "default": "", - "description": "The array of unique row IDs for rows that are expanded." - } - } - }, - - "lightning-ui-list-api": { - "simple": False, - "type": "lwc", - "attribs": {} - }, - - "lightning-ui-object-info-api": { - "simple": False, - "type": "lwc", - "attribs": {} - }, - - "lightning-ui-record-api": { - "simple": False, - "type": "lwc", - "attribs": {} - }, - - "lightning-vertical-navigation": { - "simple": False, - "type": "lwc", - "attribs": { - "compact": { - "type": "Boolean", - "access": "global", - "required": False, - "default": "", - "description": "If present, spacing between navigation items is reduced." - }, - "shaded": { - "type": "Boolean", - "access": "global", - "required": False, - "default": "", - "description": "If present, the vertical navigation is displayed on top of a shaded background." - }, - "selected-item": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Name of the navigation item to make active.\nAn active item is highlighted in blue." - } - } - }, - - "lightning-vertical-navigation-item": { - "simple": False, - "type": "lwc", - "attribs": { - "label": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The text displayed for the navigation item." - }, - "name": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "A unique identifier for the navigation item.\nThe name is used by the `select` event on lightning-vertical-navigation to identify which item is selected." - }, - "href": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The URL of the page that the navigation item goes to." - } - } - }, - - "lightning-vertical-navigation-item-badge": { - "simple": False, - "type": "lwc", - "attribs": { - "label": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The text displayed for this navigation item." - }, - "name": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "A unique identifier for this navigation item." - }, - "badge-count": { - "type": "Integer", - "access": "global", - "required": False, - "default": "0", - "description": "The number to show inside the badge. If this value is zero, the badge is hidden.\nThe default value is zero." - }, - "assistive-text": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "Assistive text describing the number in the badge, which enhances accessibility and is not displayed to the user.\nThe default is \"New Items\"." - }, - "href": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The URL of the page that the navigation item goes to." - } - } - }, - - "lightning-vertical-navigation-item-icon": { - "simple": False, - "type": "lwc", - "attribs": { - "label": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The text displayed for this navigation item." - }, - "name": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "A unique identifier for this navigation item." - }, - "icon-name": { - "type": "Picklist", - "access": "global", - "required": False, - "default": "", - "description": "The Lightning Design System name of the icon.\nNames are written in the format 'utility:down' where 'utility' is the category,\nand 'down' is the specific icon to be displayed.", - "values": icon_names - }, - "href": { - "type": "String", - "access": "global", - "required": False, - "default": "", - "description": "The URL of the page that the navigation item goes to." - } - } } } \ No newline at end of file diff --git a/salesforce/lib/lwc.py b/salesforce/lib/lwc.py new file mode 100644 index 0000000..5b7efbb --- /dev/null +++ b/salesforce/lib/lwc.py @@ -0,0 +1,4253 @@ +# Since 2019, Winter19, v44 +from .lightning import icon_names, timezones + +std_templates = { + +} +# tag definitions for lwc +tag_defs = { + "template": { + "simple": False, + "type": "lwc", + "attribs": { + "for:each": { + "type": "TrackObject", + "access": "global", + "required": False, + "default": "", + "description": "Use this directive to iterate over an array and render a list." + }, + "for:item": { + "type": "TrackObject", + "access": "global", + "required": False, + "default": "", + "description": "" + }, + "if:true": { + "type": "TrackObject", + "access": "global", + "required": False, + "default": "", + "description": "Use this directive to conditionally render DOM elements in a template." + }, + "if:false": { + "type": "TrackObject", + "access": "global", + "required": False, + "default": "", + "description": "Use this directive to conditionally render DOM elements in a template." + }, + "key": { + "type": "TrackObject", + "access": "global", + "required": False, + "default": "", + "description": "Use this directive to improve rendering performance by assigning a unique identifier to each item in a list. The key must be a string or a number, it can’t be an object. The engine uses the keys to determine which items have changed." + }, + "lwc:dom": { + "type": "TrackObject", + "access": "global", + "required": False, + "default": "", + "description": "Add this directive to a native HTML element to call appendChild() on the element from the owner’s JavaScript class and preserve styling." + } + } + }, + + "lightning-accordion": { + "simple": False, + "type": "lwc", + "attribs": { + "title": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Displays tooltip text when the mouse moves over the element." + }, + "active-section-name": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Changes the default expanded section.\nThe first section in the accordion is expanded by default." + }, + "allow-multiple-sections-open": { + "type": "Boolean", + "access": "global", + "required": False, + "default": "", + "description": "If present, the accordion allows multiple open sections.\nOtherwise, opening a section closes another that's currently open." + } + }, + "events": { + "onsectiontoggle": { + "type": "COMPONENT", + "description": "The event fired when an accordion section is toggled" + } + } + }, + + "lightning-accordion-section": { + "simple": False, + "type": "lwc", + "attribs": { + "name": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The unique section name to use with the active-section-name attribute in the accordion component." + }, + "label": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The text that displays as the title of the section." + }, + "title": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Displays a tooltip text when the mouse moves over the element." + } + } + }, + + "lightning-avatar": { + "simple": False, + "type": "lwc", + "attribs": { + "alternative-text": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The alternative text used to describe the avatar, which is displayed as\nhover text on the image." + }, + "fallback-icon-name": { + "type": "Picklist", + "values": icon_names, + "access": "global", + "required": False, + "default": "", + "description": "The Lightning Design System name of the icon used as a fallback when the\nimage fails to load. The initials fallback relies on this for its\nbackground color. Names are written in the format 'standard:account'\nwhere 'standard' is the category, and 'account' is the specific icon to\nbe displayed. Only icons from the standard and custom categories are\nallowed." + }, + "initials": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "If the record name contains two words, like first and last name, use the\nfirst capitalized letter of each. For records that only have a single\nword name, use the first two letters of that word using one capital and\none lower case letter." + }, + "size": { + "type": "Picklist", + "values": ["xx-small", "x-small", "small", "medium", "large"], + "access": "global", + "required": False, + "default": "", + "description": "The size of the avatar. Valid values are x-small, small, medium, and large. This value defaults to medium." + }, + "src": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The URL for the image." + }, + "variant": { + "type": "Picklist", + "values": ["square", "circle", ""], + "access": "global", + "required": False, + "default": "", + "description": "The variant changes the shape of the avatar. Valid values are empty,\ncircle, and square. This value defaults to square." + } + } + }, + + "lightning-badge": { + "simple": False, + "type": "lwc", + "attribs": { + "label": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The text to be displayed inside the badge." + } + } + }, + + "lightning-breadcrumb": { + "simple": False, + "type": "lwc", + "attribs": { + "href": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The URL of the page that the breadcrumb goes to." + }, + "label": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The text label for the breadcrumb." + }, + "name": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The name for the breadcrumb component. This value is optional and can be\nused to identify the breadcrumb in a callback." + } + } + }, + + "lightning-breadcrumbs": { + "simple": False, + "type": "lwc", + "attribs": {} + }, + + "lightning-button": { + "simple": False, + "type": "lwc", + "attribs": { + "name": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "" + }, + "value": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "" + }, + "label": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "" + }, + "variant": { + "type": "Picklist", + "values": [ + "base", + "neutral", + "brand", + "destructive", + "inverse", + "success" + ], + "access": "global", + "required": False, + "default": "neutral", + "description": "" + }, + "icon-name": { + "type": "Picklist", + "values": icon_names, + "access": "global", + "required": False, + "default": "", + "description": "" + }, + "icon-position": { + "type": "Picklist", + "values": ["left", "right"], + "access": "global", + "required": False, + "default": "left", + "description": "" + }, + "type": { + "type": "Picklist", + "values": ["reset", "submit", "button"], + "access": "global", + "required": False, + "default": "button", + "description": "" + } + } + }, + + "lightning-button-group": { + "simple": False, + "type": "lwc", + "attribs": {} + }, + + "lightning-button-icon": { + "simple": False, + "type": "lwc", + "attribs": { + "name": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "" + }, + "value": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "" + }, + "variant": { + "type": "Picklist", + "values": [ + "base", + "neutral", + "brand", + "destructive", + "inverse", + "success" + ], + "access": "global", + "required": False, + "default": "", + "description": "" + }, + "icon-name": { + "type": "Picklist", + "values": icon_names, + "access": "global", + "required": False, + "default": "", + "description": "" + }, + "icon-class": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "" + }, + "size": { + "type": "Picklist", + "values": ["xx-small", "x-small", "small", "medium", "large"], + "access": "global", + "required": False, + "default": "", + "description": "" + }, + "type": { + "type": "Picklis", + "values": ["button", "rest", "submit"], + "access": "global", + "required": False, + "default": "", + "description": "" + }, + "alternative-text": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "" + }, + "tooltip": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "" + } + } + }, + + "lightning-button-icon-stateful": { + "simple": False, + "type": "lwc", + "attribs": { + "name": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "" + }, + "value": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "" + }, + "variant": { + "type": "Picklist", + "values": [ + "base", + "neutral", + "brand", + "destructive", + "inverse", + "success" + ], + "access": "global", + "required": False, + "default": "", + "description": "" + }, + "icon-name": { + "type": "Picklist", + "values": icon_names, + "access": "global", + "required": False, + "default": "", + "description": "" + }, + "size": { + "type": "Picklist", + "values": ["xx-small", "x-small", "small", "medium", "large"], + "access": "global", + "required": False, + "default": "", + "description": "" + }, + "alternative-text": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "" + }, + "selected": { + "type": "Boolean", + "access": "global", + "required": False, + "default": "", + "description": "" + } + } + }, + + "lightning-button-menu": { + "simple": False, + "type": "lwc", + "attribs": { + "variant": { + "type": "Picklist", + "values": [ + "bare", + "container", + "border", + "border-filled", + "bare-inverse", + "border-inverse" + ], + "access": "global", + "required": False, + "default": "border", + "description": "The variant changes the look of the button.\nAccepted variants include bare, container, border, border-filled, bare-inverse, and border-inverse.\nThis value defaults to border." + }, + "icon-size": { + "type": "Picklist", + "values": ["xx-small", "x-small", "small", "medium", "large"], + "access": "global", + "required": False, + "default": "medium", + "description": "The size of the icon.\nOptions include xx-small, x-small, medium, or large.\nThis value defaults to medium." + }, + "icon-name": { + "type": "Picklist", + "values": icon_names, + "access": "global", + "required": False, + "default": "utility:down", + "description": "The name of the icon to be used in the format 'utility:down'.\nIf an icon other than 'utility:down' or 'utility:chevrondown' is used,\na utility:down icon is appended to the right of that icon.\nThis value defaults to utility:down." + }, + "value": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The value for the button element.\nThis value is optional and can be used when submitting a form." + }, + "alternative-text": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The assistive text for the button." + }, + "loading-state-alternative-text": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Message displayed while the menu is in the loading state." + }, + "label": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Optional text to be shown on the button." + }, + "draft-alternative-text": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Describes the reason for showing the draft indicator.\nThis is required when is-draft is true." + }, + "menu-alignment": { + "type": "String", + "values": ["auto", "left", "center", "right", "bottom-left", "bottom-center", "bottom-right"], + "access": "global", + "required": False, + "default": "", + "description": "Determines the alignment of the menu relative to the button.\nAvailable options are: auto, left, center, right, bottom-left, bottom-center, bottom-right.\nThe auto option aligns the dropdown menu based on available space.\nThis value defaults to left." + }, + "disabled": { + "type": "Boolean", + "access": "global", + "required": False, + "default": "", + "description": "If present, the menu can be opened by users." + }, + "nubbin": { + "type": "Boolean", + "access": "global", + "required": False, + "default": "", + "description": "If present, a nubbin is present on the menu.\nA nubbin is a stub that protrudes from the menu item towards the button menu.\nThe nubbin position is based on the menu-alignment." + }, + "title": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Displays tooltip text when the mouse moves over the button menu." + }, + "is-draft": { + "type": "Boolean", + "access": "global", + "required": False, + "default": "", + "description": "If present, the menu trigger shows a draft indicator." + }, + "is-loading": { + "type": "Boolean", + "access": "global", + "required": False, + "default": "", + "description": "If present, the menu is in a loading state and shows a spinner." + }, + "access-key": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The keyboard shortcut for the button menu." + }, + "tab-index": { + "type": "Integer", + "access": "global", + "required": False, + "default": "", + "description": "Reserved for internal use. Use tabindex instead to indicate if an element should be focusable.\ntabindex can be set to 0 or -1.\nThe default tabindex value is 0, which means that the button is focusable and participates in sequential keyboard navigation.\n-1 means that the button is focusable but does not participate in keyboard navigation." + }, + "tooltip": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Text to display when the user mouses over or focuses on the button.\nThe tooltip is auto-positioned relative to the button and screen space." + } + } + }, + + "lightning-button-stateful": { + "simple": False, + "type": "lwc", + "attribs": { + "icon-name-when-on": { + "type": "Picklist", + "values": icon_names, + "access": "global", + "required": False, + "default": "", + "description": "The name of the icon to be used in the format 'utility:check' when the state is true." + }, + "icon-name-when-off": { + "type": "Picklist", + "values": icon_names, + "access": "global", + "required": False, + "default": "", + "description": "The name of the icon to be used in the format 'utility:add' when the state is false." + }, + "icon-name-when-hover": { + "type": "Picklist", + "values": icon_names, + "access": "global", + "required": False, + "default": "", + "description": "The name of the icon to be used in the format 'utility:close' when the state is true and the button receives focus." + }, + "label-when-off": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The text to be displayed inside the button when state is false." + }, + "label-when-on": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The text to be displayed inside the button when state is true." + }, + "label-when-hover": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The text to be displayed inside the button when state is true and the button receives focus." + }, + "variant": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The variant changes the appearance of the button.\nAccepted variants include brand, destructive, inverse, neutral, success, and text." + }, + "selected": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "If present, the button is in the selected state." + } + } + }, + + "lightning-card": { + "simple": False, + "type": "lwc", + "attribs": { + "title": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The title can include text, and is displayed in the header.\nTo include additional markup or another component, use the title slot." + }, + "icon-name": { + "type": "Picklist", + "access": "global", + "required": False, + "default": "", + "description": "The Lightning Design System name of the icon.\nNames are written in the format 'utility:down' where 'utility' is the category,\nand 'down' is the specific icon to be displayed.\nThe icon is displayed in the header to the left of the title.", + "values": icon_names + }, + "variant": { + "type": "Picklist", + "values": [ + "base", "narrow" + ], + "access": "global", + "required": False, + "default": "", + "description": "The variant changes the appearance of the card.\nAccepted variants include base or narrow.\nThis value defaults to base." + } + } + }, + + "lightning-carousel": { + "simple": False, + "type": "lwc", + "attribs": { + "disable-auto-scroll": { + "type": "Boolean", + "access": "global", + "required": False, + "default": "", + "description": "If present, images do not automatically scroll and users must click the indicators to scroll." + }, + "disable-auto-refresh": { + "type": "Boolean", + "access": "global", + "required": False, + "default": "", + "description": "If present, the carousel stops looping\nafter the last item is displayed." + }, + "scroll-duration": { + "type": "String", + "access": "global", + "required": False, + "default": "5", + "description": "The auto scroll duration. The default is 5 seconds, after that the next\nimage is displayed." + } + } + }, + + "lightning-carousel-image": { + "simple": False, + "type": "lwc", + "attribs": { + "src": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The path to the image." + }, + "header": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Text for the label that's displayed under the image." + }, + "description": { + "type": "String", + "access": "global", + "required": False, + "default": "5", + "description": "Text displayed under the header." + }, + "alternative-text": { + "type": "String", + "access": "global", + "required": False, + "default": "5", + "description": "Assistive text for the image." + }, + "href": { + "type": "String", + "access": "global", + "required": False, + "default": "5", + "description": "A URL to create a link for the image. Clicking the image opens the link in the same frame." + } + } + }, + + "lightning-checkbox-group": { + "simple": False, + "type": "lwc", + "attribs": { + "label": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Text label for the checkbox group." + }, + "options": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Array of label-value pairs for each checkbox." + }, + "message-when-value-missing": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Optional message to be displayed when no checkbox is selected\nand the required attribute is set." + }, + "name": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The name of the checkbox group." + }, + "value": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The list of selected checkboxes.\nEach array entry contains the value of a selected checkbox.\nThe value of each checkbox is set in the options attribute." + }, + "disabled": { + "type": "Boolean", + "access": "global", + "required": False, + "default": "", + "description": "If present, the checkbox group is disabled.\nCheckbox selections can't be changed for a disabled checkbox group." + }, + "required": { + "type": "Boolean", + "access": "global", + "required": False, + "default": "", + "description": "If present, at least one checkbox must be selected." + }, + "variant": { + "type": "Picklist", + "access": "global", + "required": False, + "default": "", + "description": "The variant changes the appearance of the checkbox group.\nAccepted variants include standard, label-hidden, label-inline, and label-stacked.\nThis value defaults to standard.\nUse label-hidden to hide the label but make it available to assistive technology.\nUse label-inline to horizontally align the label and checkbox group.\nUse label-stacked to place the label above the checkbox group." + }, + "validity": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Represents the validity states that an element can be in, with respect to constraint validation." + } + } + }, + + "lightning-click-to-dial": { + "simple": False, + "type": "lwc", + "attribs": { + "body": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Inherited from aura:componentThe body of the component. In markup, this is everything in the body of the tag." + }, + "class": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "InheritedA CSS class for the outer element, in addition to the component's base classes." + }, + "title": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "InheritedDisplays tooltip text when the mouse moves over the element." + }, + "value": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The phone number." + }, + "recordId": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The Salesforce record Id that's associated with the phone number." + }, + "params": { + "type": "List", + "access": "global", + "required": False, + "default": "", + "description": "Comma-separated list of parameters to pass to the third-party phone system." + } + } + }, + + "lightning-combobox": { + "simple": False, + "type": "lwc", + "attribs": { + "body": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Inherited from aura:componentThe body of the component. In markup, this is everything in the body of the tag." + }, + "name": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "InheritedSpecifies the name of an input element." + }, + "value": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "InheritedSpecifies the value of an input element." + }, + "variant": { + "type": "Picklist", + "values": ["standard", "label-inline", "label-hidden", "label-stacked"], + "access": "global", + "required": False, + "default": "standard", + "description": "InheritedThe variant changes the appearance of an input field. Accepted variants include standard, label-inline, label-hidden, and label-stacked. This value defaults to standard, which displays the label above the field. Use label-hidden to hide the label but make it available to assistive technology. Use label-inline to horizontally align the label and input field. Use label-stacked to place the label above the input field." + }, + "disabled": { + "type": "Boolean", + "access": "global", + "required": False, + "default": "false", + "description": "InheritedSpecifies that an input element should be disabled. This value defaults to false." + }, + "readonly": { + "type": "Boolean", + "access": "global", + "required": False, + "default": "false", + "description": "InheritedSpecifies that an input field is read-only. This value defaults to false." + }, + "required": { + "type": "Boolean", + "access": "global", + "required": False, + "default": "false", + "description": "InheritedSpecifies that an input field must be filled out before submitting the form. This value defaults to false." + }, + "validity": { + "type": "Boolean", + "access": "global", + "required": False, + "default": "", + "description": "InheritedRepresents the validity states that an element can be in, with respect to constraint validation." + }, + "onchange": { + "type": "Method", + "access": "global", + "required": False, + "default": "", + "description": "InheritedThe action triggered when a value attribute changes." + }, + "accesskey": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "InheritedSpecifies a shortcut key to activate or focus an element." + }, + "tabindex": { + "type": "Integer", + "access": "global", + "required": False, + "default": "", + "description": "InheritedSpecifies the tab order of an element when the Tab key is used for navigating. The tabindex value can be set to 0 or -1. The default is 0, which means that the component is focusable and participates in sequential keyboard navigation. -1 means that the component is focusable but does not participate in keyboard navigation." + }, + "onfocus": { + "type": "Method", + "access": "global", + "required": False, + "default": "", + "description": "InheritedThe action triggered when the element receives focus." + }, + "onblur": { + "type": "Method", + "access": "global", + "required": False, + "default": "", + "description": "InheritedThe action triggered when the element releases focus." + }, + "class": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "InheritedA CSS class for the outer element, in addition to the component's base classes." + }, + "title": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "InheritedDisplays tooltip text when the mouse moves over the element." + }, + "options": { + "type": "List", + "access": "global", + "required": False, + "default": "", + "description": "A list of options that are available for selection. Each option has the following attributes: label and value." + }, + "label": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Text label for the combobox." + }, + "placeholder": { + "type": "String", + "access": "global", + "required": False, + "default": "Select an Option", + "description": "Text that is displayed before an option is selected, to prompt the user to select an option. The default is \"Select an Option\"." + }, + "dropdownAlignment": { + "type": "String", + "access": "global", + "required": False, + "default": "left", + "description": "Specifies where the drop-down list is aligned with or anchored to the selection field. By default the list is aligned with the selection field at the top so the list opens down. Use bottom-left to make the selection field display at the bottom so the list opens above it. Use auto to let the component determine where to open the list based on space available." + }, + "messageWhenValueMissing": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Error message to be displayed when the value is missing and input is required." + }, + "fieldLevelHelp": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Help text detailing the purpose and function of the combobox." + }, + "spinnerActive": { + "type": "Boolean", + "access": "global", + "required": False, + "default": "false", + "description": "Displays a spinner to indicate activity in the dropdown list. This value defaults to false." + } + } + }, + + "lightning-datatable": { + "simple": False, + "type": "lwc", + "attribs": { + "columns": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Array of the columns object that's used to define the data types.\nRequired properties include 'label', 'fieldName', and 'type'. The default type is 'text'.\nSee the Documentation tab for more information." + }, + "data": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The array of data to be displayed." + }, + "key-field": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Required for better performance.\nAssociates each row with a unique ID." + }, + "hide-checkbox-column": { + "type": "Boolean", + "access": "global", + "required": False, + "default": "", + "description": "If present, the checkbox column for row selection is hidden." + }, + "show-row-number-column": { + "type": "Boolean", + "access": "global", + "required": False, + "default": "", + "description": "If present, the row numbers are shown in the first column." + }, + "row-number-offset": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Determines where to start counting the row number.\nThe default is 0." + }, + "resize-column-disabled": { + "type": "Boolean", + "access": "global", + "required": False, + "default": "", + "description": "If present, column resizing is disabled." + }, + "min-column-width": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The minimum width for all columns.\nThe default is 50px." + }, + "max-column-width": { + "type": "Integer", + "access": "global", + "required": False, + "default": "", + "description": "The maximum width for all columns.\nThe default is 1000px." + }, + "resize-step": { + "type": "String", + "access": "global", + "required": False, + "default": "10px", + "description": "The width to resize the column when a user presses left or right arrow.\nThe default is 10px." + }, + "sorted-by": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The column fieldName that controls the sorting order.\nSort the data using the onsort event handler." + }, + "sorted-direction": { + "type": "Picklist", + "values": ["asc", "desc"], + "access": "global", + "required": False, + "default": "", + "description": "Specifies the sorting direction.\nSort the data using the onsort event handler.\nValid options include 'asc' and 'desc'." + }, + "default-sort-direction": { + "type": "Picklist", + "values": ["asc", "desc"], + "access": "global", + "required": False, + "default": "", + "description": "Specifies the default sorting direction on an unsorted column.\nValid options include 'asc' and 'desc'.\nThe default is 'asc' for sorting in ascending order." + }, + "enable-infinite-loading": { + "type": "Boolean", + "access": "global", + "required": False, + "default": "", + "description": "If present, you can load a subset of data and then display more\nwhen users scroll to the end of the table.\nUse with the onloadmore event handler to retrieve more data." + }, + "load-more-offset": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Determines when to trigger infinite loading based on\nhow many pixels the table's scroll position is from the bottom of the table.\nThe default is 20." + }, + "is-loading": { + "type": "Boolean", + "access": "global", + "required": False, + "default": "", + "description": "If present, a spinner is shown to indicate that more data is loading." + }, + "max-row-selection": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The maximum number of rows that can be selected.\nCheckboxes are used for selection by default,\nand radio buttons are used when maxRowSelection is 1." + }, + "selected-rows": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Enables programmatic row selection with a list of key-field values." + }, + "errors": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Specifies an object containing information about cell level, row level, and table level errors.\nWhen it's set, error messages are displayed on the table accordingly." + }, + "draft-values": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The current values per row that are provided during inline edit." + }, + "hide-table-header": { + "type": "Boolean", + "access": "global", + "required": False, + "default": "", + "description": "If present, the table header is hidden." + }, + "suppress-bottom-bar": { + "type": "Boolean", + "access": "global", + "required": False, + "default": "", + "description": "If present, the footer that displays the Save and Cancel buttons is hidden during inline editing." + } + } + }, + + "lightning-dual-listbox": { + "simple": False, + "type": "lwc", + "attribs": { + "source-label": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Label for the source options listbox." + }, + "selected-label": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Label for the selected options listbox." + }, + "label": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Label for the dual listbox." + }, + "options": { + "type": "List", + "access": "global", + "required": False, + "default": "", + "description": "A list of options that are available for selection. Each option has the following attributes: label and value." + }, + "min": { + "type": "Integer", + "access": "global", + "required": False, + "default": "0", + "description": "Minimum number of options required in the selected options listbox." + }, + "max": { + "type": "Integer", + "access": "global", + "required": False, + "default": "", + "description": "Maximum number of options allowed in the selected options listbox." + }, + "name": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Specifies the name of an input element." + }, + "message-when-value-missing": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Error message to be displayed when the value is missing and input is required." + }, + "message-when-range-overflow": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Error message to be displayed when a range overflow is detected." + }, + "message-when-range-underflow": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Error message to be displayed when a range underflow is detected." + }, + "disabled": { + "type": "Boolean", + "access": "global", + "required": False, + "default": "", + "description": "If present, the listbox is disabled and users cannot interact with it." + }, + "required": { + "type": "Boolean", + "access": "global", + "required": False, + "default": "", + "description": "If present, the user must add an item to the selected listbox before submitting the form." + }, + "value": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "A list of default options that are included in the selected options listbox. This list is populated with values from the options attribute." + }, + "required-options": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "A list of required options that cannot be removed from selected options listbox. This list is populated with values from the options attribute." + }, + "variant": { + "type": "Picklist", + "values": ["standard", "label-hidden", "label-inline", "label-stacked"], + "access": "global", + "required": False, + "default": "", + "description": "The variant changes the appearance of the dual listbox.\nAccepted variants include standard, label-hidden, label-inline, and label-stacked.\nThis value defaults to standard.\nUse label-hidden to hide the label but make it available to assistive technology.\nUse label-inline to horizontally align the label and dual listbox.\nUse label-stacked to place the label above the dual listbox." + }, + "size": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Number of items that display in the listboxes before vertical scrollbars are displayed. Determines the vertical size of the listbox." + }, + "field-level-help": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Help text detailing the purpose and function of the dual listbox." + }, + "disable-reordering": { + "type": "Boolean", + "access": "global", + "required": False, + "default": "", + "description": "If present, the Up and Down buttons used for reordering the selected list items are hidden." + }, + "show-activity-indicator": { + "type": "Boolean", + "access": "global", + "required": False, + "default": "", + "description": "If present, a spinner is displayed in the first listbox to indicate loading activity." + }, + "validity": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Represents the validity states that an element can be in, with respect to constraint validation." + }, + "add-button-label": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Label for add button." + }, + "remove-button-label": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Label for remove button." + }, + "up-button-label": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Label for up button." + }, + "down-button-label": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Label for down button." + } + } + }, + + "lightning-dynamic-icon": { + "simple": False, + "type": "lwc", + "attribs": { + "alternative-text": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The alternative text used to describe the dynamic icon.\nThis text should describe what's happening.\nFor example, 'Graph is refreshing', not what the icon looks like, 'Graph'." + }, + "type": { + "type": "Picklist", + "values": ["ellie", "eq", "score", "strength", "trend", "waffle"], + "access": "global", + "required": False, + "default": "", + "description": "The Lightning Design System name of the dynamic icon.\nValid values are: ellie, eq, score, strength, trend, and waffle." + }, + "option": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The option attribute changes the appearance of the dynamic icon.\nThe options available depend on the type.\neq: play (default) or stop\nscore: positive (default) or negative\nstrength: -3, -2, -1, 0 (default), 1, 2, 3\ntrend: neutral (default), up, or down" + } + } + }, + + "lightning-emp-api": { + "simple": False, + "type": "lwc", + "attribs": {} + }, + + "lightning-file-upload": { + "simple": False, + "type": "lwc", + "attribs": { + "name": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Specifies the name of the input element." + }, + "label": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The text label for the file uploader." + }, + "accept": { + "type": "Picklist", + "values": [ + ".avi", ".doc", ".dot", ".docx", ".exe", + ".msg", ".wrf", ".html", ".acgi", ".htm", + ".htx", ".shtm", ".shtml", ".htt", ".mht", + ".mhtm", ".mhtml", ".mov", ".mp3", ".mp4", + ".mpeg", ".mpg", ".pdf", ".ppt", ".pot", + ".pps", ".pptx", ".svg", ".svgz", ".swf", + ".txml", ".unknown", ".wav", ".wma", ".wmv", + ".xhtml", ".xls", ".xlt", ".xlsx", ".xm" + ], + "access": "global", + "required": False, + "default": "", + "description": "Comma-separated list of file extensions that can be uploaded\nin the format .ext, such as .pdf, .jpg, or .png." + }, + "record-id": { + "type": "TrackObject", + "access": "global", + "required": False, + "default": "", + "description": "The record Id of the record that the uploaded file is associated to." + }, + "disabled": { + "type": "Boolean", + "access": "global", + "required": False, + "default": "false", + "description": "Specifies whether this component should be displayed in a disabled state.\nDisabled components can't be clicked. The default is false." + }, + "multiple": { + "type": "Boolean", + "access": "global", + "required": False, + "default": "false", + "description": "Specifies whether a user can upload more than one file simultanesouly.\nThe default is false." + } + } + }, + + "lightning-formatted-address": { + "simple": False, + "type": "lwc", + "attribs": { + "street": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The street detail for the address." + }, + "city": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The city detail for the address." + }, + "province": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The province detail for the address." + }, + "country": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The country detail for the address." + }, + "postal-code": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The postal code detail for the address." + }, + "latitude": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The latitude of the location if known. Latitude values must be within -90 and 90." + }, + "longitude": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The longitude of the location if known. Longitude values must be within -180 and 180." + }, + "disabled": { + "type": "Boolean", + "access": "global", + "required": False, + "default": "", + "description": "If present, the address is displayed as plain text and is not clickable." + }, + "show-static-map": { + "type": "Boolean", + "access": "global", + "required": False, + "default": "false", + "description": "Displays a static map of the location using Google Maps. This value defaults to false." + } + } + }, + + "lightning-formatted-date-time": { + "simple": False, + "type": "lwc", + "attribs": { + "value": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The value to be formatted, which can be a Date object, timestamp, or an ISO8601 formatted string." + }, + "weekday": { + "type": "Picklist", + "values": ["narrow", "short", "long"], + "access": "global", + "required": False, + "default": "", + "description": "Specifies how to display the day of the week. Allowed values are narrow, short, or long." + }, + "era": { + "type": "Picklist", + "values": ["narrow", "short", "long"], + "access": "global", + "required": False, + "default": "", + "description": "Allowed values are narrow, short, or long." + }, + "year": { + "type": "Integer", + "access": "global", + "required": False, + "default": "", + "description": "Allowed values are numeric or 2-digit." + }, + "month": { + "type": "Integer", + "access": "global", + "required": False, + "default": "", + "description": "Allowed values are 2-digit, narrow, short, or long." + }, + "day": { + "type": "Integer", + "access": "global", + "required": False, + "default": "", + "description": "Allowed values are numeric or 2-digit." + }, + "hour": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Allowed values are numeric or 2-digit." + }, + "minute": { + "type": "Integer", + "access": "global", + "required": False, + "default": "", + "description": "Allowed values are numeric or 2-digit." + }, + "second": { + "type": "Integer", + "access": "global", + "required": False, + "default": "", + "description": "Allowed values are numeric or 2-digit." + }, + "time-zone-name": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Allowed values are short or long. For example, the Pacific time zone would display as 'PST'\nif you specify 'short', or 'Pacific Standard Time' if you specify 'long.'" + }, + "time-zone": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The time zone to display. Use this attribute only if you want to override the default, which is the runtime's\ntime zone. Specify a time zone listed in the IANA time zone database (https://www.iana.org/time-zones). For example, set\nthe value to 'Pacific/Honolulu' to display Hawaii time. The short code UTC is also accepted." + }, + "hour12": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Determines whether time is displayed as 12-hour. If False, time displays as 24-hour. The default setting is determined by the user's locale." + } + } + }, + + "lightning-formatted-email": { + "simple": False, + "type": "lwc", + "attribs": { + "value": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The email address that's displayed if a label is not provided." + }, + "label": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The text label for the email address." + }, + "tab-index": { + "type": "Integer", + "access": "global", + "required": False, + "default": "", + "description": "Reserved for internal use. Use tabindex instead to indicate if an element should be focusable.\nA value of 0 means that the element is focusable and\nparticipates in sequential keyboard navigation. A value of -1 means\nthat the element is focusable but does not participate in keyboard navigation." + }, + "hide-icon": { + "type": "Boolean", + "access": "global", + "required": False, + "default": "false", + "description": "If present, the email icon is hidden and only the email address is displayed." + } + } + }, + + "lightning-formatted-location": { + "simple": False, + "type": "lwc", + "attribs": { + "latitude": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The latitude of the geolocation. Latitude values must be within -90 and 90." + }, + "longitude": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The longitude of the geolocation. Longitude values must be within -180 and 180." + } + } + }, + + "lightning-formatted-name": { + "simple": False, + "type": "lwc", + "attribs": { + "format": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The format to use to display the name. Valid values include short, medium, and long. This value defaults to long." + }, + "salutation": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The value for the salutation, such as Dr. or Mrs." + }, + "first-name": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The value for the first name." + }, + "last-name": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The value for the last name." + }, + "middle-name": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The value for the middle name." + }, + "suffix": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The value for the suffix, such as Jr. or Esq." + }, + "informal-name": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The value for the informal name." + } + } + }, + + "lightning-formatted-number": { + "simple": False, + "type": "lwc", + "attribs": { + "value": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The value to be formatted." + }, + "format-style": { + "type": "Picklist", + "values": ["decimal", "currency", "percent"], + "access": "global", + "required": False, + "default": "decimal", + "description": "The number formatting style to use. Possible values are decimal, currency,\nand percent. This value defaults to decimal." + }, + "currency-code": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Only used if format-style='currency', this attribute determines which currency is\ndisplayed. Possible values are the ISO 4217 currency codes, such as 'USD' for the US dollar." + }, + "currency-display-as": { + "type": "String", + "access": "global", + "required": False, + "default": "symbol", + "description": "Determines how currency is displayed. Possible values are symbol, code, and name. This value defaults to symbol." + }, + "minimum-integer-digits": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The minimum number of integer digits that are required. Possible values are from 1 to 21." + }, + "minimum-fraction-digits": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The minimum number of fraction digits that are required." + }, + "maximum-fraction-digits": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The maximum number of fraction digits that are allowed." + }, + "minimum-significant-digits": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The minimum number of significant digits that are required. Possible values are from 1 to 21." + }, + "maximum-significant-digits": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The maximum number of significant digits that are allowed. Possible values are from 1 to 21." + } + } + }, + + "lightning-formatted-phone": { + "simple": False, + "type": "lwc", + "attribs": { + "value": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Sets the phone number to display." + }, + "tab-index": { + "type": "Integer", + "access": "global", + "required": False, + "default": "", + "description": "Reserved for internal use. Use tabindex instead to indicate if an element should be focusable.\nA value of 0 means that the element is focusable and\nparticipates in sequential keyboard navigation. A value of -1 means\nthat the element is focusable but does not participate in keyboard navigation." + } + } + }, + + "lightning-formatted-rich-text": { + "simple": False, + "type": "lwc", + "attribs": { + "disable-linkify": { + "type": "Boolean", + "access": "global", + "required": False, + "default": "", + "description": "If present, the component does not create links in the rich text." + }, + "value": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Sets the rich text to display." + } + } + }, + + "lightning-formatted-text": { + "simple": False, + "type": "lwc", + "attribs": { + "value": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Sets the text to display." + }, + "linkify": { + "type": "Boolean", + "access": "global", + "required": False, + "default": "", + "description": "If present, URLs and email addresses are displayed in anchor tags.\nThey are displayed in plain text by default." + } + } + }, + + "lightning-formatted-time": { + "simple": False, + "type": "lwc", + "attribs": { + "value": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Time value to format." + } + } + }, + + "lightning-formatted-url": { + "simple": False, + "type": "lwc", + "attribs": { + "target": { + "type": "Picklist", + "values": ["_blank", "_parent", "_self", "_top"], + "access": "global", + "required": False, + "default": "", + "description": "Specifies where to open the link. Options include _blank, _parent, _self, and _top." + }, + "tooltip": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The text to display when the mouse hovers over the link." + }, + "label": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The text to display in the link." + }, + "tab-index": { + "type": "Integer", + "access": "global", + "required": False, + "default": "", + "description": "Reserved for internal use. Use tabindex instead to indicate if an element should be focusable.\nA value of 0 means that the element is focusable and\nparticipates in sequential keyboard navigation. A value of -1 means\nthat the element is focusable but does not participate in keyboard navigation." + }, + "value": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The URL to format." + } + } + }, + + "lightning-helptext": { + "simple": False, + "type": "lwc", + "attribs": { + "content": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Text to be shown in the popover." + }, + "icon-name": { + "type": "Picklist", + "access": "global", + "required": False, + "default": "", + "description": "The Lightning Design System name of the icon used as the visible element.\nNames are written in the format 'utility:info' where 'utility' is the category,\nand 'info' is the specific icon to be displayed.\nThe default is 'utility:info'.", + "values": icon_names + }, + "icon-variant": { + "type": "Picklist", + "values": ["inverse", "warning", "error"], + "access": "global", + "required": False, + "default": "", + "description": "Changes the appearance of the icon.\nAccepted variants include inverse, warning, error." + } + } + }, + + "lightning-icon": { + "simple": False, + "type": "lwc", + "attribs": { + "alternative-text": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The alternative text used to describe the icon.\nThis text should describe what happens when you click the button,\nfor example 'Upload File', not what the icon looks like, 'Paperclip'." + }, + "src": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "A uri path to a custom svg sprite, including the name of the resouce,\nfor example: /assets/icons/standard-sprite/svg/test.svg#icon-heart" + }, + "icon-name": { + "type": "Picklist", + "access": "global", + "required": False, + "default": "", + "description": "The Lightning Design System name of the icon.\nNames are written in the format 'utility:down' where 'utility' is the category,\nand 'down' is the specific icon to be displayed.", + "values": icon_names + }, + "size": { + "type": "Picklist", + "values": ["xx-small", "x-small", "small", "medium", "large"], + "access": "global", + "required": False, + "default": "", + "description": "The size of the icon. Options include xx-small, x-small, small, medium, or large.\nThe default is medium." + }, + "variant": { + "type": "Picklist", + "values": ["inverse", "success", "warning", "error"], + "access": "global", + "required": False, + "default": "", + "description": "The variant changes the appearance of a utility icon.\nAccepted variants include inverse, success, warning, and error.\nUse the inverse variant to implement a white fill in utility icons on dark backgrounds." + } + } + }, + + "lightning-input": { + "simple": False, + "type": "lwc", + "attribs": { + "placeholder": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Text that is displayed when the field is empty, to prompt the user for a valid entry." + }, + "name": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Specifies the name of an input element." + }, + "label": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Text label for the input." + }, + "message-when-bad-input": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Error message to be displayed when a bad input is detected." + }, + "message-when-pattern-mismatch": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Error message to be displayed when a pattern mismatch is detected." + }, + "message-when-range-overflow": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Error message to be displayed when a range overflow is detected." + }, + "message-when-range-underflow": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Error message to be displayed when a range underflow is detected." + }, + "message-when-step-mismatch": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Error message to be displayed when a step mismatch is detected." + }, + "message-when-too-short": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Error message to be displayed when the value is too short." + }, + "message-when-too-long": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Error message to be displayed when the value is too long." + }, + "message-when-type-mismatch": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Error message to be displayed when a type mismatch is detected." + }, + "message-when-value-missing": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Error message to be displayed when the value is missing." + }, + "message-toggle-active": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Text shown for the active state of a toggle. The default is \"Active\"." + }, + "message-toggle-inactive": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Text shown for the inactive state of a toggle. The default is \"Inactive\"." + }, + "aria-label": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Describes the input to assistive technologies." + }, + "autocomplete": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Controls auto-filling of the field. Input types that support autocomplete are\nemail, search, tel, text, and url. Set the attribute to pass\nthrough autocomplete values to be interpreted by the browser." + }, + "format-fraction-digits": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Reserved for internal use." + }, + "time-aria-controls": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "A space-separated list of element IDs whose presence or content is controlled by the\ntime input when type='datetime'. On mobile devices, this is merged with aria-controls\nand date-aria-controls to describe the native date time input." + }, + "date-style": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The display style of the date when type='date' or type='datetime'. Valid values are\nshort, medium (default), and long. The format of each style is specific to the locale.\nOn mobile devices this attribute has no effect." + }, + "time-style": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The display style of the time when type='time' or type='datetime'. Valid values are\nshort (default), medium, and long. Currently, medium and long styles look the same.\nOn mobile devices this attribute has no effect." + }, + "date-aria-label": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Describes the date input to assistive technologies when type='datetime'. On mobile devices,\nthis label is merged with aria-label and time-aria-label to describe the native date time input." + }, + "date-aria-labelled-by": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "A space-separated list of element IDs that provide labels for the date input when type='datetime'.\nOn mobile devices, this is merged with aria-labelled-by and time-aria-labelled-by to describe\nthe native date time input." + }, + "time-aria-labelled-by": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "A space-separated list of element IDs that provide labels for the time input when type='datetime'.\nOn mobile devices, this is merged with aria-labelled-by and date-aria-labelled-by to describe\nthe native date time input." + }, + "time-aria-described-by": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "A space-separated list of element IDs that provide descriptive labels for the time input when\ntype='datetime'. On mobile devices, this is merged with aria-described-by and date-aria-described-by\nto describe the native date time input." + }, + "date-aria-controls": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "A space-separated list of element IDs whose presence or content is controlled by the\ndate input when type='datetime'. On mobile devices, this is merged with aria-controls\nand time-aria-controls to describe the native date time input." + }, + "date-aria-described-by": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "A space-separated list of element IDs that provide descriptive labels for the date input when\ntype='datetime'. On mobile devices, this is merged with aria-described-by and time-aria-described-by\nto describe the native date time input." + }, + "aria-controls": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "A space-separated list of element IDs whose presence or content is controlled by the input." + }, + "aria-labelled-by": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "A space-separated list of element IDs that provide labels for the input." + }, + "aria-described-by": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "A space-separated list of element IDs that provide descriptive labels for the input." + }, + "formatter": { + "type": "Picklist", + "values": ["decimal", "percent", "percent-fixed", "currency"], + "access": "global", + "required": False, + "default": "", + "description": "String value with the formatter to be used for number input. Valid values include\ndecimal, percent, percent-fixed, and currency." + }, + "type": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The type of the input. This value defaults to text." + }, + "is-loading": { + "type": "Boolean", + "access": "global", + "required": False, + "default": "", + "description": "For the search type only. If present, a spinner is displayed to indicate that data is loading." + }, + "pattern": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Specifies the regular expression that the input's value is checked against.\nThis attribute is supported for text, search, url, tel, email, and password types." + }, + "max-length": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The maximum number of characters allowed in the field." + }, + "accept": { + "type": "Picklist", + "values": [ + ".avi", ".doc", ".dot", ".docx", ".exe", + ".msg", ".wrf", ".html", ".acgi", ".htm", + ".htx", ".shtm", ".shtml", ".htt", ".mht", + ".mhtm", ".mhtml", ".mov", ".mp3", ".mp4", + ".mpeg", ".mpg", ".pdf", ".ppt", ".pot", + ".pps", ".pptx", ".svg", ".svgz", ".swf", + ".txml", ".unknown", ".wav", ".wma", ".wmv", + ".xhtml", ".xls", ".xlt", ".xlsx", ".xm" + ], + "access": "global", + "required": False, + "default": "", + "description": "Specifies the types of files that the server accepts. This attribute can be used only when type='file'." + }, + "min-length": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The minimum number of characters allowed in the field." + }, + "max": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The maximum acceptable value for the input. This attribute can be used only with number,\nrange, date, time, and datetime input types. For number and range type, the max value is a\ndecimal number. For the date, time, and datetime types, the max value must use a valid string for the type." + }, + "min": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The minimum acceptable value for the input. This attribute can be used only with number,\nrange, date, time, and datetime input types. For number and range types, the min value\nis a decimal number. For the date, time, and datetime types, the min value must use a valid string for the type." + }, + "step": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Granularity of the value, specified as a positive floating point number.\nUse 'any' when granularity is not a concern. This value defaults to 1." + }, + "checked": { + "type": "Boolean", + "access": "global", + "required": False, + "default": "", + "description": "If present, the checkbox is selected." + }, + "multiple": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Specifies that a user can enter more than one value. This attribute can be used only when type='file' or type='email'." + }, + "value": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Specifies the value of an input element." + }, + "variant": { + "type": "Picklist", + "access": "global", + "required": False, + "default": "", + "description": "The variant changes the appearance of an input field.\nAccepted variants include standard, label-inline, label-hidden, and label-stacked.\nThis value defaults to standard, which displays the label above the field.\nUse label-hidden to hide the label but make it available to assistive technology.\nUse label-inline to horizontally align the label and input field.\nUse label-stacked to place the label above the input field." + }, + "disabled": { + "type": "Boolean", + "access": "global", + "required": False, + "default": "", + "description": "If present, the input field is disabled and users cannot interact with it." + }, + "read-only": { + "type": "Boolean", + "access": "global", + "required": False, + "default": "", + "description": "If present, the input field is read-only and cannot be edited by users." + }, + "required": { + "type": "Boolean", + "access": "global", + "required": False, + "default": "", + "description": "If present, the input field must be filled out before the form is submitted." + }, + "timezone": { + "type": "Picklist", + "values": timezones, + "access": "global", + "required": False, + "default": "", + "description": "Specifies the time zone used when type='datetime' only. This value defaults to the user's Salesforce time zone setting." + }, + "files": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "A FileList that contains selected files. This attribute can be used only when type='file'." + }, + "validity": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Represents the validity states that an element can be in, with respect to constraint validation." + }, + "field-level-help": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Help text detailing the purpose and function of the input.\nThis attribute isn't supported for file, radio, toggle, and checkbox-button types." + }, + "access-key": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Specifies a shortcut key to activate or focus an element." + }, + "checkValidity": { + "type": "Method", + "access": "global", + "arguments": "message", + "description": "Sets a custom error message to be displayed when a form is submitted." + }, + "reportValidity": { + "type": "Method", + "access": "global", + "arguments": "message", + "description": "Displays the error messages and returns false if the input is invalid. If the input is valid, reportValidity() clears displayed error messages and returns true." + }, + "focus": { + "type": "Method", + "access": "global", + "arguments": "message", + "description": "Sets focus on the input element." + }, + "blur": { + "type": "Method", + "access": "global", + "arguments": "message", + "description": "Removes keyboard focus from the input element." + }, + "showHelpMessageIfInvalid": { + "type": "Method", + "access": "global", + "arguments": "message", + "description": "Displays error messages on invalid fields. An invalid field fails at least one constraint validation and returns false when checkValidity() is called." + } + } + }, + + "lightning-input-address": { + "simple": False, + "type": "lwc", + "attribs": { + "address-label": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The label of the address compound field." + }, + "street-label": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The label of the street field of the address." + }, + "city-label": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The label of the city field of the address." + }, + "province-label": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The label of the province field of the address." + }, + "country-label": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The label of the country field of the address." + }, + "postal-code-label": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The label of the postal code field of the address." + }, + "province-options": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The array of label-value pairs for the province. Displays a dropdown menu of options." + }, + "country-options": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The array of label-value pairs for the country. Displays a dropdown menu of options." + }, + "street": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The street field of the address." + }, + "city": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The city field of the address." + }, + "province": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The province field of the address. If province-options is provided, this province value is selected by default." + }, + "country": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The country field of the address. If country-options is provided, this country value is selected by default." + }, + "postal-code": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The postal code field of the address." + }, + "disabled": { + "type": "Boolean", + "access": "global", + "required": False, + "default": "", + "description": "If present, the address fields are disabled and users cannot interact with them." + }, + "show-address-lookup": { + "type": "Boolean", + "access": "global", + "required": False, + "default": "", + "description": "If present, address lookup using Google Maps is enabled." + }, + "read-only": { + "type": "Boolean", + "access": "global", + "required": False, + "default": "", + "description": "If present, the address fields are read-only and cannot be edited." + }, + "required": { + "type": "Boolean", + "access": "global", + "required": False, + "default": "", + "description": "If present, the address fields must be filled before the form is submitted." + }, + "variant": { + "type": "Picklist", + "access": "global", + "required": False, + "default": "", + "description": "The variant changes the appearance of an input address field.\nAccepted variants include standard, label-hidden, label-inline, and label-stacked.\nThis value defaults to standard.\nUse label-hidden to hide the label but make it available to assistive technology.\nUse label-inline to horizontally align the label and input address field.\nUse label-stacked to place the label above the input address field." + }, + "field-level-help": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Help text detailing the purpose and function of the input." + }, + "validity": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Represents the validity states that an element can be in, with respect to constraint validation." + } + } + }, + + "lightning-input-field": { + "simple": False, + "type": "lwc", + "attribs": { + "readonly": { + "type": "Boolean", + "access": "global", + "required": False, + "default": "false", + "description": "Specifies whether the input fields are read-only. This value defaults to false." + }, + "variant": { + "type": "Picklist", + "access": "global", + "required": False, + "default": "", + "description": "The variant changes the label position of an input field.\nAccepted variants include standard, label-hidden, label-inline, and label-stacked.\nIf variant is specified, the label position is determined by the variant.\nOtherwise, it is determined by the density setting of the parent form." + }, + "value": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The field value, which overrides the existing value." + }, + "field-name": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The API name of the field to be displayed." + }, + "disabled": { + "type": "Boolean", + "access": "global", + "required": False, + "default": "", + "description": "If present, the field is disabled and users cannot interact with it.\nRead-only fields are also disabled by default." + }, + "dirty": { + "type": "Boolean", + "access": "global", + "required": False, + "default": "", + "description": "Reserved for internal use. If present, the field has been modified by the user but not saved or submitted." + } + } + }, + + "lightning-input-location": { + "simple": False, + "type": "lwc", + "attribs": { + "label": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The label of the geolocation compound field." + }, + "field-level-help": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Help text detailing the purpose and function of the input." + }, + "latitude": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The latitude value. Latitude values must be within -90 and 90." + }, + "longitude": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The longitude value. Longitude values must be within -180 and 180." + }, + "disabled": { + "type": "Boolean", + "access": "global", + "required": False, + "default": "", + "description": "If present, the geolocation fields are disabled and users cannot interact with them." + }, + "read-only": { + "type": "Boolean", + "access": "global", + "required": False, + "default": "", + "description": "If present, the geolocations fields are read-only and cannot be edited." + }, + "required": { + "type": "Boolean", + "access": "global", + "required": False, + "default": "", + "description": "If present, the geolocation fields must be filled out before the form is submitted.\nAn error message is displayed if a user interacts with the field\nand does not provide a value." + }, + "variant": { + "type": "Picklist", + "access": "global", + "required": False, + "default": "", + "description": "The variant changes the appearance of a geolocation compound field.\nAccepted variants include standard, label-hidden, label-inline, and label-stacked.\nThis value defaults to standard.\nUse label-hidden to hide the label but make it available to assistive technology.\nUse label-inline to horizontally align the label and geolocation fields.\nUse label-stacked to place the label above the geolocation fields." + }, + "validity": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Represents the validity states that an element can be in, with respect to constraint validation." + } + } + }, + + "lightning-input-name": { + "simple": False, + "type": "lwc", + "attribs": { + "label": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The label of the input name field." + }, + "options": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Displays a list of salutation options, such as Dr. or Mrs., provided as label-value pairs." + }, + "fields-to-display": { + "type": "String", + "access": "global", + "required": False, + "default": "[{type=string, value=firstName}, {type=string, value=salutation}, {type=string, value=lastName}]", + "description": "List of fields to be displayed on the component. This value defaults to\n['firstName', 'salutation', 'lastName']. Other field values include middleName,\ninformalName, suffix." + }, + "salutation": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Displays the Salutation field as a dropdown menu. An array of label-value pairs must be provided using the options attribute." + }, + "first-name": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Displays the First Name field." + }, + "middle-name": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Displays the Middle Name field." + }, + "informal-name": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Displays the Informal Name field." + }, + "last-name": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Displays the Last Name field." + }, + "suffix": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Displays the Suffix field." + }, + "disabled": { + "type": "Boolean", + "access": "global", + "required": False, + "default": "", + "description": "If present, the input name field is disabled and users cannot interact with it." + }, + "read-only": { + "type": "Boolean", + "access": "global", + "required": False, + "default": "", + "description": "If present, the input name field is read-only and cannot be edited." + }, + "required": { + "type": "Boolean", + "access": "global", + "required": False, + "default": "", + "description": "If present, the input name field must be filled out before the form is submitted.\nA red asterisk is displayed on the Last Name field. An error\nmessage is displayed if a user interacts with the Last Name\nfield and does not provide a value." + }, + "variant": { + "type": "Picklist", + "access": "global", + "required": False, + "default": "", + "description": "The variant changes the appearance of a name compound field.\nAccepted variants include standard, label-hidden, label-inline, and label-stacked.\nThis value defaults to standard.\nUse label-hidden to hide the label but make it available to assistive technology.\nUse label-inline to horizontally align the label and name fields.\nUse label-stacked to place the label above the name fields." + }, + "field-level-help": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Help text detailing the purpose and function of the input." + }, + "validity": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Represents the validity states that an element can be in, with respect to constraint validation." + } + } + }, + + "lightning-input-rich-text": { + "simple": False, + "type": "lwc", + "attribs": { + "label": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The label of the rich text editor." + }, + "label-visible": { + "type": "Boolean", + "access": "global", + "required": False, + "default": "false", + "description": "If present, the label on the rich text editor is visible." + }, + "placeholder": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Text that is displayed when the field is empty, to prompt the user for a valid entry." + }, + "disabled-categories": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "A comma-separated list of button categories to remove from the toolbar." + }, + "formats": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "A whitelist of formats. By default, the list is computed based on enabled categories.\nThe 'table' format is always enabled to support copying and pasting of tables if formats are not provided." + }, + "variant": { + "type": "Picklist", + "access": "global", + "required": False, + "default": "", + "description": "The variant changes the appearance of the toolbar. Accepted variant is bottom-toolbar which causes\nthe toolbar to be displayed below the text box." + }, + "message-when-bad-input": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Error message to be displayed when invalid input is detected." + }, + "custom-buttons": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Reserved for internal use. Custom buttons to add to the toolbar." + }, + "share-with-entity-id": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Entity ID to share the image with." + }, + "value": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The HTML content in the rich text editor." + }, + "valid": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Specifies whether the editor content is valid. If invalid, the slds-has-error class is added. This value defaults to true." + }, + "disabled": { + "type": "Boolean", + "access": "global", + "required": False, + "default": "", + "description": "If present, the editor is disabled and users cannot interact with it." + } + } + }, + + "lightning-layout": { + "simple": False, + "type": "lwc", + "attribs": { + "horizontal-align": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Determines how to spread the layout items horizontally.\nThe alignment options are center, space, spread, and end." + }, + "vertical-align": { + "type": "Picklist", + "values": ["start", "center", "end", "stretch"], + "access": "global", + "required": False, + "default": "", + "description": "Determines how to align the layout items vertically in the container.\nThe alignment options are start, center, end, and stretch." + }, + "pull-to-boundary": { + "type": "Picklist", + "values": ["small", "medium", "large."], + "access": "global", + "required": False, + "default": "", + "description": "Pulls layout items to the layout boundaries and corresponds\nto the padding size on the layout item. Possible values are small, medium, or large." + }, + "multiple-rows": { + "type": "Boolean", + "access": "global", + "required": False, + "default": "", + "description": "If present, layout items wrap to the following line when they exceed the layout width." + } + } + }, + + "lightning-layout-item": { + "simple": False, + "type": "lwc", + "attribs": { + "flexibility": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Make the item fluid so that it absorbs any extra space in its\ncontainer or shrinks when there is less space. Allowed values are:\nauto (columns grow or shrink equally as space allows),\nshrink (columns shrink equally as space decreases),\nno-shrink (columns don't shrink as space reduces),\ngrow (columns grow equally as space increases),\nno-grow (columns don't grow as space increases),\nno-flex (columns don't grow or shrink as space changes).\nUse a comma-separated value for multiple options, such as 'auto, no-shrink'." + }, + "alignment-bump": { + "type": "Picklist", + "values": ["left", "top", "right", "bottom"], + "access": "global", + "required": False, + "default": "", + "description": "Specifies a direction to bump the alignment of adjacent layout items. Allowed values are left, top, right, bottom." + }, + "padding": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Sets padding to either the right and left sides of a container,\nor all sides of a container. Allowed values are horizontal-small,\nhorizontal-medium, horizontal-large, around-small, around-medium, around-large." + }, + "size": { + "type": "Integer", + "access": "global", + "required": False, + "default": "", + "description": "If the viewport is divided into 12 parts, size indicates the\nrelative space the container occupies. Size is expressed as\nan integer from 1 through 12. This applies for all device-types." + }, + "small-device-size": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "If the viewport is divided into 12 parts, this attribute indicates\nthe relative space the container occupies on device-types larger than\nmobile. It is expressed as an integer from 1 through 12." + }, + "medium-device-size": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "If the viewport is divided into 12 parts, this attribute indicates\nthe relative space the container occupies on device-types larger than\ntablet. It is expressed as an integer from 1 through 12." + }, + "large-device-size": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "If the viewport is divided into 12 parts, this attribute indicates\nthe relative space the container occupies on device-types larger than\ndesktop. It is expressed as an integer from 1 through 12." + } + } + }, + + "lightning-map": { + "simple": False, + "type": "lwc", + "attribs": { + "show-footer": { + "type": "Boolean", + "access": "global", + "required": False, + "default": "false", + "description": "If present, the footer element is displayed below the map.\nThe footer shows an 'Open in Google Maps' link that opens an external window\nto display the selected marker location in Google Maps. Default value is false." + }, + "list-view": { + "type": "String", + "access": "global", + "required": False, + "default": "auto", + "description": "Displays or hides the list of locations. Valid values are visible, hidden, or auto.\nThis value defaults to auto, which shows the list only when multiple markers are present.\nPassing in an invalid value hides the list view." + }, + "zoom-level": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The zoom levels as defined by Google Maps API.\nIf a zoom level is not specified, a default zoom level is applied to accommodate all markers on the map." + }, + "center": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "A location to use as the map's center.\nIf center is not specified, the map centers automatically." + }, + "markers-title": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Provides the heading title for the markers. Required if specifying multiple markers.\nThe title is displayed below the map as a header for the list of clickable addresses." + }, + "map-markers": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "One or more objects with the address or latitude and longitude to be displayed on the map.\nIf latitude and longitude are provided, the address is ignored." + } + } + }, + + "lightning-menu-item": { + "simple": False, + "type": "lwc", + "attribs": { + "value": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "A value associated with the menu item." + }, + "label": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Text of the menu item." + }, + "icon-name": { + "type": "Picklist", + "access": "global", + "required": False, + "default": "", + "description": "The name of an icon to display after the text of the menu item.", + "values": icon_names + }, + "prefix-icon-name": { + "type": "Picklist", + "access": "global", + "required": False, + "default": "", + "description": "The name of an icon to display before the text of the menu item.", + "values": icon_names + }, + "href": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "URL for a link to use for the menu item." + }, + "draft-alternative-text": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Describes the reason for showing the draft indicator.\nThis is required when is-draft is present on the lightning-menu-item tag." + }, + "is-draft": { + "type": "Boolean", + "access": "global", + "required": False, + "default": "", + "description": "If present, a draft indicator is shown on the menu item.\nA draft indicator is denoted by blue asterisk on the left of the menu item.\nWhen you use a draft indicator, include alternative text for accessibility using draft-alternative-text." + }, + "access-key": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The keyboard shortcut for the menu item." + }, + "tab-index": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Reserved for internal use. Use tabindex instead to indicate if an element should be focusable.\ntabindex can be set to 0 or -1.\nThe default tabindex value is 0, which means that the menu item is focusable and\nparticipates in sequential keyboard navigation. The value -1 means\nthat the menu item is focusable but does not participate in keyboard navigation." + }, + "disabled": { + "type": "Boolean", + "access": "global", + "required": False, + "default": "", + "description": "If present, the menu item is disabled and users cannot interact with it." + }, + "checked": { + "type": "Boolean", + "access": "global", + "required": False, + "default": "", + "description": "If present, a check mark displays on the left of the menu item if it's selected." + } + } + }, + + "lightning-navigation": { + "simple": False, + "type": "lwc", + "attribs": {} + }, + + "lightning-output-field": { + "simple": False, + "type": "lwc", + "attribs": { + "field-class": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "A CSS class for the outer element, in addition to the component's base classes." + }, + "variant": { + "type": "Picklist", + "access": "global", + "required": False, + "default": "", + "description": "Changes the appearance of the output. Accepted variants\ninclude standard and label-hidden. This value defaults to standard." + }, + "field-name": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The API name of the field to be displayed." + } + } + }, + + "lightning-pill": { + "simple": False, + "type": "lwc", + "attribs": { + "href": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The URL of the page that the link goes to." + }, + "label": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The text label that displays in the pill." + }, + "name": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The name for the pill. This value is optional and can be used to identify the pill in a callback." + }, + "variant": { + "type": "Picklist", + "access": "global", + "required": False, + "default": "", + "description": "The variant changes the appearance of the pill.\nAccepted variants include link, plain, and plainLink.\nThe default variant is link, which creates a link in the pill when you specify the href attribute.\nThe plain variant renders the pill without a link and ignores the href attribute.\nThe plainLink variant is reserved for internal use." + }, + "has-error": { + "type": "Boolean", + "access": "global", + "required": False, + "default": "", + "description": "If present, the pill is shown with a red border and an error icon on the left of the label." + }, + "is-plain-link": { + "type": "Boolean", + "access": "global", + "required": False, + "default": "", + "description": "Reserved for internal use. Specifies whether the element variant is a plain link." + }, + "tab-index": { + "type": "Integer", + "access": "global", + "required": False, + "default": "", + "description": "Reserved for internal use. Use tabindex instead to indicate if an element should be focusable.\nA value of 0 means that the pill is focusable and\nparticipates in sequential keyboard navigation. A value of -1 means\nthat the pill is focusable but does not participate in keyboard navigation." + }, + "aria-selected": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Specifies the aria-selected of an element." + }, + "role": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Specifies the role of an element." + } + } + }, + + "lightning-pill-container": { + "simple": False, + "type": "lwc", + "attribs": { + "label": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Aria label for the pill container." + }, + "variant": { + "type": "Picklist", + "values": ["standard", "bare"], + "access": "global", + "required": False, + "default": "", + "description": "The variant changes the appearance of the pill container. Accepted variants\ninclude standard and bare. This value defaults to standard." + }, + "single-line": { + "type": "Boolean", + "access": "global", + "required": False, + "default": "", + "description": "Specifies whether to keep the pills in a single line." + }, + "is-collapsible": { + "type": "Boolean", + "access": "global", + "required": False, + "default": "", + "description": "Specifies whether the pill container can be collapsed." + }, + "is-expanded": { + "type": "Boolean", + "access": "global", + "required": False, + "default": "", + "description": "Specifies whether the pill container is expanded." + }, + "items": { + "type": "Object", + "access": "global", + "required": False, + "default": "", + "description": "An array of items to be rendered as pills in a container." + } + } + }, + + "lightning-platform-resource-loader": { + "simple": False, + "type": "lwc", + "attribs": {} + }, + + "lightning-platform-show-toast-event": { + "simple": False, + "type": "lwc", + "attribs": {} + }, + + "lightning-progress-bar": { + "simple": False, + "type": "lwc", + "attribs": { + "value": { + "type": "String", + "access": "global", + "required": False, + "default": "0", + "description": "The percentage value of the progress bar." + }, + "variant": { + "type": "Picklist", + "access": "global", + "required": False, + "default": "", + "description": "The variant changes the appearance of the progress bar.\nAccepted variants include base or circular.\nThis value defaults to base." + }, + "size": { + "type": "Picklist", + "values": ["x-small", "small", "medium", "large"], + "access": "global", + "required": False, + "default": "", + "description": "The size of the progress bar.\nValid values are x-small, small, medium, and large.\nThe default value is medium." + } + } + }, + + "lightning-progress-indicator": { + "simple": False, + "type": "lwc", + "attribs": { + "type": { + "type": "Picklist", + "values": ["base", "path"], + "access": "global", + "required": False, + "default": "base", + "description": "Changes the visual pattern of the indicator. Valid values are base and path.\nThe default is base." + }, + "variant": { + "type": "Picklist", + "access": "global", + "required": False, + "default": "base", + "description": "Changes the appearance of the progress indicator for the base type only.\nValid values are base or shaded. The shaded variant adds a light gray border to the step indicators.\nThe default is base." + }, + "current-step": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Set current-step to match the value attribute of one of progress-step components.\nIf current-step is not provided, the value of the first progress-step component is used." + }, + "has-error": { + "type": "Boolean", + "access": "global", + "required": False, + "default": "false", + "description": "If present, the current step is in error state and a warning icon is displayed on the step indicator.\nOnly the base type can display errors." + } + } + }, + + "lightning-radio-group": { + "simple": False, + "type": "lwc", + "attribs": { + "type": { + "type": "Picklist", + "values": ["radio", "button"], + "access": "global", + "required": False, + "default": "radio", + "description": "The style of the radio group. Options are radio or button. The default is radio." + }, + "label": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Text label for the radio group." + }, + "options": { + "type": "List", + "access": "global", + "required": False, + "default": "", + "description": "Array of label-value pairs for each radio button." + }, + "message-when-value-missing": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Optional message displayed when no radio button is selected and the required attribute is set to true." + }, + "name": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Specifies the name of the radio button group. Only only one button can be selected if a name is specified\nfor the group." + }, + "value": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Specifies the value of the selected radio button." + }, + "disabled": { + "type": "Boolean", + "access": "global", + "required": False, + "default": "", + "description": "If present, the radio group is disabled and users cannot interact with it." + }, + "required": { + "type": "Boolean", + "access": "global", + "required": False, + "default": "", + "description": "If present, a radio button must be selected before the form can be submitted." + }, + "variant": { + "type": "Picklist", + "values": ["label-hidden", "label-inline", "label-stacked"], + "access": "global", + "required": False, + "default": "", + "description": "The variant changes the appearance of the radio group.\nAccepted variants include standard, label-hidden, label-inline, and label-stacked.\nThis value defaults to standard.\nUse label-hidden to hide the label but make it available to assistive technology.\nUse label-inline to horizontally align the label and radio group.\nUse label-stacked to place the label above the radio group." + }, + "validity": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Represents the validity states that an element can be in, with respect to constraint validation." + } + } + }, + + "lightning-record-edit-form": { + "simple": False, + "type": "lwc", + "attribs": { + "field-names": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Reserved for internal use. Names of the fields to include in the form." + }, + "record-type-id": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The ID of the record type, which is required if you created\nmultiple record types but don't have a default." + }, + "form-class": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "A CSS class for the form element." + }, + "layout-type": { + "type": "Picklist", + "values": ["Compact", "Full"], + "access": "global", + "required": False, + "default": "", + "description": "The type of layout to use to display the form fields. Possible values: Compact, Full." + }, + "density": { + "type": "Picklist", + "values": ["compact", "comfy", "auto"], + "access": "global", + "required": False, + "default": "", + "description": "Sets the arrangement style of fields and labels in the form.\nAccepted values are compact, comfy, and auto (default).\nUse compact to display fields and their labels on the same line.\nUse comfy to display fields below their labels.\nUse auto to let the component dynamically set\nthe density according to the user's Display Density setting\nand the width of the form." + }, + "record-id": { + "type": "TrackObject", + "access": "global", + "required": False, + "default": "", + "description": "The ID of the record to be displayed." + }, + "object-api-name": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The API name of the object." + } + } + }, + + "lightning-record-form": { + "simple": False, + "type": "lwc", + "attribs": { + "record-type-id": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The ID of the record type, which is required if you created\nmultiple record types but don't have a default." + }, + "mode": { + "type": "Picklist", + "values": ["view", "edit", "readonly"], + "access": "global", + "required": False, + "default": "view", + "description": "Specifies the interaction and display style for the form.\nPossible values: view, edit, readonly.\nIf a record ID is not provided, the default mode is edit, which displays a form to create new records.\nIf a record ID is provided, the default mode is view, which displays field values with edit icons on updateable fields." + }, + "layout-type": { + "type": "Picklist", + "values": ["Compact", "Full"], + "access": "global", + "required": False, + "default": "", + "description": "The type of layout to use to display the form fields. Possible values: Compact, Full.\nWhen creating a new record, only the full layout is supported." + }, + "density": { + "type": "Picklist", + "values": ["compact", "comfy", "auto"], + "access": "global", + "required": False, + "default": "", + "description": "Sets the arrangement style of fields and labels in the form.\nAccepted values are compact, comfy, and auto (default).\nUse compact to display fields and their labels on the same line.\nUse comfy to display fields below their labels.\nUse auto to let the component dynamically set\nthe density according to the user's Display Density setting\nand the width of the form." + }, + "record-id": { + "type": "TrackObject", + "access": "global", + "required": False, + "default": "", + "description": "The ID of the record to be displayed." + }, + "object-api-name": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The API name of the object." + }, + "columns": { + "type": "Integer", + "access": "global", + "required": False, + "default": "", + "description": "Specifies the number of columns for the form." + }, + "fields": { + "type": "List", + "access": "global", + "required": False, + "default": "", + "description": "List of fields to be displayed. The fields display in the order you list them." + } + } + }, + + "lightning-record-view-form": { + "simple": False, + "type": "lwc", + "attribs": { + "density": { + "type": "Picklist", + "values": ["compact", "comfy", "auto"], + "access": "global", + "required": False, + "default": "", + "description": "Sets the arrangement style of fields and labels in the form.\nAccepted values are compact, comfy, and auto (default).\nUse compact to display fields and their labels on the same line.\nUse comfy to display fields below their labels.\nUse auto to let the component dynamically set\nthe density according to the user's Display Density setting\nand the width of the form." + }, + "record-id": { + "type": "TrackObject", + "access": "global", + "required": False, + "default": "", + "description": "The ID of the record to be displayed." + }, + "object-api-name": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The API name of the object." + } + } + }, + + "lightning-relative-date-time": { + "simple": False, + "type": "lwc", + "attribs": { + "value": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The timestamp or JavaScript Date object to be formatted." + } + } + }, + + "lightning-slider": { + "simple": False, + "type": "lwc", + "attribs": { + "size": { + "type": "Picklist", + "values": ["xx-small", "x-small", "small", "medium", "large"], + "access": "global", + "required": False, + "default": "", + "description": "The size of the slider.\nThe default is an empty string, which sets the slider to the width of the viewport. Accepted values are x-small, small, medium, and large." + }, + "type": { + "type": "Picklist", + "values": ["vertical", "horizontal"], + "access": "global", + "required": False, + "default": "horizontal", + "description": "The type determines the orientation of the slider. Accepted values are vertical and horizontal. The default is horizontal." + }, + "label": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Text label to describe the slider. Provide your own label to describe the slider." + }, + "message-when-range-overflow": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Error message to be displayed when a range overflow is detected." + }, + "message-when-range-underflow": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Error message to be displayed when a range underflow is detected." + }, + "message-when-step-mismatch": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Error message to be displayed when a step mismatch is detected." + }, + "message-when-value-missing": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Error message to be displayed when the value is missing." + }, + "message-when-too-long": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Error message to be displayed when the value is too long." + }, + "message-when-bad-input": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Error message to be displayed when a bad input is detected." + }, + "message-when-pattern-mismatch": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Error message to be displayed when a pattern mismatch is detected." + }, + "message-when-type-mismatch": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Error message to be displayed when a type mismatch is detected." + }, + "min": { + "type": "Number", + "access": "global", + "required": False, + "default": "", + "description": "The minimum value of the input range. The default is 0." + }, + "max": { + "type": "Number", + "access": "global", + "required": False, + "default": "", + "description": "The maximum value of the input range. The default is 100." + }, + "step": { + "type": "Number", + "access": "global", + "required": False, + "default": "", + "description": "The step increment value of the input range.\nExample steps include 0.1, 1, or 10. The default is 1." + }, + "disabled": { + "type": "Boolean", + "access": "global", + "required": False, + "default": "", + "description": "If present, the slider is disabled and users cannot interact with it." + }, + "variant": { + "type": "Picklist", + "values": ["standard", "label-hidden"], + "access": "global", + "required": False, + "default": "", + "description": "The variant changes the appearance of the slider.\nAccepted variants include standard and label-hidden.\nThe default is standard." + }, + "value": { + "type": "Integer", + "access": "global", + "required": False, + "default": "", + "description": "The numerical value of the slider. The default is 0." + }, + "validity": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Represents the validity states of the slider input, with respect to constraint validation." + } + } + }, + + "lightning-spinner": { + "simple": False, + "type": "lwc", + "attribs": { + "alternative-text": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The alternative text used to describe the reason for the wait and need for a spinner." + }, + "size": { + "type": "Picklist", + "values": ["small", "medium", "large"], + "access": "global", + "required": False, + "default": "medium", + "description": "The size of the spinner. Accepted sizes are small, medium, and large. This value defaults to medium." + }, + "variant": { + "type": "Picklist", + "values": ["base", "brand", "inverse"], + "access": "global", + "required": False, + "default": "", + "description": "The variant changes the appearance of the spinner.\nAccepted variants include base, brand, and inverse. The default is base." + } + } + }, + + "lightning-tab": { + "simple": False, + "type": "lwc", + "attribs": { + "value": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The optional string to be used during tabset's select event to determine which tab was clicked.\nThis string is also used by active-tab-value in tabset to open a tab." + }, + "label": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The text displayed in the tab header." + }, + "title": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Specifies text that displays in a tooltip over the tab content." + }, + "icon-name": { + "type": "Picklist", + "values": icon_names, + "access": "global", + "required": False, + "default": "", + "description": "The Lightning Design System name of an icon to display to the left of the tab label.\nSpecify the name in the format 'utility:down' where 'utility' is the category, and\n'down' is the icon to be displayed. Only utility icons can be used." + + }, + "icon-assistive-text": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The alternative text for the icon specified by icon-name." + }, + "show-error-indicator": { + "type": "Boolean", + "access": "global", + "required": False, + "default": "", + "description": "Specifies whether there's an error in the tab content.\nAn error icon is displayed to the right of the tab label." + } + } + }, + + "lightning-tabset": { + "simple": False, + "type": "lwc", + "attribs": { + "title": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Displays tooltip text when the mouse moves over the tabset." + }, + "variant": { + "type": "Picklist", + "values": ["standard", "scoped", "vertical"], + "access": "global", + "required": False, + "default": "", + "description": "The variant changes the appearance of the tabset. Accepted variants are standard, scoped, and vertical." + }, + "active-tab-value": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Sets a specific tab to open by default using a string that matches a tab's value string. If not used, the first tab opens by default." + } + } + }, + + "lightning-textarea": { + "simple": False, + "type": "lwc", + "attribs": { + "label": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Text that describes the textarea input field." + }, + "placeholder": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Text that is displayed when the field is empty,\nto prompt the user for a valid entry." + }, + "name": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Specifies the name of an input element." + }, + "message-when-bad-input": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Error message to be displayed when a bad input is detected." + }, + "message-when-too-short": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Error message to be displayed when the value is too short." + }, + "message-when-too-long": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Error message to be displayed when the value is too long." + }, + "message-when-value-missing": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Error message to be displayed when the value is missing." + }, + "access-key": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The keyboard shortcut for input field." + }, + "max-length": { + "type": "Integer", + "access": "global", + "required": False, + "default": "", + "description": "The maximum number of characters allowed in the textarea." + }, + "min-length": { + "type": "Integer", + "access": "global", + "required": False, + "default": "", + "description": "The minimum number of characters allowed in the textarea." + }, + "value": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The value of the textarea input, also used as the default value during init." + }, + "disabled": { + "type": "Boolean", + "access": "global", + "required": False, + "default": "", + "description": "If present, the textarea field is disabled and users cannot interact with it." + }, + "read-only": { + "type": "Boolean", + "access": "global", + "required": False, + "default": "", + "description": "If present, the textarea field is read-only and cannot be edited." + }, + "required": { + "type": "Boolean", + "access": "global", + "required": False, + "default": "", + "description": "If present, the textarea field must be filled out before the form can be submitted." + }, + "variant": { + "type": "Picklist", + "values": ["standard", "label-hidden", "label-inline", "label-stacked"], + "access": "global", + "required": False, + "default": "", + "description": "The variant changes the appearance of the textarea.\nAccepted variants include standard, label-hidden, label-inline, and label-stacked.\nThis value defaults to standard.\nUse label-hidden to hide the label but make it available to assistive technology.\nUse label-inline to horizontally align the label and textarea.\nUse label-stacked to place the label above the textarea." + }, + "validity": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Represents the validity states of the textarea input, with respect to constraint validation." + }, + "field-level-help": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The help text that appears in a popover.\nSet field-level help to provide an informational tooltip on the textarea input field." + } + } + }, + + "lightning-tile": { + "simple": False, + "type": "lwc", + "attribs": { + "label": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The text label that displays in the tile as the heading and hover text." + }, + "href": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The URL of the page that the link goes to." + }, + "actions": { + "type": "List", + "access": "global", + "required": False, + "default": "", + "description": "A list of actions that's displayed in a dropdown menu." + }, + "type": { + "type": "Picklist", + "values": ["standard", "media"], + "access": "global", + "required": False, + "default": "", + "description": "The tile type. Valid values are 'standard' and 'media'.\nThe default is 'standard'." + } + } + }, + + "lightning-tree": { + "simple": False, + "type": "lwc", + "attribs": { + "header": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The text that's displayed as the tree heading." + }, + "items": { + "type": "List", + "access": "global", + "required": False, + "default": "", + "description": "An array of key-value pairs that describe the tree. See the Documentation tab for more information." + } + } + }, + + "lightning-tree-grid": { + "simple": False, + "type": "lwc", + "attribs": { + "hide-checkbox-column": { + "type": "Boolean", + "access": "global", + "required": False, + "default": "false", + "description": "If present, the checkbox column for row selection is hidden." + }, + "is-loading": { + "type": "Boolean", + "access": "global", + "required": False, + "default": "false", + "description": "If present, a spinner is displayed to indicate that more data is being loaded." + }, + "key-field": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Required for better performance. Associates each row with a unique ID." + }, + "max-column-width": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The maximum width for all columns. The default is 1000px." + }, + "min-column-width": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The minimum width for all columns. The default is 50px." + }, + "resize-column-disabled": { + "type": "Boolean", + "access": "global", + "required": False, + "default": "false", + "description": "If present, column resizing is disabled." + }, + "row-number-offset": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Determines where to start counting the row number. The default is 0." + }, + "selected-rows": { + "type": "List", + "access": "global", + "required": False, + "default": "[]", + "description": "The array of unique row IDs that are selected." + }, + "show-row-number-column": { + "type": "Boolean", + "access": "global", + "required": False, + "default": "false", + "description": "If present, the row number column are shown in the first column." + }, + "columns": { + "type": "List", + "access": "global", + "required": False, + "default": "", + "description": "Array of the columns object that's used to define the data types.\nRequired properties include 'label', 'fieldName', and 'type'. The default type is 'text'.\nSee the Documentation tab for more information." + }, + "data": { + "type": "List", + "access": "global", + "required": False, + "default": "", + "description": "The array of data to be displayed." + }, + "expanded-rows": { + "type": "List", + "access": "global", + "required": False, + "default": "", + "description": "The array of unique row IDs for rows that are expanded." + } + } + }, + + "lightning-ui-list-api": { + "simple": False, + "type": "lwc", + "attribs": {} + }, + + "lightning-ui-object-info-api": { + "simple": False, + "type": "lwc", + "attribs": {} + }, + + "lightning-ui-record-api": { + "simple": False, + "type": "lwc", + "attribs": {} + }, + + "lightning-vertical-navigation": { + "simple": False, + "type": "lwc", + "attribs": { + "compact": { + "type": "Boolean", + "access": "global", + "required": False, + "default": "", + "description": "If present, spacing between navigation items is reduced." + }, + "shaded": { + "type": "Boolean", + "access": "global", + "required": False, + "default": "", + "description": "If present, the vertical navigation is displayed on top of a shaded background." + }, + "selected-item": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Name of the navigation item to make active.\nAn active item is highlighted in blue." + } + } + }, + + "lightning-vertical-navigation-item": { + "simple": False, + "type": "lwc", + "attribs": { + "label": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The text displayed for the navigation item." + }, + "name": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "A unique identifier for the navigation item.\nThe name is used by the `select` event on lightning-vertical-navigation to identify which item is selected." + }, + "href": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The URL of the page that the navigation item goes to." + } + } + }, + + "lightning-vertical-navigation-item-badge": { + "simple": False, + "type": "lwc", + "attribs": { + "label": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The text displayed for this navigation item." + }, + "name": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "A unique identifier for this navigation item." + }, + "badge-count": { + "type": "Integer", + "access": "global", + "required": False, + "default": "0", + "description": "The number to show inside the badge. If this value is zero, the badge is hidden.\nThe default value is zero." + }, + "assistive-text": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "Assistive text describing the number in the badge, which enhances accessibility and is not displayed to the user.\nThe default is \"New Items\"." + }, + "href": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The URL of the page that the navigation item goes to." + } + } + }, + + "lightning-vertical-navigation-item-icon": { + "simple": False, + "type": "lwc", + "attribs": { + "label": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The text displayed for this navigation item." + }, + "name": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "A unique identifier for this navigation item." + }, + "icon-name": { + "type": "Picklist", + "access": "global", + "required": False, + "default": "", + "description": "The Lightning Design System name of the icon.\nNames are written in the format 'utility:down' where 'utility' is the category,\nand 'down' is the specific icon to be displayed.", + "values": icon_names + }, + "href": { + "type": "String", + "access": "global", + "required": False, + "default": "", + "description": "The URL of the page that the navigation item goes to." + } + } + } +} diff --git a/salesforce/lib/vf.py b/salesforce/lib/vf.py index f53bd13..7349210 100644 --- a/salesforce/lib/vf.py +++ b/salesforce/lib/vf.py @@ -1852,6 +1852,18 @@ "simple": True, "type": "visualforce" }, + "apex:includeLightning": { + "attribs": { + "id": { + "type": "String" + }, + "rendered": { + "type": "Boolean" + } + }, + "simple": True, + "type": "visualforce" + }, "apex:includeScript": { "attribs": { "id": { @@ -3366,7 +3378,13 @@ "type": "Boolean" }, "docType": { - "type": "String" + "type": "Picklist", + "values": [ + "html-4.01-strict", + "xhtml-1.0-transitional", + "xhtml-1.1-basic", + "html-5.0" + ] }, "expires": { "type": "Integer" @@ -3383,6 +3401,9 @@ "language": { "type": "String" }, + "lightningStylesheets": { + "type": "Boolean" + }, "manifest": { "type": "String" }, @@ -3416,6 +3437,9 @@ "showHeader": { "type": "Boolean" }, + "showQuickActionVfHeader": { + "type": "Boolean" + }, "sidebar": { "type": "Boolean" }, @@ -4991,6 +5015,18 @@ "simple": False, "type": "visualforce" }, + "apex:slds": { + "attribs": { + "id": { + "type": "String" + }, + "rendered": { + "type": "Boolean" + } + }, + "simple": True, + "type": "visualforce" + }, "apex:stylesheet": { "attribs": { "id": { diff --git a/salesforce/soap.py b/salesforce/soap.py index 5d9e0f7..0cccc75 100644 --- a/salesforce/soap.py +++ b/salesforce/soap.py @@ -20,7 +20,8 @@ }) """ -class SOAP(): + +class SOAP: def __init__(self, settings, indent=4, **kwargs): self.settings = settings self.indent = indent diff --git a/util.py b/util.py index f4d13fa..bacb6bb 100644 --- a/util.py +++ b/util.py @@ -33,17 +33,20 @@ def load_templates(): os.makedirs(target_dir) templates_dir = os.path.join(target_dir, "templates.json") - lwc_dir = os.path.join(target_dir, "lwc") # Check exist lwc logic - if not os.path.isfile(templates_dir) or not os.path.exists(lwc_dir): + lwc_dir = os.path.join(target_dir, "Lwc") # Check exist lwc logic + lwc_ele_dir = os.path.join(target_dir, "LwcElement") # Check exist lwc element logic + + if not os.path.isfile(templates_dir) or not os.path.exists(lwc_dir) or not os.path.exists(lwc_ele_dir): source_dir = os.path.join( sublime.installed_packages_path(), "haoide.sublime-package" ) - if os.path.isfile(source_dir): + if os.path.isfile(source_dir) and os.path.exists(lwc_dir) and os.path.exists(lwc_ele_dir): zfile = zipfile.ZipFile(source_dir, 'r') for filename in zfile.namelist(): - if filename.endswith('/'): continue + if filename.endswith('/'): + continue if filename.startswith("config/templates/"): f = os.path.join( target_dir, @@ -59,7 +62,7 @@ def load_templates(): zfile.close() else: source_dir = os.path.join( - sublime.packages_path(), "haoide/config/templates" + sublime.packages_path(), "haoide", "config", "templates" ) copy_files_in_folder(source_dir, target_dir) @@ -251,7 +254,8 @@ def view_coverage(name, file_name, body): numLocationsNotCovered = coverage["numLocationsNotCovered"] numLocations = coverage["numLocations"] numLocationsCovered = numLocations - numLocationsNotCovered - linesNotCovered = [l["line"] for l in coverage["locationsNotCovered"]] + linesNotCovered = [] + # linesNotCovered = [l["line"] for l in coverage["locationsNotCovered"]] if numLocations == 0: return Printer.get("error").write("There is no code coverage") @@ -1540,26 +1544,27 @@ def compress_resource_folder(resource_folder): return base64_package -def build_aura_package(files_or_dirs, meta_type=""): +def build_lightning_package(files_or_dirs, meta_type=""): # Build package settings = context.get_settings() workspace = settings["workspace"] - if not os.path.exists(workspace): os.makedirs(workspace) - zipfile_path = workspace+"/aura.zip" + if not os.path.exists(workspace): + os.makedirs(workspace) + zipfile_path = workspace + ("/aura.zip" if meta_type is 'aura' else "/lwc.zip") zf = zipfile.ZipFile(zipfile_path, "w", zipfile.ZIP_DEFLATED) - aura_names = [] + lightning_names = [] for _file_or_dir in files_or_dirs: if os.path.isfile(_file_or_dir): base, aura_element = os.path.split(_file_or_dir) base, aura_name = os.path.split(base) base, meta_folder = os.path.split(base) - aura_names.append(aura_name) + lightning_names.append(aura_name) zf.write(_file_or_dir, "%s/%s/%s" % (meta_folder, aura_name, aura_element)) else: base, aura_name = os.path.split(_file_or_dir) base, meta_folder = os.path.split(base) - aura_names.append(aura_name) + lightning_names.append(aura_name) for dirpath, dirnames, filenames in os.walk(_file_or_dir): base, aura_name = os.path.split(dirpath) if not filenames: @@ -1584,7 +1589,7 @@ def build_aura_package(files_or_dirs, meta_type=""): %s.0 """ % ( - "\n".join(["%s" % a for a in aura_names]), + "\n".join(["%s" % a for a in lightning_names]), meta_type, settings["api_version"] ) @@ -1604,6 +1609,7 @@ def build_aura_package(files_or_dirs, meta_type=""): return base64_package + def base64_encode(zipfile): with open(zipfile, "rb") as f: bytes = f.read() @@ -1611,6 +1617,7 @@ def base64_encode(zipfile): return base64String.decode('UTF-8') + def compress_package(package_dir): zipfile_path = package_dir+"/archive.zip" zf = zipfile.ZipFile(zipfile_path, "w", zipfile.ZIP_DEFLATED) @@ -1625,6 +1632,7 @@ def compress_package(package_dir): return base64_package + def extract_encoded_zipfile(encoded_zip_file, extract_to, ignore_package_xml=False): """ Decode the base64 encoded file and extract the zip file to workspace and @@ -3394,7 +3402,7 @@ def export_profile_settings(): return Printer.get("log").write_start().write("Start to read all file name in profile folder") - profiles = get_metadata_elements(profile_dir) + profiles = get_metadata_elements(profile_dir, 'profile') profile_settings = {} sobject_names = [] @@ -3535,47 +3543,47 @@ def export_profile_settings(): all_rows.append(",".join(rows)) - # cruds_translation = { - # "allowRead": "Read", - # "allowCreate": "Create", - # "allowEdit": "Edit", - # "allowDelete": "Delete", - # "modifyAllRecords": "ModifyAll", - # "viewAllRecords": "ViewAll" - # } - - # # Define the column that contains profile - # profile_headers = ["Object"] - # for profile in profiles: - # profile_headers.append(profile) - # for i in range(len(cruds) - 1): - # profile_headers.append("") - - # # Define the column - # crud_headers = [""] - # for profile in profiles: - # for crud in cruds: - # crud_headers.append(cruds_translation[crud]) - - # sobject_names = sorted(sobject_names) - # all_rows = [",".join(profile_headers), ",".join(crud_headers)] - # for sobject in sobject_names: - # rows = [sobject] - # for profile in profiles: - # # Some standard sObject is not configurable - # if "objectPermissions" in profile_settings[profile]: - # if sobject in profile_settings[profile]["objectPermissions"]: - # object_permission = profile_settings[profile]["objectPermissions"][sobject] - # for crud in cruds: - # rows.append("√" if object_permission[crud] == "true" else "") - # else: - # for crud in cruds: - # rows.append("") - # else: - # for crud in cruds: - # rows.append("") - - # all_rows.append(",".join(rows)) + cruds_translation = { + "allowRead": "Read", + "allowCreate": "Create", + "allowEdit": "Edit", + "allowDelete": "Delete", + "modifyAllRecords": "ModifyAll", + "viewAllRecords": "ViewAll" + } + + # Define the column that contains profile + profile_headers = ["SObject"] + for profile in profiles: + profile_headers.append(profile) + for i in range(len(cruds) - 1): + profile_headers.append("") + + # Define the column + crud_headers = [""] + for profile in profiles: + for crud in cruds: + crud_headers.append(cruds_translation[crud]) + + sobject_names = sorted(sobject_names) + all_rows = [",".join(profile_headers), ",".join(crud_headers)] + for sobject in sobject_names: + rows = [sobject] + for profile in profiles: + # Some standard sObject is not configurable + if "objectPermissions" in profile_settings[profile]: + if sobject in profile_settings[profile]["objectPermissions"]: + object_permission = profile_settings[profile]["objectPermissions"][sobject] + for crud in cruds: + rows.append("√" if object_permission[crud] == "true" else "") + else: + for crud in cruds: + rows.append("") + else: + for crud in cruds: + rows.append("") + + all_rows.append(",".join(rows)) outputdir = settings["workspace"]+ "/.export/profile" if not os.path.exists(outputdir): @@ -3625,7 +3633,8 @@ def export_profile_settings(): for permission_name in permission_names: rows = [permission_name] for profile in profiles: - if permission_name in profile_settings[profile]["userPermissions"]: + prf_setting = profile_settings[profile] + if prf_setting.get('userPermissions') is not None and permission_name in prf_setting.get('userPermissions'): if profile_settings[profile]["userPermissions"][permission_name] == "true": rows.append("√") else: @@ -3712,3 +3721,20 @@ def convert_csv_to_json(csvfile, xmlNodes): os.remove(tempjson) return rjson + + +def get_meta_type(file_name): + """ + Get Metadata type from file name + return: aura/lwc/classes/objects etc. + """ + paths = [] + path, file_name = os.path.split(file_name) + while os.path.isdir(path): + path, crr_dir = os.path.split(path) + if crr_dir == 'src': + break + paths.append(crr_dir) + + # return the sub-directory of src, that is the meta type + return paths[-1] \ No newline at end of file