{
  "bundles": [
    {
      "@type": "NXBundle",
      "artifactId": "nuxeo-platform-webapp-core",
      "artifactVersion": "2021.57.3",
      "bundleGroup": {
        "@type": "NXBundleGroup",
        "bundleIds": [
          "org.nuxeo.ecm.webapp.base",
          "org.nuxeo.ecm.webapp.core",
          "org.nuxeo.ecm.webapp.ui"
        ],
        "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.webapp",
        "id": "grp:org.nuxeo.ecm.webapp",
        "name": "org.nuxeo.ecm.webapp",
        "parentIds": [
          "grp:org.nuxeo.ecm.platform"
        ],
        "readmes": [],
        "version": "2021.57"
      },
      "bundleId": "org.nuxeo.ecm.webapp.core",
      "components": [
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.WebResources--resources",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.webapp/org.nuxeo.ecm.webapp.core/org.nuxeo.theme.nuxeo.webapp/Contributions/org.nuxeo.theme.nuxeo.webapp--resources",
              "id": "org.nuxeo.theme.nuxeo.webapp--resources",
              "registrationOrder": 2,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.WebResources",
                "name": "org.nuxeo.ecm.platform.WebResources",
                "type": "service"
              },
              "version": "2021.57.3",
              "xml": "<extension point=\"resources\" target=\"org.nuxeo.ecm.platform.WebResources\">\n\n    <!-- JSF resources -->\n    <resource name=\"jsf.js\" target=\"bodystart\" type=\"jsfjs\">\n      <uri>javax.faces:jsf.js</uri>\n    </resource>\n    <resource name=\"fixjsfviewstate.js\" target=\"bodystart\" type=\"jsfjs\">\n      <uri>org.nuxeo.jsf:fixviewstate.min.js</uri>\n      <require>jsf.js</require>\n    </resource>\n    <resource name=\"fixmultipartajax.js\" target=\"bodystart\" type=\"jsfjs\">\n      <uri>org.nuxeo.jsf:fixmultipartajax.min.js</uri>\n      <require>jsf.js</require>\n    </resource>\n    <resource name=\"richfaces-jquery.js\" target=\"bodystart\" type=\"jsfjs\">\n      <uri>org.richfaces:jquery.js</uri>\n    </resource>\n    <resource name=\"jquery-migrate.js\">\n      <uri>/scripts/jquery-migrate-1.4.1.js</uri>\n    </resource>\n    <resource name=\"richfaces.js\" target=\"bodystart\" type=\"jsfjs\">\n      <uri>org.richfaces:richfaces.js</uri>\n      <require>jsf.js</require>\n    </resource>\n    <resource name=\"richfaces-queue.js\" target=\"bodystart\" type=\"jsfjs\">\n      <uri>org.richfaces:richfaces-queue.js</uri>\n      <require>richfaces.js</require>\n    </resource>\n    <resource name=\"richfaces-base-component.js\" target=\"bodystart\" type=\"jsfjs\">\n      <uri>org.richfaces:richfaces-base-component.js</uri>\n      <require>richfaces.js</require>\n    </resource>\n    <resource name=\"richfaces-fileupload.ecss\" target=\"bodystart\" type=\"jsfcss\">\n      <uri>org.richfaces:fileupload.ecss</uri>\n      <require>richfaces.js</require>\n    </resource>\n    <resource name=\"richfaces-fileupload.js\" target=\"bodystart\" type=\"jsfjs\">\n      <uri>org.richfaces:fileupload.js</uri>\n      <require>richfaces-fileupload.ecss</require>\n      <require>richfaces.js</require>\n    </resource>\n    <resource name=\"widget-utils.js\" type=\"jsfjs\">\n      <uri>org.nuxeo:widget-utils.min.js</uri>\n      <require>richfaces-queue.js</require>\n    </resource>\n    <resource name=\"select2.js\" type=\"jsfjs\">\n      <uri>org.nuxeo.select2:select2.min.js</uri>\n      <require>widget-utils.js</require>\n    </resource>\n\n    <!-- Seam 1.0.1.GA -->\n    <resource name=\"seam-remote.js\">\n      <uri>/scripts/seam-remote.js</uri>\n    </resource>\n\n    <resource name=\"static-styles.css\">\n      <uri>/css/static-styles.css</uri>\n    </resource>\n    <resource name=\"screen.css\">\n      <uri>/css/screen.css</uri>\n    </resource>\n    <resource name=\"foldable-box.js\">\n      <uri>/scripts/foldable-box.js</uri>\n    </resource>\n    <resource name=\"utils.js\">\n      <uri>/scripts/utils.js</uri>\n    </resource>\n    <resource name=\"tableSelections.js\">\n      <uri>/scripts/tableSelections.js</uri>\n    </resource>\n    <resource name=\"contextmenu.js\">\n      <uri>/scripts/contextmenu.js</uri>\n    </resource>\n    <resource name=\"DragAndDrop.js\">\n      <uri>/scripts/DragAndDrop.js</uri>\n    </resource>\n    <resource name=\"hideableAdminMessage.js\">\n      <uri>/scripts/hideableAdminMessage.js</uri>\n    </resource>\n    <!-- jquery cookie plugin -->\n    <resource name=\"jquery.tools.cookie.js\">\n      <uri>/scripts/jquery/cookie.js</uri>\n    </resource>\n    <!-- Fancybox -->\n    <resource name=\"jquery.fancybox.js\">\n      <uri>/scripts/jquery/jquery.fancybox.js</uri>\n    </resource>\n    <resource name=\"jquery.fancybox.style.css\">\n      <uri>/css/jquery.fancybox.css</uri>\n    </resource>\n    <resource name=\"fancybox-popup-utils.js\">\n      <uri>/scripts/fancybox-popup-utils.js</uri>\n    </resource>\n    <!-- Hotkeys (e.g. used to focus the search box using '/') -->\n    <resource name=\"jquery.hotkeys.js\">\n      <uri>/scripts/jquery/jquery.hotkeys.js</uri>\n    </resource>\n    <!-- Helpers for focus on first input of a form -->\n    <resource name=\"jquery.tools.focusfirst.js\">\n      <uri>/scripts/jquery/jquery.tools.focusfirst.js</uri>\n    </resource>\n    <!-- Workaround for jQuery and Sarissa library conflict on IE -->\n    <resource name=\"sarissa-ie-workaround.js\">\n      <uri>/scripts/sarissa-ie-workaround.js</uri>\n    </resource>\n    <!-- Mustache -->\n    <resource name=\"mustache.js\">\n      <uri>/scripts/mustache/mustache.js</uri>\n    </resource>\n    <!-- Simple Access Key helper -->\n    <resource name=\"accessKey.js\">\n      <uri>/scripts/accessKey.js</uri>\n    </resource>\n    <!-- Moment.js -->\n    <resource name=\"moment.js\">\n      <uri>/scripts/moment.min-1.5.0nx.js</uri>\n    </resource>\n    <!-- jquery-ui resources: order plugins according to their dependencies. -->\n    <resource name=\"jquery.ui.core.js\">\n      <uri>/scripts/jquery/jquery.ui.core.js</uri>\n    </resource>\n    <resource name=\"jquery.ui.widget.js\">\n      <uri>/scripts/jquery/jquery.ui.widget.js</uri>\n    </resource>\n    <resource name=\"jquery.ui.mouse.js\">\n      <uri>/scripts/jquery/jquery.ui.mouse.js</uri>\n    </resource>\n    <resource name=\"jquery.ui.sortable.js\">\n      <uri>/scripts/jquery/jquery.ui.sortable.js</uri>\n      <require>jquery.ui.core.js</require>\n      <require>jquery.ui.widget.js</require>\n      <require>jquery.ui.mouse.js</require>\n    </resource>\n    <!-- Double click shield -->\n    <resource name=\"jquery.nuxeo.doubleclickshield.js\">\n      <uri>/scripts/jquery.nuxeo.doubleclickshield.js</uri>\n    </resource>\n    <!-- jQuery Ambiance -->\n    <resource name=\"jquery.ambiance.js\">\n      <uri>/scripts/jquery/jquery.ambiance.js</uri>\n    </resource>\n    <resource name=\"jquery.ambiance.css\">\n      <uri>/css/jquery.ambiance.css</uri>\n    </resource>\n    <resource name=\"jquery.nuxeo.dropdown.js\">\n      <uri>/scripts/jquery/jquery.nuxeo.dropdown.js</uri>\n    </resource>\n    <resource name=\"jquery.tipsy.js\">\n      <uri>/scripts/jquery/jquery.tipsy.js</uri>\n      <require>tipsy.css</require>\n    </resource>\n    <resource name=\"tipsy.css\">\n      <uri>/css/tipsy.css</uri>\n    </resource>\n    <resource name=\"jquery.nuxeo.tipsy.js\">\n      <uri>/scripts/jquery.nuxeo.tipsy.js</uri>\n      <require>jquery.tipsy.js</require>\n    </resource>\n    <resource name=\"jquery.nuxeo.tipsy.init.js\">\n      <uri>/scripts/jquery.nuxeo.tipsy.init.js</uri>\n      <require>jquery.nuxeo.tipsy.js</require>\n    </resource>\n    <resource name=\"jquery.magnific-popup.js\">\n      <uri>/scripts/jquery/jquery.magnific-popup.js</uri>\n    </resource>\n    <resource name=\"magnific-popup.css\">\n      <uri>/css/magnific-popup.css</uri>\n    </resource>\n    <resource name=\"nuxeo-lightbox.js\">\n      <uri>/scripts/nuxeo-lightbox.js</uri>\n    </resource>\n    <resource name=\"jquery.nuxeo.cv-lightbox.js\">\n      <uri>/scripts/jquery.nuxeo.cv-lightbox.js</uri>\n      <require>jquery.magnific-popup.js</require>\n      <require>nuxeo-lightbox.js</require>\n    </resource>\n    <resource name=\"nuxeo-documents-import.js\">\n      <uri>/scripts/nuxeo-documents-import.js</uri>\n    </resource>\n    <resource name=\"nuxeo.js\">\n      <uri>/bower_components/nuxeo/lib/jquery/nuxeo.js</uri>\n    </resource>\n    <resource name=\"confirm-alerts.xhtml\" type=\"xhtml\">\n      <uri>/incl/confirm-alerts.xhtml</uri>\n    </resource>\n    <resource name=\"DragAndDrop.js\" type=\"js\">\n      <uri>/scripts/DragAndDrop.js</uri>\n    </resource>\n    <resource name=\"tableSelections.js\" type=\"js\">\n      <uri>/scripts/tableSelections.js</uri>\n    </resource>\n    <resource name=\"customSeamRemotingWaiter.js\" type=\"js\">\n      <uri>/scripts/customSeamRemotingWaiter.js</uri>\n    </resource>\n    <resource name=\"default-contextmenu-actions.js\" type=\"js\">\n      <uri>/scripts/default-contextmenu-actions.js</uri>\n    </resource>\n    <resource name=\"safeEdit.xhtml\" type=\"xhtml\">\n      <uri>/incl/safeEdit.xhtml</uri>\n    </resource>\n    <resource name=\"tinymce.xhtml\" type=\"xhtml\">\n      <uri>/incl/tinymce.xhtml</uri>\n      <require>richfaces-jquery.js</require>\n      <require>safeEdit.xhtml</require>\n    </resource>\n    <resource name=\"konami.xhtml\" type=\"xhtml\">\n      <uri>/incl/konami.xhtml</uri>\n      <require>richfaces-jquery.js</require>\n    </resource>\n    <resource name=\"doubleClick_shield.xhtml\" type=\"xhtml\">\n      <uri>/incl/doubleClick_shield.xhtml</uri>\n      <require>richfaces-jquery.js</require>\n    </resource>\n    <resource name=\"layout_dev_init.xhtml\" type=\"xhtml\">\n      <uri>/widgets/dev/layout_dev_init.xhtml</uri>\n      <require>richfaces-jquery.js</require>\n    </resource>\n    <resource name=\"seam_remoting.xhtml\" type=\"xhtml\">\n      <uri>/incl/seam_remoting.xhtml</uri>\n      <require>seam-remote.js</require>\n    </resource>\n    <resource name=\"nuxeo_javascript_context.xhtml\" type=\"xhtmlfirst\">\n      <uri>/incl/nuxeo_javascript_context.xhtml</uri>\n    </resource>\n    <resource name=\"automation.js\">\n      <uri>/scripts/automation.js</uri>\n    </resource>\n\n    <resource name=\"jquery-standalone.js\">\n      <uri>/scripts/jquery.js</uri>\n    </resource>\n    <resource name=\"mobile-banner.js\">\n      <uri>/scripts/mobile-banner.js</uri>\n    </resource>\n    <!-- end of \"static\" resources declaration -->\n\n    <!-- Sass styles -->\n    <resource name=\"normalize.scss\" type=\"css\">\n      <path>themes/sass/normalize.scss</path>\n      <processors>\n        <processor>sassCss</processor>\n      </processors>\n    </resource>\n    <resource name=\"breadcrumb.scss\" type=\"css\">\n      <path>themes/sass/breadcrumb.scss</path>\n      <processors>\n        <processor>sassCss</processor>\n      </processors>\n    </resource>\n    <resource name=\"buttons_and_actions.scss\" type=\"css\">\n      <path>themes/sass/buttons_and_actions.scss</path>\n      <processors>\n        <processor>sassCss</processor>\n      </processors>\n    </resource>\n    <resource name=\"basics.scss\" type=\"css\">\n      <path>themes/sass/basics.scss</path>\n      <processors>\n        <processor>sassCss</processor>\n      </processors>\n    </resource>\n    <resource name=\"body.scss\" type=\"css\">\n      <path>themes/sass/body.scss</path>\n      <processors>\n        <processor>sassCss</processor>\n      </processors>\n    </resource>\n    <resource name=\"drag_and_drop.scss\" type=\"css\">\n      <path>themes/sass/drag_and_drop.scss</path>\n      <processors>\n        <processor>sassCss</processor>\n      </processors>\n    </resource>\n    <resource name=\"foldable_boxes.scss\" type=\"css\">\n      <path>themes/sass/foldable_boxes.scss</path>\n      <processors>\n        <processor>sassCss</processor>\n      </processors>\n    </resource>\n    <resource name=\"forms.scss\" type=\"css\">\n      <path>themes/sass/forms.scss</path>\n      <processors>\n        <processor>sassCss</processor>\n      </processors>\n    </resource>\n    <resource name=\"grids_and_widgets.scss\" type=\"css\">\n      <path>themes/sass/grids_and_widgets.scss</path>\n      <processors>\n        <processor>sassCss</processor>\n      </processors>\n    </resource>\n    <resource name=\"messages_and_tooltips.scss\" type=\"css\">\n      <path>themes/sass/messages_and_tooltips.scss</path>\n      <processors>\n        <processor>sassCss</processor>\n      </processors>\n    </resource>\n    <resource name=\"navigation.scss\" type=\"css\">\n      <path>themes/sass/navigation.scss</path>\n      <processors>\n        <processor>sassCss</processor>\n      </processors>\n    </resource>\n    <resource name=\"popups.scss\" type=\"css\">\n      <path>themes/sass/popups.scss</path>\n      <processors>\n        <processor>sassCss</processor>\n      </processors>\n    </resource>\n    <resource name=\"richfaces_components.scss\" type=\"css\">\n      <path>themes/sass/richfaces_components.scss</path>\n      <processors>\n        <processor>sassCss</processor>\n      </processors>\n    </resource>\n    <resource name=\"tables.scss\" type=\"css\">\n      <path>themes/sass/tables.scss</path>\n      <processors>\n        <processor>sassCss</processor>\n      </processors>\n    </resource>\n    <resource name=\"tabs_content.scss\" type=\"css\">\n      <path>themes/sass/tabs_content.scss</path>\n      <processors>\n        <processor>sassCss</processor>\n      </processors>\n    </resource>\n    <resource name=\"helpers.scss\" type=\"css\">\n      <path>themes/sass/helpers.scss</path>\n      <processors>\n        <processor>sassCss</processor>\n      </processors>\n    </resource>\n    <resource name=\"polymer.scss\" type=\"css\">\n      <path>themes/sass/polymer.scss</path>\n      <processors>\n        <processor>sassCss</processor>\n      </processors>\n    </resource>\n    <resource name=\"header.scss\" type=\"css\">\n      <path>themes/sass/header.scss</path>\n      <processors>\n        <processor>sassCss</processor>\n      </processors>\n    </resource>\n    <resource name=\"footer.scss\" type=\"css\">\n      <path>themes/sass/footer.scss</path>\n      <processors>\n        <processor>sassCss</processor>\n      </processors>\n    </resource>\n    <resource name=\"nuxeo_dm_specific.scss\" type=\"css\">\n      <path>themes/sass/nuxeo_dm_specific.scss</path>\n      <processors>\n        <processor>sassCss</processor>\n      </processors>\n    </resource>\n    <resource name=\"print_generic.scss\" type=\"css\">\n      <path>themes/sass/print_generic.scss</path>\n      <processors>\n        <processor>sassCss</processor>\n      </processors>\n    </resource>\n    <!-- end of resources declaration -->\n\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.WebResources--bundles",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.webapp/org.nuxeo.ecm.webapp.core/org.nuxeo.theme.nuxeo.webapp/Contributions/org.nuxeo.theme.nuxeo.webapp--bundles",
              "id": "org.nuxeo.theme.nuxeo.webapp--bundles",
              "registrationOrder": 1,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.WebResources",
                "name": "org.nuxeo.ecm.platform.WebResources",
                "type": "service"
              },
              "version": "2021.57.3",
              "xml": "<extension point=\"bundles\" target=\"org.nuxeo.ecm.platform.WebResources\">\n\n    <!-- main bundle with all basic includes -->\n    <bundle name=\"nuxeo_includes\">\n      <resources>\n        <resource>jsf.js</resource>\n        <resource>fixjsfviewstate.js</resource>\n        <resource>richfaces-jquery.js</resource>\n        <resource>jquery-migrate.js</resource>\n        <resource>richfaces.js</resource>\n        <resource>richfaces-queue.js</resource>\n        <resource>richfaces-base-component.js</resource>\n        <resource>richfaces-fileupload.js</resource>\n        <resource>widget-utils.js</resource>\n        <resource>select2.js</resource>\n        <resource>seam-remote.js</resource>\n        <resource>foldable-box.js</resource>\n        <!-- include JS used for D&D and tableSelection -->\n        <resource>utils.js</resource>\n        <!-- include JS for contextual menu -->\n        <resource>jquery.fancybox.js</resource>\n        <resource>jquery.fancybox.style.css</resource>\n        <resource>jquery.tools.cookie.js</resource>\n        <resource>fancybox-popup-utils.js</resource>\n        <resource>contextmenu.js</resource>\n        <resource>jquery.tools.focusfirst.js</resource>\n        <resource>jquery.hotkeys.js</resource>\n        <resource>jquery.ui.sortable.js</resource>\n        <resource>sarissa-ie-workaround.js</resource>\n        <resource>static-styles.css</resource>\n        <resource>hideableAdminMessage.js</resource>\n        <resource>accessKey.js</resource>\n        <resource>jquery.nuxeo.doubleclickshield.js</resource>\n        <resource>jquery.ambiance.js</resource>\n        <resource>jquery.ambiance.css</resource>\n        <resource>jquery.nuxeo.dropdown.js</resource>\n        <resource>jquery.nuxeo.tipsy.init.js</resource>\n        <resource>jquery.magnific-popup.js</resource>\n        <resource>magnific-popup.css</resource>\n        <resource>nuxeo-lightbox.js</resource>\n        <resource>jquery.nuxeo.cv-lightbox.js</resource>\n        <resource>nuxeo-documents-import.js</resource>\n        <resource>fixmultipartajax.js</resource>\n        <resource>confirm-alerts.xhtml</resource>\n        <resource>DragAndDrop.js</resource>\n        <resource>tableSelections.js</resource>\n        <resource>customSeamRemotingWaiter.js</resource>\n        <resource>default-contextmenu-actions.js</resource>\n        <resource>safeEdit.xhtml</resource>\n        <resource>tinymce.xhtml</resource>\n        <resource>konami.xhtml</resource>\n        <resource>doubleClick_shield.xhtml</resource>\n        <resource>layout_dev_init.xhtml</resource>\n        <resource>seam_remoting.xhtml</resource>\n        <resource>automation.js</resource>\n        <resource>nuxeo_javascript_context.xhtml</resource>\n        <resource>nuxeo.js</resource>\n        <resource>mobile-banner.js</resource>\n      </resources>\n    </bundle>\n\n    <!-- Sass styles  -->\n    <bundle name=\"nuxeo_sassCss\">\n      <resources>\n        <resource>normalize.scss</resource>\n        <resource>basics.scss</resource>\n        <resource>buttons_and_actions.scss</resource>\n        <resource>body.scss</resource>\n        <resource>grids_and_widgets.scss</resource>\n        <resource>navigation.scss</resource>\n        <resource>forms.scss</resource>\n        <resource>messages_and_tooltips.scss</resource>\n        <resource>foldable_boxes.scss</resource>\n        <resource>tabs_content.scss</resource>\n        <resource>helpers.scss</resource>\n        <resource>tables.scss</resource>\n        <resource>richfaces_components.scss</resource>\n        <resource>popups.scss</resource>\n        <resource>breadcrumb.scss</resource>\n        <resource>drag_and_drop.scss</resource>\n        <resource>header.scss</resource>\n        <resource>footer.scss</resource>\n        <resource>polymer.scss</resource>\n      </resources>\n    </bundle>\n\n    <bundle name=\"nuxeo_base\">\n      <resources>\n        <resource>screen.css</resource>\n      </resources>\n    </bundle>\n\n    <bundle name=\"nuxeo_dm\">\n      <resources>\n        <resource>nuxeo_dm_specific.scss</resource>\n      </resources>\n    </bundle>\n\n    <!-- isolated jquery dep independent of JSF -->\n    <bundle name=\"jquery\">\n      <resources>\n        <resource>jquery-standalone.js</resource>\n      </resources>\n    </bundle>\n\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.theme.styling.service--pages",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.webapp/org.nuxeo.ecm.webapp.core/org.nuxeo.theme.nuxeo.webapp/Contributions/org.nuxeo.theme.nuxeo.webapp--pages",
              "id": "org.nuxeo.theme.nuxeo.webapp--pages",
              "registrationOrder": 1,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.theme.styling.service",
                "name": "org.nuxeo.theme.styling.service",
                "type": "service"
              },
              "version": "2021.57.3",
              "xml": "<extension point=\"pages\" target=\"org.nuxeo.theme.styling.service\">\n\n    <page charset=\"utf-8\" name=\"galaxy/print\">\n      <defaultFlavor>default</defaultFlavor>\n      <flavors>\n        <flavor>default</flavor>\n        <flavor>rainbow</flavor>\n      </flavors>\n      <resources>\n        <bundle>nuxeo_includes</bundle>\n        <bundle>nuxeo_base</bundle>\n        <bundle>nuxeo_sassCss</bundle>\n        <resource>print_generic.scss</resource>\n      </resources>\n    </page>\n\n    <page charset=\"utf-8\" name=\"galaxy/popup\">\n      <defaultFlavor>default</defaultFlavor>\n      <flavors>\n        <flavor>default</flavor>\n        <flavor>rainbow</flavor>\n      </flavors>\n      <resources>\n        <bundle>nuxeo_includes</bundle>\n        <bundle>nuxeo_base</bundle>\n        <bundle>nuxeo_sassCss</bundle>\n        <bundle>nuxeo_dm</bundle>\n      </resources>\n    </page>\n\n    <page charset=\"utf-8\" name=\"galaxy/default\">\n      <defaultFlavor>default</defaultFlavor>\n      <flavors>\n        <flavor>default</flavor>\n        <flavor>rainbow</flavor>\n      </flavors>\n      <resources>\n        <bundle>nuxeo_includes</bundle>\n        <bundle>nuxeo_base</bundle>\n        <bundle>nuxeo_sassCss</bundle>\n        <bundle>nuxeo_dm</bundle>\n      </resources>\n    </page>\n\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.theme.styling.service--flavors",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.webapp/org.nuxeo.ecm.webapp.core/org.nuxeo.theme.nuxeo.webapp/Contributions/org.nuxeo.theme.nuxeo.webapp--flavors",
              "id": "org.nuxeo.theme.nuxeo.webapp--flavors",
              "registrationOrder": 0,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.theme.styling.service",
                "name": "org.nuxeo.theme.styling.service",
                "type": "service"
              },
              "version": "2021.57.3",
              "xml": "<extension point=\"flavors\" target=\"org.nuxeo.theme.styling.service\">\n\n    <flavor name=\"default\">\n      <label>label.theme.flavor.nuxeo.default</label>\n      <logo>\n        <path>/img/nuxeo_logo.png</path>\n        <previewPath>/img/nuxeo_preview_logo_black.png</previewPath>\n        <width>113</width>\n        <height>20</height>\n        <title>Nuxeo</title>\n      </logo>\n      <links>\n        <icon name=\"icon\">/icons/favicon.png</icon>\n        <icon name=\"shortcut icon\">/icons/favicon.ico</icon>\n      </links>\n      <presetsList>\n        <presets category=\"border\" src=\"themes/palettes/default-borders.properties\"/>\n        <presets category=\"background\" src=\"themes/palettes/default-backgrounds.properties\"/>\n        <presets category=\"font\" src=\"themes/palettes/default-fonts.properties\"/>\n        <presets category=\"color\" src=\"themes/palettes/default-colors.properties\"/>\n      </presetsList>\n      <palettePreview>\n        <colors>\n          <color>#17384e</color>\n          <color>#00adff</color>\n          <color>#00adff</color>\n          <color>#00adff</color>\n          <color>#fff</color>\n          <color>#00adff</color>\n          <color>#404040</color>\n          <color>#cfecff</color>\n          <color>#e6f1ff</color>\n        </colors>\n      </palettePreview>\n      <sass>\n        <import src=\"themes/palettes/common_variables.scss\"/>\n        <import src=\"themes/palettes/default_variables.scss\"/>\n      </sass>\n    </flavor>\n\n    <flavor name=\"rainbow\">\n      <label>label.theme.flavor.nuxeo.rainbow</label>\n      <logo>\n        <path>/img/nuxeo_logo.png</path>\n        <previewPath>/img/nuxeo_preview_logo_black.png</previewPath>\n        <width>113</width>\n        <height>20</height>\n        <title>Nuxeo</title>\n      </logo>\n      <links>\n        <icon name=\"icon\">/icons/favicon.png</icon>\n        <icon name=\"shortcut icon\">/icons/favicon.ico</icon>\n      </links>\n      <presetsList append=\"true\">\n        <presets category=\"border\" src=\"themes/palettes/rainbow-borders.properties\"/>\n        <presets category=\"background\" src=\"themes/palettes/rainbow-backgrounds.properties\"/>\n        <presets category=\"font\" src=\"themes/palettes/rainbow-fonts.properties\"/>\n        <presets category=\"color\" src=\"themes/palettes/rainbow-colors.properties\"/>\n      </presetsList>\n      <palettePreview>\n        <colors>\n          <color>#595ca1</color>\n          <color>#bdd4ef</color>\n          <color>#4095ff</color>\n          <color>#da4f70</color>\n          <color>#41b6ab</color>\n          <color>#b34f94</color>\n          <color>#332e2e</color>\n          <color>#cfffd1</color>\n          <color>#feffe6</color>\n        </colors>\n      </palettePreview>\n      <sass>\n        <import src=\"themes/palettes/common_variables.scss\"/>\n        <import src=\"themes/palettes/alternative_variables.scss\"/>\n      </sass>\n    </flavor>\n\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.theme.styling.service--negotiations",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.webapp/org.nuxeo.ecm.webapp.core/org.nuxeo.theme.nuxeo.webapp/Contributions/org.nuxeo.theme.nuxeo.webapp--negotiations",
              "id": "org.nuxeo.theme.nuxeo.webapp--negotiations",
              "registrationOrder": 0,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.theme.styling.service",
                "name": "org.nuxeo.theme.styling.service",
                "type": "service"
              },
              "version": "2021.57.3",
              "xml": "<extension point=\"negotiations\" target=\"org.nuxeo.theme.styling.service\">\n\n    <negotiation target=\"jsfDefaultPage\">\n      <negotiator class=\"org.nuxeo.ecm.web.resources.jsf.negotiators.DefaultPage\" order=\"100\">\n        <property name=\"jsfDefaultPage\">galaxy/default</property>\n      </negotiator>\n    </negotiation>\n\n    <negotiation target=\"jsfPage\">\n      <negotiator class=\"org.nuxeo.ecm.web.resources.jsf.negotiators.RequestParameter\" order=\"10\">\n        <property name=\"param\">page</property>\n      </negotiator>\n      <negotiator class=\"org.nuxeo.ecm.web.resources.jsf.negotiators.RequestAttribute\" order=\"10\">\n        <property name=\"param\">page</property>\n      </negotiator>\n      <negotiator class=\"org.nuxeo.ecm.web.resources.jsf.negotiators.DefaultPage\" order=\"100\">\n        <property name=\"jsfPage\">galaxy/default</property>\n      </negotiator>\n    </negotiation>\n\n    <negotiation target=\"jsfFlavor\">\n      <negotiator class=\"org.nuxeo.ecm.web.resources.jsf.negotiators.RequestParameter\" order=\"10\">\n        <property name=\"param\">flavor</property>\n      </negotiator>\n      <negotiator class=\"org.nuxeo.ecm.web.resources.jsf.negotiators.RequestAttribute\" order=\"20\">\n        <property name=\"param\">flavor</property>\n      </negotiator>\n      <negotiator class=\"org.nuxeo.ecm.localconf.LocalThemeFlavor\" order=\"30\">\n        <property name=\"negotiatedPageVariable\">jsfPage</property>\n      </negotiator>\n      <negotiator class=\"org.nuxeo.ecm.web.resources.jsf.negotiators.DefaultPageFlavor\" order=\"100\">\n        <property name=\"negotiatedPageVariable\">jsfPage</property>\n      </negotiator>\n    </negotiation>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.webapp/org.nuxeo.ecm.webapp.core/org.nuxeo.theme.nuxeo.webapp",
          "name": "org.nuxeo.theme.nuxeo.webapp",
          "requirements": [],
          "resolutionOrder": 656,
          "services": [],
          "startOrder": 766,
          "version": "2021.57.3",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n\n<component name=\"org.nuxeo.theme.nuxeo.webapp\">\n\n  <extension target=\"org.nuxeo.ecm.platform.WebResources\" point=\"resources\">\n\n    <!-- JSF resources -->\n    <resource name=\"jsf.js\" type=\"jsfjs\" target=\"bodystart\">\n      <uri>javax.faces:jsf.js</uri>\n    </resource>\n    <resource name=\"fixjsfviewstate.js\" type=\"jsfjs\" target=\"bodystart\">\n      <uri>org.nuxeo.jsf:fixviewstate.min.js</uri>\n      <require>jsf.js</require>\n    </resource>\n    <resource name=\"fixmultipartajax.js\" type=\"jsfjs\" target=\"bodystart\">\n      <uri>org.nuxeo.jsf:fixmultipartajax.min.js</uri>\n      <require>jsf.js</require>\n    </resource>\n    <resource name=\"richfaces-jquery.js\" type=\"jsfjs\" target=\"bodystart\">\n      <uri>org.richfaces:jquery.js</uri>\n    </resource>\n    <resource name=\"jquery-migrate.js\">\n      <uri>/scripts/jquery-migrate-1.4.1.js</uri>\n    </resource>\n    <resource name=\"richfaces.js\" type=\"jsfjs\" target=\"bodystart\">\n      <uri>org.richfaces:richfaces.js</uri>\n      <require>jsf.js</require>\n    </resource>\n    <resource name=\"richfaces-queue.js\" type=\"jsfjs\" target=\"bodystart\">\n      <uri>org.richfaces:richfaces-queue.js</uri>\n      <require>richfaces.js</require>\n    </resource>\n    <resource name=\"richfaces-base-component.js\" type=\"jsfjs\" target=\"bodystart\">\n      <uri>org.richfaces:richfaces-base-component.js</uri>\n      <require>richfaces.js</require>\n    </resource>\n    <resource name=\"richfaces-fileupload.ecss\" type=\"jsfcss\" target=\"bodystart\">\n      <uri>org.richfaces:fileupload.ecss</uri>\n      <require>richfaces.js</require>\n    </resource>\n    <resource name=\"richfaces-fileupload.js\" type=\"jsfjs\" target=\"bodystart\">\n      <uri>org.richfaces:fileupload.js</uri>\n      <require>richfaces-fileupload.ecss</require>\n      <require>richfaces.js</require>\n    </resource>\n    <resource name=\"widget-utils.js\" type=\"jsfjs\">\n      <uri>org.nuxeo:widget-utils.min.js</uri>\n      <require>richfaces-queue.js</require>\n    </resource>\n    <resource name=\"select2.js\" type=\"jsfjs\">\n      <uri>org.nuxeo.select2:select2.min.js</uri>\n      <require>widget-utils.js</require>\n    </resource>\n\n    <!-- Seam 1.0.1.GA -->\n    <resource name=\"seam-remote.js\">\n      <uri>/scripts/seam-remote.js</uri>\n    </resource>\n\n    <resource name=\"static-styles.css\">\n      <uri>/css/static-styles.css</uri>\n    </resource>\n    <resource name=\"screen.css\">\n      <uri>/css/screen.css</uri>\n    </resource>\n    <resource name=\"foldable-box.js\">\n      <uri>/scripts/foldable-box.js</uri>\n    </resource>\n    <resource name=\"utils.js\">\n      <uri>/scripts/utils.js</uri>\n    </resource>\n    <resource name=\"tableSelections.js\">\n      <uri>/scripts/tableSelections.js</uri>\n    </resource>\n    <resource name=\"contextmenu.js\">\n      <uri>/scripts/contextmenu.js</uri>\n    </resource>\n    <resource name=\"DragAndDrop.js\">\n      <uri>/scripts/DragAndDrop.js</uri>\n    </resource>\n    <resource name=\"hideableAdminMessage.js\">\n      <uri>/scripts/hideableAdminMessage.js</uri>\n    </resource>\n    <!-- jquery cookie plugin -->\n    <resource name=\"jquery.tools.cookie.js\">\n      <uri>/scripts/jquery/cookie.js</uri>\n    </resource>\n    <!-- Fancybox -->\n    <resource name=\"jquery.fancybox.js\">\n      <uri>/scripts/jquery/jquery.fancybox.js</uri>\n    </resource>\n    <resource name=\"jquery.fancybox.style.css\">\n      <uri>/css/jquery.fancybox.css</uri>\n    </resource>\n    <resource name=\"fancybox-popup-utils.js\">\n      <uri>/scripts/fancybox-popup-utils.js</uri>\n    </resource>\n    <!-- Hotkeys (e.g. used to focus the search box using '/') -->\n    <resource name=\"jquery.hotkeys.js\">\n      <uri>/scripts/jquery/jquery.hotkeys.js</uri>\n    </resource>\n    <!-- Helpers for focus on first input of a form -->\n    <resource name=\"jquery.tools.focusfirst.js\">\n      <uri>/scripts/jquery/jquery.tools.focusfirst.js</uri>\n    </resource>\n    <!-- Workaround for jQuery and Sarissa library conflict on IE -->\n    <resource name=\"sarissa-ie-workaround.js\">\n      <uri>/scripts/sarissa-ie-workaround.js</uri>\n    </resource>\n    <!-- Mustache -->\n    <resource name=\"mustache.js\">\n      <uri>/scripts/mustache/mustache.js</uri>\n    </resource>\n    <!-- Simple Access Key helper -->\n    <resource name=\"accessKey.js\">\n      <uri>/scripts/accessKey.js</uri>\n    </resource>\n    <!-- Moment.js -->\n    <resource name=\"moment.js\">\n      <uri>/scripts/moment.min-1.5.0nx.js</uri>\n    </resource>\n    <!-- jquery-ui resources: order plugins according to their dependencies. -->\n    <resource name=\"jquery.ui.core.js\">\n      <uri>/scripts/jquery/jquery.ui.core.js</uri>\n    </resource>\n    <resource name=\"jquery.ui.widget.js\">\n      <uri>/scripts/jquery/jquery.ui.widget.js</uri>\n    </resource>\n    <resource name=\"jquery.ui.mouse.js\">\n      <uri>/scripts/jquery/jquery.ui.mouse.js</uri>\n    </resource>\n    <resource name=\"jquery.ui.sortable.js\">\n      <uri>/scripts/jquery/jquery.ui.sortable.js</uri>\n      <require>jquery.ui.core.js</require>\n      <require>jquery.ui.widget.js</require>\n      <require>jquery.ui.mouse.js</require>\n    </resource>\n    <!-- Double click shield -->\n    <resource name=\"jquery.nuxeo.doubleclickshield.js\">\n      <uri>/scripts/jquery.nuxeo.doubleclickshield.js</uri>\n    </resource>\n    <!-- jQuery Ambiance -->\n    <resource name=\"jquery.ambiance.js\">\n      <uri>/scripts/jquery/jquery.ambiance.js</uri>\n    </resource>\n    <resource name=\"jquery.ambiance.css\">\n      <uri>/css/jquery.ambiance.css</uri>\n    </resource>\n    <resource name=\"jquery.nuxeo.dropdown.js\">\n      <uri>/scripts/jquery/jquery.nuxeo.dropdown.js</uri>\n    </resource>\n    <resource name=\"jquery.tipsy.js\">\n      <uri>/scripts/jquery/jquery.tipsy.js</uri>\n      <require>tipsy.css</require>\n    </resource>\n    <resource name=\"tipsy.css\">\n      <uri>/css/tipsy.css</uri>\n    </resource>\n    <resource name=\"jquery.nuxeo.tipsy.js\">\n      <uri>/scripts/jquery.nuxeo.tipsy.js</uri>\n      <require>jquery.tipsy.js</require>\n    </resource>\n    <resource name=\"jquery.nuxeo.tipsy.init.js\">\n      <uri>/scripts/jquery.nuxeo.tipsy.init.js</uri>\n      <require>jquery.nuxeo.tipsy.js</require>\n    </resource>\n    <resource name=\"jquery.magnific-popup.js\">\n      <uri>/scripts/jquery/jquery.magnific-popup.js</uri>\n    </resource>\n    <resource name=\"magnific-popup.css\">\n      <uri>/css/magnific-popup.css</uri>\n    </resource>\n    <resource name=\"nuxeo-lightbox.js\">\n      <uri>/scripts/nuxeo-lightbox.js</uri>\n    </resource>\n    <resource name=\"jquery.nuxeo.cv-lightbox.js\">\n      <uri>/scripts/jquery.nuxeo.cv-lightbox.js</uri>\n      <require>jquery.magnific-popup.js</require>\n      <require>nuxeo-lightbox.js</require>\n    </resource>\n    <resource name=\"nuxeo-documents-import.js\">\n      <uri>/scripts/nuxeo-documents-import.js</uri>\n    </resource>\n    <resource name=\"nuxeo.js\">\n      <uri>/bower_components/nuxeo/lib/jquery/nuxeo.js</uri>\n    </resource>\n    <resource name=\"confirm-alerts.xhtml\" type=\"xhtml\">\n      <uri>/incl/confirm-alerts.xhtml</uri>\n    </resource>\n    <resource name=\"DragAndDrop.js\" type=\"js\">\n      <uri>/scripts/DragAndDrop.js</uri>\n    </resource>\n    <resource name=\"tableSelections.js\" type=\"js\">\n      <uri>/scripts/tableSelections.js</uri>\n    </resource>\n    <resource name=\"customSeamRemotingWaiter.js\" type=\"js\">\n      <uri>/scripts/customSeamRemotingWaiter.js</uri>\n    </resource>\n    <resource name=\"default-contextmenu-actions.js\" type=\"js\">\n      <uri>/scripts/default-contextmenu-actions.js</uri>\n    </resource>\n    <resource name=\"safeEdit.xhtml\" type=\"xhtml\">\n      <uri>/incl/safeEdit.xhtml</uri>\n    </resource>\n    <resource name=\"tinymce.xhtml\" type=\"xhtml\">\n      <uri>/incl/tinymce.xhtml</uri>\n      <require>richfaces-jquery.js</require>\n      <require>safeEdit.xhtml</require>\n    </resource>\n    <resource name=\"konami.xhtml\" type=\"xhtml\">\n      <uri>/incl/konami.xhtml</uri>\n      <require>richfaces-jquery.js</require>\n    </resource>\n    <resource name=\"doubleClick_shield.xhtml\" type=\"xhtml\">\n      <uri>/incl/doubleClick_shield.xhtml</uri>\n      <require>richfaces-jquery.js</require>\n    </resource>\n    <resource name=\"layout_dev_init.xhtml\" type=\"xhtml\">\n      <uri>/widgets/dev/layout_dev_init.xhtml</uri>\n      <require>richfaces-jquery.js</require>\n    </resource>\n    <resource name=\"seam_remoting.xhtml\" type=\"xhtml\">\n      <uri>/incl/seam_remoting.xhtml</uri>\n      <require>seam-remote.js</require>\n    </resource>\n    <resource name=\"nuxeo_javascript_context.xhtml\" type=\"xhtmlfirst\">\n      <uri>/incl/nuxeo_javascript_context.xhtml</uri>\n    </resource>\n    <resource name=\"automation.js\">\n      <uri>/scripts/automation.js</uri>\n    </resource>\n\n    <resource name=\"jquery-standalone.js\">\n      <uri>/scripts/jquery.js</uri>\n    </resource>\n    <resource name=\"mobile-banner.js\">\n      <uri>/scripts/mobile-banner.js</uri>\n    </resource>\n    <!-- end of \"static\" resources declaration -->\n\n    <!-- Sass styles -->\n    <resource name=\"normalize.scss\" type=\"css\">\n      <path>themes/sass/normalize.scss</path>\n      <processors>\n        <processor>sassCss</processor>\n      </processors>\n    </resource>\n    <resource name=\"breadcrumb.scss\" type=\"css\">\n      <path>themes/sass/breadcrumb.scss</path>\n      <processors>\n        <processor>sassCss</processor>\n      </processors>\n    </resource>\n    <resource name=\"buttons_and_actions.scss\" type=\"css\">\n      <path>themes/sass/buttons_and_actions.scss</path>\n      <processors>\n        <processor>sassCss</processor>\n      </processors>\n    </resource>\n    <resource name=\"basics.scss\" type=\"css\">\n      <path>themes/sass/basics.scss</path>\n      <processors>\n        <processor>sassCss</processor>\n      </processors>\n    </resource>\n    <resource name=\"body.scss\" type=\"css\">\n      <path>themes/sass/body.scss</path>\n      <processors>\n        <processor>sassCss</processor>\n      </processors>\n    </resource>\n    <resource name=\"drag_and_drop.scss\" type=\"css\">\n      <path>themes/sass/drag_and_drop.scss</path>\n      <processors>\n        <processor>sassCss</processor>\n      </processors>\n    </resource>\n    <resource name=\"foldable_boxes.scss\" type=\"css\">\n      <path>themes/sass/foldable_boxes.scss</path>\n      <processors>\n        <processor>sassCss</processor>\n      </processors>\n    </resource>\n    <resource name=\"forms.scss\" type=\"css\">\n      <path>themes/sass/forms.scss</path>\n      <processors>\n        <processor>sassCss</processor>\n      </processors>\n    </resource>\n    <resource name=\"grids_and_widgets.scss\" type=\"css\">\n      <path>themes/sass/grids_and_widgets.scss</path>\n      <processors>\n        <processor>sassCss</processor>\n      </processors>\n    </resource>\n    <resource name=\"messages_and_tooltips.scss\" type=\"css\">\n      <path>themes/sass/messages_and_tooltips.scss</path>\n      <processors>\n        <processor>sassCss</processor>\n      </processors>\n    </resource>\n    <resource name=\"navigation.scss\" type=\"css\">\n      <path>themes/sass/navigation.scss</path>\n      <processors>\n        <processor>sassCss</processor>\n      </processors>\n    </resource>\n    <resource name=\"popups.scss\" type=\"css\">\n      <path>themes/sass/popups.scss</path>\n      <processors>\n        <processor>sassCss</processor>\n      </processors>\n    </resource>\n    <resource name=\"richfaces_components.scss\" type=\"css\">\n      <path>themes/sass/richfaces_components.scss</path>\n      <processors>\n        <processor>sassCss</processor>\n      </processors>\n    </resource>\n    <resource name=\"tables.scss\" type=\"css\">\n      <path>themes/sass/tables.scss</path>\n      <processors>\n        <processor>sassCss</processor>\n      </processors>\n    </resource>\n    <resource name=\"tabs_content.scss\" type=\"css\">\n      <path>themes/sass/tabs_content.scss</path>\n      <processors>\n        <processor>sassCss</processor>\n      </processors>\n    </resource>\n    <resource name=\"helpers.scss\" type=\"css\">\n      <path>themes/sass/helpers.scss</path>\n      <processors>\n        <processor>sassCss</processor>\n      </processors>\n    </resource>\n    <resource name=\"polymer.scss\" type=\"css\">\n      <path>themes/sass/polymer.scss</path>\n      <processors>\n        <processor>sassCss</processor>\n      </processors>\n    </resource>\n    <resource name=\"header.scss\" type=\"css\">\n      <path>themes/sass/header.scss</path>\n      <processors>\n        <processor>sassCss</processor>\n      </processors>\n    </resource>\n    <resource name=\"footer.scss\" type=\"css\">\n      <path>themes/sass/footer.scss</path>\n      <processors>\n        <processor>sassCss</processor>\n      </processors>\n    </resource>\n    <resource name=\"nuxeo_dm_specific.scss\" type=\"css\">\n      <path>themes/sass/nuxeo_dm_specific.scss</path>\n      <processors>\n        <processor>sassCss</processor>\n      </processors>\n    </resource>\n    <resource name=\"print_generic.scss\" type=\"css\">\n      <path>themes/sass/print_generic.scss</path>\n      <processors>\n        <processor>sassCss</processor>\n      </processors>\n    </resource>\n    <!-- end of resources declaration -->\n\n  </extension>\n\n  <extension target=\"org.nuxeo.ecm.platform.WebResources\" point=\"bundles\">\n\n    <!-- main bundle with all basic includes -->\n    <bundle name=\"nuxeo_includes\">\n      <resources>\n        <resource>jsf.js</resource>\n        <resource>fixjsfviewstate.js</resource>\n        <resource>richfaces-jquery.js</resource>\n        <resource>jquery-migrate.js</resource>\n        <resource>richfaces.js</resource>\n        <resource>richfaces-queue.js</resource>\n        <resource>richfaces-base-component.js</resource>\n        <resource>richfaces-fileupload.js</resource>\n        <resource>widget-utils.js</resource>\n        <resource>select2.js</resource>\n        <resource>seam-remote.js</resource>\n        <resource>foldable-box.js</resource>\n        <!-- include JS used for D&D and tableSelection -->\n        <resource>utils.js</resource>\n        <!-- include JS for contextual menu -->\n        <resource>jquery.fancybox.js</resource>\n        <resource>jquery.fancybox.style.css</resource>\n        <resource>jquery.tools.cookie.js</resource>\n        <resource>fancybox-popup-utils.js</resource>\n        <resource>contextmenu.js</resource>\n        <resource>jquery.tools.focusfirst.js</resource>\n        <resource>jquery.hotkeys.js</resource>\n        <resource>jquery.ui.sortable.js</resource>\n        <resource>sarissa-ie-workaround.js</resource>\n        <resource>static-styles.css</resource>\n        <resource>hideableAdminMessage.js</resource>\n        <resource>accessKey.js</resource>\n        <resource>jquery.nuxeo.doubleclickshield.js</resource>\n        <resource>jquery.ambiance.js</resource>\n        <resource>jquery.ambiance.css</resource>\n        <resource>jquery.nuxeo.dropdown.js</resource>\n        <resource>jquery.nuxeo.tipsy.init.js</resource>\n        <resource>jquery.magnific-popup.js</resource>\n        <resource>magnific-popup.css</resource>\n        <resource>nuxeo-lightbox.js</resource>\n        <resource>jquery.nuxeo.cv-lightbox.js</resource>\n        <resource>nuxeo-documents-import.js</resource>\n        <resource>fixmultipartajax.js</resource>\n        <resource>confirm-alerts.xhtml</resource>\n        <resource>DragAndDrop.js</resource>\n        <resource>tableSelections.js</resource>\n        <resource>customSeamRemotingWaiter.js</resource>\n        <resource>default-contextmenu-actions.js</resource>\n        <resource>safeEdit.xhtml</resource>\n        <resource>tinymce.xhtml</resource>\n        <resource>konami.xhtml</resource>\n        <resource>doubleClick_shield.xhtml</resource>\n        <resource>layout_dev_init.xhtml</resource>\n        <resource>seam_remoting.xhtml</resource>\n        <resource>automation.js</resource>\n        <resource>nuxeo_javascript_context.xhtml</resource>\n        <resource>nuxeo.js</resource>\n        <resource>mobile-banner.js</resource>\n      </resources>\n    </bundle>\n\n    <!-- Sass styles  -->\n    <bundle name=\"nuxeo_sassCss\">\n      <resources>\n        <resource>normalize.scss</resource>\n        <resource>basics.scss</resource>\n        <resource>buttons_and_actions.scss</resource>\n        <resource>body.scss</resource>\n        <resource>grids_and_widgets.scss</resource>\n        <resource>navigation.scss</resource>\n        <resource>forms.scss</resource>\n        <resource>messages_and_tooltips.scss</resource>\n        <resource>foldable_boxes.scss</resource>\n        <resource>tabs_content.scss</resource>\n        <resource>helpers.scss</resource>\n        <resource>tables.scss</resource>\n        <resource>richfaces_components.scss</resource>\n        <resource>popups.scss</resource>\n        <resource>breadcrumb.scss</resource>\n        <resource>drag_and_drop.scss</resource>\n        <resource>header.scss</resource>\n        <resource>footer.scss</resource>\n        <resource>polymer.scss</resource>\n      </resources>\n    </bundle>\n\n    <bundle name=\"nuxeo_base\">\n      <resources>\n        <resource>screen.css</resource>\n      </resources>\n    </bundle>\n\n    <bundle name=\"nuxeo_dm\">\n      <resources>\n        <resource>nuxeo_dm_specific.scss</resource>\n      </resources>\n    </bundle>\n\n    <!-- isolated jquery dep independent of JSF -->\n    <bundle name=\"jquery\">\n      <resources>\n        <resource>jquery-standalone.js</resource>\n      </resources>\n    </bundle>\n\n  </extension>\n\n  <!-- Register mapping between theme pages and resources -->\n  <extension target=\"org.nuxeo.theme.styling.service\" point=\"pages\">\n\n    <page name=\"galaxy/print\" charset=\"utf-8\">\n      <defaultFlavor>default</defaultFlavor>\n      <flavors>\n        <flavor>default</flavor>\n        <flavor>rainbow</flavor>\n      </flavors>\n      <resources>\n        <bundle>nuxeo_includes</bundle>\n        <bundle>nuxeo_base</bundle>\n        <bundle>nuxeo_sassCss</bundle>\n        <resource>print_generic.scss</resource>\n      </resources>\n    </page>\n\n    <page name=\"galaxy/popup\" charset=\"utf-8\">\n      <defaultFlavor>default</defaultFlavor>\n      <flavors>\n        <flavor>default</flavor>\n        <flavor>rainbow</flavor>\n      </flavors>\n      <resources>\n        <bundle>nuxeo_includes</bundle>\n        <bundle>nuxeo_base</bundle>\n        <bundle>nuxeo_sassCss</bundle>\n        <bundle>nuxeo_dm</bundle>\n      </resources>\n    </page>\n\n    <page name=\"galaxy/default\" charset=\"utf-8\">\n      <defaultFlavor>default</defaultFlavor>\n      <flavors>\n        <flavor>default</flavor>\n        <flavor>rainbow</flavor>\n      </flavors>\n      <resources>\n        <bundle>nuxeo_includes</bundle>\n        <bundle>nuxeo_base</bundle>\n        <bundle>nuxeo_sassCss</bundle>\n        <bundle>nuxeo_dm</bundle>\n      </resources>\n    </page>\n\n  </extension>\n\n  <!-- Register flavors (collections of presets) -->\n  <extension target=\"org.nuxeo.theme.styling.service\" point=\"flavors\">\n\n    <flavor name=\"default\">\n      <label>label.theme.flavor.nuxeo.default</label>\n      <logo>\n        <path>/img/nuxeo_logo.png</path>\n        <previewPath>/img/nuxeo_preview_logo_black.png</previewPath>\n        <width>113</width>\n        <height>20</height>\n        <title>Nuxeo</title>\n      </logo>\n      <links>\n        <icon name=\"icon\">/icons/favicon.png</icon>\n        <icon name=\"shortcut icon\">/icons/favicon.ico</icon>\n      </links>\n      <presetsList>\n        <presets category=\"border\" src=\"themes/palettes/default-borders.properties\" />\n        <presets category=\"background\"\n          src=\"themes/palettes/default-backgrounds.properties\" />\n        <presets category=\"font\" src=\"themes/palettes/default-fonts.properties\" />\n        <presets category=\"color\" src=\"themes/palettes/default-colors.properties\" />\n      </presetsList>\n      <palettePreview>\n        <colors>\n          <color>#17384e</color>\n          <color>#00adff</color>\n          <color>#00adff</color>\n          <color>#00adff</color>\n          <color>#fff</color>\n          <color>#00adff</color>\n          <color>#404040</color>\n          <color>#cfecff</color>\n          <color>#e6f1ff</color>\n        </colors>\n      </palettePreview>\n      <sass>\n        <import src=\"themes/palettes/common_variables.scss\" />\n        <import src=\"themes/palettes/default_variables.scss\" />\n      </sass>\n    </flavor>\n\n    <flavor name=\"rainbow\">\n      <label>label.theme.flavor.nuxeo.rainbow</label>\n      <logo>\n        <path>/img/nuxeo_logo.png</path>\n        <previewPath>/img/nuxeo_preview_logo_black.png</previewPath>\n        <width>113</width>\n        <height>20</height>\n        <title>Nuxeo</title>\n      </logo>\n      <links>\n        <icon name=\"icon\">/icons/favicon.png</icon>\n        <icon name=\"shortcut icon\">/icons/favicon.ico</icon>\n      </links>\n      <presetsList append=\"true\">\n        <presets category=\"border\" src=\"themes/palettes/rainbow-borders.properties\" />\n        <presets category=\"background\"\n          src=\"themes/palettes/rainbow-backgrounds.properties\" />\n        <presets category=\"font\" src=\"themes/palettes/rainbow-fonts.properties\" />\n        <presets category=\"color\" src=\"themes/palettes/rainbow-colors.properties\" />\n      </presetsList>\n      <palettePreview>\n        <colors>\n          <color>#595ca1</color>\n          <color>#bdd4ef</color>\n          <color>#4095ff</color>\n          <color>#da4f70</color>\n          <color>#41b6ab</color>\n          <color>#b34f94</color>\n          <color>#332e2e</color>\n          <color>#cfffd1</color>\n          <color>#feffe6</color>\n        </colors>\n      </palettePreview>\n      <sass>\n        <import src=\"themes/palettes/common_variables.scss\" />\n        <import src=\"themes/palettes/alternative_variables.scss\" />\n      </sass>\n    </flavor>\n\n  </extension>\n\n  <extension target=\"org.nuxeo.theme.styling.service\" point=\"negotiations\">\n\n    <negotiation target=\"jsfDefaultPage\">\n      <negotiator class=\"org.nuxeo.ecm.web.resources.jsf.negotiators.DefaultPage\"\n        order=\"100\">\n        <property name=\"jsfDefaultPage\">galaxy/default</property>\n      </negotiator>\n    </negotiation>\n\n    <negotiation target=\"jsfPage\">\n      <negotiator class=\"org.nuxeo.ecm.web.resources.jsf.negotiators.RequestParameter\"\n        order=\"10\">\n        <property name=\"param\">page</property>\n      </negotiator>\n      <negotiator class=\"org.nuxeo.ecm.web.resources.jsf.negotiators.RequestAttribute\"\n        order=\"10\">\n        <property name=\"param\">page</property>\n      </negotiator>\n      <negotiator class=\"org.nuxeo.ecm.web.resources.jsf.negotiators.DefaultPage\"\n        order=\"100\">\n        <property name=\"jsfPage\">galaxy/default</property>\n      </negotiator>\n    </negotiation>\n\n    <negotiation target=\"jsfFlavor\">\n      <negotiator class=\"org.nuxeo.ecm.web.resources.jsf.negotiators.RequestParameter\"\n        order=\"10\">\n        <property name=\"param\">flavor</property>\n      </negotiator>\n      <negotiator class=\"org.nuxeo.ecm.web.resources.jsf.negotiators.RequestAttribute\"\n        order=\"20\">\n        <property name=\"param\">flavor</property>\n      </negotiator>\n      <negotiator class=\"org.nuxeo.ecm.localconf.LocalThemeFlavor\"\n        order=\"30\">\n        <property name=\"negotiatedPageVariable\">jsfPage</property>\n      </negotiator>\n      <negotiator\n        class=\"org.nuxeo.ecm.web.resources.jsf.negotiators.DefaultPageFlavor\"\n        order=\"100\">\n        <property name=\"negotiatedPageVariable\">jsfPage</property>\n      </negotiator>\n    </negotiation>\n\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/theme-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.actions.ActionService--actions",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.webapp/org.nuxeo.ecm.webapp.core/org.nuxeo.ecm.platform.actions/Contributions/org.nuxeo.ecm.platform.actions--actions",
              "id": "org.nuxeo.ecm.platform.actions--actions",
              "registrationOrder": 22,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.actions.ActionService",
                "name": "org.nuxeo.ecm.platform.actions.ActionService",
                "type": "service"
              },
              "version": "2021.57.3",
              "xml": "<extension point=\"actions\" target=\"org.nuxeo.ecm.platform.actions.ActionService\">\n\n    <!-- server actions -->\n\n    <action id=\"documents\" label=\"label.main.tab.documents\" link=\"view_documents\" order=\"40\" type=\"main_tab\">\n      <category>MAIN_TABS</category>\n      <properties>\n        <property name=\"requireDocument\">true</property>\n      </properties>\n    </action>\n\n    <action id=\"non_anonymous_logout\" label=\"command.logout\" link=\"logout\" order=\"100\" type=\"bare_link\">\n      <category>USER_MENU_ACTIONS</category>\n      <filter-id>not_anonymous</filter-id>\n    </action>\n\n    <action id=\"login\" label=\"command.login\" link=\"logout\" order=\"100\" type=\"bare_link\">\n      <category>USER_MENU_ACTIONS</category>\n      <filter-id>anonymous</filter-id>\n    </action>\n\n    <action icon=\"/icons/action_add.gif\" id=\"newDomain\" label=\"command.create.domain\" link=\"#{documentActions.createDocument('Domain')}\">\n      <category>SUBVIEW_UPPER_LIST</category>\n      <filter id=\"newDomain\">\n        <rule grant=\"true\">\n          <permission>AddChildren</permission>\n          <type>Root</type>\n        </rule>\n      </filter>\n    </action>\n\n    <!-- domain and roots actions -->\n\n    <action icon=\"/icons/action_add.gif\" id=\"newWorkspace\" label=\"command.create.workspace\" link=\"#{documentActions.createDocument('Workspace')}\">\n      <category>SUBVIEW_UPPER_LIST</category>\n      <filter id=\"newWorkspace\">\n        <rule grant=\"true\">\n          <permission>AddChildren</permission>\n          <type>WorkspaceRoot</type>\n        </rule>\n      </filter>\n    </action>\n\n    <action enabled=\"false\" icon=\"/icons/action_add.gif\" id=\"newWorkspaceWithWizard\" label=\"command.create.workspace.wizard\" link=\"create_workspace_wizard\">\n      <category>SUBVIEW_UPPER_LIST</category>\n      <filter id=\"newWorkspaceWizard\">\n        <rule grant=\"true\">\n          <permission>AddChildren</permission>\n          <type>WorkspaceRoot</type>\n        </rule>\n      </filter>\n    </action>\n\n    <action icon=\"/icons/action_add.gif\" id=\"newSection\" label=\"command.create.section\" link=\"#{documentActions.createDocument('Section')}\">\n      <category>SUBVIEW_UPPER_LIST</category>\n      <filter id=\"newSection\">\n        <rule grant=\"true\">\n          <permission>AddChildren</permission>\n          <type>SectionRoot</type>\n        </rule>\n      </filter>\n    </action>\n\n    <!-- generic actions -->\n\n    <action icon=\"/icons/action_add.gif\" id=\"newDocument\" label=\"action.new.document\" type=\"fancybox\">\n      <category>SUBVIEW_UPPER_LIST</category>\n      <properties>\n        <property name=\"include\">/select_document_type.xhtml</property>\n      </properties>\n      <filter-id>create</filter-id>\n    </action>\n\n    <!-- disabled by default, see NXP-15369 -->\n    <action enabled=\"false\" icon=\"/icons/action_add_file.gif\" id=\"newFile\" label=\"action.new.file\" type=\"fancybox\">\n      <category>SUBVIEW_UPPER_LIST</category>\n      <properties>\n        <property name=\"include\">/create_file.xhtml</property>\n      </properties>\n      <filter-id>importFile</filter-id>\n    </action>\n\n    <!--\n      tabs are handled by a specific template so links should be paths to\n      template to include in the tab content\n    -->\n    <action accessKey=\"m\" icon=\"/icons/file.gif\" id=\"TAB_MANAGE\" label=\"action.view.manage\" order=\"240\" type=\"rest_document_link\">\n      <category>VIEW_ACTION_LIST</category>\n      <filter-id>manage</filter-id>\n      <filter id=\"TAB_MANAGE_has_subtabs\">\n        <rule grant=\"false\">\n          <condition>\n            #{webActions.getActionsList('TAB_MANAGE_sub_tab').isEmpty()}\n          </condition>\n        </rule>\n      </filter>\n      <properties>\n        <property name=\"ajaxSupport\">true</property>\n        <property name=\"link\">/incl/tabs/document_manage.xhtml</property>\n      </properties>\n    </action>\n\n    <action icon=\"/icons/file.gif\" id=\"TAB_PERMISSIONS\" label=\"action.view.permissions\" link=\"/permissions/document_permissions.xhtml\" order=\"50\">\n      <category>VIEW_ACTION_LIST</category>\n      <filter-id>isNotVersion</filter-id>\n      <properties>\n        <!-- NXP-18320: disable ajax support on Polymer tabs -->\n        <property name=\"ajaxSupport\">false</property>\n      </properties>\n    </action>\n\n    <action accessKey=\"v\" icon=\"/icons/file.gif\" id=\"TAB_VIEW\" label=\"action.view.summary\" link=\"/incl/tabs/document_view.xhtml\" order=\"0\" type=\"rest_document_link\">\n      <category>VIEW_ACTION_LIST</category>\n      <filter-id>view</filter-id>\n      <properties>\n        <property name=\"ajaxSupport\">true</property>\n      </properties>\n    </action>\n\n    <action accessKey=\"c\" icon=\"/icons/file.gif\" id=\"TAB_CONTENT\" label=\"action.view.content\" link=\"/incl/tabs/document_content.xhtml\" order=\"10\" type=\"rest_document_link\">\n      <category>VIEW_ACTION_LIST</category>\n      <!--\n        NXP-12715: use same tab on workspaces and sections\n      -->\n      <!--\n        <filter-id>outSection</filter-id>\n      -->\n      <filter-id>view_content</filter-id>\n      <properties>\n        <property name=\"ajaxSupport\">true</property>\n      </properties>\n    </action>\n\n    <!--\n      NXP-12715: use same tab on workspaces and sections => disable this action\n      by default\n    -->\n    <action enabled=\"false\" icon=\"/icons/file.gif\" id=\"TAB_SECTION_CONTENT\" label=\"action.view.content\" link=\"/incl/tabs/section_content.xhtml\" order=\"10\" type=\"rest_document_link\">\n      <category>VIEW_ACTION_LIST</category>\n      <filter-id>view_content</filter-id>\n      <filter-id>inSection</filter-id>\n      <properties>\n        <property name=\"ajaxSupport\">true</property>\n      </properties>\n    </action>\n\n    <action icon=\"/icons/file.gif\" id=\"TAB_TRASH_CONTENT\" label=\"action.view.trash.content\" link=\"/incl/tabs/document_trash_content.xhtml\" order=\"200\">\n      <category>TAB_MANAGE_sub_tab</category>\n      <filter id=\"viewTrash\">\n        <rule grant=\"true\">\n          <permission>Manage everything</permission>\n          <facet>Folderish</facet>\n          <condition>#{deleteActions.trashManagementEnabled}</condition>\n        </rule>\n      </filter>\n      <properties>\n        <property name=\"ajaxSupport\">true</property>\n      </properties>\n    </action>\n\n    <action accesskey=\"p\" icon=\"/icons/printer.gif\" id=\"print\" label=\"label.print\" link=\"#{restHelper.doPrint(themeActions.defaultTheme)}\" order=\"100\">\n      <category>DOCUMENT_UPPER_ACTION_BLANK_TARGET</category>\n    </action>\n\n    <action accessKey=\"e\" icon=\"/icons/file.gif\" id=\"TAB_EDIT\" label=\"action.view.modification\" link=\"/incl/tabs/document_edit.xhtml\" order=\"20\" type=\"rest_document_link\">\n      <category>VIEW_ACTION_LIST</category>\n      <filter-id>edit</filter-id>\n      <filter-id>mutable_document</filter-id>\n      <properties>\n        <property name=\"ajaxSupport\">true</property>\n      </properties>\n    </action>\n\n    <action accessKey=\"e\" icon=\"/icons/file.gif\" id=\"TAB_WORKSPACE_EDIT\" label=\"action.view.modification\" link=\"/incl/tabs/document_edit.xhtml\" order=\"22\" type=\"rest_document_link\">\n      <category>VIEW_ACTION_LIST</category>\n      <filter-id>workspace_edit</filter-id>\n      <filter-id>mutable_document</filter-id>\n      <properties>\n        <property name=\"ajaxSupport\">true</property>\n      </properties>\n    </action>\n\n    <action accessKey=\"f\" id=\"TAB_FILES_EDIT\" label=\"action.view.files\" link=\"/incl/tabs/document_files_edit.xhtml\" order=\"43\" type=\"rest_document_link\">\n      <category>VIEW_ACTION_LIST</category>\n      <filter-id>edit</filter-id>\n      <filter-id>mutable_document</filter-id>\n      <filter-id>hasAttachedFiles</filter-id>\n      <filter-id>denyFilesTab</filter-id>\n      <properties>\n        <property name=\"ajaxSupport\">true</property>\n      </properties>\n    </action>\n\n    <action enabled=\"false\" icon=\"/icons/file.gif\" id=\"TAB_RIGHTS\" label=\"action.view.rights\" link=\"/incl/tabs/document_rights.xhtml\" order=\"50\">\n      <category>TAB_MANAGE_sub_tab</category>\n      <filter-id>rights</filter-id>\n      <properties>\n        <property name=\"ajaxSupport\">true</property>\n      </properties>\n    </action>\n\n    <!-- Manage the sub tabs -->\n\n    <!-- Actions on WorkLists -->\n\n    <action icon=\"/icons/action_paste_all.gif\" id=\"WORKLIST_PASTE\" label=\"command.clipboard.pasteAll\" link=\"#{clipboardActions.pasteWorkingList}\">\n      <category>DEFAULT_LIST</category>\n      <category>CLIPBOARD_LIST</category>\n      <filter-id>canPasteCurrentWorkList</filter-id>\n    </action>\n\n    <action icon=\"/icons/action_move_all.gif\" id=\"WORKLIST_MOVE\" label=\"command.clipboard.moveAll\" link=\"#{clipboardActions.moveWorkingList}\">\n      <category>DEFAULT_LIST</category>\n      <category>CLIPBOARD_LIST</category>\n      <filter-id>canMoveWorkingList</filter-id>\n    </action>\n\n    <action icon=\"/icons/action_export_zip.gif\" id=\"WORKLIST_EXPORT\" label=\"command.clipboard.zipExport\" link=\"#{clipboardActions.exportWorklistAsZip()}\">\n      <category>DEFAULT_LIST</category>\n      <filter id=\"currentWorkListIsNotEmpty2\">\n        <rule grant=\"false\">\n          <condition>#{clipboardActions.workListEmpty}</condition>\n        </rule>\n      </filter>\n    </action>\n\n    <action icon=\"/icons/action_clipboard_deleteall.gif\" id=\"WORKLIST_CLEAN\" label=\"command.clipboard.delAll\" link=\"#{clipboardActions.clearWorkingList()}\">\n      <category>DEFAULT_LIST</category>\n      <category>CLIPBOARD_LIST</category>\n      <filter id=\"currentWorkListIsNotEmpty3\">\n        <rule grant=\"false\">\n          <condition>#{clipboardActions.workListEmpty}</condition>\n        </rule>\n      </filter>\n    </action>\n\n    <!-- Actions for the document selection -->\n\n    <action icon=\"\" id=\"CLIPBOARD_PASTE\" label=\"command.clipboard.paste\" link=\"#{clipboardActions.pasteClipboard}\" order=\"20\">\n      <category>CURRENT_SELECTION_LIST</category>\n      <category>ORDERABLE_CURRENT_SELECTION_LIST</category>\n      <filter id=\"canPastFromClipboard\">\n        <rule grant=\"true\">\n          <condition>#{clipboardActions.canPasteFromClipboard}</condition>\n        </rule>\n      </filter>\n    </action>\n\n    <action confirm=\"if( !confirmDeleteDocumentsForever() ) return false;\" help=\"command.deleteDocs.help\" icon=\"\" id=\"CURRENT_SELECTION_DELETE\" label=\"command.deleteDocs\" link=\"#{deleteActions.purgeSelection}\">\n      <category>CURRENT_SELECTION_TRASH_LIST</category>\n      <filter id=\"canPurge\">\n        <rule grant=\"true\">\n          <condition>#{deleteActions.canPurge}</condition>\n        </rule>\n      </filter>\n    </action>\n\n    <action confirm=\"if( !confirmEmptyTrash() ) return false;\" help=\"command.emptyTrash.help\" icon=\"\" id=\"CURRENT_SELECTION_EMPTY_TRASH\" label=\"command.emptyTrash\" link=\"#{deleteActions.emptyTrash}\">\n      <category>CURRENT_SELECTION_TRASH_LIST</category>\n      <filter id=\"canEmptyTrash\">\n        <rule grant=\"true\">\n          <condition>#{deleteActions.canEmptyTrash}</condition>\n        </rule>\n      </filter>\n    </action>\n\n    <action confirm=\"if( !confirmUndeleteDocuments() ) return false;\" help=\"command.undeleteDocs.help\" icon=\"\" id=\"CURRENT_SELECTION_UNDELETE\" label=\"command.undeleteDocs\" link=\"#{deleteActions.undeleteSelection}\">\n      <category>CURRENT_SELECTION_TRASH_LIST</category>\n      <filter id=\"canPurge\"/>\n    </action>\n\n    <action confirm=\"if( !confirmDeleteDocuments() ) return false;\" help=\"command.trashDocs.help\" icon=\"\" id=\"CURRENT_SELECTION_TRASH\" label=\"command.trashDocs\" link=\"#{deleteActions.deleteSelection}\" order=\"1000\">\n      <category>CURRENT_SELECTION_LIST</category>\n      <category>ORDERABLE_CURRENT_SELECTION_LIST</category>\n      <filter id=\"canDelete\">\n        <rule grant=\"true\">\n          <condition>#{deleteActions.canDelete}</condition>\n        </rule>\n      </filter>\n    </action>\n\n    <action icon=\"\" id=\"CURRENT_SELECTION_EDIT\" label=\"command.bulk.edit\" order=\"0\" type=\"fancybox\">\n      <category>CURRENT_SELECTION_LIST</category>\n      <category>ORDERABLE_CURRENT_SELECTION_LIST</category>\n      <filter-id>canEditCurrentSelection</filter-id>\n      <properties>\n        <property name=\"include\">/incl/bulk_edit_box.xhtml</property>\n        <property name=\"layout\">bulkEdit@edit</property>\n        <property name=\"autoDimensions\">false</property>\n        <property name=\"width\">50%</property>\n        <property name=\"height\">70%</property>\n        <property name=\"modal\">true</property>\n        <property name=\"scrolling\">auto</property>\n        <property name=\"ajaxSupport\">true</property>\n      </properties>\n    </action>\n\n    <action icon=\"\" id=\"CURRENT_SELECTION_COPY\" label=\"command.clipboard.copy\" link=\"#{clipboardActions.putSelectionInClipboard}\" order=\"10\">\n      <category>CURRENT_SELECTION_LIST</category>\n      <category>ORDERABLE_CURRENT_SELECTION_LIST</category>\n      <filter-id>canCopyFromCurrentSelection</filter-id>\n    </action>\n\n    <action icon=\"\" id=\"CURRENT_SELECTION_ADDTOLIST\" label=\"help.command.clipboard.addworklist\" link=\"#{clipboardActions.putSelectionInDefaultWorkList}\" order=\"30\">\n      <category>CURRENT_SELECTION_LIST</category>\n      <category>ORDERABLE_CURRENT_SELECTION_LIST</category>\n      <filter-id>canCopyFromCurrentSelection</filter-id>\n      <filter id=\"no_addtolist_for_domains\">\n        <rule grant=\"false\">\n          <type>Root</type>\n        </rule>\n      </filter>\n    </action>\n\n    <action enabled=\"true\" icon=\"\" id=\"MOVE_TOP\" label=\"command.order.movetotop\" link=\"#{orderableDocumentActions.moveToTop}\" order=\"200\">\n      <category>ORDERABLE_CURRENT_SELECTION_LIST</category>\n      <filter-id>canMoveToTop</filter-id>\n    </action>\n\n    <action enabled=\"true\" icon=\"\" id=\"MOVE_UP\" label=\"command.order.moveup\" link=\"#{orderableDocumentActions.moveUp}\" order=\"250\">\n      <category>ORDERABLE_CURRENT_SELECTION_LIST</category>\n      <filter-id>canMoveUp</filter-id>\n    </action>\n\n    <action enabled=\"true\" icon=\"\" id=\"MOVE_DOWN\" label=\"command.order.movedown\" link=\"#{orderableDocumentActions.moveDown}\" order=\"300\">\n      <category>ORDERABLE_CURRENT_SELECTION_LIST</category>\n      <filter-id>canMoveDown</filter-id>\n    </action>\n\n    <action enabled=\"true\" icon=\"\" id=\"MOVE_BOTTOM\" label=\"command.order.movetobottom\" link=\"#{orderableDocumentActions.moveToBottom}\" order=\"350\">\n      <category>ORDERABLE_CURRENT_SELECTION_LIST</category>\n      <filter-id>canMoveToBottom</filter-id>\n    </action>\n\n    <action confirm=\"if( !confirmDeleteDocuments() ) return false;\" help=\"command.trashDocs.help\" icon=\"\" id=\"CURRENT_SELECTION_SECTIONS_TRASH\" label=\"command.trashDocs\" link=\"#{deleteActions.deleteSelectionSections}\">\n      <category>CURRENT_SELECTION_SECTIONS_LIST</category>\n      <filter id=\"canDeleteSection\">\n        <rule grant=\"true\">\n          <condition>#{deleteActions.canDeleteSections}</condition>\n        </rule>\n      </filter>\n    </action>\n\n    <action icon=\"/icons/view_doc.png\" id=\"POPUP_VIEW\" label=\"command.view\" link=\"javascript:doView\">\n      <category>POPUP</category>\n    </action>\n\n    <action icon=\"/icons/application_form_edit.png\" id=\"POPUP_EDIT\" label=\"action.view.edit\" link=\"javascript:doEdit\">\n      <category>POPUP</category>\n      <filter-id>user_canedit</filter-id>\n      <filter-id>mutable_document</filter-id>\n    </action>\n\n    <action icon=\"/icons/action_clipboard_copy.gif\" id=\"POPUP_COPY\" label=\"command.clipboard.copy\" link=\"javascript:doCopy\">\n      <category>POPUP</category>\n    </action>\n\n    <action icon=\"/icons/action_paste_all.gif\" id=\"POPUP_PASTE\" label=\"command.clipboard.paste\" link=\"javascript:doPaste\">\n      <category>POPUP</category>\n      <filter id=\"canPastePopup\">\n        <rule grant=\"true\">\n          <condition>\n            #{clipboardActions.getCanPasteFromClipboardInside(document)}\n          </condition>\n        </rule>\n      </filter>\n    </action>\n\n    <action icon=\"/icons/action_move_all.gif\" id=\"POPUP_MOVE\" label=\"command.clipboard.moveAll\" link=\"javascript:doMove\">\n      <category>POPUP</category>\n      <filter id=\"canPastePopup\">\n        <rule grant=\"true\">\n          <condition>\n            #{clipboardActions.getCanMoveFromClipboardInside(document)}\n          </condition>\n        </rule>\n      </filter>\n    </action>\n\n    <action icon=\"/icons/rename.png\" id=\"POPUP_RENAME\" label=\"command.rename\" link=\"javascript:doRename\">\n      <category>POPUP</category>\n      <filter-id>user_canedit</filter-id>\n      <filter-id>mutable_document</filter-id>\n      <filter id=\"canRenamePopup\">\n        <rule grant=\"true\">\n          <condition>#{popupHelper.isCurrentContainerDirectParent}</condition>\n        </rule>\n      </filter>\n    </action>\n\n    <action icon=\"/icons/delete_red.png\" id=\"POPUP_DEL\" label=\"command.trashDocs\" link=\"javascript:doDelete\">\n      <category>POPUP</category>\n      <filter id=\"canDeletePopup\">\n        <rule grant=\"true\">\n          <condition>#{deleteActions.getCanDeleteItem(container)}</condition>\n        </rule>\n      </filter>\n    </action>\n\n    <action icon=\"/icons/group.png\" id=\"POPUP_RIGHTS\" label=\"action.view.rights\" link=\"javascript:doAccessRights\" order=\"10\">\n      <category>POPUP</category>\n      <filter-id>rights</filter-id>\n    </action>\n\n    <action icon=\"/icons/icone_download.gif\" id=\"POPUP_DOWNLOAD\" label=\"command.download\" link=\"javascript:doDownload\" order=\"70\">\n      <category>POPUP</category>\n      <filter id=\"hasContent\">\n        <rule grant=\"true\">\n          <schema>file</schema>\n        </rule>\n      </filter>\n      <filter id=\"documentHasBlobAttached\">\n        <rule grant=\"true\">\n          <condition>\n            #{popupHelper.isDocumentHasBlobAttached(document)}\n          </condition>\n        </rule>\n      </filter>\n    </action>\n\n    <action icon=\"/icons/start_workflow.png\" id=\"POPUP_WORKFLOW\" label=\"action.view.review\" link=\"javascript:doWorkflow\" order=\"90\">\n      <category>POPUP</category>\n      <filter-id>jbpm-process</filter-id>\n      <filter-id>mutable_document</filter-id>\n    </action>\n\n    <action icon=\"/icons/lock.gif\" id=\"POPUP_DOCUMENT_LOCK\" label=\"command.lock\" link=\"javascript:doLock\" order=\"110\">\n      <category>POPUP</category>\n      <filter-id>mutable_document</filter-id>\n      <filter id=\"popup_can_lock_doc\">\n        <rule grant=\"true\">\n          <permission>Write</permission>\n          <condition>#{lockActions.getCanLockDoc(document)}</condition>\n        </rule>\n        <rule grant=\"false\">\n          <facet>Folderish</facet>\n        </rule>\n      </filter>\n    </action>\n\n    <action icon=\"/icons/lock.gif\" id=\"POPUP_DOCUMENT_UNLOCK\" label=\"command.unlock\" link=\"javascript:doUnlock\" order=\"130\">\n      <category>POPUP</category>\n      <filter-id>mutable_document</filter-id>\n      <filter id=\"popup_can_unlock_doc\">\n        <rule grant=\"true\">\n          <condition>#{lockActions.getCanUnlockDoc(document)}</condition>\n        </rule>\n        <rule grant=\"false\">\n          <facet>Folderish</facet>\n        </rule>\n      </filter>\n    </action>\n\n    <action icon=\"/icons/mail.gif\" id=\"POPUP_sendEmail\" label=\"action.email.document\" link=\"javascript:doSendEmail\" order=\"150\">\n      <category>POPUP</category>\n      <filter-id>not_folder</filter-id>\n    </action>\n\n    <!-- Actions for the document lock/unlock -->\n\n    <action icon=\"\" id=\"DOCUMENT_LOCK\" label=\"command.lock\" link=\"#{lockActions.lockCurrentDocument}\">\n      <category>EDIT_ACTIONS</category>\n      <filter-id>mutable_document</filter-id>\n      <filter-id>can_lock</filter-id>\n    </action>\n\n    <action icon=\"\" id=\"DOCUMENT_UNLOCK\" label=\"command.unlock\" link=\"#{lockActions.unlockCurrentDocument}\">\n      <category>EDIT_ACTIONS</category>\n      <filter-id>mutable_document</filter-id>\n      <filter-id>can_unlock</filter-id>\n    </action>\n\n    <!-- live edit new document creation links -->\n\n    <action icon=\"/icons/word.png\" id=\"le_create_msword\" label=\"action.liveedit.create.msword\" link=\"#{nxd:liveCreateUrl('application/msword', 'File', 'file', 'content', 'filename')}\" order=\"40\" type=\"bare_link\">\n      <category>LIVEEDIT_CREATE_ACTIONS</category>\n      <filter-id>is_le_create_msword</filter-id>\n      <properties>\n        <property name=\"cacheLink\">true</property>\n      </properties>\n    </action>\n\n    <action icon=\"/icons/xls.png\" id=\"le_create_msexcel\" label=\"action.liveedit.create.msexcel\" link=\"#{nxd:liveCreateUrl('application/vnd.ms-excel', 'File', 'file', 'content', 'filename')}\" order=\"50\" type=\"bare_link\">\n      <category>LIVEEDIT_CREATE_ACTIONS</category>\n      <filter-id>is_le_create_msexcel</filter-id>\n      <properties>\n        <property name=\"cacheLink\">true</property>\n      </properties>\n    </action>\n\n    <action icon=\"/icons/ppt.png\" id=\"le_create_mspowerpoint\" label=\"action.liveedit.create.mspowerpoint\" link=\"#{nxd:liveCreateUrl('application/vnd.ms-powerpoint', 'File', 'file', 'content', 'filename')}\" order=\"60\" type=\"bare_link\">\n      <category>LIVEEDIT_CREATE_ACTIONS</category>\n      <filter-id>is_le_create_mspowerpoint</filter-id>\n      <properties>\n        <property name=\"cacheLink\">true</property>\n      </properties>\n    </action>\n\n    <action icon=\"/icons/odt.png\" id=\"le_create_odwriter\" label=\"action.liveedit.create.writer\" link=\"#{nxd:liveCreateUrl('application/vnd.oasis.opendocument.text', 'File', 'file', 'content', 'filename')}\" order=\"80\" type=\"bare_link\">\n      <category>LIVEEDIT_CREATE_ACTIONS</category>\n      <filter-id>is_le_create_odwriter</filter-id>\n      <properties>\n        <property name=\"cacheLink\">true</property>\n      </properties>\n    </action>\n\n    <action icon=\"/icons/ods.png\" id=\"le_create_odcalc\" label=\"action.liveedit.create.calc\" link=\"#{nxd:liveCreateUrl('application/vnd.oasis.opendocument.spreadsheet', 'File', 'file', 'content', 'filename')}\" order=\"100\" type=\"bare_link\">\n      <category>LIVEEDIT_CREATE_ACTIONS</category>\n      <filter-id>is_le_create_odcalc</filter-id>\n      <properties>\n        <property name=\"cacheLink\">true</property>\n      </properties>\n    </action>\n\n    <action icon=\"/icons/odp.png\" id=\"le_create_odimpress\" label=\"action.liveedit.create.impress\" link=\"#{nxd:liveCreateUrl('application/vnd.oasis.opendocument.presentation', 'File', 'file', 'content', 'filename')}\" order=\"120\" type=\"bare_link\">\n      <category>LIVEEDIT_CREATE_ACTIONS</category>\n      <filter-id>is_le_create_odimpress</filter-id>\n      <properties>\n        <property name=\"cacheLink\">true</property>\n      </properties>\n    </action>\n\n    <!-- Local Configuration -->\n    <action icon=\"/icons/file.gif\" id=\"TAB_LOCAL_CONFIGURATION\" label=\"action.view.local.configuration\" link=\"/incl/tabs/local_configuration.xhtml\" order=\"70\">\n      <category>TAB_MANAGE_sub_tab</category>\n      <filter-id>has_local_configuration_available</filter-id>\n      <properties>\n        <property name=\"ajaxSupport\">true</property>\n      </properties>\n    </action>\n\n    <!-- actions on document create and edit pages -->\n\n    <action id=\"CREATE_DOCUMENT\" label=\"command.create\" link=\"#{documentActions.saveDocument}\" order=\"0\">\n      <category>CREATE_DOCUMENT_FORM</category>\n      <filter-id>is_not_creating_workspace</filter-id>\n    </action>\n\n    <action id=\"CREATE_WORKSPACE\" label=\"command.create\" link=\"#{documentTemplatesActions.createDocumentFromTemplate}\" order=\"0\">\n      <category>CREATE_DOCUMENT_FORM</category>\n      <filter-id>is_creating_workspace</filter-id>\n    </action>\n\n    <action id=\"CANCEL_DOCUMENT_CREATION\" immediate=\"true\" label=\"command.cancel\" link=\"#{navigationContext.goBack()}\" order=\"50\">\n      <category>CREATE_DOCUMENT_FORM</category>\n      <properties>\n        <property name=\"ajaxSupport\">true</property>\n      </properties>\n    </action>\n\n    <action id=\"EDIT_CURRENT_DOCUMENT\" label=\"command.save\" link=\"#{documentActions.updateCurrentDocument}\" order=\"0\">\n      <category>EDIT_DOCUMENT_FORM</category>\n      <properties>\n        <property name=\"ajaxSupport\">true</property>\n      </properties>\n    </action>\n\n    <action enabled=\"false\" id=\"EDIT_CURRENT_DOCUMENT_AND_STAY\" label=\"command.save.and.stay\" link=\"#{documentActions.updateDocument(currentDocument, true)}\" order=\"10\">\n      <category>EDIT_DOCUMENT_FORM</category>\n      <properties>\n        <property name=\"ajaxSupport\">true</property>\n      </properties>\n    </action>\n\n    <!-- end of actions on document create and edit pages -->\n\n    <!-- footer links -->\n\n    <action id=\"footer_contact_us\" label=\"label.footer.contactUs\" link=\"//www.nuxeo.com/about/contact?utm_source=dm&amp;utm_medium=pages-footer&amp;utm_campaign=products\" order=\"10\" type=\"bare_link\">\n      <category>FOOTER</category>\n      <properties>\n        <property name=\"target\">_blank</property>\n      </properties>\n    </action>\n\n    <action id=\"footer_blogs\" label=\"label.footer.blogs\" link=\"//www.nuxeo.com/blog?utm_source=dm&amp;utm_medium=pages-footer&amp;utm_campaign=products\" order=\"20\" type=\"bare_link\">\n      <category>FOOTER</category>\n      <properties>\n        <property name=\"target\">_blank</property>\n      </properties>\n    </action>\n\n    <action id=\"footer_community\" label=\"label.footer.community\" link=\"//community.nuxeo.com/?utm_source=dm&amp;utm_medium=pages-footer&amp;utm_campaign=products\" order=\"30\" type=\"bare_link\">\n      <category>FOOTER</category>\n      <properties>\n        <property name=\"target\">_blank</property>\n      </properties>\n    </action>\n\n    <action id=\"footer_answers\" label=\"label.footer.answers\" link=\"//answers.nuxeo.com/?utm_source=dm&amp;utm_medium=pages-footer&amp;utm_campaign=products\" order=\"40\" type=\"bare_link\">\n      <category>FOOTER</category>\n      <properties>\n        <property name=\"target\">_blank</property>\n      </properties>\n    </action>\n\n    <action id=\"footer_documentation\" label=\"label.footer.documentation\" link=\"//doc.nuxeo.com/?utm_source=dm&amp;utm_medium=pages-footer&amp;utm_campaign=products\" order=\"50\" type=\"bare_link\">\n      <category>FOOTER</category>\n      <properties>\n        <property name=\"target\">_blank</property>\n      </properties>\n    </action>\n\n    <action id=\"footer_twitter\" label=\"Twitter\" link=\"//twitter.com/nuxeo/?utm_source=dm&amp;utm_medium=pages-footer&amp;utm_campaign=products\" order=\"60\" type=\"bare_link\">\n      <category>FOOTER</category>\n      <properties>\n        <property name=\"styleClass\">twitt</property>\n        <property name=\"labelStyleClass\">footerLabel</property>\n        <property name=\"target\">_blank</property>\n      </properties>\n    </action>\n\n    <action id=\"footer_linkedin\" label=\"LinkedIn\" link=\"//www.linkedin.com/groupRegistration?gid=43314&amp;utm_source=dm&amp;utm_medium=pages-footer&amp;utm_campaign=products\" order=\"70\" type=\"bare_link\">\n      <category>FOOTER</category>\n      <properties>\n        <property name=\"styleClass\">linkedin</property>\n        <property name=\"labelStyleClass\">footerLabel</property>\n        <property name=\"target\">_blank</property>\n      </properties>\n    </action>\n\n    <!-- end of footer links -->\n\n    <action id=\"bulkImportDocuments\" label=\"label.bulk.import.documents\" order=\"0\" type=\"fancybox\">\n      <category>IMPORT_ACTIONS</category>\n      <properties>\n        <property name=\"include\">/incl/bulk_import_box.xhtml</property>\n        <property name=\"dropContext\">IMPORT_DOCUMENTS</property>\n        <property name=\"autoDimensions\">false</property>\n        <property name=\"width\">70%</property>\n        <property name=\"height\">95%</property>\n        <property name=\"modal\">true</property>\n        <property name=\"scrolling\">auto</property>\n        <property name=\"ajaxSupport\">true</property>\n      </properties>\n    </action>\n\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.actions.ActionService--filters",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.webapp/org.nuxeo.ecm.webapp.core/org.nuxeo.ecm.platform.actions/Contributions/org.nuxeo.ecm.platform.actions--filters",
              "id": "org.nuxeo.ecm.platform.actions--filters",
              "registrationOrder": 18,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.actions.ActionService",
                "name": "org.nuxeo.ecm.platform.actions.ActionService",
                "type": "service"
              },
              "version": "2021.57.3",
              "xml": "<extension point=\"filters\" target=\"org.nuxeo.ecm.platform.actions.ActionService\">\n\n    <filter id=\"view\">\n      <rule grant=\"false\">\n        <facet>Folderish</facet>\n      </rule>\n    </filter>\n\n    <filter id=\"create\">\n      <rule grant=\"true\">\n        <permission>AddChildren</permission>\n        <facet>Folderish</facet>\n        <type>Workspace</type>\n        <type>TemplateRoot</type>\n        <type>Section</type>\n        <type>Folder</type>\n        <type>OrderedFolder</type>\n      </rule>\n      <rule grant=\"false\">\n        <condition>\n          #{typeManager.getAllowedSubTypes(document.getType(),document).size()==0}\n        </condition>\n      </rule>\n    </filter>\n\n    <filter id=\"importFile\">\n      <rule grant=\"true\">\n        <permission>AddChildren</permission>\n        <facet>Folderish</facet>\n        <type>Workspace</type>\n        <type>Folder</type>\n        <type>OrderedFolder</type>\n        <condition>\n          #{typeManager.getAllowedSubTypes(document.getType(),\n          document).size()\n          &gt; 0}\n        </condition>\n      </rule>\n    </filter>\n\n    <filter id=\"edit\">\n      <rule grant=\"false\">\n        <type>Root</type>\n        <type>Domain</type>\n        <type>WorkspaceRoot</type>\n        <type>Workspace</type>\n      </rule>\n      <rule grant=\"true\">\n        <permission>Write</permission>\n      </rule>\n    </filter>\n\n    <filter id=\"user_canedit\">\n      <rule grant=\"true\">\n        <permission>Write</permission>\n      </rule>\n    </filter>\n\n    <filter id=\"workspace_edit\">\n      <rule grant=\"true\">\n        <type>Domain</type>\n        <type>WorkspaceRoot</type>\n        <type>Workspace</type>\n        <permission>Write</permission>\n      </rule>\n    </filter>\n\n    <filter id=\"metadata_edit\">\n      <rule grant=\"false\">\n        <type>Root</type>\n      </rule>\n      <rule grant=\"true\">\n        <permission>Write</permission>\n      </rule>\n    </filter>\n\n    <!-- deprecated, use mutable_document instead -->\n    <filter id=\"cannotEdit\">\n      <rule grant=\"false\">\n        <type>Root</type>\n      </rule>\n      <rule grant=\"false\">\n        <condition>!document.isProxy()</condition>\n        <permission>Write</permission>\n      </rule>\n      <rule grant=\"false\">\n        <condition>!document.isProxy()</condition>\n        <permission>Manage everything</permission>\n      </rule>\n    </filter>\n\n    <filter id=\"anonymous\">\n      <rule grant=\"true\">\n        <condition>#{currentUser.anonymous}</condition>\n      </rule>\n    </filter>\n\n    <filter id=\"not_anonymous\">\n      <rule grant=\"false\">\n        <condition>#{currentUser.anonymous}</condition>\n      </rule>\n    </filter>\n\n    <filter id=\"not_transient_user\">\n      <rule grant=\"false\">\n        <condition>#{currentUser.transient}</condition>\n      </rule>\n    </filter>\n\n    <filter id=\"view_content\">\n      <rule grant=\"true\">\n        <permission>ReadChildren</permission>\n        <facet>Folderish</facet>\n      </rule>\n    </filter>\n\n    <filter id=\"valid_for_publish\">\n      <rule grant=\"true\">\n        <condition>\n          document.getCurrentLifeCycleState().equals(\"approved\")\n        </condition>\n      </rule>\n    </filter>\n\n    <filter id=\"manage\">\n      <rule grant=\"true\">\n        <permission>Manage everything</permission>\n      </rule>\n    </filter>\n\n    <filter id=\"not_review_documents\">\n      <rule grant=\"false\">\n        <condition>\n          document.getCurrentLifeCycleState().equals(\"review\")\n        </condition>\n      </rule>\n    </filter>\n\n    <filter id=\"mutable_document\">\n      <rule grant=\"false\">\n        <facet>Immutable</facet>\n      </rule>\n      <rule grant=\"false\">\n        <type>Root</type>\n      </rule>\n      <rule grant=\"false\">\n        <condition>\n          document.isTrashed()\n        </condition>\n      </rule>\n    </filter>\n\n    <filter id=\"updatable_main_blob\">\n      <rule grant=\"true\">\n        <condition>#{documentActions.canUpdateMainBlob}</condition>\n      </rule>\n    </filter>\n\n    <filter id=\"delete_content\">\n      <rule grant=\"true\">\n        <permission>RemoveChildren</permission>\n        <facet>Folderish</facet>\n      </rule>\n    </filter>\n\n    <filter id=\"rights\">\n      <rule grant=\"true\">\n        <permission>WriteSecurity</permission>\n        <facet>Folderish</facet>\n      </rule>\n    </filter>\n\n    <filter id=\"currentWorkListIsNotEmpty\">\n      <rule grant=\"false\">\n        <condition>#{clipboardActions.workListEmpty}</condition>\n      </rule>\n    </filter>\n\n    <filter id=\"canPasteCurrentWorkList\">\n      <rule grant=\"true\">\n        <condition>#{clipboardActions.canPasteWorkList}</condition>\n      </rule>\n    </filter>\n\n    <filter id=\"canMoveWorkingList\">\n      <rule grant=\"true\">\n        <condition>#{clipboardActions.canMoveWorkingList}</condition>\n      </rule>\n    </filter>\n\n    <filter id=\"canCopyFromCurrentSelection\">\n      <rule grant=\"true\">\n        <condition>#{clipboardActions.canCopy}</condition>\n      </rule>\n    </filter>\n\n    <filter id=\"canEditCurrentSelection\">\n      <rule grant=\"true\">\n        <condition>#{bulkEditActions.canEdit}</condition>\n      </rule>\n    </filter>\n\n    <filter id=\"can_lock\">\n      <rule grant=\"true\">\n        <permission>Write</permission>\n        <condition>#{lockActions.canLockCurrentDoc}</condition>\n      </rule>\n      <rule grant=\"false\">\n        <facet>Folderish</facet>\n      </rule>\n    </filter>\n\n    <filter id=\"can_unlock\">\n      <rule grant=\"true\">\n        <condition>#{lockActions.canUnlockCurrentDoc}</condition>\n      </rule>\n      <rule grant=\"false\">\n        <facet>Folderish</facet>\n      </rule>\n    </filter>\n\n    <filter id=\"only_for_manager\">\n      <rule grant=\"true\">\n        <condition>#{userSession.administrator}</condition>\n      </rule>\n    </filter>\n\n    <filter id=\"hasAttachedFiles\">\n      <rule grant=\"true\">\n        <schema>files</schema>\n      </rule>\n    </filter>\n\n    <filter id=\"type_section\">\n      <rule grant=\"false\">\n        <type>Section</type>\n      </rule>\n    </filter>\n\n    <filter id=\"denyFilesTab\">\n      <rule grant=\"false\">\n        <type>WebSite</type>\n        <type>WebPage</type>\n        <type>BlogSite</type>\n        <type>BlogPost</type>\n      </rule>\n    </filter>\n\n    <filter id=\"inSection\">\n      <rule grant=\"true\">\n        <type>Section</type>\n        <type>SectionRoot</type>\n      </rule>\n    </filter>\n\n    <filter id=\"outSection\">\n      <rule grant=\"false\">\n        <type>Section</type>\n        <type>SectionRoot</type>\n      </rule>\n    </filter>\n\n    <filter id=\"not_readonly\">\n      <rule grant=\"true\">\n        <condition>#{notReadOnly}</condition>\n      </rule>\n    </filter>\n\n    <filter id=\"orderable\">\n      <rule grant=\"true\">\n        <facet>Orderable</facet>\n      </rule>\n    </filter>\n\n    <filter id=\"not_orderable\">\n      <rule grant=\"false\">\n        <facet>Orderable</facet>\n      </rule>\n    </filter>\n\n    <filter id=\"canMoveToTop\">\n      <rule grant=\"true\">\n        <condition>#{orderableDocumentActions.canMoveToTop}</condition>\n        <facet>Orderable</facet>\n      </rule>\n    </filter>\n\n    <filter id=\"canMoveUp\">\n      <rule grant=\"true\">\n        <condition>#{orderableDocumentActions.canMoveUp}</condition>\n        <facet>Orderable</facet>\n      </rule>\n    </filter>\n\n    <filter id=\"canMoveDown\">\n      <rule grant=\"true\">\n        <condition>#{orderableDocumentActions.canMoveDown}</condition>\n        <facet>Orderable</facet>\n      </rule>\n    </filter>\n\n    <filter id=\"canMoveToBottom\">\n      <rule grant=\"true\">\n        <condition>#{orderableDocumentActions.canMoveToBottom}</condition>\n        <facet>Orderable</facet>\n      </rule>\n    </filter>\n\n    <filter id=\"has_local_configuration_available\">\n      <rule grant=\"false\">\n        <condition>\n          #{webActions.getActionsList('LOCAL_CONFIGURATION').isEmpty()}\n        </condition>\n      </rule>\n      <rule grant=\"true\">\n        <permission>Manage everything</permission>\n        <facet>SuperSpace</facet>\n      </rule>\n    </filter>\n\n    <filter id=\"is_creating_workspace\">\n      <rule grant=\"true\">\n        <condition>#{changeableDocument.type == 'Workspace'}</condition>\n      </rule>\n    </filter>\n\n    <filter id=\"is_not_creating_workspace\">\n      <rule grant=\"false\">\n        <condition>#{changeableDocument.type == 'Workspace'}</condition>\n      </rule>\n    </filter>\n\n    <!-- LiveEdit filter -->\n    <filter id=\"is_le_create_msword\">\n      <rule grant=\"true\">\n        <condition>#{msword_liveeditable}</condition>\n      </rule>\n    </filter>\n\n    <filter id=\"is_le_create_msexcel\">\n      <rule grant=\"true\">\n        <condition>#{msexcel_liveeditable}</condition>\n      </rule>\n    </filter>\n\n    <filter id=\"is_le_create_mspowerpoint\">\n      <rule grant=\"true\">\n        <condition>#{mspowerpoint_liveeditable}</condition>\n      </rule>\n    </filter>\n\n    <filter id=\"is_le_create_odwriter\">\n      <rule grant=\"true\">\n        <condition>#{ootext_liveeditable}</condition>\n      </rule>\n    </filter>\n\n    <filter id=\"is_le_create_odcalc\">\n      <rule grant=\"true\">\n        <condition>#{oocalc_liveeditable}</condition>\n      </rule>\n    </filter>\n\n    <filter id=\"is_le_create_odimpress\">\n      <rule grant=\"true\">\n        <condition>#{oopresentation_liveeditable}</condition>\n      </rule>\n    </filter>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.webapp/org.nuxeo.ecm.webapp.core/org.nuxeo.ecm.platform.actions",
          "name": "org.nuxeo.ecm.platform.actions",
          "requirements": [],
          "resolutionOrder": 665,
          "services": [],
          "startOrder": 255,
          "version": "2021.57.3",
          "xmlFileContent": "<component name=\"org.nuxeo.ecm.platform.actions\">\n\n  <extension target=\"org.nuxeo.ecm.platform.actions.ActionService\"\n    point=\"actions\">\n\n    <!-- server actions -->\n\n    <action id=\"documents\" link=\"view_documents\" label=\"label.main.tab.documents\"\n      order=\"40\" type=\"main_tab\">\n      <category>MAIN_TABS</category>\n      <properties>\n        <property name=\"requireDocument\">true</property>\n      </properties>\n    </action>\n\n    <action id=\"non_anonymous_logout\" link=\"logout\" label=\"command.logout\"\n      order=\"100\" type=\"bare_link\">\n      <category>USER_MENU_ACTIONS</category>\n      <filter-id>not_anonymous</filter-id>\n    </action>\n\n    <action id=\"login\" link=\"logout\" label=\"command.login\" order=\"100\"\n      type=\"bare_link\">\n      <category>USER_MENU_ACTIONS</category>\n      <filter-id>anonymous</filter-id>\n    </action>\n\n    <action id=\"newDomain\" link=\"#{documentActions.createDocument('Domain')}\"\n      label=\"command.create.domain\" icon=\"/icons/action_add.gif\">\n      <category>SUBVIEW_UPPER_LIST</category>\n      <filter id=\"newDomain\">\n        <rule grant=\"true\">\n          <permission>AddChildren</permission>\n          <type>Root</type>\n        </rule>\n      </filter>\n    </action>\n\n    <!-- domain and roots actions -->\n\n    <action id=\"newWorkspace\" link=\"#{documentActions.createDocument('Workspace')}\"\n      label=\"command.create.workspace\" icon=\"/icons/action_add.gif\">\n      <category>SUBVIEW_UPPER_LIST</category>\n      <filter id=\"newWorkspace\">\n        <rule grant=\"true\">\n          <permission>AddChildren</permission>\n          <type>WorkspaceRoot</type>\n        </rule>\n      </filter>\n    </action>\n\n    <action id=\"newWorkspaceWithWizard\" link=\"create_workspace_wizard\"\n      enabled=\"false\" label=\"command.create.workspace.wizard\" icon=\"/icons/action_add.gif\">\n      <category>SUBVIEW_UPPER_LIST</category>\n      <filter id=\"newWorkspaceWizard\">\n        <rule grant=\"true\">\n          <permission>AddChildren</permission>\n          <type>WorkspaceRoot</type>\n        </rule>\n      </filter>\n    </action>\n\n    <action id=\"newSection\" link=\"#{documentActions.createDocument('Section')}\"\n      label=\"command.create.section\" icon=\"/icons/action_add.gif\">\n      <category>SUBVIEW_UPPER_LIST</category>\n      <filter id=\"newSection\">\n        <rule grant=\"true\">\n          <permission>AddChildren</permission>\n          <type>SectionRoot</type>\n        </rule>\n      </filter>\n    </action>\n\n    <!-- generic actions -->\n\n    <action id=\"newDocument\" label=\"action.new.document\" icon=\"/icons/action_add.gif\"\n      type=\"fancybox\">\n      <category>SUBVIEW_UPPER_LIST</category>\n      <properties>\n        <property name=\"include\">/select_document_type.xhtml</property>\n      </properties>\n      <filter-id>create</filter-id>\n    </action>\n\n    <!-- disabled by default, see NXP-15369 -->\n    <action id=\"newFile\" enabled=\"false\" label=\"action.new.file\" icon=\"/icons/action_add_file.gif\"\n      type=\"fancybox\">\n      <category>SUBVIEW_UPPER_LIST</category>\n      <properties>\n        <property name=\"include\">/create_file.xhtml</property>\n      </properties>\n      <filter-id>importFile</filter-id>\n    </action>\n\n    <!--\n      tabs are handled by a specific template so links should be paths to\n      template to include in the tab content\n    -->\n    <action id=\"TAB_MANAGE\" type=\"rest_document_link\" order=\"240\"\n      label=\"action.view.manage\" icon=\"/icons/file.gif\" accessKey=\"m\">\n      <category>VIEW_ACTION_LIST</category>\n      <filter-id>manage</filter-id>\n      <filter id=\"TAB_MANAGE_has_subtabs\">\n        <rule grant=\"false\">\n          <condition>\n            #{webActions.getActionsList('TAB_MANAGE_sub_tab').isEmpty()}\n          </condition>\n        </rule>\n      </filter>\n      <properties>\n        <property name=\"ajaxSupport\">true</property>\n        <property name=\"link\">/incl/tabs/document_manage.xhtml</property>\n      </properties>\n    </action>\n\n    <action id=\"TAB_PERMISSIONS\" link=\"/permissions/document_permissions.xhtml\"\n      order=\"50\" label=\"action.view.permissions\" icon=\"/icons/file.gif\">\n      <category>VIEW_ACTION_LIST</category>\n      <filter-id>isNotVersion</filter-id>\n      <properties>\n        <!-- NXP-18320: disable ajax support on Polymer tabs -->\n        <property name=\"ajaxSupport\">false</property>\n      </properties>\n    </action>\n\n    <action id=\"TAB_VIEW\" link=\"/incl/tabs/document_view.xhtml\" order=\"0\"\n      label=\"action.view.summary\" icon=\"/icons/file.gif\" accessKey=\"v\"\n      type=\"rest_document_link\">\n      <category>VIEW_ACTION_LIST</category>\n      <filter-id>view</filter-id>\n      <properties>\n        <property name=\"ajaxSupport\">true</property>\n      </properties>\n    </action>\n\n    <action id=\"TAB_CONTENT\" link=\"/incl/tabs/document_content.xhtml\"\n      order=\"10\" label=\"action.view.content\" icon=\"/icons/file.gif\" accessKey=\"c\"\n      type=\"rest_document_link\">\n      <category>VIEW_ACTION_LIST</category>\n      <!--\n        NXP-12715: use same tab on workspaces and sections\n      -->\n      <!--\n        <filter-id>outSection</filter-id>\n      -->\n      <filter-id>view_content</filter-id>\n      <properties>\n        <property name=\"ajaxSupport\">true</property>\n      </properties>\n    </action>\n\n    <!--\n      NXP-12715: use same tab on workspaces and sections => disable this action\n      by default\n    -->\n    <action id=\"TAB_SECTION_CONTENT\" link=\"/incl/tabs/section_content.xhtml\"\n      order=\"10\" label=\"action.view.content\" icon=\"/icons/file.gif\" enabled=\"false\"\n      type=\"rest_document_link\">\n      <category>VIEW_ACTION_LIST</category>\n      <filter-id>view_content</filter-id>\n      <filter-id>inSection</filter-id>\n      <properties>\n        <property name=\"ajaxSupport\">true</property>\n      </properties>\n    </action>\n\n    <action id=\"TAB_TRASH_CONTENT\" link=\"/incl/tabs/document_trash_content.xhtml\"\n      order=\"200\" label=\"action.view.trash.content\" icon=\"/icons/file.gif\">\n      <category>TAB_MANAGE_sub_tab</category>\n      <filter id=\"viewTrash\">\n        <rule grant=\"true\">\n          <permission>Manage everything</permission>\n          <facet>Folderish</facet>\n          <condition>#{deleteActions.trashManagementEnabled}</condition>\n        </rule>\n      </filter>\n      <properties>\n        <property name=\"ajaxSupport\">true</property>\n      </properties>\n    </action>\n\n    <action id=\"print\" link=\"#{restHelper.doPrint(themeActions.defaultTheme)}\"\n      order=\"100\" label=\"label.print\" icon=\"/icons/printer.gif\" accesskey=\"p\">\n      <category>DOCUMENT_UPPER_ACTION_BLANK_TARGET</category>\n    </action>\n\n    <action id=\"TAB_EDIT\" link=\"/incl/tabs/document_edit.xhtml\" order=\"20\"\n      label=\"action.view.modification\" icon=\"/icons/file.gif\" accessKey=\"e\"\n      type=\"rest_document_link\">\n      <category>VIEW_ACTION_LIST</category>\n      <filter-id>edit</filter-id>\n      <filter-id>mutable_document</filter-id>\n      <properties>\n        <property name=\"ajaxSupport\">true</property>\n      </properties>\n    </action>\n\n    <action id=\"TAB_WORKSPACE_EDIT\" link=\"/incl/tabs/document_edit.xhtml\"\n      order=\"22\" label=\"action.view.modification\" icon=\"/icons/file.gif\"\n      accessKey=\"e\" type=\"rest_document_link\">\n      <category>VIEW_ACTION_LIST</category>\n      <filter-id>workspace_edit</filter-id>\n      <filter-id>mutable_document</filter-id>\n      <properties>\n        <property name=\"ajaxSupport\">true</property>\n      </properties>\n    </action>\n\n    <action id=\"TAB_FILES_EDIT\" link=\"/incl/tabs/document_files_edit.xhtml\"\n      order=\"43\" label=\"action.view.files\" accessKey=\"f\" type=\"rest_document_link\">\n      <category>VIEW_ACTION_LIST</category>\n      <filter-id>edit</filter-id>\n      <filter-id>mutable_document</filter-id>\n      <filter-id>hasAttachedFiles</filter-id>\n      <filter-id>denyFilesTab</filter-id>\n      <properties>\n        <property name=\"ajaxSupport\">true</property>\n      </properties>\n    </action>\n\n    <action id=\"TAB_RIGHTS\" link=\"/incl/tabs/document_rights.xhtml\"\n      order=\"50\" label=\"action.view.rights\" icon=\"/icons/file.gif\"\n      enabled=\"false\">\n      <category>TAB_MANAGE_sub_tab</category>\n      <filter-id>rights</filter-id>\n      <properties>\n        <property name=\"ajaxSupport\">true</property>\n      </properties>\n    </action>\n\n    <!-- Manage the sub tabs -->\n\n    <!-- Actions on WorkLists -->\n\n    <action id=\"WORKLIST_PASTE\" link=\"#{clipboardActions.pasteWorkingList}\"\n      label=\"command.clipboard.pasteAll\" icon=\"/icons/action_paste_all.gif\">\n      <category>DEFAULT_LIST</category>\n      <category>CLIPBOARD_LIST</category>\n      <filter-id>canPasteCurrentWorkList</filter-id>\n    </action>\n\n    <action id=\"WORKLIST_MOVE\" link=\"#{clipboardActions.moveWorkingList}\"\n      label=\"command.clipboard.moveAll\" icon=\"/icons/action_move_all.gif\">\n      <category>DEFAULT_LIST</category>\n      <category>CLIPBOARD_LIST</category>\n      <filter-id>canMoveWorkingList</filter-id>\n    </action>\n\n    <action id=\"WORKLIST_EXPORT\" link=\"#{clipboardActions.exportWorklistAsZip()}\"\n      label=\"command.clipboard.zipExport\" icon=\"/icons/action_export_zip.gif\">\n      <category>DEFAULT_LIST</category>\n      <filter id=\"currentWorkListIsNotEmpty2\">\n        <rule grant=\"false\">\n          <condition>#{clipboardActions.workListEmpty}</condition>\n        </rule>\n      </filter>\n    </action>\n\n    <action id=\"WORKLIST_CLEAN\" link=\"#{clipboardActions.clearWorkingList()}\"\n      label=\"command.clipboard.delAll\" icon=\"/icons/action_clipboard_deleteall.gif\">\n      <category>DEFAULT_LIST</category>\n      <category>CLIPBOARD_LIST</category>\n      <filter id=\"currentWorkListIsNotEmpty3\">\n        <rule grant=\"false\">\n          <condition>#{clipboardActions.workListEmpty}</condition>\n        </rule>\n      </filter>\n    </action>\n\n    <!-- Actions for the document selection -->\n\n    <action id=\"CLIPBOARD_PASTE\" link=\"#{clipboardActions.pasteClipboard}\"\n      label=\"command.clipboard.paste\" icon=\"\" order=\"20\">\n      <category>CURRENT_SELECTION_LIST</category>\n      <category>ORDERABLE_CURRENT_SELECTION_LIST</category>\n      <filter id=\"canPastFromClipboard\">\n        <rule grant=\"true\">\n          <condition>#{clipboardActions.canPasteFromClipboard}</condition>\n        </rule>\n      </filter>\n    </action>\n\n    <action id=\"CURRENT_SELECTION_DELETE\" link=\"#{deleteActions.purgeSelection}\"\n      label=\"command.deleteDocs\" icon=\"\" help=\"command.deleteDocs.help\"\n      confirm=\"if( !confirmDeleteDocumentsForever() ) return false;\">\n      <category>CURRENT_SELECTION_TRASH_LIST</category>\n      <filter id=\"canPurge\">\n        <rule grant=\"true\">\n          <condition>#{deleteActions.canPurge}</condition>\n        </rule>\n      </filter>\n    </action>\n\n    <action id=\"CURRENT_SELECTION_EMPTY_TRASH\" link=\"#{deleteActions.emptyTrash}\"\n      label=\"command.emptyTrash\" icon=\"\" help=\"command.emptyTrash.help\"\n      confirm=\"if( !confirmEmptyTrash() ) return false;\">\n      <category>CURRENT_SELECTION_TRASH_LIST</category>\n      <filter id=\"canEmptyTrash\">\n        <rule grant=\"true\">\n          <condition>#{deleteActions.canEmptyTrash}</condition>\n        </rule>\n      </filter>\n    </action>\n\n    <action id=\"CURRENT_SELECTION_UNDELETE\" link=\"#{deleteActions.undeleteSelection}\"\n      label=\"command.undeleteDocs\" icon=\"\" help=\"command.undeleteDocs.help\"\n      confirm=\"if( !confirmUndeleteDocuments() ) return false;\">\n      <category>CURRENT_SELECTION_TRASH_LIST</category>\n      <filter id=\"canPurge\" />\n    </action>\n\n    <action id=\"CURRENT_SELECTION_TRASH\" link=\"#{deleteActions.deleteSelection}\"\n      label=\"command.trashDocs\" icon=\"\" help=\"command.trashDocs.help\"\n      confirm=\"if( !confirmDeleteDocuments() ) return false;\" order=\"1000\">\n      <category>CURRENT_SELECTION_LIST</category>\n      <category>ORDERABLE_CURRENT_SELECTION_LIST</category>\n      <filter id=\"canDelete\">\n        <rule grant=\"true\">\n          <condition>#{deleteActions.canDelete}</condition>\n        </rule>\n      </filter>\n    </action>\n\n    <action id=\"CURRENT_SELECTION_EDIT\" type=\"fancybox\" label=\"command.bulk.edit\"\n      icon=\"\" order=\"0\">\n      <category>CURRENT_SELECTION_LIST</category>\n      <category>ORDERABLE_CURRENT_SELECTION_LIST</category>\n      <filter-id>canEditCurrentSelection</filter-id>\n      <properties>\n        <property name=\"include\">/incl/bulk_edit_box.xhtml</property>\n        <property name=\"layout\">bulkEdit@edit</property>\n        <property name=\"autoDimensions\">false</property>\n        <property name=\"width\">50%</property>\n        <property name=\"height\">70%</property>\n        <property name=\"modal\">true</property>\n        <property name=\"scrolling\">auto</property>\n        <property name=\"ajaxSupport\">true</property>\n      </properties>\n    </action>\n\n    <action id=\"CURRENT_SELECTION_COPY\" link=\"#{clipboardActions.putSelectionInClipboard}\"\n      label=\"command.clipboard.copy\" icon=\"\" order=\"10\">\n      <category>CURRENT_SELECTION_LIST</category>\n      <category>ORDERABLE_CURRENT_SELECTION_LIST</category>\n      <filter-id>canCopyFromCurrentSelection</filter-id>\n    </action>\n\n    <action id=\"CURRENT_SELECTION_ADDTOLIST\" link=\"#{clipboardActions.putSelectionInDefaultWorkList}\"\n      label=\"help.command.clipboard.addworklist\" icon=\"\" order=\"30\">\n      <category>CURRENT_SELECTION_LIST</category>\n      <category>ORDERABLE_CURRENT_SELECTION_LIST</category>\n      <filter-id>canCopyFromCurrentSelection</filter-id>\n      <filter id=\"no_addtolist_for_domains\">\n        <rule grant=\"false\">\n          <type>Root</type>\n        </rule>\n      </filter>\n    </action>\n\n    <action id=\"MOVE_TOP\" link=\"#{orderableDocumentActions.moveToTop}\"\n      enabled=\"true\" label=\"command.order.movetotop\" icon=\"\" order=\"200\">\n      <category>ORDERABLE_CURRENT_SELECTION_LIST</category>\n      <filter-id>canMoveToTop</filter-id>\n    </action>\n\n    <action id=\"MOVE_UP\" link=\"#{orderableDocumentActions.moveUp}\"\n      enabled=\"true\" label=\"command.order.moveup\" icon=\"\" order=\"250\">\n      <category>ORDERABLE_CURRENT_SELECTION_LIST</category>\n      <filter-id>canMoveUp</filter-id>\n    </action>\n\n    <action id=\"MOVE_DOWN\" link=\"#{orderableDocumentActions.moveDown}\"\n      enabled=\"true\" label=\"command.order.movedown\" icon=\"\" order=\"300\">\n      <category>ORDERABLE_CURRENT_SELECTION_LIST</category>\n      <filter-id>canMoveDown</filter-id>\n    </action>\n\n    <action id=\"MOVE_BOTTOM\" link=\"#{orderableDocumentActions.moveToBottom}\"\n      enabled=\"true\" label=\"command.order.movetobottom\" icon=\"\" order=\"350\">\n      <category>ORDERABLE_CURRENT_SELECTION_LIST</category>\n      <filter-id>canMoveToBottom</filter-id>\n    </action>\n\n    <action id=\"CURRENT_SELECTION_SECTIONS_TRASH\" link=\"#{deleteActions.deleteSelectionSections}\"\n      label=\"command.trashDocs\" icon=\"\" help=\"command.trashDocs.help\"\n      confirm=\"if( !confirmDeleteDocuments() ) return false;\">\n      <category>CURRENT_SELECTION_SECTIONS_LIST</category>\n      <filter id=\"canDeleteSection\">\n        <rule grant=\"true\">\n          <condition>#{deleteActions.canDeleteSections}</condition>\n        </rule>\n      </filter>\n    </action>\n\n    <action id=\"POPUP_VIEW\" link=\"javascript:doView\" label=\"command.view\"\n      icon=\"/icons/view_doc.png\">\n      <category>POPUP</category>\n    </action>\n\n    <action id=\"POPUP_EDIT\" link=\"javascript:doEdit\" label=\"action.view.edit\"\n      icon=\"/icons/application_form_edit.png\">\n      <category>POPUP</category>\n      <filter-id>user_canedit</filter-id>\n      <filter-id>mutable_document</filter-id>\n    </action>\n\n    <action id=\"POPUP_COPY\" link=\"javascript:doCopy\" label=\"command.clipboard.copy\"\n      icon=\"/icons/action_clipboard_copy.gif\">\n      <category>POPUP</category>\n    </action>\n\n    <action id=\"POPUP_PASTE\" link=\"javascript:doPaste\" label=\"command.clipboard.paste\"\n      icon=\"/icons/action_paste_all.gif\">\n      <category>POPUP</category>\n      <filter id=\"canPastePopup\">\n        <rule grant=\"true\">\n          <condition>\n            #{clipboardActions.getCanPasteFromClipboardInside(document)}\n          </condition>\n        </rule>\n      </filter>\n    </action>\n\n    <action id=\"POPUP_MOVE\" link=\"javascript:doMove\" label=\"command.clipboard.moveAll\"\n      icon=\"/icons/action_move_all.gif\">\n      <category>POPUP</category>\n      <filter id=\"canPastePopup\">\n        <rule grant=\"true\">\n          <condition>\n            #{clipboardActions.getCanMoveFromClipboardInside(document)}\n          </condition>\n        </rule>\n      </filter>\n    </action>\n\n    <action id=\"POPUP_RENAME\" link=\"javascript:doRename\" label=\"command.rename\"\n      icon=\"/icons/rename.png\">\n      <category>POPUP</category>\n      <filter-id>user_canedit</filter-id>\n      <filter-id>mutable_document</filter-id>\n      <filter id=\"canRenamePopup\">\n        <rule grant=\"true\">\n          <condition>#{popupHelper.isCurrentContainerDirectParent}</condition>\n        </rule>\n      </filter>\n    </action>\n\n    <action id=\"POPUP_DEL\" link=\"javascript:doDelete\" label=\"command.trashDocs\"\n      icon=\"/icons/delete_red.png\">\n      <category>POPUP</category>\n      <filter id=\"canDeletePopup\">\n        <rule grant=\"true\">\n          <condition>#{deleteActions.getCanDeleteItem(container)}</condition>\n        </rule>\n      </filter>\n    </action>\n\n    <action id=\"POPUP_RIGHTS\" link=\"javascript:doAccessRights\" order=\"10\"\n      label=\"action.view.rights\" icon=\"/icons/group.png\">\n      <category>POPUP</category>\n      <filter-id>rights</filter-id>\n    </action>\n\n    <action id=\"POPUP_DOWNLOAD\" link=\"javascript:doDownload\" order=\"70\"\n      label=\"command.download\" icon=\"/icons/icone_download.gif\">\n      <category>POPUP</category>\n      <filter id=\"hasContent\">\n        <rule grant=\"true\">\n          <schema>file</schema>\n        </rule>\n      </filter>\n      <filter id=\"documentHasBlobAttached\">\n        <rule grant=\"true\">\n          <condition>\n            #{popupHelper.isDocumentHasBlobAttached(document)}\n          </condition>\n        </rule>\n      </filter>\n    </action>\n\n    <action id=\"POPUP_WORKFLOW\" link=\"javascript:doWorkflow\" order=\"90\"\n      label=\"action.view.review\" icon=\"/icons/start_workflow.png\">\n      <category>POPUP</category>\n      <filter-id>jbpm-process</filter-id>\n      <filter-id>mutable_document</filter-id>\n    </action>\n\n    <action id=\"POPUP_DOCUMENT_LOCK\" link=\"javascript:doLock\" order=\"110\"\n      label=\"command.lock\" icon=\"/icons/lock.gif\">\n      <category>POPUP</category>\n      <filter-id>mutable_document</filter-id>\n      <filter id=\"popup_can_lock_doc\">\n        <rule grant=\"true\">\n          <permission>Write</permission>\n          <condition>#{lockActions.getCanLockDoc(document)}</condition>\n        </rule>\n        <rule grant=\"false\">\n          <facet>Folderish</facet>\n        </rule>\n      </filter>\n    </action>\n\n    <action id=\"POPUP_DOCUMENT_UNLOCK\" link=\"javascript:doUnlock\" order=\"130\"\n      label=\"command.unlock\" icon=\"/icons/lock.gif\">\n      <category>POPUP</category>\n      <filter-id>mutable_document</filter-id>\n      <filter id=\"popup_can_unlock_doc\">\n        <rule grant=\"true\">\n          <condition>#{lockActions.getCanUnlockDoc(document)}</condition>\n        </rule>\n        <rule grant=\"false\">\n          <facet>Folderish</facet>\n        </rule>\n      </filter>\n    </action>\n\n    <action id=\"POPUP_sendEmail\" link=\"javascript:doSendEmail\" order=\"150\"\n      label=\"action.email.document\" icon=\"/icons/mail.gif\">\n      <category>POPUP</category>\n      <filter-id>not_folder</filter-id>\n    </action>\n\n    <!-- Actions for the document lock/unlock -->\n\n    <action id=\"DOCUMENT_LOCK\" link=\"#{lockActions.lockCurrentDocument}\"\n      label=\"command.lock\" icon=\"\">\n      <category>EDIT_ACTIONS</category>\n      <filter-id>mutable_document</filter-id>\n      <filter-id>can_lock</filter-id>\n    </action>\n\n    <action id=\"DOCUMENT_UNLOCK\" link=\"#{lockActions.unlockCurrentDocument}\"\n      label=\"command.unlock\" icon=\"\">\n      <category>EDIT_ACTIONS</category>\n      <filter-id>mutable_document</filter-id>\n      <filter-id>can_unlock</filter-id>\n    </action>\n\n    <!-- live edit new document creation links -->\n\n    <action id=\"le_create_msword\" type=\"bare_link\"\n      link=\"#{nxd:liveCreateUrl('application/msword', 'File', 'file', 'content', 'filename')}\"\n      order=\"40\" label=\"action.liveedit.create.msword\" icon=\"/icons/word.png\">\n      <category>LIVEEDIT_CREATE_ACTIONS</category>\n      <filter-id>is_le_create_msword</filter-id>\n      <properties>\n        <property name=\"cacheLink\">true</property>\n      </properties>\n    </action>\n\n    <action id=\"le_create_msexcel\" type=\"bare_link\"\n      link=\"#{nxd:liveCreateUrl('application/vnd.ms-excel', 'File', 'file', 'content', 'filename')}\"\n      order=\"50\" label=\"action.liveedit.create.msexcel\" icon=\"/icons/xls.png\">\n      <category>LIVEEDIT_CREATE_ACTIONS</category>\n      <filter-id>is_le_create_msexcel</filter-id>\n      <properties>\n        <property name=\"cacheLink\">true</property>\n      </properties>\n    </action>\n\n    <action id=\"le_create_mspowerpoint\" type=\"bare_link\"\n      link=\"#{nxd:liveCreateUrl('application/vnd.ms-powerpoint', 'File', 'file', 'content', 'filename')}\"\n      order=\"60\" label=\"action.liveedit.create.mspowerpoint\" icon=\"/icons/ppt.png\">\n      <category>LIVEEDIT_CREATE_ACTIONS</category>\n      <filter-id>is_le_create_mspowerpoint</filter-id>\n      <properties>\n        <property name=\"cacheLink\">true</property>\n      </properties>\n    </action>\n\n    <action id=\"le_create_odwriter\" type=\"bare_link\"\n      link=\"#{nxd:liveCreateUrl('application/vnd.oasis.opendocument.text', 'File', 'file', 'content', 'filename')}\"\n      order=\"80\" label=\"action.liveedit.create.writer\" icon=\"/icons/odt.png\">\n      <category>LIVEEDIT_CREATE_ACTIONS</category>\n      <filter-id>is_le_create_odwriter</filter-id>\n      <properties>\n        <property name=\"cacheLink\">true</property>\n      </properties>\n    </action>\n\n    <action id=\"le_create_odcalc\" type=\"bare_link\"\n      link=\"#{nxd:liveCreateUrl('application/vnd.oasis.opendocument.spreadsheet', 'File', 'file', 'content', 'filename')}\"\n      order=\"100\" label=\"action.liveedit.create.calc\" icon=\"/icons/ods.png\">\n      <category>LIVEEDIT_CREATE_ACTIONS</category>\n      <filter-id>is_le_create_odcalc</filter-id>\n      <properties>\n        <property name=\"cacheLink\">true</property>\n      </properties>\n    </action>\n\n    <action id=\"le_create_odimpress\" type=\"bare_link\"\n      link=\"#{nxd:liveCreateUrl('application/vnd.oasis.opendocument.presentation', 'File', 'file', 'content', 'filename')}\"\n      order=\"120\" label=\"action.liveedit.create.impress\" icon=\"/icons/odp.png\">\n      <category>LIVEEDIT_CREATE_ACTIONS</category>\n      <filter-id>is_le_create_odimpress</filter-id>\n      <properties>\n        <property name=\"cacheLink\">true</property>\n      </properties>\n    </action>\n\n    <!-- Local Configuration -->\n    <action id=\"TAB_LOCAL_CONFIGURATION\" link=\"/incl/tabs/local_configuration.xhtml\"\n      order=\"70\" label=\"action.view.local.configuration\" icon=\"/icons/file.gif\">\n      <category>TAB_MANAGE_sub_tab</category>\n      <filter-id>has_local_configuration_available</filter-id>\n      <properties>\n        <property name=\"ajaxSupport\">true</property>\n      </properties>\n    </action>\n\n    <!-- actions on document create and edit pages -->\n\n    <action id=\"CREATE_DOCUMENT\" link=\"#{documentActions.saveDocument}\"\n      order=\"0\" label=\"command.create\">\n      <category>CREATE_DOCUMENT_FORM</category>\n      <filter-id>is_not_creating_workspace</filter-id>\n    </action>\n\n    <action id=\"CREATE_WORKSPACE\" link=\"#{documentTemplatesActions.createDocumentFromTemplate}\"\n      order=\"0\" label=\"command.create\">\n      <category>CREATE_DOCUMENT_FORM</category>\n      <filter-id>is_creating_workspace</filter-id>\n    </action>\n\n    <action id=\"CANCEL_DOCUMENT_CREATION\" link=\"#{navigationContext.goBack()}\"\n      order=\"50\" label=\"command.cancel\" immediate=\"true\">\n      <category>CREATE_DOCUMENT_FORM</category>\n      <properties>\n        <property name=\"ajaxSupport\">true</property>\n      </properties>\n    </action>\n\n    <action id=\"EDIT_CURRENT_DOCUMENT\" link=\"#{documentActions.updateCurrentDocument}\"\n      order=\"0\" label=\"command.save\">\n      <category>EDIT_DOCUMENT_FORM</category>\n      <properties>\n        <property name=\"ajaxSupport\">true</property>\n      </properties>\n    </action>\n\n    <action id=\"EDIT_CURRENT_DOCUMENT_AND_STAY\" enabled=\"false\"\n      link=\"#{documentActions.updateDocument(currentDocument, true)}\" order=\"10\"\n      label=\"command.save.and.stay\">\n      <category>EDIT_DOCUMENT_FORM</category>\n      <properties>\n        <property name=\"ajaxSupport\">true</property>\n      </properties>\n    </action>\n\n    <!-- end of actions on document create and edit pages -->\n\n    <!-- footer links -->\n\n    <action id=\"footer_contact_us\"\n      link=\"//www.nuxeo.com/about/contact?utm_source=dm&amp;utm_medium=pages-footer&amp;utm_campaign=products\"\n      label=\"label.footer.contactUs\" order=\"10\" type=\"bare_link\">\n      <category>FOOTER</category>\n      <properties>\n        <property name=\"target\">_blank</property>\n      </properties>\n    </action>\n\n    <action id=\"footer_blogs\"\n      link=\"//www.nuxeo.com/blog?utm_source=dm&amp;utm_medium=pages-footer&amp;utm_campaign=products\"\n      label=\"label.footer.blogs\" order=\"20\" type=\"bare_link\">\n      <category>FOOTER</category>\n      <properties>\n        <property name=\"target\">_blank</property>\n      </properties>\n    </action>\n\n    <action id=\"footer_community\"\n      link=\"//community.nuxeo.com/?utm_source=dm&amp;utm_medium=pages-footer&amp;utm_campaign=products\"\n      label=\"label.footer.community\" order=\"30\" type=\"bare_link\">\n      <category>FOOTER</category>\n      <properties>\n        <property name=\"target\">_blank</property>\n      </properties>\n    </action>\n\n    <action id=\"footer_answers\"\n      link=\"//answers.nuxeo.com/?utm_source=dm&amp;utm_medium=pages-footer&amp;utm_campaign=products\"\n      label=\"label.footer.answers\" order=\"40\" type=\"bare_link\">\n      <category>FOOTER</category>\n      <properties>\n        <property name=\"target\">_blank</property>\n      </properties>\n    </action>\n\n    <action id=\"footer_documentation\"\n      link=\"//doc.nuxeo.com/?utm_source=dm&amp;utm_medium=pages-footer&amp;utm_campaign=products\"\n      label=\"label.footer.documentation\" order=\"50\" type=\"bare_link\">\n      <category>FOOTER</category>\n      <properties>\n        <property name=\"target\">_blank</property>\n      </properties>\n    </action>\n\n    <action id=\"footer_twitter\"\n      link=\"//twitter.com/nuxeo/?utm_source=dm&amp;utm_medium=pages-footer&amp;utm_campaign=products\"\n      label=\"Twitter\" order=\"60\" type=\"bare_link\">\n      <category>FOOTER</category>\n      <properties>\n        <property name=\"styleClass\">twitt</property>\n        <property name=\"labelStyleClass\">footerLabel</property>\n        <property name=\"target\">_blank</property>\n      </properties>\n    </action>\n\n    <action id=\"footer_linkedin\"\n      link=\"//www.linkedin.com/groupRegistration?gid=43314&amp;utm_source=dm&amp;utm_medium=pages-footer&amp;utm_campaign=products\"\n      label=\"LinkedIn\" order=\"70\" type=\"bare_link\">\n      <category>FOOTER</category>\n      <properties>\n        <property name=\"styleClass\">linkedin</property>\n        <property name=\"labelStyleClass\">footerLabel</property>\n        <property name=\"target\">_blank</property>\n      </properties>\n    </action>\n\n    <!-- end of footer links -->\n\n    <action id=\"bulkImportDocuments\" order=\"0\" label=\"label.bulk.import.documents\"\n      type=\"fancybox\">\n      <category>IMPORT_ACTIONS</category>\n      <properties>\n        <property name=\"include\">/incl/bulk_import_box.xhtml</property>\n        <property name=\"dropContext\">IMPORT_DOCUMENTS</property>\n        <property name=\"autoDimensions\">false</property>\n        <property name=\"width\">70%</property>\n        <property name=\"height\">95%</property>\n        <property name=\"modal\">true</property>\n        <property name=\"scrolling\">auto</property>\n        <property name=\"ajaxSupport\">true</property>\n      </properties>\n    </action>\n\n  </extension>\n\n  <extension target=\"org.nuxeo.ecm.platform.actions.ActionService\"\n    point=\"filters\">\n\n    <filter id=\"view\">\n      <rule grant=\"false\">\n        <facet>Folderish</facet>\n      </rule>\n    </filter>\n\n    <filter id=\"create\">\n      <rule grant=\"true\">\n        <permission>AddChildren</permission>\n        <facet>Folderish</facet>\n        <type>Workspace</type>\n        <type>TemplateRoot</type>\n        <type>Section</type>\n        <type>Folder</type>\n        <type>OrderedFolder</type>\n      </rule>\n      <rule grant=\"false\">\n        <condition>\n          #{typeManager.getAllowedSubTypes(document.getType(),document).size()==0}\n        </condition>\n      </rule>\n    </filter>\n\n    <filter id=\"importFile\">\n      <rule grant=\"true\">\n        <permission>AddChildren</permission>\n        <facet>Folderish</facet>\n        <type>Workspace</type>\n        <type>Folder</type>\n        <type>OrderedFolder</type>\n        <condition>\n          #{typeManager.getAllowedSubTypes(document.getType(),\n          document).size()\n          > 0}\n        </condition>\n      </rule>\n    </filter>\n\n    <filter id=\"edit\">\n      <rule grant=\"false\">\n        <type>Root</type>\n        <type>Domain</type>\n        <type>WorkspaceRoot</type>\n        <type>Workspace</type>\n      </rule>\n      <rule grant=\"true\">\n        <permission>Write</permission>\n      </rule>\n    </filter>\n\n    <filter id=\"user_canedit\">\n      <rule grant=\"true\">\n        <permission>Write</permission>\n      </rule>\n    </filter>\n\n    <filter id=\"workspace_edit\">\n      <rule grant=\"true\">\n        <type>Domain</type>\n        <type>WorkspaceRoot</type>\n        <type>Workspace</type>\n        <permission>Write</permission>\n      </rule>\n    </filter>\n\n    <filter id=\"metadata_edit\">\n      <rule grant=\"false\">\n        <type>Root</type>\n      </rule>\n      <rule grant=\"true\">\n        <permission>Write</permission>\n      </rule>\n    </filter>\n\n    <!-- deprecated, use mutable_document instead -->\n    <filter id=\"cannotEdit\">\n      <rule grant=\"false\">\n        <type>Root</type>\n      </rule>\n      <rule grant=\"false\">\n        <condition>!document.isProxy()</condition>\n        <permission>Write</permission>\n      </rule>\n      <rule grant=\"false\">\n        <condition>!document.isProxy()</condition>\n        <permission>Manage everything</permission>\n      </rule>\n    </filter>\n\n    <filter id=\"anonymous\">\n      <rule grant=\"true\">\n        <condition>#{currentUser.anonymous}</condition>\n      </rule>\n    </filter>\n\n    <filter id=\"not_anonymous\">\n      <rule grant=\"false\">\n        <condition>#{currentUser.anonymous}</condition>\n      </rule>\n    </filter>\n\n    <filter id=\"not_transient_user\">\n      <rule grant=\"false\">\n        <condition>#{currentUser.transient}</condition>\n      </rule>\n    </filter>\n\n    <filter id=\"view_content\">\n      <rule grant=\"true\">\n        <permission>ReadChildren</permission>\n        <facet>Folderish</facet>\n      </rule>\n    </filter>\n\n    <filter id=\"valid_for_publish\">\n      <rule grant=\"true\">\n        <condition>\n          document.getCurrentLifeCycleState().equals(\"approved\")\n        </condition>\n      </rule>\n    </filter>\n\n    <filter id=\"manage\">\n      <rule grant=\"true\">\n        <permission>Manage everything</permission>\n      </rule>\n    </filter>\n\n    <filter id=\"not_review_documents\">\n      <rule grant=\"false\">\n        <condition>\n          document.getCurrentLifeCycleState().equals(\"review\")\n        </condition>\n      </rule>\n    </filter>\n\n    <filter id=\"mutable_document\">\n      <rule grant=\"false\">\n        <facet>Immutable</facet>\n      </rule>\n      <rule grant=\"false\">\n        <type>Root</type>\n      </rule>\n      <rule grant=\"false\">\n        <condition>\n          document.isTrashed()\n        </condition>\n      </rule>\n    </filter>\n\n    <filter id=\"updatable_main_blob\">\n      <rule grant=\"true\">\n        <condition>#{documentActions.canUpdateMainBlob}</condition>\n      </rule>\n    </filter>\n\n    <filter id=\"delete_content\">\n      <rule grant=\"true\">\n        <permission>RemoveChildren</permission>\n        <facet>Folderish</facet>\n      </rule>\n    </filter>\n\n    <filter id=\"rights\">\n      <rule grant=\"true\">\n        <permission>WriteSecurity</permission>\n        <facet>Folderish</facet>\n      </rule>\n    </filter>\n\n    <filter id=\"currentWorkListIsNotEmpty\">\n      <rule grant=\"false\">\n        <condition>#{clipboardActions.workListEmpty}</condition>\n      </rule>\n    </filter>\n\n    <filter id=\"canPasteCurrentWorkList\">\n      <rule grant=\"true\">\n        <condition>#{clipboardActions.canPasteWorkList}</condition>\n      </rule>\n    </filter>\n\n    <filter id=\"canMoveWorkingList\">\n      <rule grant=\"true\">\n        <condition>#{clipboardActions.canMoveWorkingList}</condition>\n      </rule>\n    </filter>\n\n    <filter id=\"canCopyFromCurrentSelection\">\n      <rule grant=\"true\">\n        <condition>#{clipboardActions.canCopy}</condition>\n      </rule>\n    </filter>\n\n    <filter id=\"canEditCurrentSelection\">\n      <rule grant=\"true\">\n        <condition>#{bulkEditActions.canEdit}</condition>\n      </rule>\n    </filter>\n\n    <filter id=\"can_lock\">\n      <rule grant=\"true\">\n        <permission>Write</permission>\n        <condition>#{lockActions.canLockCurrentDoc}</condition>\n      </rule>\n      <rule grant=\"false\">\n        <facet>Folderish</facet>\n      </rule>\n    </filter>\n\n    <filter id=\"can_unlock\">\n      <rule grant=\"true\">\n        <condition>#{lockActions.canUnlockCurrentDoc}</condition>\n      </rule>\n      <rule grant=\"false\">\n        <facet>Folderish</facet>\n      </rule>\n    </filter>\n\n    <filter id=\"only_for_manager\">\n      <rule grant=\"true\">\n        <condition>#{userSession.administrator}</condition>\n      </rule>\n    </filter>\n\n    <filter id=\"hasAttachedFiles\">\n      <rule grant=\"true\">\n        <schema>files</schema>\n      </rule>\n    </filter>\n\n    <filter id=\"type_section\">\n      <rule grant=\"false\">\n        <type>Section</type>\n      </rule>\n    </filter>\n\n    <filter id=\"denyFilesTab\">\n      <rule grant=\"false\">\n        <type>WebSite</type>\n        <type>WebPage</type>\n        <type>BlogSite</type>\n        <type>BlogPost</type>\n      </rule>\n    </filter>\n\n    <filter id=\"inSection\">\n      <rule grant=\"true\">\n        <type>Section</type>\n        <type>SectionRoot</type>\n      </rule>\n    </filter>\n\n    <filter id=\"outSection\">\n      <rule grant=\"false\">\n        <type>Section</type>\n        <type>SectionRoot</type>\n      </rule>\n    </filter>\n\n    <filter id=\"not_readonly\">\n      <rule grant=\"true\">\n        <condition>#{notReadOnly}</condition>\n      </rule>\n    </filter>\n\n    <filter id=\"orderable\">\n      <rule grant=\"true\">\n        <facet>Orderable</facet>\n      </rule>\n    </filter>\n\n    <filter id=\"not_orderable\">\n      <rule grant=\"false\">\n        <facet>Orderable</facet>\n      </rule>\n    </filter>\n\n    <filter id=\"canMoveToTop\">\n      <rule grant=\"true\">\n        <condition>#{orderableDocumentActions.canMoveToTop}</condition>\n        <facet>Orderable</facet>\n      </rule>\n    </filter>\n\n    <filter id=\"canMoveUp\">\n      <rule grant=\"true\">\n        <condition>#{orderableDocumentActions.canMoveUp}</condition>\n        <facet>Orderable</facet>\n      </rule>\n    </filter>\n\n    <filter id=\"canMoveDown\">\n      <rule grant=\"true\">\n        <condition>#{orderableDocumentActions.canMoveDown}</condition>\n        <facet>Orderable</facet>\n      </rule>\n    </filter>\n\n    <filter id=\"canMoveToBottom\">\n      <rule grant=\"true\">\n        <condition>#{orderableDocumentActions.canMoveToBottom}</condition>\n        <facet>Orderable</facet>\n      </rule>\n    </filter>\n\n    <filter id=\"has_local_configuration_available\">\n      <rule grant=\"false\">\n        <condition>\n          #{webActions.getActionsList('LOCAL_CONFIGURATION').isEmpty()}\n        </condition>\n      </rule>\n      <rule grant=\"true\">\n        <permission>Manage everything</permission>\n        <facet>SuperSpace</facet>\n      </rule>\n    </filter>\n\n    <filter id=\"is_creating_workspace\">\n      <rule grant=\"true\">\n        <condition>#{changeableDocument.type == 'Workspace'}</condition>\n      </rule>\n    </filter>\n\n    <filter id=\"is_not_creating_workspace\">\n      <rule grant=\"false\">\n        <condition>#{changeableDocument.type == 'Workspace'}</condition>\n      </rule>\n    </filter>\n\n    <!-- LiveEdit filter -->\n    <filter id=\"is_le_create_msword\">\n      <rule grant=\"true\">\n        <condition>#{msword_liveeditable}</condition>\n      </rule>\n    </filter>\n\n    <filter id=\"is_le_create_msexcel\">\n      <rule grant=\"true\">\n        <condition>#{msexcel_liveeditable}</condition>\n      </rule>\n    </filter>\n\n    <filter id=\"is_le_create_mspowerpoint\">\n      <rule grant=\"true\">\n        <condition>#{mspowerpoint_liveeditable}</condition>\n      </rule>\n    </filter>\n\n    <filter id=\"is_le_create_odwriter\">\n      <rule grant=\"true\">\n        <condition>#{ootext_liveeditable}</condition>\n      </rule>\n    </filter>\n\n    <filter id=\"is_le_create_odcalc\">\n      <rule grant=\"true\">\n        <condition>#{oocalc_liveeditable}</condition>\n      </rule>\n    </filter>\n\n    <filter id=\"is_le_create_odimpress\">\n      <rule grant=\"true\">\n        <condition>#{oopresentation_liveeditable}</condition>\n      </rule>\n    </filter>\n\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/actions-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentation": "\n    @since 5.8, global widgets used to render actions/tabs in\n    default UI.\n  \n",
          "documentationHtml": "<p>\n&#64;since 5.8, global widgets used to render actions/tabs in\ndefault UI.\n</p><p></p>",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.forms.layout.WebLayoutManager--widgets",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.webapp/org.nuxeo.ecm.webapp.core/org.nuxeo.ecm.platform.action.widgets/Contributions/org.nuxeo.ecm.platform.action.widgets--widgets",
              "id": "org.nuxeo.ecm.platform.action.widgets--widgets",
              "registrationOrder": 15,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.forms.layout.WebLayoutManager",
                "name": "org.nuxeo.ecm.platform.forms.layout.WebLayoutManager",
                "type": "service"
              },
              "version": "2021.57.3",
              "xml": "<extension point=\"widgets\" target=\"org.nuxeo.ecm.platform.forms.layout.WebLayoutManager\">\n\n    <widget name=\"documentTabs\" type=\"tabs\">\n      <properties mode=\"view\">\n        <property name=\"actionsDisplay\">links</property>\n        <property name=\"addForm\">true</property>\n        <property name=\"useAjaxForm\">#{useAjaxTabs}</property>\n        <property name=\"actions\">#{tabsActionsList}</property>\n        <property name=\"currentTabAction\">#{webActions.currentTabAction}</property>\n      </properties>\n    </widget>\n\n    <widget name=\"documentSubTabs\" type=\"tabs\">\n      <properties mode=\"view\">\n        <property name=\"actionsDisplay\">links</property>\n        <property name=\"addForm\">true</property>\n        <property name=\"useAjaxForm\">#{useAjaxTabs}</property>\n        <property name=\"actions\">#{subTabsActionsList}</property>\n        <property name=\"currentTabAction\">#{webActions.currentSubTabAction}</property>\n        <property name=\"styleClass\">subtabsBar</property>\n      </properties>\n    </widget>\n\n    <widget name=\"documentActionsUpperButtons\" type=\"documentActionsWithForms\">\n      <properties mode=\"view\">\n        <property name=\"category\">DOCUMENT_UPPER_ACTION</property>\n        <property name=\"actionsDisplay\">icons</property>\n        <property name=\"overallDisplay\">horizontal_block</property>\n        <property name=\"maxActionsNumber\">5</property>\n        <property name=\"styleClass\">globalActions contextActions</property>\n        <property name=\"actionStyleClass\">button</property>\n      </properties>\n    </widget>\n\n    <widget name=\"documentActionSubviewUpperList\" type=\"documentActionsWithForms\">\n      <properties mode=\"view\">\n        <property name=\"category\">\n          SUBVIEW_UPPER_LIST, SUBVIEW_UPPER_LIST_HREF\n        </property>\n        <property name=\"actionsDisplay\">links</property>\n        <property name=\"overallDisplay\">horizontal_block</property>\n        <property name=\"maxActionsNumber\">5</property>\n        <property name=\"styleClass\">action_bar</property>\n        <property name=\"actionStyleClass\">button</property>\n      </properties>\n    </widget>\n\n    <widget name=\"headerSearch\" type=\"documentActionsWithForms\">\n      <properties mode=\"view\">\n        <property name=\"category\">SEARCH_ACTIONS</property>\n        <property name=\"overallDisplay\">horizontal_block</property>\n        <property name=\"styleClass\">userSearchBlock</property>\n        <property name=\"actionStyleClass\">advancedSearchLink</property>\n      </properties>\n    </widget>\n\n    <widget name=\"mainTabs\" type=\"documentActionsWithForms\">\n      <properties mode=\"view\">\n        <property name=\"category\">MAIN_TABS</property>\n        <property name=\"overallDisplay\">menu</property>\n        <property name=\"styleClass\">mainTabs</property>\n        <property name=\"currentAction\">\n          #{webActions.getCurrentTabAction('MAIN_TABS')}\n        </property>\n      </properties>\n    </widget>\n\n    <widget name=\"userMenuActions\" type=\"documentActionsWithForms\">\n      <labels>\n        <label mode=\"any\">#{messages['label.loggedAsUser']}</label>\n      </labels>\n      <properties mode=\"view\">\n        <property name=\"category\">USER_MENU_ACTIONS</property>\n        <property name=\"actionsDisplay\">links</property>\n        <property name=\"overallDisplay\">rollover_menu</property>\n        <property name=\"styleClass\">userMenuActions</property>\n        <property name=\"labelStyleClass\">#{currentUser.name}</property>\n      </properties>\n    </widget>\n\n    <widget name=\"userActions\" type=\"documentActionsWithForms\">\n      <properties mode=\"view\">\n        <property name=\"category\">\n          USER_SERVICES, USER_SERVICES_BOTTOM\n        </property>\n        <property name=\"actionsDisplay\">links</property>\n        <property name=\"overallDisplay\">horizontal_block</property>\n        <property name=\"styleClass\">userActions</property>\n      </properties>\n    </widget>\n\n    <widget name=\"footerLinks\" type=\"documentActionsWithForms\">\n      <properties mode=\"view\">\n        <property name=\"category\">FOOTER</property>\n        <property name=\"overallDisplay\">horizontal_block</property>\n        <property name=\"separator\"> | </property>\n        <property name=\"styleClass\">nuxLinks</property>\n      </properties>\n    </widget>\n\n    <widget name=\"documentEditButtons\" type=\"documentActions\">\n      <properties mode=\"view\">\n        <property name=\"actionsDisplay\">buttons</property>\n        <property name=\"category\">EDIT_DOCUMENT_FORM</property>\n        <property name=\"overallDisplay\">horizontal_block</property>\n        <property name=\"actionStyleClass\">button</property>\n      </properties>\n    </widget>\n\n    <widget name=\"documentCreateButtons\" type=\"documentActions\">\n      <properties mode=\"view\">\n        <property name=\"actionsDisplay\">buttons</property>\n        <property name=\"category\">CREATE_DOCUMENT_FORM</property>\n        <property name=\"overallDisplay\">horizontal_block</property>\n        <property name=\"actionStyleClass\">button</property>\n      </properties>\n    </widget>\n\n    <widget name=\"breadcrumbActions\" type=\"documentActionsWithForms\">\n      <properties mode=\"view\">\n        <property name=\"category\">LIVEEDIT_CREATE_ACTIONS,BREADCRUMB_ACTIONS</property>\n        <property name=\"actionsDisplay\">icons</property>\n        <property name=\"overallDisplay\">horizontal_block</property>\n        <property name=\"styleClass\">action_bar</property>\n        <property name=\"actionStyleClass\">button</property>\n      </properties>\n    </widget>\n\n    <widget name=\"importActions\" type=\"documentActionsWithForms\">\n      <properties mode=\"view\">\n        <property name=\"category\">IMPORT_ACTIONS</property>\n        <property name=\"actionsDisplay\">buttons</property>\n        <property name=\"overallDisplay\">horizontal_block</property>\n        <property name=\"styleClass\">action_bar</property>\n        <property name=\"actionStyleClass\">importButton</property>\n      </properties>\n    </widget>\n\n    <widget name=\"treeExplorerTabs\" type=\"documentTabsWithForms\">\n      <properties mode=\"view\">\n        <property name=\"category\">TREE_EXPLORER</property>\n        <property name=\"actionsDisplay\">icons</property>\n        <property name=\"hideSingleTab\">false</property>\n        <property name=\"useAjaxForm\">true</property>\n      </properties>\n    </widget>\n\n    <widget name=\"blobActions\" type=\"actions\">\n      <properties mode=\"view\">\n        <property name=\"actionsDisplay\">icons</property>\n        <property name=\"overallDisplay\">horizontal_block</property>\n      </properties>\n    </widget>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.webapp/org.nuxeo.ecm.webapp.core/org.nuxeo.ecm.platform.action.widgets",
          "name": "org.nuxeo.ecm.platform.action.widgets",
          "requirements": [],
          "resolutionOrder": 673,
          "services": [],
          "startOrder": 254,
          "version": "2021.57.3",
          "xmlFileContent": "<component name=\"org.nuxeo.ecm.platform.action.widgets\">\n\n  <documentation>\n    @since 5.8, global widgets used to render actions/tabs in\n    default UI.\n  </documentation>\n\n  <extension target=\"org.nuxeo.ecm.platform.forms.layout.WebLayoutManager\"\n    point=\"widgets\">\n\n    <widget name=\"documentTabs\" type=\"tabs\">\n      <properties mode=\"view\">\n        <property name=\"actionsDisplay\">links</property>\n        <property name=\"addForm\">true</property>\n        <property name=\"useAjaxForm\">#{useAjaxTabs}</property>\n        <property name=\"actions\">#{tabsActionsList}</property>\n        <property name=\"currentTabAction\">#{webActions.currentTabAction}</property>\n      </properties>\n    </widget>\n\n    <widget name=\"documentSubTabs\" type=\"tabs\">\n      <properties mode=\"view\">\n        <property name=\"actionsDisplay\">links</property>\n        <property name=\"addForm\">true</property>\n        <property name=\"useAjaxForm\">#{useAjaxTabs}</property>\n        <property name=\"actions\">#{subTabsActionsList}</property>\n        <property name=\"currentTabAction\">#{webActions.currentSubTabAction}</property>\n        <property name=\"styleClass\">subtabsBar</property>\n      </properties>\n    </widget>\n\n    <widget name=\"documentActionsUpperButtons\" type=\"documentActionsWithForms\">\n      <properties mode=\"view\">\n        <property name=\"category\">DOCUMENT_UPPER_ACTION</property>\n        <property name=\"actionsDisplay\">icons</property>\n        <property name=\"overallDisplay\">horizontal_block</property>\n        <property name=\"maxActionsNumber\">5</property>\n        <property name=\"styleClass\">globalActions contextActions</property>\n        <property name=\"actionStyleClass\">button</property>\n      </properties>\n    </widget>\n\n    <widget name=\"documentActionSubviewUpperList\" type=\"documentActionsWithForms\">\n      <properties mode=\"view\">\n        <property name=\"category\">\n          SUBVIEW_UPPER_LIST, SUBVIEW_UPPER_LIST_HREF\n        </property>\n        <property name=\"actionsDisplay\">links</property>\n        <property name=\"overallDisplay\">horizontal_block</property>\n        <property name=\"maxActionsNumber\">5</property>\n        <property name=\"styleClass\">action_bar</property>\n        <property name=\"actionStyleClass\">button</property>\n      </properties>\n    </widget>\n\n    <widget name=\"headerSearch\" type=\"documentActionsWithForms\">\n      <properties mode=\"view\">\n        <property name=\"category\">SEARCH_ACTIONS</property>\n        <property name=\"overallDisplay\">horizontal_block</property>\n        <property name=\"styleClass\">userSearchBlock</property>\n        <property name=\"actionStyleClass\">advancedSearchLink</property>\n      </properties>\n    </widget>\n\n    <widget name=\"mainTabs\" type=\"documentActionsWithForms\">\n      <properties mode=\"view\">\n        <property name=\"category\">MAIN_TABS</property>\n        <property name=\"overallDisplay\">menu</property>\n        <property name=\"styleClass\">mainTabs</property>\n        <property name=\"currentAction\">\n          #{webActions.getCurrentTabAction('MAIN_TABS')}\n        </property>\n      </properties>\n    </widget>\n\n    <widget name=\"userMenuActions\" type=\"documentActionsWithForms\">\n      <labels>\n        <label mode=\"any\">#{messages['label.loggedAsUser']}</label>\n      </labels>\n      <properties mode=\"view\">\n        <property name=\"category\">USER_MENU_ACTIONS</property>\n        <property name=\"actionsDisplay\">links</property>\n        <property name=\"overallDisplay\">rollover_menu</property>\n        <property name=\"styleClass\">userMenuActions</property>\n        <property name=\"labelStyleClass\">#{currentUser.name}</property>\n      </properties>\n    </widget>\n\n    <widget name=\"userActions\" type=\"documentActionsWithForms\">\n      <properties mode=\"view\">\n        <property name=\"category\">\n          USER_SERVICES, USER_SERVICES_BOTTOM\n        </property>\n        <property name=\"actionsDisplay\">links</property>\n        <property name=\"overallDisplay\">horizontal_block</property>\n        <property name=\"styleClass\">userActions</property>\n      </properties>\n    </widget>\n\n    <widget name=\"footerLinks\" type=\"documentActionsWithForms\">\n      <properties mode=\"view\">\n        <property name=\"category\">FOOTER</property>\n        <property name=\"overallDisplay\">horizontal_block</property>\n        <property name=\"separator\"> | </property>\n        <property name=\"styleClass\">nuxLinks</property>\n      </properties>\n    </widget>\n\n    <widget name=\"documentEditButtons\" type=\"documentActions\">\n      <properties mode=\"view\">\n        <property name=\"actionsDisplay\">buttons</property>\n        <property name=\"category\">EDIT_DOCUMENT_FORM</property>\n        <property name=\"overallDisplay\">horizontal_block</property>\n        <property name=\"actionStyleClass\">button</property>\n      </properties>\n    </widget>\n\n    <widget name=\"documentCreateButtons\" type=\"documentActions\">\n      <properties mode=\"view\">\n        <property name=\"actionsDisplay\">buttons</property>\n        <property name=\"category\">CREATE_DOCUMENT_FORM</property>\n        <property name=\"overallDisplay\">horizontal_block</property>\n        <property name=\"actionStyleClass\">button</property>\n      </properties>\n    </widget>\n\n    <widget name=\"breadcrumbActions\" type=\"documentActionsWithForms\">\n      <properties mode=\"view\">\n        <property name=\"category\">LIVEEDIT_CREATE_ACTIONS,BREADCRUMB_ACTIONS</property>\n        <property name=\"actionsDisplay\">icons</property>\n        <property name=\"overallDisplay\">horizontal_block</property>\n        <property name=\"styleClass\">action_bar</property>\n        <property name=\"actionStyleClass\">button</property>\n      </properties>\n    </widget>\n\n    <widget name=\"importActions\" type=\"documentActionsWithForms\">\n      <properties mode=\"view\">\n        <property name=\"category\">IMPORT_ACTIONS</property>\n        <property name=\"actionsDisplay\">buttons</property>\n        <property name=\"overallDisplay\">horizontal_block</property>\n        <property name=\"styleClass\">action_bar</property>\n        <property name=\"actionStyleClass\">importButton</property>\n      </properties>\n    </widget>\n\n    <widget name=\"treeExplorerTabs\" type=\"documentTabsWithForms\">\n      <properties mode=\"view\">\n        <property name=\"category\">TREE_EXPLORER</property>\n        <property name=\"actionsDisplay\">icons</property>\n        <property name=\"hideSingleTab\">false</property>\n        <property name=\"useAjaxForm\">true</property>\n      </properties>\n    </widget>\n\n    <widget name=\"blobActions\" type=\"actions\">\n      <properties mode=\"view\">\n        <property name=\"actionsDisplay\">icons</property>\n        <property name=\"overallDisplay\">horizontal_block</property>\n      </properties>\n    </widget>\n\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/action-widgets-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.actions.ActionService--actions",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.webapp/org.nuxeo.ecm.webapp.core/org.nuxeo.ecm.automation.features.upload.jsf.contrib/Contributions/org.nuxeo.ecm.automation.features.upload.jsf.contrib--actions",
              "id": "org.nuxeo.ecm.automation.features.upload.jsf.contrib--actions",
              "registrationOrder": 30,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.actions.ActionService",
                "name": "org.nuxeo.ecm.platform.actions.ActionService",
                "type": "service"
              },
              "version": "2021.57.3",
              "xml": "<extension point=\"actions\" target=\"org.nuxeo.ecm.platform.actions.ActionService\">\n\n    <action help=\"desc.import.and.add.to.clipboard\" id=\"Chain.ImportClipboard\" label=\"label.import.and.add.to.clipboard\" link=\"\" order=\"10\">\n      <category>Clipboard_CLIPBOARD</category>\n      <filter-id>not_anonymous</filter-id>\n      <properties>\n        <property name=\"chainId\">Blob.ImportClipboard</property>\n      </properties>\n    </action>\n    <action help=\"desc.import.and.add.to.worklist\" id=\"Chain.ImportWorklist\" label=\"label.import.and.add.to.worklist\" link=\"\" order=\"10\">\n      <category>Clipboard_DEFAULT</category>\n      <filter-id>not_anonymous</filter-id>\n      <properties>\n        <property name=\"chainId\"><Blob class=\"ImportWorklist\"/></property>\n      </properties>\n    </action>\n\n    <action help=\"desc.smart.import.file\" id=\"Chain.FileManager.ImportInSeam\" label=\"label.smart.import\" link=\"\" order=\"10\">\n      <category>ContentView</category>\n      <filter-id>create</filter-id>\n      <properties>\n        <property name=\"chainId\">FileManager.ImportInSeam</property>\n      </properties>\n    </action>\n    <action help=\"desc.smart.import.with.md\" id=\"Chain.FileManager.ImportWithMetaDataInSeam\" label=\"label.smart.import.with.md\" link=\"/nuxeo/dndFormCollector.faces?schemas=dc&amp;layouts=dndEdit\" order=\"30\">\n      <category>ContentView</category>\n      <filter-id>create</filter-id>\n      <properties>\n        <property name=\"chainId\">FileManager.ImportWithMetaDataInSeam</property>\n        <property name=\"layout\">dndEdit</property>\n      </properties>\n    </action>\n\n    <action enabled=\"false\" help=\"desc.dnd.attach\" id=\"BlobHolder.Attach\" label=\"label.dnd.attach\" link=\"\" order=\"10\">\n      <category>mainBlob</category>\n      <filter-id>mutable_document</filter-id>\n      <filter-id>user_canedit</filter-id>\n      <filter-id>updatable_main_blob</filter-id>\n      <properties>\n        <property name=\"operationId\">BlobHolder.AttachOnCurrentDocument</property>\n      </properties>\n    </action>\n    <action help=\"desc.dnd.attach\" id=\"Chain.VersionAndAttachFile\" label=\"label.dnd.attach\" link=\"\" order=\"10\">\n      <category>mainBlob</category>\n      <filter-id>mutable_document</filter-id>\n      <filter-id>user_canedit</filter-id>\n      <filter-id>updatable_main_blob</filter-id>\n      <properties>\n        <property name=\"chainId\">VersionAndAttachFile</property>\n      </properties>\n    </action>\n    <action help=\"desc.dnd.attachfiles\" id=\"Chain.AttachFiles\" label=\"label.dnd.attachfiles\" link=\"\" order=\"10\">\n      <category>otherBlobs</category>\n      <filter-id>mutable_document</filter-id>\n      <filter-id>user_canedit</filter-id>\n      <properties>\n        <property name=\"chainId\">AttachFiles</property>\n      </properties>\n    </action>\n    <action enabled=\"false\" help=\"desc.dnd.attachfiles\" id=\"Chain.VersionAndAttachFiles\" label=\"label.dnd.attachfiles\" link=\"\" order=\"10\">\n      <category>otherBlobs</category>\n      <filter-id>mutable_document</filter-id>\n      <filter-id>user_canedit</filter-id>\n      <properties>\n        <property name=\"chainId\">VersionAndAttachFiles</property>\n      </properties>\n    </action>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.webapp/org.nuxeo.ecm.webapp.core/org.nuxeo.ecm.automation.features.upload.jsf.contrib",
          "name": "org.nuxeo.ecm.automation.features.upload.jsf.contrib",
          "requirements": [
            "org.nuxeo.ecm.platform.actions"
          ],
          "resolutionOrder": 674,
          "services": [],
          "startOrder": 89,
          "version": "2021.57.3",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.automation.features.upload.jsf.contrib\">\n\n  <require>org.nuxeo.ecm.platform.actions</require>\n\n  <extension target=\"org.nuxeo.ecm.platform.actions.ActionService\"\n    point=\"actions\">\n\n    <action id=\"Chain.ImportClipboard\"\n      link=\"\"\n      order=\"10\" label=\"label.import.and.add.to.clipboard\"\n      help=\"desc.import.and.add.to.clipboard\">\n      <category>Clipboard_CLIPBOARD</category>\n      <filter-id>not_anonymous</filter-id>\n      <properties>\n        <property name=\"chainId\">Blob.ImportClipboard</property>\n      </properties>\n    </action>\n    <action id=\"Chain.ImportWorklist\"\n      link=\"\"\n      order=\"10\" label=\"label.import.and.add.to.worklist\"\n      help=\"desc.import.and.add.to.worklist\">\n      <category>Clipboard_DEFAULT</category>\n      <filter-id>not_anonymous</filter-id>\n      <properties>\n        <property name=\"chainId\"><Blob class=\"ImportWorklist\"></Blob></property>\n      </properties>\n    </action>\n\n    <action id=\"Chain.FileManager.ImportInSeam\"\n      link=\"\"\n      order=\"10\" label=\"label.smart.import\"\n      help=\"desc.smart.import.file\">\n      <category>ContentView</category>\n      <filter-id>create</filter-id>\n      <properties>\n        <property name=\"chainId\">FileManager.ImportInSeam</property>\n      </properties>\n    </action>\n    <action id=\"Chain.FileManager.ImportWithMetaDataInSeam\"\n      link=\"${org.nuxeo.ecm.contextPath}/dndFormCollector.faces?schemas=dc&#038;layouts=dndEdit\"\n      order=\"30\" label=\"label.smart.import.with.md\"\n      help=\"desc.smart.import.with.md\">\n      <category>ContentView</category>\n      <filter-id>create</filter-id>\n      <properties>\n        <property name=\"chainId\">FileManager.ImportWithMetaDataInSeam</property>\n        <property name=\"layout\">dndEdit</property>\n      </properties>\n    </action>\n\n    <action id=\"BlobHolder.Attach\"\n      link=\"\"\n      order=\"10\" label=\"label.dnd.attach\"\n      help=\"desc.dnd.attach\"\n      enabled=\"false\">\n      <category>mainBlob</category>\n      <filter-id>mutable_document</filter-id>\n      <filter-id>user_canedit</filter-id>\n      <filter-id>updatable_main_blob</filter-id>\n      <properties>\n        <property name=\"operationId\">BlobHolder.AttachOnCurrentDocument</property>\n      </properties>\n    </action>\n    <action id=\"Chain.VersionAndAttachFile\"\n      link=\"\"\n      order=\"10\" label=\"label.dnd.attach\"\n      help=\"desc.dnd.attach\">\n      <category>mainBlob</category>\n      <filter-id>mutable_document</filter-id>\n      <filter-id>user_canedit</filter-id>\n      <filter-id>updatable_main_blob</filter-id>\n      <properties>\n        <property name=\"chainId\">VersionAndAttachFile</property>\n      </properties>\n    </action>\n    <action id=\"Chain.AttachFiles\"\n      link=\"\"\n      order=\"10\" label=\"label.dnd.attachfiles\"\n      help=\"desc.dnd.attachfiles\">\n      <category>otherBlobs</category>\n      <filter-id>mutable_document</filter-id>\n      <filter-id>user_canedit</filter-id>\n      <properties>\n        <property name=\"chainId\">AttachFiles</property>\n      </properties>\n    </action>\n    <action id=\"Chain.VersionAndAttachFiles\"\n      link=\"\"\n      order=\"10\" label=\"label.dnd.attachfiles\"\n      help=\"desc.dnd.attachfiles\"\n      enabled=\"false\">\n      <category>otherBlobs</category>\n      <filter-id>mutable_document</filter-id>\n      <filter-id>user_canedit</filter-id>\n      <properties>\n        <property name=\"chainId\">VersionAndAttachFiles</property>\n      </properties>\n    </action>\n\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/importOptions-actions-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentation": "\n    Default DocumentsLists used in Nuxeo5.\n\n    @author <a href=\"mailto:td@nuxeo.com\">Thierry Delprat</a>\n",
          "documentationHtml": "<p>\nDefault DocumentsLists used in Nuxeo5.\n</p><p></p>",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.webapp.documentsLists.DocumentsListsService--list",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.webapp/org.nuxeo.ecm.webapp.core/org.nuxeo.ecm.webapp.documentsLists.DefaultDocumentsLists/Contributions/org.nuxeo.ecm.webapp.documentsLists.DefaultDocumentsLists--list",
              "id": "org.nuxeo.ecm.webapp.documentsLists.DefaultDocumentsLists--list",
              "registrationOrder": 2,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.webapp.documentsLists.DocumentsListsService",
                "name": "org.nuxeo.ecm.webapp.documentsLists.DocumentsListsService",
                "type": "service"
              },
              "version": "2021.57.3",
              "xml": "<extension point=\"list\" target=\"org.nuxeo.ecm.webapp.documentsLists.DocumentsListsService\">\n\n    <documentsList name=\"DEFAULT\">\n      <category>CLIPBOARD</category>\n      <imageURL>/icons/file_actions.gif</imageURL>\n      <title>workingList.default</title>\n      <defaultInCategory>true</defaultInCategory>\n      <persistent>true</persistent>\n    </documentsList>\n\n    <documentsList name=\"CLIPBOARD\">\n      <category>CLIPBOARD</category>\n      <imageURL>/icons/clipboard.gif</imageURL>\n      <title>workingList.clipboard</title>\n      <defaultInCategory>false</defaultInCategory>\n      <supportAppends>false</supportAppends>\n    </documentsList>\n\n    <documentsList name=\"CURRENT_SELECTION\">\n      <events>\n        <event>folderishDocumentSelectionChanged</event>\n        <event>searchPerformed</event>\n        <event>mainTabsChanged</event>\n      </events>\n      <isSession>false</isSession>\n    </documentsList>\n\n    <documentsList name=\"CURRENT_SELECTION_TRASH\">\n      <events>\n        <event>folderishDocumentSelectionChanged</event>\n      </events>\n      <isSession>false</isSession>\n    </documentsList>\n\n    <documentsList name=\"CURRENT_SELECTION_SECTIONS\">\n      <events>\n        <event>folderishDocumentSelectionChanged</event>\n      </events>\n      <isSession>false</isSession>\n    </documentsList>\n\n    <documentsList name=\"CURRENT_SELECTION_VERSIONS\">\n      <events>\n        <event>documentSelectionChanged</event>\n      </events>\n      <isSession>false</isSession>\n    </documentsList>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.webapp/org.nuxeo.ecm.webapp.core/org.nuxeo.ecm.webapp.documentsLists.DefaultDocumentsLists",
          "name": "org.nuxeo.ecm.webapp.documentsLists.DefaultDocumentsLists",
          "requirements": [],
          "resolutionOrder": 675,
          "services": [],
          "startOrder": 660,
          "version": "2021.57.3",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n\n<component name=\"org.nuxeo.ecm.webapp.documentsLists.DefaultDocumentsLists\">\n\n  <documentation>\n    Default DocumentsLists used in Nuxeo5.\n\n    @author <a href=\"mailto:td@nuxeo.com\">Thierry Delprat</a>\n  </documentation>\n\n  <extension target=\"org.nuxeo.ecm.webapp.documentsLists.DocumentsListsService\"\n    point=\"list\">\n\n    <documentsList name=\"DEFAULT\">\n      <category>CLIPBOARD</category>\n      <imageURL>/icons/file_actions.gif</imageURL>\n      <title>workingList.default</title>\n      <defaultInCategory>true</defaultInCategory>\n      <persistent>true</persistent>\n    </documentsList>\n\n    <documentsList name=\"CLIPBOARD\">\n      <category>CLIPBOARD</category>\n      <imageURL>/icons/clipboard.gif</imageURL>\n      <title>workingList.clipboard</title>\n      <defaultInCategory>false</defaultInCategory>\n      <supportAppends>false</supportAppends>\n    </documentsList>\n\n    <documentsList name=\"CURRENT_SELECTION\">\n      <events>\n        <event>folderishDocumentSelectionChanged</event>\n        <event>searchPerformed</event>\n        <event>mainTabsChanged</event>\n      </events>\n      <isSession>false</isSession>\n    </documentsList>\n\n    <documentsList name=\"CURRENT_SELECTION_TRASH\">\n      <events>\n        <event>folderishDocumentSelectionChanged</event>\n      </events>\n      <isSession>false</isSession>\n    </documentsList>\n\n    <documentsList name=\"CURRENT_SELECTION_SECTIONS\">\n      <events>\n        <event>folderishDocumentSelectionChanged</event>\n      </events>\n      <isSession>false</isSession>\n    </documentsList>\n\n    <documentsList name=\"CURRENT_SELECTION_VERSIONS\">\n      <events>\n        <event>documentSelectionChanged</event>\n      </events>\n      <isSession>false</isSession>\n    </documentsList>\n\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/documentslists-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "componentClass": "org.nuxeo.ecm.webapp.trashManagement.TrashManagementService",
          "documentation": "\n    The TrashManagement service registers a flag that enables / disables the\n    \"recycle bin\"-like behaviour of the delete action\n\n    @author Narcis Paslaru (npaslaru@nuxeo.com)\n  \n",
          "documentationHtml": "<p>\nThe TrashManagement service registers a flag that enables / disables the\n&#34;recycle bin&#34;-like behaviour of the delete action\n</p><p></p>",
          "extensionPoints": [
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.webapp.trashManagement.TrashManagementService",
              "descriptors": [
                "org.nuxeo.ecm.webapp.trashManagement.TrashConfigDescriptor"
              ],
              "documentationHtml": "",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.webapp/org.nuxeo.ecm.webapp.core/org.nuxeo.ecm.webapp.trashManagement.TrashManagementService/ExtensionPoints/org.nuxeo.ecm.webapp.trashManagement.TrashManagementService--config",
              "id": "org.nuxeo.ecm.webapp.trashManagement.TrashManagementService--config",
              "label": "config (org.nuxeo.ecm.webapp.trashManagement.TrashManagementService)",
              "name": "config",
              "version": "2021.57.3"
            }
          ],
          "extensions": [],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.webapp/org.nuxeo.ecm.webapp.core/org.nuxeo.ecm.webapp.trashManagement.TrashManagementService",
          "name": "org.nuxeo.ecm.webapp.trashManagement.TrashManagementService",
          "requirements": [],
          "resolutionOrder": 676,
          "services": [
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.ecm.webapp.trashManagement.TrashManagementService",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.webapp/org.nuxeo.ecm.webapp.core/org.nuxeo.ecm.webapp.trashManagement.TrashManagementService/Services/org.nuxeo.ecm.webapp.trashManagement.TrashManagementService",
              "id": "org.nuxeo.ecm.webapp.trashManagement.TrashManagementService",
              "overriden": false,
              "version": "2021.57.3"
            }
          ],
          "startOrder": 923,
          "version": "2021.57.3",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.webapp.trashManagement.TrashManagementService\">\n  <implementation\n          class=\"org.nuxeo.ecm.webapp.trashManagement.TrashManagementService\" />\n  <service>\n    <provide interface=\"org.nuxeo.ecm.webapp.trashManagement.TrashManagementService\" />\n  </service>\n  <documentation>\n    The TrashManagement service registers a flag that enables / disables the\n    \"recycle bin\"-like behaviour of the delete action\n\n    @author Narcis Paslaru (npaslaru@nuxeo.com)\n  </documentation>\n  <extension-point name=\"config\">\n    <object\n      class=\"org.nuxeo.ecm.webapp.trashManagement.TrashConfigDescriptor\" />\n  </extension-point>\n  <documentation>\n    Flag for trash management behaviour\n    @author Narcis Paslaru (npaslaru@nuxeo.com)\n  </documentation>\n</component>\n",
          "xmlFileName": "/OSGI-INF/trashManagement-framework.xml",
          "xmlPureComponent": false
        },
        {
          "@type": "NXComponent",
          "documentation": "\n    Default trash management used in Nuxeo5\n\n    @author\n    <a href=\"mailto:npaslaru@nuxeo.com\">Narcis Paslaru</a>\n",
          "documentationHtml": "<p>\nDefault trash management used in Nuxeo5\n</p><p>\n<a href=\"mailto:npaslaru&#64;nuxeo.com\">Narcis Paslaru</a></p>",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.webapp.trashManagement.TrashManagementService--config",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.webapp/org.nuxeo.ecm.webapp.core/org.nuxeo.ecm.webapp.trashManagement.DefaultTrashManagement/Contributions/org.nuxeo.ecm.webapp.trashManagement.DefaultTrashManagement--config",
              "id": "org.nuxeo.ecm.webapp.trashManagement.DefaultTrashManagement--config",
              "registrationOrder": 0,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.webapp.trashManagement.TrashManagementService",
                "name": "org.nuxeo.ecm.webapp.trashManagement.TrashManagementService",
                "type": "service"
              },
              "version": "2021.57.3",
              "xml": "<extension point=\"config\" target=\"org.nuxeo.ecm.webapp.trashManagement.TrashManagementService\">\n\n    <trashConfig enabled=\"true\"/>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.webapp/org.nuxeo.ecm.webapp.core/org.nuxeo.ecm.webapp.trashManagement.DefaultTrashManagement",
          "name": "org.nuxeo.ecm.webapp.trashManagement.DefaultTrashManagement",
          "requirements": [],
          "resolutionOrder": 677,
          "services": [],
          "startOrder": 670,
          "version": "2021.57.3",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n\n<component name=\"org.nuxeo.ecm.webapp.trashManagement.DefaultTrashManagement\">\n\n  <documentation>\n    Default trash management used in Nuxeo5\n\n    @author\n    <a href=\"mailto:npaslaru@nuxeo.com\">Narcis Paslaru</a>\n  </documentation>\n\n  <extension target=\"org.nuxeo.ecm.webapp.trashManagement.TrashManagementService\"\n    point=\"config\">\n\n    <trashConfig enabled=\"true\" />\n\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/trashManagement-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "componentClass": "org.nuxeo.ecm.webapp.security.UIPermissionService",
          "documentation": "\n    This service provides the list of permissions displayed in the UI\n    for a document type.\n\n    Attention: this service is deprecated in favor of the centralized\n    org.nuxeo.ecm.core.security.SecurityService that provides similar UI\n    related features\n\n    Example: @author GeorgeLefter (glefter@nuxeo.com)\n  \n",
          "documentationHtml": "<p>\nThis service provides the list of permissions displayed in the UI\nfor a document type.\n</p><p>\nAttention: this service is deprecated in favor of the centralized\norg.nuxeo.ecm.core.security.SecurityService that provides similar UI\nrelated features\n</p><p>\nExample: &#64;author GeorgeLefter (glefter&#64;nuxeo.com)\n</p><p></p>",
          "extensionPoints": [
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.webapp.security.UIPermissionService",
              "descriptors": [
                "org.nuxeo.ecm.webapp.security.UIPermissionListDescriptor"
              ],
              "documentationHtml": "",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.webapp/org.nuxeo.ecm.webapp.core/org.nuxeo.ecm.webapp.security.UIPermissionService/ExtensionPoints/org.nuxeo.ecm.webapp.security.UIPermissionService--uiPermissions",
              "id": "org.nuxeo.ecm.webapp.security.UIPermissionService--uiPermissions",
              "label": "uiPermissions (org.nuxeo.ecm.webapp.security.UIPermissionService)",
              "name": "uiPermissions",
              "version": "2021.57.3"
            }
          ],
          "extensions": [],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.webapp/org.nuxeo.ecm.webapp.core/org.nuxeo.ecm.webapp.security.UIPermissionService",
          "name": "org.nuxeo.ecm.webapp.security.UIPermissionService",
          "requirements": [],
          "resolutionOrder": 678,
          "services": [
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.ecm.webapp.security.UIPermissionService",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.webapp/org.nuxeo.ecm.webapp.core/org.nuxeo.ecm.webapp.security.UIPermissionService/Services/org.nuxeo.ecm.webapp.security.UIPermissionService",
              "id": "org.nuxeo.ecm.webapp.security.UIPermissionService",
              "overriden": false,
              "version": "2021.57.3"
            }
          ],
          "startOrder": 922,
          "version": "2021.57.3",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.webapp.security.UIPermissionService\">\n  <implementation\n          class=\"org.nuxeo.ecm.webapp.security.UIPermissionService\" />\n  <service>\n    <provide interface=\"org.nuxeo.ecm.webapp.security.UIPermissionService\" />\n  </service>\n  <documentation>\n    This service provides the list of permissions displayed in the UI\n    for a document type.\n\n    Attention: this service is deprecated in favor of the centralized\n    org.nuxeo.ecm.core.security.SecurityService that provides similar UI\n    related features\n\n    Example: @author GeorgeLefter (glefter@nuxeo.com)\n  </documentation>\n  <extension-point name=\"uiPermissions\">\n    <object\n            class=\"org.nuxeo.ecm.webapp.security.UIPermissionListDescriptor\" />\n  </extension-point>\n  <documentation>\n    Example:\n    <uiPermissionList default=\"true\">\n      <permission name=\"Read\" />\n      <permission name=\"Write\" />\n    </uiPermissionList>\n    <uiPermissionList documentType=\"Section\">\n      <permission name=\"Read\" />\n      <permission name=\"Write\" />\n    </uiPermissionList>\n    <uiPermissionList documentType=\"Workspace\">\n      <permission name=\"Read\" />\n      <permission name=\"Write\" />\n      <permission name=\"Remove\" />\n    </uiPermissionList>\n  </documentation>\n</component>\n",
          "xmlFileName": "/OSGI-INF/uiPermissionService-framework.xml",
          "xmlPureComponent": false
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.forms.layout.WebLayoutManager--widgettypes",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.webapp/org.nuxeo.ecm.webapp.core/org.nuxeo.ecm.platform.forms.layouts.webapp/Contributions/org.nuxeo.ecm.platform.forms.layouts.webapp--widgettypes",
              "id": "org.nuxeo.ecm.platform.forms.layouts.webapp--widgettypes",
              "registrationOrder": 13,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.forms.layout.WebLayoutManager",
                "name": "org.nuxeo.ecm.platform.forms.layout.WebLayoutManager",
                "type": "service"
              },
              "version": "2021.57.3",
              "xml": "<extension point=\"widgettypes\" target=\"org.nuxeo.ecm.platform.forms.layout.WebLayoutManager\">\n\n    <widgetType name=\"info_box\">\n      <configuration>\n        <sinceVersion>6.0</sinceVersion>\n        <title>Info box</title>\n        <description>\n          <p>\n            This widget displays common information about the document, like\n            creation date, creator, version, state, contributors, ...\n          </p>\n        </description>\n        <categories>\n          <category>summary</category>\n        </categories>\n        <supportedModes>\n          <mode>view</mode>\n        </supportedModes>\n        <!-- no configurable properties -->\n      </configuration>\n      <handler-class>\n        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler\n      </handler-class>\n      <property name=\"template\">\n        /widgets/info_box_widget_template.xhtml\n      </property>\n    </widgetType>\n\n    <widgetType name=\"extendedFile\">\n      <configuration>\n        <sinceVersion>7.3</sinceVersion>\n        <title>Extended File</title>\n        <description>\n          <p>\n            The file widget displays a file uploader/editor in create or edit\n            mode, with additional message tag for errors, and a link to the file\n            in other modes.\n          </p>\n          <p>\n            Widgets using this type can provide properties accepted on a\n            &lt;nxu:inputFile /&gt; tag in create or edit mode, and properties\n            accepted on a &lt;nxu:outputFile /&gt; tag in other modes.\n          </p>\n        </description>\n        <categories>\n          <category>configuration_not_ready</category>\n        </categories>\n        <supportedModes>\n          <mode>edit</mode>\n          <mode>view</mode>\n        </supportedModes>\n        <fields>\n          <list>false</list>\n          <complex>false</complex>\n          <supportedTypes>\n            <type>blob</type>\n          </supportedTypes>\n        </fields>\n        <properties>\n          <layouts mode=\"view\">\n            <layout name=\"file_widget_type_properties_view\">\n              <rows>\n                <row>\n                  <widget category=\"widgetTypeConf\">file_downloadLabel</widget>\n                </row>\n                <row>\n                  <widget category=\"widgetTypeConf\">file_iconRendered</widget>\n                </row>\n              </rows>\n            </layout>\n          </layouts>\n          <layouts mode=\"edit\">\n            <layout name=\"file_widget_type_properties_edit\">\n              <rows>\n                <row>\n                  <widget category=\"widgetTypeConf\">required</widget>\n                </row>\n                <row>\n                  <widget category=\"widgetTypeConf\">file_downloadLabel</widget>\n                </row>\n                <row>\n                  <widget category=\"widgetTypeConf\">file_iconRendered</widget>\n                </row>\n              </rows>\n            </layout>\n          </layouts>\n        </properties>\n      </configuration>\n      <property name=\"template\">/widgets/extended_file_widget.xhtml</property>\n    </widgetType>\n\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.forms.layout.WebLayoutManager--widgets",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.webapp/org.nuxeo.ecm.webapp.core/org.nuxeo.ecm.platform.forms.layouts.webapp/Contributions/org.nuxeo.ecm.platform.forms.layouts.webapp--widgets",
              "id": "org.nuxeo.ecm.platform.forms.layouts.webapp--widgets",
              "registrationOrder": 16,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.forms.layout.WebLayoutManager",
                "name": "org.nuxeo.ecm.platform.forms.layout.WebLayoutManager",
                "type": "service"
              },
              "version": "2021.57.3",
              "xml": "<extension point=\"widgets\" target=\"org.nuxeo.ecm.platform.forms.layout.WebLayoutManager\">\n\n    <widget name=\"nature\" type=\"suggestOneDirectory\">\n      <labels>\n        <label mode=\"any\">label.dublincore.nature</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>dc:nature</field>\n      </fields>\n      <widgetModes>\n        <mode value=\"view_summary\">#{empty layoutValue.dc.nature?'hidden':'view'}</mode>\n      </widgetModes>\n      <properties mode=\"any\">\n        <property name=\"width\">100%</property>\n        <property name=\"minChars\">0</property>\n        <property name=\"hideHelpLabel\">true</property>\n        <property name=\"directoryName\">nature</property>\n        <property name=\"localize\">true</property>\n      </properties>\n    </widget>\n\n    <widget name=\"subjects\" type=\"suggestManyDirectory\">\n      <labels>\n        <label mode=\"any\">label.dublincore.subject</label>\n      </labels>\n      <helpLabels>\n        <label mode=\"edit\">label.dublincore.subjects.info</label>\n      </helpLabels>\n      <translated>true</translated>\n      <fields>\n        <field>dc:subjects</field>\n      </fields>\n      <widgetModes>\n        <mode value=\"view_summary\">#{empty layoutValue.dc.subjects?'hidden':'view'}</mode>\n      </widgetModes>\n      <properties mode=\"any\">\n        <property name=\"width\">100%</property>\n        <property name=\"dbl10n\">true</property>\n        <property name=\"minChars\">0</property>\n        <property name=\"hideHelpLabel\">true</property>\n        <property name=\"directoryName\">l10nsubjects</property>\n      </properties>\n    </widget>\n\n    <widget name=\"rights\" type=\"text\">\n      <labels>\n        <label mode=\"any\">label.dublincore.rights</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>dc:rights</field>\n      </fields>\n      <widgetModes>\n        <mode value=\"view_summary\">#{empty layoutValue.dc.rights?'hidden':'view'}</mode>\n      </widgetModes>\n      <properties widgetMode=\"edit\">\n        <property name=\"styleClass\">dataInputText</property>\n      </properties>\n    </widget>\n\n    <widget name=\"source\" type=\"text\">\n      <labels>\n        <label mode=\"any\">label.dublincore.source</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>dc:source</field>\n      </fields>\n      <widgetModes>\n        <mode value=\"view_summary\">#{empty layoutValue.dc.source?'hidden':'view'}</mode>\n      </widgetModes>\n      <properties widgetMode=\"edit\">\n        <property name=\"styleClass\">dataInputText</property>\n      </properties>\n    </widget>\n\n    <widget name=\"coverage\" type=\"suggestOneDirectory\">\n      <labels>\n        <label mode=\"any\">label.dublincore.coverage</label>\n      </labels>\n      <helpLabels>\n        <label mode=\"edit\">label.dublincore.coverage.info</label>\n      </helpLabels>\n      <translated>true</translated>\n      <fields>\n        <field>dc:coverage</field>\n      </fields>\n      <widgetModes>\n        <mode value=\"view_summary\">#{empty layoutValue.dc.coverage?'hidden':'view'}</mode>\n      </widgetModes>\n      <properties mode=\"any\">\n        <property name=\"width\">100%</property>\n        <property name=\"dbl10n\">true</property>\n        <property name=\"minChars\">0</property>\n        <property name=\"hideHelpLabel\">true</property>\n        <property name=\"directoryName\">l10ncoverage</property>\n      </properties>\n    </widget>\n\n    <widget name=\"created\" type=\"datetime\">\n      <labels>\n        <label mode=\"any\">label.dublincore.created</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>dc:created</field>\n      </fields>\n      <widgetModes>\n        <mode value=\"view_summary\">#{empty layoutValue.dc.created?'hidden':'view'}</mode>\n        <mode value=\"any\">view</mode>\n        <mode value=\"pdf\">pdf</mode>\n      </widgetModes>\n      <properties widgetMode=\"any\">\n        <property name=\"pattern\">#{nxu:basicDateAndTimeFormatter()}</property>\n      </properties>\n    </widget>\n\n    <widget name=\"modified\" type=\"datetime\">\n      <labels>\n        <label mode=\"any\">label.dublincore.modified</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>dc:modified</field>\n      </fields>\n      <widgetModes>\n        <mode value=\"view_summary\">#{empty layoutValue.dc.modified?'hidden':'view'}</mode>\n        <mode value=\"any\">view</mode>\n        <mode value=\"pdf\">pdf</mode>\n      </widgetModes>\n      <properties widgetMode=\"any\">\n        <property name=\"pattern\">#{nxu:basicDateAndTimeFormatter()}</property>\n      </properties>\n    </widget>\n\n    <widget name=\"format\" type=\"text\">\n      <labels>\n        <label mode=\"any\">label.dublincore.format</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>dc:format</field>\n      </fields>\n      <widgetModes>\n        <mode value=\"view_summary\">#{empty layoutValue.dc.format?'hidden':'view'}</mode>\n      </widgetModes>\n      <properties widgetMode=\"edit\">\n        <property name=\"styleClass\">dataInputText</property>\n      </properties>\n    </widget>\n\n    <widget name=\"language\" type=\"text\">\n      <labels>\n        <label mode=\"any\">label.dublincore.language</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>dc:language</field>\n      </fields>\n      <widgetModes>\n        <mode value=\"view_summary\">#{empty layoutValue.dc.language?'hidden':'view'}</mode>\n      </widgetModes>\n      <properties widgetMode=\"edit\">\n        <property name=\"styleClass\">dataInputText</property>\n      </properties>\n    </widget>\n\n    <widget name=\"expired\" type=\"datetime\">\n      <labels>\n        <label mode=\"any\">label.dublincore.expired</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>dc:expired</field>\n      </fields>\n      <widgetModes>\n        <mode value=\"view_summary\">#{empty layoutValue.dc.expired?'hidden':'view'}</mode>\n      </widgetModes>\n      <properties widgetMode=\"any\">\n        <property name=\"pattern\">#{nxu:basicDateFormatter()}</property>\n      </properties>\n      <properties widgetMode=\"edit\">\n        <property name=\"format\">#{nxu:basicDateFormatter()}</property>\n      </properties>\n    </widget>\n\n    <widget name=\"author\" type=\"template\">\n      <labels>\n        <label mode=\"any\">label.dublincore.creator</label>\n      </labels>\n      <helpLabels>\n        <label mode=\"edit\">label.dublincore.author.info</label>\n      </helpLabels>\n      <translated>true</translated>\n      <fields>\n        <field>dc:creator</field>\n      </fields>\n      <widgetModes>\n        <mode value=\"view_summary\">#{empty layoutValue.dc.creator?'hidden':'view'}</mode>\n        <mode value=\"any\">view</mode>\n        <mode value=\"pdf\">pdf</mode>\n      </widgetModes>\n      <properties mode=\"any\">\n        <property name=\"template\">\n          /widgets/single_user_widget_template.xhtml\n        </property>\n      </properties>\n    </widget>\n\n    <widget name=\"contributors\" type=\"template\">\n      <labels>\n        <label mode=\"any\">label.dublincore.contributors</label>\n      </labels>\n      <helpLabels>\n        <label mode=\"edit\">label.dublincore.contributors.info</label>\n      </helpLabels>\n      <translated>true</translated>\n      <fields>\n        <field>dc:contributors</field>\n      </fields>\n      <widgetModes>\n        <mode value=\"view_summary\">#{empty layoutValue.dc.contributors?'hidden':'view'}\n        </mode>\n      </widgetModes>\n      <properties mode=\"any\">\n        <property name=\"template\">/widgets/contributors_widget.xhtml</property>\n      </properties>\n      <properties widgetMode=\"edit\">\n        <property name=\"styleClass\">dataInputText</property>\n      </properties>\n    </widget>\n\n    <widget name=\"lastContributor\" type=\"template\">\n      <labels>\n        <label mode=\"any\">label.dublincore.lastContributor</label>\n      </labels>\n      <helpLabels>\n        <label mode=\"edit\">label.dublincore.lastContributor.info</label>\n      </helpLabels>\n      <translated>true</translated>\n      <fields>\n        <field>dc:lastContributor</field>\n      </fields>\n      <widgetModes>\n        <mode value=\"view_summary\">#{empty layoutValue.dc.lastContributor?'hidden':'view'}\n        </mode>\n        <mode value=\"any\">view</mode>\n        <mode value=\"pdf\">pdf</mode>\n      </widgetModes>\n      <properties mode=\"any\">\n        <property name=\"template\">\n          /widgets/single_user_widget_template.xhtml\n        </property>\n      </properties>\n    </widget>\n\n    <widget name=\"title\" type=\"text\">\n      <labels>\n        <label mode=\"any\">title</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>dc:title</field>\n      </fields>\n      <widgetModes>\n        <mode value=\"view_summary\">#{empty layoutValue.dc.title?'hidden':'view'}</mode>\n      </widgetModes>\n      <properties widgetMode=\"edit\">\n        <property name=\"required\">true</property>\n        <property name=\"styleClass\">dataInputText</property>\n      </properties>\n    </widget>\n\n    <widget name=\"description\" type=\"textarea\">\n      <labels>\n        <label mode=\"any\">description</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>dc:description</field>\n      </fields>\n      <widgetModes>\n        <mode value=\"view_summary\">#{empty layoutValue.dc.description?'hidden':'view'}\n        </mode>\n      </widgetModes>\n      <properties widgetMode=\"edit\">\n        <property name=\"styleClass\">dataInputText</property>\n      </properties>\n    </widget>\n\n    <widget name=\"file\" type=\"extendedFile\">\n      <labels>\n        <label mode=\"any\">label.file.content</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>file:content</field>\n        <field>file:content/name</field>\n      </fields>\n    </widget>\n\n    <widget name=\"note\" type=\"richtext_with_mimetype\">\n      <labels>\n        <label mode=\"any\">note</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>note:note</field>\n        <field>note:mime_type</field>\n      </fields>\n    </widget>\n\n    <widget name=\"files\" type=\"template\">\n      <labels>\n        <label mode=\"any\">label.files.files</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field schema=\"files\">files</field>\n      </fields>\n      <properties mode=\"any\">\n        <property name=\"template\">\n          /widgets/files_list_widget_template.xhtml\n        </property>\n      </properties>\n      <properties widgetMode=\"edit\">\n        <property name=\"diff\">true</property>\n      </properties>\n      <subWidgets>\n        <widget name=\"file\" type=\"template\">\n          <labels>\n            <label mode=\"any\"/>\n          </labels>\n          <fields>\n            <field>file</field>\n            <field>file/name</field>\n          </fields>\n          <properties mode=\"any\">\n            <property name=\"template\">\n              /widgets/extended_subfile_widget.xhtml\n            </property>\n          </properties>\n          <properties widgetMode=\"edit\">\n            <property name=\"required\">true</property>\n          </properties>\n        </widget>\n      </subWidgets>\n    </widget>\n\n    <widget name=\"header_title_and_permlink\" type=\"title_and_permlink\">\n      <fields>\n        <field/>\n      </fields>\n      <labels>\n        <label mode=\"any\"/>\n      </labels>\n    </widget>\n\n    <widget name=\"header_description\" type=\"textarea\">\n      <widgetModes>\n        <mode value=\"any\">\n          #{currentDocument.folder==false or empty\n          currentDocument.dublincore.description ?'hidden':mode}\n        </mode>\n      </widgetModes>\n      <fields>\n        <field>dc:description</field>\n      </fields>\n      <labels>\n        <label mode=\"any\"/>\n      </labels>\n      <properties mode=\"any\">\n        <property name=\"styleClass\">\n          currentDocumentDescription quote\n        </property>\n      </properties>\n    </widget>\n\n    <widget name=\"bulk_collections\" type=\"multipleDocumentsSuggestion\">\n      <labels>\n        <label mode=\"any\">label.collections</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>contextData['bulk_collections']</field>\n      </fields>\n      <properties widgetMode=\"any\">\n        <property name=\"minChars\">0</property>\n        <property name=\"hideHelpLabel\">true</property>\n        <property name=\"restoreSeamCtx\">false</property>\n        <property name=\"placeholder\">label.addToCollection.collection.placeHolder</property>\n        <property name=\"operationId\">Collection.Suggestion</property>\n        <property name=\"selectionFormatter\">formatSelectedCollection</property>\n        <property name=\"suggestionFormatter\">formatSuggestedCollection</property>\n        <property name=\"documentSchemas\">dublincore,common</property>\n      </properties>\n    </widget>\n\n    <widget name=\"bulk_tags\" type=\"select_tags\">\n      <labels>\n        <label mode=\"any\">label.search.tagSearch</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>contextData['bulk_tags']</field>\n      </fields>\n      <properties widgetMode=\"edit\">\n        <property name=\"canSelectNewTag\">true</property>\n        <property name=\"placeholder\">\n          #{messages['label.search.tags.placeholder']}\n        </property>\n      </properties>\n    </widget>\n\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.forms.layout.WebLayoutManager--layouts",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.webapp/org.nuxeo.ecm.webapp.core/org.nuxeo.ecm.platform.forms.layouts.webapp/Contributions/org.nuxeo.ecm.platform.forms.layouts.webapp--layouts",
              "id": "org.nuxeo.ecm.platform.forms.layouts.webapp--layouts",
              "registrationOrder": 16,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.forms.layout.WebLayoutManager",
                "name": "org.nuxeo.ecm.platform.forms.layout.WebLayoutManager",
                "type": "service"
              },
              "version": "2021.57.3",
              "xml": "<extension point=\"layouts\" target=\"org.nuxeo.ecm.platform.forms.layout.WebLayoutManager\">\n\n    <layout name=\"heading\">\n      <templates>\n        <template mode=\"any\">/layouts/layout_default_template.xhtml\n        </template>\n      </templates>\n      <rows>\n        <row>\n          <widget>title</widget>\n        </row>\n        <row>\n          <widget>description</widget>\n        </row>\n      </rows>\n    </layout>\n\n    <layout name=\"dublincore\">\n      <templates>\n        <template mode=\"any\">/layouts/layout_default_template.xhtml\n        </template>\n      </templates>\n      <rows>\n        <row>\n          <widget>nature</widget>\n        </row>\n        <row>\n          <widget>subjects</widget>\n        </row>\n        <row>\n          <widget>rights</widget>\n        </row>\n        <row>\n          <widget>source</widget>\n        </row>\n        <row>\n          <widget>coverage</widget>\n        </row>\n        <row>\n          <widget>created</widget>\n        </row>\n        <row>\n          <widget>modified</widget>\n        </row>\n        <row>\n          <widget>format</widget>\n        </row>\n        <row>\n          <widget>language</widget>\n        </row>\n        <row>\n          <widget>expired</widget>\n        </row>\n        <row>\n          <widget>author</widget>\n        </row>\n        <row>\n          <widget>contributors</widget>\n        </row>\n        <row>\n          <widget>lastContributor</widget>\n        </row>\n      </rows>\n\n    </layout>\n\n    <layout name=\"file\">\n      <templates>\n        <template mode=\"any\">/layouts/layout_default_template.xhtml\n        </template>\n      </templates>\n      <rows>\n        <row>\n          <widget>file</widget>\n        </row>\n      </rows>\n    </layout>\n\n    <layout name=\"note\">\n      <templates>\n        <template mode=\"any\">/layouts/layout_default_template.xhtml\n        </template>\n      </templates>\n      <rows>\n        <row>\n          <widget>note</widget>\n        </row>\n      </rows>\n    </layout>\n\n    <layout name=\"files\">\n      <templates>\n        <template mode=\"any\">/layouts/layout_default_template.xhtml\n        </template>\n      </templates>\n      <rows>\n        <row>\n          <widget>files</widget>\n        </row>\n      </rows>\n    </layout>\n\n    <layout name=\"document_header\">\n      <templates>\n        <template mode=\"any\">/layouts/layout_div_template.xhtml</template>\n      </templates>\n      <rows>\n        <row>\n          <widget>header_title_and_permlink</widget>\n        </row>\n        <row>\n          <widget>header_description</widget>\n        </row>\n      </rows>\n    </layout>\n\n\n    <layout name=\"dndEdit\">\n      <templates>\n        <template mode=\"any\">/layouts/layout_default_template.xhtml\n        </template>\n      </templates>\n      <rows>\n        <row>\n          <widget>nature</widget>\n        </row>\n        <row>\n          <widget>subjects</widget>\n        </row>\n        <row>\n          <widget>rights</widget>\n        </row>\n        <row>\n          <widget>source</widget>\n        </row>\n        <row>\n          <widget>coverage</widget>\n        </row>\n        <row>\n          <widget>format</widget>\n        </row>\n        <row>\n          <widget>language</widget>\n        </row>\n        <row>\n          <widget>expired</widget>\n        </row>\n      </rows>\n\n    </layout>\n\n    <layout name=\"bulkEdit@edit\">\n      <templates>\n        <template mode=\"any\">/layouts/layout_bulkedit_template.xhtml\n        </template>\n      </templates>\n      <rows>\n        <row>\n          <widget>bulk_tags</widget>\n        </row>\n        <row>\n          <widget>bulk_collections</widget>\n        </row>\n        <row>\n          <widget>nature</widget>\n        </row>\n        <row>\n          <widget>subjects</widget>\n        </row>\n        <row>\n          <widget>coverage</widget>\n        </row>\n        <row>\n          <widget>expired</widget>\n        </row>\n        <row>\n          <widget>rights</widget>\n        </row>\n        <row>\n          <widget>source</widget>\n        </row>\n        <row>\n          <widget>format</widget>\n        </row>\n        <row>\n          <widget>language</widget>\n        </row>\n      </rows>\n    </layout>\n\n    <layout name=\"bulkImport@create\">\n      <templates>\n        <template mode=\"any\">/layouts/layout_default_template.xhtml</template>\n      </templates>\n      <rows>\n        <row>\n          <widget>bulk_tags</widget>\n        </row>\n        <row>\n          <widget>bulk_collections</widget>\n        </row>\n        <row>\n          <widget>nature</widget>\n        </row>\n        <row>\n          <widget>subjects</widget>\n        </row>\n        <row>\n          <widget>coverage</widget>\n        </row>\n      </rows>\n    </layout>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.webapp/org.nuxeo.ecm.webapp.core/org.nuxeo.ecm.platform.forms.layouts.webapp",
          "name": "org.nuxeo.ecm.platform.forms.layouts.webapp",
          "requirements": [],
          "resolutionOrder": 679,
          "services": [],
          "startOrder": 332,
          "version": "2021.57.3",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n\n<component name=\"org.nuxeo.ecm.platform.forms.layouts.webapp\">\n\n  <extension target=\"org.nuxeo.ecm.platform.forms.layout.WebLayoutManager\"\n    point=\"widgettypes\">\n\n    <widgetType name=\"info_box\">\n      <configuration>\n        <sinceVersion>6.0</sinceVersion>\n        <title>Info box</title>\n        <description>\n          <p>\n            This widget displays common information about the document, like\n            creation date, creator, version, state, contributors, ...\n          </p>\n        </description>\n        <categories>\n          <category>summary</category>\n        </categories>\n        <supportedModes>\n          <mode>view</mode>\n        </supportedModes>\n        <!-- no configurable properties -->\n      </configuration>\n      <handler-class>\n        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler\n      </handler-class>\n      <property name=\"template\">\n        /widgets/info_box_widget_template.xhtml\n      </property>\n    </widgetType>\n\n    <widgetType name=\"extendedFile\">\n      <configuration>\n        <sinceVersion>7.3</sinceVersion>\n        <title>Extended File</title>\n        <description>\n          <p>\n            The file widget displays a file uploader/editor in create or edit\n            mode, with additional message tag for errors, and a link to the file\n            in other modes.\n          </p>\n          <p>\n            Widgets using this type can provide properties accepted on a\n            &lt;nxu:inputFile /&gt; tag in create or edit mode, and properties\n            accepted on a &lt;nxu:outputFile /&gt; tag in other modes.\n          </p>\n        </description>\n        <categories>\n          <category>configuration_not_ready</category>\n        </categories>\n        <supportedModes>\n          <mode>edit</mode>\n          <mode>view</mode>\n        </supportedModes>\n        <fields>\n          <list>false</list>\n          <complex>false</complex>\n          <supportedTypes>\n            <type>blob</type>\n          </supportedTypes>\n        </fields>\n        <properties>\n          <layouts mode=\"view\">\n            <layout name=\"file_widget_type_properties_view\">\n              <rows>\n                <row>\n                  <widget category=\"widgetTypeConf\">file_downloadLabel</widget>\n                </row>\n                <row>\n                  <widget category=\"widgetTypeConf\">file_iconRendered</widget>\n                </row>\n              </rows>\n            </layout>\n          </layouts>\n          <layouts mode=\"edit\">\n            <layout name=\"file_widget_type_properties_edit\">\n              <rows>\n                <row>\n                  <widget category=\"widgetTypeConf\">required</widget>\n                </row>\n                <row>\n                  <widget category=\"widgetTypeConf\">file_downloadLabel</widget>\n                </row>\n                <row>\n                  <widget category=\"widgetTypeConf\">file_iconRendered</widget>\n                </row>\n              </rows>\n            </layout>\n          </layouts>\n        </properties>\n      </configuration>\n      <property name=\"template\">/widgets/extended_file_widget.xhtml</property>\n    </widgetType>\n\n  </extension>\n\n  <extension target=\"org.nuxeo.ecm.platform.forms.layout.WebLayoutManager\"\n    point=\"widgets\">\n\n    <widget name=\"nature\" type=\"suggestOneDirectory\">\n      <labels>\n        <label mode=\"any\">label.dublincore.nature</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>dc:nature</field>\n      </fields>\n      <widgetModes>\n        <mode value=\"view_summary\">#{empty layoutValue.dc.nature?'hidden':'view'}</mode>\n      </widgetModes>\n      <properties mode=\"any\">\n        <property name=\"width\">100%</property>\n        <property name=\"minChars\">0</property>\n        <property name=\"hideHelpLabel\">true</property>\n        <property name=\"directoryName\">nature</property>\n        <property name=\"localize\">true</property>\n      </properties>\n    </widget>\n\n    <widget name=\"subjects\" type=\"suggestManyDirectory\">\n      <labels>\n        <label mode=\"any\">label.dublincore.subject</label>\n      </labels>\n      <helpLabels>\n        <label mode=\"edit\">label.dublincore.subjects.info</label>\n      </helpLabels>\n      <translated>true</translated>\n      <fields>\n        <field>dc:subjects</field>\n      </fields>\n      <widgetModes>\n        <mode value=\"view_summary\">#{empty layoutValue.dc.subjects?'hidden':'view'}</mode>\n      </widgetModes>\n      <properties mode=\"any\">\n        <property name=\"width\">100%</property>\n        <property name=\"dbl10n\">true</property>\n        <property name=\"minChars\">0</property>\n        <property name=\"hideHelpLabel\">true</property>\n        <property name=\"directoryName\">l10nsubjects</property>\n      </properties>\n    </widget>\n\n    <widget name=\"rights\" type=\"text\">\n      <labels>\n        <label mode=\"any\">label.dublincore.rights</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>dc:rights</field>\n      </fields>\n      <widgetModes>\n        <mode value=\"view_summary\">#{empty layoutValue.dc.rights?'hidden':'view'}</mode>\n      </widgetModes>\n      <properties widgetMode=\"edit\">\n        <property name=\"styleClass\">dataInputText</property>\n      </properties>\n    </widget>\n\n    <widget name=\"source\" type=\"text\">\n      <labels>\n        <label mode=\"any\">label.dublincore.source</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>dc:source</field>\n      </fields>\n      <widgetModes>\n        <mode value=\"view_summary\">#{empty layoutValue.dc.source?'hidden':'view'}</mode>\n      </widgetModes>\n      <properties widgetMode=\"edit\">\n        <property name=\"styleClass\">dataInputText</property>\n      </properties>\n    </widget>\n\n    <widget name=\"coverage\" type=\"suggestOneDirectory\">\n      <labels>\n        <label mode=\"any\">label.dublincore.coverage</label>\n      </labels>\n      <helpLabels>\n        <label mode=\"edit\">label.dublincore.coverage.info</label>\n      </helpLabels>\n      <translated>true</translated>\n      <fields>\n        <field>dc:coverage</field>\n      </fields>\n      <widgetModes>\n        <mode value=\"view_summary\">#{empty layoutValue.dc.coverage?'hidden':'view'}</mode>\n      </widgetModes>\n      <properties mode=\"any\">\n        <property name=\"width\">100%</property>\n        <property name=\"dbl10n\">true</property>\n        <property name=\"minChars\">0</property>\n        <property name=\"hideHelpLabel\">true</property>\n        <property name=\"directoryName\">l10ncoverage</property>\n      </properties>\n    </widget>\n\n    <widget name=\"created\" type=\"datetime\">\n      <labels>\n        <label mode=\"any\">label.dublincore.created</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>dc:created</field>\n      </fields>\n      <widgetModes>\n        <mode value=\"view_summary\">#{empty layoutValue.dc.created?'hidden':'view'}</mode>\n        <mode value=\"any\">view</mode>\n        <mode value=\"pdf\">pdf</mode>\n      </widgetModes>\n      <properties widgetMode=\"any\">\n        <property name=\"pattern\">#{nxu:basicDateAndTimeFormatter()}</property>\n      </properties>\n    </widget>\n\n    <widget name=\"modified\" type=\"datetime\">\n      <labels>\n        <label mode=\"any\">label.dublincore.modified</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>dc:modified</field>\n      </fields>\n      <widgetModes>\n        <mode value=\"view_summary\">#{empty layoutValue.dc.modified?'hidden':'view'}</mode>\n        <mode value=\"any\">view</mode>\n        <mode value=\"pdf\">pdf</mode>\n      </widgetModes>\n      <properties widgetMode=\"any\">\n        <property name=\"pattern\">#{nxu:basicDateAndTimeFormatter()}</property>\n      </properties>\n    </widget>\n\n    <widget name=\"format\" type=\"text\">\n      <labels>\n        <label mode=\"any\">label.dublincore.format</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>dc:format</field>\n      </fields>\n      <widgetModes>\n        <mode value=\"view_summary\">#{empty layoutValue.dc.format?'hidden':'view'}</mode>\n      </widgetModes>\n      <properties widgetMode=\"edit\">\n        <property name=\"styleClass\">dataInputText</property>\n      </properties>\n    </widget>\n\n    <widget name=\"language\" type=\"text\">\n      <labels>\n        <label mode=\"any\">label.dublincore.language</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>dc:language</field>\n      </fields>\n      <widgetModes>\n        <mode value=\"view_summary\">#{empty layoutValue.dc.language?'hidden':'view'}</mode>\n      </widgetModes>\n      <properties widgetMode=\"edit\">\n        <property name=\"styleClass\">dataInputText</property>\n      </properties>\n    </widget>\n\n    <widget name=\"expired\" type=\"datetime\">\n      <labels>\n        <label mode=\"any\">label.dublincore.expired</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>dc:expired</field>\n      </fields>\n      <widgetModes>\n        <mode value=\"view_summary\">#{empty layoutValue.dc.expired?'hidden':'view'}</mode>\n      </widgetModes>\n      <properties widgetMode=\"any\">\n        <property name=\"pattern\">#{nxu:basicDateFormatter()}</property>\n      </properties>\n      <properties widgetMode=\"edit\">\n        <property name=\"format\">#{nxu:basicDateFormatter()}</property>\n      </properties>\n    </widget>\n\n    <widget name=\"author\" type=\"template\">\n      <labels>\n        <label mode=\"any\">label.dublincore.creator</label>\n      </labels>\n      <helpLabels>\n        <label mode=\"edit\">label.dublincore.author.info</label>\n      </helpLabels>\n      <translated>true</translated>\n      <fields>\n        <field>dc:creator</field>\n      </fields>\n      <widgetModes>\n        <mode value=\"view_summary\">#{empty layoutValue.dc.creator?'hidden':'view'}</mode>\n        <mode value=\"any\">view</mode>\n        <mode value=\"pdf\">pdf</mode>\n      </widgetModes>\n      <properties mode=\"any\">\n        <property name=\"template\">\n          /widgets/single_user_widget_template.xhtml\n        </property>\n      </properties>\n    </widget>\n\n    <widget name=\"contributors\" type=\"template\">\n      <labels>\n        <label mode=\"any\">label.dublincore.contributors</label>\n      </labels>\n      <helpLabels>\n        <label mode=\"edit\">label.dublincore.contributors.info</label>\n      </helpLabels>\n      <translated>true</translated>\n      <fields>\n        <field>dc:contributors</field>\n      </fields>\n      <widgetModes>\n        <mode value=\"view_summary\">#{empty layoutValue.dc.contributors?'hidden':'view'}\n        </mode>\n      </widgetModes>\n      <properties mode=\"any\">\n        <property name=\"template\">/widgets/contributors_widget.xhtml</property>\n      </properties>\n      <properties widgetMode=\"edit\">\n        <property name=\"styleClass\">dataInputText</property>\n      </properties>\n    </widget>\n\n    <widget name=\"lastContributor\" type=\"template\">\n      <labels>\n        <label mode=\"any\">label.dublincore.lastContributor</label>\n      </labels>\n      <helpLabels>\n        <label mode=\"edit\">label.dublincore.lastContributor.info</label>\n      </helpLabels>\n      <translated>true</translated>\n      <fields>\n        <field>dc:lastContributor</field>\n      </fields>\n      <widgetModes>\n        <mode value=\"view_summary\">#{empty layoutValue.dc.lastContributor?'hidden':'view'}\n        </mode>\n        <mode value=\"any\">view</mode>\n        <mode value=\"pdf\">pdf</mode>\n      </widgetModes>\n      <properties mode=\"any\">\n        <property name=\"template\">\n          /widgets/single_user_widget_template.xhtml\n        </property>\n      </properties>\n    </widget>\n\n    <widget name=\"title\" type=\"text\">\n      <labels>\n        <label mode=\"any\">title</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>dc:title</field>\n      </fields>\n      <widgetModes>\n        <mode value=\"view_summary\">#{empty layoutValue.dc.title?'hidden':'view'}</mode>\n      </widgetModes>\n      <properties widgetMode=\"edit\">\n        <property name=\"required\">true</property>\n        <property name=\"styleClass\">dataInputText</property>\n      </properties>\n    </widget>\n\n    <widget name=\"description\" type=\"textarea\">\n      <labels>\n        <label mode=\"any\">description</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>dc:description</field>\n      </fields>\n      <widgetModes>\n        <mode value=\"view_summary\">#{empty layoutValue.dc.description?'hidden':'view'}\n        </mode>\n      </widgetModes>\n      <properties widgetMode=\"edit\">\n        <property name=\"styleClass\">dataInputText</property>\n      </properties>\n    </widget>\n\n    <widget name=\"file\" type=\"extendedFile\">\n      <labels>\n        <label mode=\"any\">label.file.content</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>file:content</field>\n        <field>file:content/name</field>\n      </fields>\n    </widget>\n\n    <widget name=\"note\" type=\"richtext_with_mimetype\">\n      <labels>\n        <label mode=\"any\">note</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>note:note</field>\n        <field>note:mime_type</field>\n      </fields>\n    </widget>\n\n    <widget name=\"files\" type=\"template\">\n      <labels>\n        <label mode=\"any\">label.files.files</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field schema=\"files\">files</field>\n      </fields>\n      <properties mode=\"any\">\n        <property name=\"template\">\n          /widgets/files_list_widget_template.xhtml\n        </property>\n      </properties>\n      <properties widgetMode=\"edit\">\n        <property name=\"diff\">true</property>\n      </properties>\n      <subWidgets>\n        <widget name=\"file\" type=\"template\">\n          <labels>\n            <label mode=\"any\"></label>\n          </labels>\n          <fields>\n            <field>file</field>\n            <field>file/name</field>\n          </fields>\n          <properties mode=\"any\">\n            <property name=\"template\">\n              /widgets/extended_subfile_widget.xhtml\n            </property>\n          </properties>\n          <properties widgetMode=\"edit\">\n            <property name=\"required\">true</property>\n          </properties>\n        </widget>\n      </subWidgets>\n    </widget>\n\n    <widget name=\"header_title_and_permlink\" type=\"title_and_permlink\">\n      <fields>\n        <field></field>\n      </fields>\n      <labels>\n        <label mode=\"any\"></label>\n      </labels>\n    </widget>\n\n    <widget name=\"header_description\" type=\"textarea\">\n      <widgetModes>\n        <mode value=\"any\">\n          #{currentDocument.folder==false or empty\n          currentDocument.dublincore.description ?'hidden':mode}\n        </mode>\n      </widgetModes>\n      <fields>\n        <field>dc:description</field>\n      </fields>\n      <labels>\n        <label mode=\"any\"></label>\n      </labels>\n      <properties mode=\"any\">\n        <property name=\"styleClass\">\n          currentDocumentDescription quote\n        </property>\n      </properties>\n    </widget>\n\n    <widget name=\"bulk_collections\" type=\"multipleDocumentsSuggestion\">\n      <labels>\n        <label mode=\"any\">label.collections</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>contextData['bulk_collections']</field>\n      </fields>\n      <properties widgetMode=\"any\">\n        <property name=\"minChars\">0</property>\n        <property name=\"hideHelpLabel\">true</property>\n        <property name=\"restoreSeamCtx\">false</property>\n        <property name=\"placeholder\">label.addToCollection.collection.placeHolder</property>\n        <property name=\"operationId\">Collection.Suggestion</property>\n        <property name=\"selectionFormatter\">formatSelectedCollection</property>\n        <property name=\"suggestionFormatter\">formatSuggestedCollection</property>\n        <property name=\"documentSchemas\">dublincore,common</property>\n      </properties>\n    </widget>\n\n    <widget name=\"bulk_tags\" type=\"select_tags\">\n      <labels>\n        <label mode=\"any\">label.search.tagSearch</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>contextData['bulk_tags']</field>\n      </fields>\n      <properties widgetMode=\"edit\">\n        <property name=\"canSelectNewTag\">true</property>\n        <property name=\"placeholder\">\n          #{messages['label.search.tags.placeholder']}\n        </property>\n      </properties>\n    </widget>\n\n  </extension>\n\n  <extension target=\"org.nuxeo.ecm.platform.forms.layout.WebLayoutManager\"\n    point=\"layouts\">\n\n    <layout name=\"heading\">\n      <templates>\n        <template mode=\"any\">/layouts/layout_default_template.xhtml\n        </template>\n      </templates>\n      <rows>\n        <row>\n          <widget>title</widget>\n        </row>\n        <row>\n          <widget>description</widget>\n        </row>\n      </rows>\n    </layout>\n\n    <layout name=\"dublincore\">\n      <templates>\n        <template mode=\"any\">/layouts/layout_default_template.xhtml\n        </template>\n      </templates>\n      <rows>\n        <row>\n          <widget>nature</widget>\n        </row>\n        <row>\n          <widget>subjects</widget>\n        </row>\n        <row>\n          <widget>rights</widget>\n        </row>\n        <row>\n          <widget>source</widget>\n        </row>\n        <row>\n          <widget>coverage</widget>\n        </row>\n        <row>\n          <widget>created</widget>\n        </row>\n        <row>\n          <widget>modified</widget>\n        </row>\n        <row>\n          <widget>format</widget>\n        </row>\n        <row>\n          <widget>language</widget>\n        </row>\n        <row>\n          <widget>expired</widget>\n        </row>\n        <row>\n          <widget>author</widget>\n        </row>\n        <row>\n          <widget>contributors</widget>\n        </row>\n        <row>\n          <widget>lastContributor</widget>\n        </row>\n      </rows>\n\n    </layout>\n\n    <layout name=\"file\">\n      <templates>\n        <template mode=\"any\">/layouts/layout_default_template.xhtml\n        </template>\n      </templates>\n      <rows>\n        <row>\n          <widget>file</widget>\n        </row>\n      </rows>\n    </layout>\n\n    <layout name=\"note\">\n      <templates>\n        <template mode=\"any\">/layouts/layout_default_template.xhtml\n        </template>\n      </templates>\n      <rows>\n        <row>\n          <widget>note</widget>\n        </row>\n      </rows>\n    </layout>\n\n    <layout name=\"files\">\n      <templates>\n        <template mode=\"any\">/layouts/layout_default_template.xhtml\n        </template>\n      </templates>\n      <rows>\n        <row>\n          <widget>files</widget>\n        </row>\n      </rows>\n    </layout>\n\n    <layout name=\"document_header\">\n      <templates>\n        <template mode=\"any\">/layouts/layout_div_template.xhtml</template>\n      </templates>\n      <rows>\n        <row>\n          <widget>header_title_and_permlink</widget>\n        </row>\n        <row>\n          <widget>header_description</widget>\n        </row>\n      </rows>\n    </layout>\n\n\n    <layout name=\"dndEdit\">\n      <templates>\n        <template mode=\"any\">/layouts/layout_default_template.xhtml\n        </template>\n      </templates>\n      <rows>\n        <row>\n          <widget>nature</widget>\n        </row>\n        <row>\n          <widget>subjects</widget>\n        </row>\n        <row>\n          <widget>rights</widget>\n        </row>\n        <row>\n          <widget>source</widget>\n        </row>\n        <row>\n          <widget>coverage</widget>\n        </row>\n        <row>\n          <widget>format</widget>\n        </row>\n        <row>\n          <widget>language</widget>\n        </row>\n        <row>\n          <widget>expired</widget>\n        </row>\n      </rows>\n\n    </layout>\n\n    <layout name=\"bulkEdit@edit\">\n      <templates>\n        <template mode=\"any\">/layouts/layout_bulkedit_template.xhtml\n        </template>\n      </templates>\n      <rows>\n        <row>\n          <widget>bulk_tags</widget>\n        </row>\n        <row>\n          <widget>bulk_collections</widget>\n        </row>\n        <row>\n          <widget>nature</widget>\n        </row>\n        <row>\n          <widget>subjects</widget>\n        </row>\n        <row>\n          <widget>coverage</widget>\n        </row>\n        <row>\n          <widget>expired</widget>\n        </row>\n        <row>\n          <widget>rights</widget>\n        </row>\n        <row>\n          <widget>source</widget>\n        </row>\n        <row>\n          <widget>format</widget>\n        </row>\n        <row>\n          <widget>language</widget>\n        </row>\n      </rows>\n    </layout>\n\n    <layout name=\"bulkImport@create\">\n      <templates>\n        <template mode=\"any\">/layouts/layout_default_template.xhtml</template>\n      </templates>\n      <rows>\n        <row>\n          <widget>bulk_tags</widget>\n        </row>\n        <row>\n          <widget>bulk_collections</widget>\n        </row>\n        <row>\n          <widget>nature</widget>\n        </row>\n        <row>\n          <widget>subjects</widget>\n        </row>\n        <row>\n          <widget>coverage</widget>\n        </row>\n      </rows>\n    </layout>\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/layouts-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentation": "\n      The widget types from this contribution are intended to be\n      used in the summary view. All these widgets are bound to the\n      currentDocument in the Seam context.\n    \n",
              "documentationHtml": "<p>\nThe widget types from this contribution are intended to be\nused in the summary view. All these widgets are bound to the\ncurrentDocument in the Seam context.\n</p><p></p>",
              "extensionPoint": "org.nuxeo.ecm.platform.forms.layout.WebLayoutManager--widgettypes",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.webapp/org.nuxeo.ecm.webapp.core/org.nuxeo.ecm.platform.forms.layouts.webapp.summary/Contributions/org.nuxeo.ecm.platform.forms.layouts.webapp.summary--widgettypes",
              "id": "org.nuxeo.ecm.platform.forms.layouts.webapp.summary--widgettypes",
              "registrationOrder": 14,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.forms.layout.WebLayoutManager",
                "name": "org.nuxeo.ecm.platform.forms.layout.WebLayoutManager",
                "type": "service"
              },
              "version": "2021.57.3",
              "xml": "<extension point=\"widgettypes\" target=\"org.nuxeo.ecm.platform.forms.layout.WebLayoutManager\">\n\n    <documentation>\n      The widget types from this contribution are intended to be\n      used in the summary view. All these widgets are bound to the\n      currentDocument in the Seam context.\n    </documentation>\n\n    <widgetType name=\"summary_current_document_actions\">\n      <configuration>\n        <sinceVersion>5.3.1</sinceVersion>\n        <deprecatedVersion>5.6</deprecatedVersion>\n        <title>Actions (lock, restore version)</title>\n        <description>\n          <p>\n            This widget displays the actions on the current document\n            (lock/unlock and undelete by default).\n          </p>\n          <p>\n            It requires the following variables to be present in the EL context:\n            <ul>\n              <li>currentDocument: the current document</li>\n            </ul>\n          </p>\n        </description>\n        <categories>\n          <category>summary</category>\n        </categories>\n        <supportedModes>\n          <mode>view</mode>\n        </supportedModes>\n        <!-- no configurable properties -->\n      </configuration>\n      <handler-class>\n        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler\n      </handler-class>\n      <property name=\"template\">\n        /widgets/summary/actions_widget_template.xhtml\n      </property>\n    </widgetType>\n\n    <widgetType name=\"summary_current_document_custom_actions\">\n      <configuration>\n        <sinceVersion>5.4.2</sinceVersion>\n        <deprecatedVersion>5.7</deprecatedVersion>\n        <title>Custom actions</title>\n        <description>\n          <p>This widget displays custom actions on the current document.</p>\n          <p>\n            It will display actions in the category given in the 'category'\n            property (defaults to 'DOCUMENT_SUMMARY_CUSTOM_ACTIONS' when not\n            set). The widget label and help label will be displayed above the\n            actions.\n          </p>\n        </description>\n        <categories>\n          <category>summary</category>\n          <category>tab_designer</category>\n        </categories>\n        <handlingLabels>true</handlingLabels>\n        <supportedModes>\n          <mode>view</mode>\n        </supportedModes>\n        <properties>\n          <layouts mode=\"any\">\n            <layout name=\"summary_current_document_custom_actions_widget_type_properties_any\">\n              <rows>\n                <row>\n                  <widget>category</widget>\n                </row>\n                <row>\n                  <widget>actionsDisplay</widget>\n                </row>\n                <row>\n                  <widget>overallDisplay</widget>\n                </row>\n                <row>\n                  <widget>maxActionsNumber</widget>\n                </row>\n                <row>\n                  <widget>headerStyleClass</widget>\n                </row>\n                <row>\n                  <widget>styleClass</widget>\n                </row>\n                <row>\n                  <widget>subStyleClass</widget>\n                </row>\n                <row>\n                  <widget>moreMenuLabel</widget>\n                </row>\n              </rows>\n              <widget name=\"category\" type=\"selectOneResource\">\n                <labels>\n                  <label mode=\"any\">Category</label>\n                </labels>\n                <helpLabels>\n                  <label mode=\"any\">\n                    The category of actions to use (defaults to\n                    DOCUMENT_SUMMARY_CUSTOM_ACTIONS when not set)\n                  </label>\n                </helpLabels>\n                <fields>\n                  <field>category</field>\n                </fields>\n                <widgetModes>\n                  <mode value=\"edit_demo_preview\">hidden</mode>\n                </widgetModes>\n                <properties mode=\"any\">\n                  <property name=\"resourceName\">actionCategories</property>\n                </properties>\n              </widget>\n              <widget name=\"headerStyleClass\" type=\"text\">\n                <labels>\n                  <label mode=\"any\">Header style class</label>\n                </labels>\n                <helpLabels>\n                  <label mode=\"any\">\n                    Style class for the header, displaying this\n                    widget label. Available since 5.6.\n                  </label>\n                </helpLabels>\n                <fields>\n                  <field>headerStyleClass</field>\n                </fields>\n              </widget>\n              <widget name=\"actionsDisplay\" type=\"selectOneListbox\">\n                <categories>\n                  <category>widgetTypeConf</category>\n                </categories>\n                <labels>\n                  <label mode=\"any\">Actions display</label>\n                </labels>\n                <helpLabels>\n                  <label mode=\"any\">\n                    If set to 'buttons', actions will be\n                    displayed as command buttons. If set to 'links', actions\n                    will be displayed as command links. If set to 'icons',\n                    actions will be displayed as icons.\n                    Else (default behaviour),\n                    actions will be displayed as command links and display their\n                    icons when defined.\n                  </label>\n                </helpLabels>\n                <fields>\n                  <!-- still named display here, kept for BBB -->\n                  <field>display</field>\n                </fields>\n                <selectOptions>\n                  <option itemLabel=\"Icons and links (default)\" itemValue=\"icons_links\"/>\n                  <option itemLabel=\"Icons\" itemValue=\"icons\"/>\n                  <option itemLabel=\"Buttons\" itemValue=\"buttons\"/>\n                  <option itemLabel=\"Links\" itemValue=\"links\"/>\n                </selectOptions>\n              </widget>\n              <widget name=\"overallDisplay\" type=\"selectOneListbox\">\n                <categories>\n                  <category>widgetTypeConf</category>\n                </categories>\n                <labels>\n                  <label mode=\"any\">Overall display</label>\n                </labels>\n                <helpLabels>\n                  <label mode=\"any\">\n                    Overall display of actions, available since\n                    5.6.\n                  </label>\n                </helpLabels>\n                <fields>\n                  <field>overallDisplay</field>\n                </fields>\n                <selectOptions>\n                  <option itemLabel=\"Vertical block (default)\" itemValue=\"\"/>\n                  <option itemLabel=\"Horizontal block\" itemValue=\"horizontal_block\"/>\n                  <option itemLabel=\"Menu\" itemValue=\"menu\"/>\n                </selectOptions>\n              </widget>\n              <widget name=\"styleClass\" type=\"text\">\n                <labels>\n                  <label mode=\"any\">Style class</label>\n                </labels>\n                <helpLabels>\n                  <label mode=\"any\">\n                    Style class for the global container div.\n                    Available since 5.6.\n                  </label>\n                </helpLabels>\n                <fields>\n                  <field>styleClass</field>\n                </fields>\n              </widget>\n              <widget name=\"subStyleClass\" type=\"text\">\n                <labels>\n                  <label mode=\"any\">Sub style class</label>\n                </labels>\n                <helpLabels>\n                  <label mode=\"any\">\n                    Style class for div containing actions.\n                    Available since 5.6.\n                  </label>\n                </helpLabels>\n                <fields>\n                  <field>subStyleClass</field>\n                </fields>\n              </widget>\n              <widget name=\"actionStyleClass\" type=\"text\">\n                <labels>\n                  <label mode=\"any\">Action style class</label>\n                </labels>\n                <helpLabels>\n                  <label mode=\"any\">\n                    Style class for each action link. Available\n                    since 5.6.\n                  </label>\n                </helpLabels>\n                <fields>\n                  <field>subStyleClass</field>\n                </fields>\n              </widget>\n              <widget name=\"maxActionsNumber\" type=\"int\">\n                <labels>\n                  <label mode=\"any\">Maximum number of actions</label>\n                </labels>\n                <helpLabels>\n                  <label mode=\"any\">\n                    Integer indicating the maximum number of\n                    actions to display. When this limit is reached, other\n                    actions are displayed in a menu. Available since 5.6.\n                  </label>\n                </helpLabels>\n                <fields>\n                  <field>maxActionsNumber</field>\n                </fields>\n              </widget>\n              <widget name=\"moreMenuLabel\" type=\"text\">\n                <labels>\n                  <label mode=\"any\">Label for the \"more\" menu</label>\n                </labels>\n                <fields>\n                  <field>moreMenuLabel</field>\n                </fields>\n              </widget>\n            </layout>\n          </layouts>\n        </properties>\n      </configuration>\n      <handler-class>\n        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler\n      </handler-class>\n      <property name=\"template\">\n        /widgets/summary/custom_actions_widget_template.xhtml\n      </property>\n    </widgetType>\n\n    <widgetType name=\"summary_current_document_description\">\n      <configuration>\n        <sinceVersion>5.3.1</sinceVersion>\n        <title>Description</title>\n        <description>\n          <p>This widget displays the description of the currentDocument.</p>\n          <p>\n            Since 5.6, it also displays the creation date, author and version\n            beneath the description.\n          </p>\n          <p>\n            It requires the following variables to be present in the EL context:\n            <ul>\n              <li>currentDocument: the current document</li>\n              <li>currentDocumentVersionInfo: the current document version\n                information</li>\n            </ul>\n          </p>\n        </description>\n        <categories>\n          <category>summary</category>\n        </categories>\n        <supportedModes>\n          <mode>view</mode>\n        </supportedModes>\n        <!-- no configurable properties -->\n      </configuration>\n      <handler-class>\n        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler\n      </handler-class>\n      <property name=\"template\">\n        /widgets/summary/description_widget_template.xhtml\n      </property>\n    </widgetType>\n\n    <widgetType name=\"summary_current_document_files\">\n      <configuration>\n        <sinceVersion>5.3.1</sinceVersion>\n        <title>Files</title>\n        <description>\n          <p>This widget displays the files held by the currentDocument</p>\n          <p>\n            It requires the following variables to be present in the EL context:\n            <ul>\n              <li>currentDocument: the current document</li>\n              <li>\n                currentDocumentAsBlobHolder: the BlobHolder on the\n                currentDocument\n              </li>\n              <li>\n                conversionActions: the Seam Bean wrapping the\n                conversionService\n              </li>\n              <li>liveEditHelper: the Seam Bean encapsulating LiveEdit</li>\n            </ul>\n          </p>\n        </description>\n        <handlingLabels>true</handlingLabels>\n        <categories>\n          <category>summary</category>\n        </categories>\n        <supportedModes>\n          <mode>view</mode>\n        </supportedModes>\n        <!-- no configurable properties -->\n      </configuration>\n      <handler-class>\n        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler\n      </handler-class>\n      <property name=\"template\">\n        /widgets/summary/content_widget_template.xhtml\n      </property>\n    </widgetType>\n\n    <widgetType name=\"summary_current_document_view\">\n      <configuration>\n        <sinceVersion>5.3.1</sinceVersion>\n        <title>View layout</title>\n        <description>\n          <p>This widget displays the view layouts of the currentDocument</p>\n          <p>\n            It requires the following variables to be present in the EL context:\n            <ul>\n              <li>currentDocument: the current document</li>\n              <li>currentDocumentType: the type of the current document</li>\n            </ul>\n          </p>\n        </description>\n        <handlingLabels>true</handlingLabels>\n        <categories>\n          <category>summary</category>\n        </categories>\n        <supportedModes>\n          <mode>view</mode>\n        </supportedModes>\n        <!-- no configurable properties -->\n      </configuration>\n      <handler-class>\n        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler\n      </handler-class>\n      <property name=\"template\">\n        /widgets/summary/metadata_custom_widget_template.xhtml\n      </property>\n    </widgetType>\n\n    <widgetType name=\"summary_current_document_dublincore\">\n      <configuration>\n        <sinceVersion>5.3.1</sinceVersion>\n        <title>Dublincore</title>\n        <description>\n          <p>\n            This widget displays the dublincore layout of the currentDocument.\n          </p>\n          <p>\n            It requires the following variables to be present in the EL context:\n            <ul>\n              <li>currentDocument: the current document</li>\n            </ul>\n          </p>\n        </description>\n        <handlingLabels>true</handlingLabels>\n        <categories>\n          <category>summary</category>\n        </categories>\n        <supportedModes>\n          <mode>view</mode>\n        </supportedModes>\n        <!-- no configurable properties -->\n      </configuration>\n      <handler-class>\n        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler\n      </handler-class>\n      <property name=\"template\">\n        /widgets/summary/metadata_dc_widget_template.xhtml\n      </property>\n    </widgetType>\n\n    <widgetType name=\"summary_current_document_tagging\">\n      <configuration>\n        <sinceVersion>5.3.1</sinceVersion>\n        <title>Tagging</title>\n        <description>\n          This widget displays the tags for the currentDocument and\n          allows to add new ones. It requires the tag service to be deployed.\n        </description>\n        <handlingLabels>true</handlingLabels>\n        <categories>\n          <category>summary</category>\n        </categories>\n        <properties>\n          <defaultValues mode=\"any\">\n            <property name=\"width\">100%</property>\n          </defaultValues>\n        </properties>\n        <supportedModes>\n          <mode>view</mode>\n        </supportedModes>\n        <!-- no configurable properties -->\n      </configuration>\n      <handler-class>\n        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler\n      </handler-class>\n      <property name=\"template\">\n        /widgets/summary/tagging_widget_template.xhtml\n      </property>\n    </widgetType>\n\n    <widgetType name=\"summary_current_document_relations\">\n      <configuration>\n        <sinceVersion>5.3.1</sinceVersion>\n        <title>Relations</title>\n        <description>\n          This widget displays the in/out relations for the\n          currentDocument. It requires the Relation service to be deployed.\n        </description>\n        <handlingLabels>true</handlingLabels>\n        <categories>\n          <category>summary</category>\n        </categories>\n        <supportedModes>\n          <mode>view</mode>\n        </supportedModes>\n        <!-- no configurable properties -->\n      </configuration>\n      <handler-class>\n        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler\n      </handler-class>\n      <property name=\"template\">\n        /widgets/summary/relations_widget_template.xhtml\n      </property>\n    </widgetType>\n\n    <widgetType name=\"summary_current_document_comments\">\n      <configuration>\n        <sinceVersion>5.3.1</sinceVersion>\n        <title>Comments</title>\n        <description>\n          This widget displays the comments for the currentDocument.\n          It requires the Comment service to be deployed.\n        </description>\n        <handlingLabels>true</handlingLabels>\n        <categories>\n          <category>summary</category>\n        </categories>\n        <supportedModes>\n          <mode>view</mode>\n        </supportedModes>\n        <!-- no configurable properties -->\n      </configuration>\n      <handler-class>\n        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler\n      </handler-class>\n      <property name=\"template\">\n        /widgets/summary/comments_widget_template.xhtml\n      </property>\n    </widgetType>\n\n    <widgetType name=\"summary_current_document_publications\">\n      <configuration>\n        <sinceVersion>5.3.1</sinceVersion>\n        <title>Publications</title>\n        <description>\n          This widget displays the publications of the\n          currentDocument. It requires the Publisher service to be deployed.\n        </description>\n        <handlingLabels>true</handlingLabels>\n        <categories>\n          <category>summary</category>\n        </categories>\n        <supportedModes>\n          <mode>view</mode>\n        </supportedModes>\n        <!-- no configurable properties -->\n      </configuration>\n      <handler-class>\n        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler\n      </handler-class>\n      <property name=\"template\">\n        /widgets/summary/publication_widget_template.xhtml\n      </property>\n    </widgetType>\n\n    <widgetType name=\"summary_current_document_lc_and_version\">\n      <configuration>\n        <sinceVersion>5.3.1</sinceVersion>\n        <title>Life cycle state and version</title>\n        <description>\n          <p>\n            This widget displays the life-cycle state and version of the\n            currentDocument.\n          </p>\n          <p>\n            Since 5.6, this widget is not used by default, it's replaced by the\n            widget named \"summary_current_document_states\".\n          </p>\n          <p>\n            It requires the following variables to be present in the EL context:\n            <ul>\n              <li>currentDocument: the current document</li>\n              <li>\n                currentDocumentVersionInfo: the current document versionning\n                information\n              </li>\n            </ul>\n          </p>\n        </description>\n        <categories>\n          <category>summary</category>\n        </categories>\n        <supportedModes>\n          <mode>view</mode>\n        </supportedModes>\n        <!-- no configurable properties -->\n      </configuration>\n      <handler-class>\n        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler\n      </handler-class>\n      <property name=\"template\">\n        /widgets/summary/lc_and_version_widget_template.xhtml\n      </property>\n    </widgetType>\n\n    <widgetType name=\"summary_current_document_single_tasks\">\n      <configuration>\n        <sinceVersion>5.3.2</sinceVersion>\n        <title>Tasks</title>\n        <description>\n          <p>\n            This widget displays the single tasks (out of a process instance)\n            attached to current document model.\n          </p>\n          <p>\n            It requires the following variables to be present in the EL context:\n            <ul>\n              <li>\n                currentSingleTasks: the single tasks attached to current\n                document\n              </li>\n            </ul>\n          </p>\n        </description>\n        <handlingLabels>true</handlingLabels>\n        <categories>\n          <category>summary</category>\n        </categories>\n        <supportedModes>\n          <mode>view</mode>\n        </supportedModes>\n        <containingForm>true</containingForm>\n        <!-- no configurable properties -->\n      </configuration>\n      <handler-class>\n        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler\n      </handler-class>\n      <property name=\"template\">\n        /widgets/summary/single_tasks_widget_template.xhtml\n      </property>\n    </widgetType>\n\n    <widgetType name=\"summary_current_document_states\">\n      <configuration>\n        <sinceVersion>5.6</sinceVersion>\n        <title>States</title>\n        <description>\n          <p>\n            This widget displays current document state (life cycle state and\n            lock status)\n          </p>\n        </description>\n        <handlingLabels>true</handlingLabels>\n        <categories>\n          <category>summary</category>\n        </categories>\n        <supportedModes>\n          <mode>view</mode>\n        </supportedModes>\n        <!-- no configurable properties -->\n      </configuration>\n      <handler-class>\n        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler\n      </handler-class>\n      <property name=\"template\">\n        /widgets/summary/states_widget_template.xhtml\n      </property>\n    </widgetType>\n\n    <widgetType name=\"summary_current_document_contributors\">\n      <configuration>\n        <sinceVersion>5.6</sinceVersion>\n        <title>Contributors</title>\n        <description>\n          <p>\n            This widget displays the document contributors.\n          </p>\n        </description>\n        <handlingLabels>true</handlingLabels>\n        <categories>\n          <category>summary</category>\n        </categories>\n        <supportedModes>\n          <mode>view</mode>\n        </supportedModes>\n        <!-- no configurable properties -->\n      </configuration>\n      <handler-class>\n        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler\n      </handler-class>\n      <property name=\"template\">\n        /widgets/summary/contributors_widget_template.xhtml\n      </property>\n    </widgetType>\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.forms.layout.WebLayoutManager--widgets",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.webapp/org.nuxeo.ecm.webapp.core/org.nuxeo.ecm.platform.forms.layouts.webapp.summary/Contributions/org.nuxeo.ecm.platform.forms.layouts.webapp.summary--widgets",
              "id": "org.nuxeo.ecm.platform.forms.layouts.webapp.summary--widgets",
              "registrationOrder": 17,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.forms.layout.WebLayoutManager",
                "name": "org.nuxeo.ecm.platform.forms.layout.WebLayoutManager",
                "type": "service"
              },
              "version": "2021.57.3",
              "xml": "<extension point=\"widgets\" target=\"org.nuxeo.ecm.platform.forms.layout.WebLayoutManager\">\n\n    <widget name=\"summary_current_document_description\" type=\"summary_current_document_description\">\n      <controls mode=\"any\">\n        <control name=\"requireSurroundingForm\">true</control>\n      </controls>\n    </widget>\n\n    <widget name=\"summary_current_document_actions\" type=\"summary_current_document_actions\">\n      <controls mode=\"any\">\n        <control name=\"requireSurroundingForm\">true</control>\n      </controls>\n    </widget>\n\n    <widget name=\"summary_current_document_custom_actions\" type=\"summary_current_document_custom_actions\">\n      <controls mode=\"any\">\n        <control name=\"requireSurroundingForm\">true</control>\n      </controls>\n    </widget>\n\n    <widget name=\"summary_current_document_files\" type=\"summary_current_document_files\">\n      <labels>\n        <label mode=\"any\"/>\n      </labels>\n      <controls mode=\"any\">\n        <control name=\"requireSurroundingForm\">true</control>\n        <control name=\"handleLabels\">true</control>\n      </controls>\n    </widget>\n\n    <widget name=\"summary_current_document_view\" type=\"summary_current_document_view\">\n      <labels>\n        <label mode=\"any\"/>\n      </labels>\n      <controls mode=\"any\">\n        <control name=\"requireSurroundingForm\">true</control>\n        <control name=\"handleLabels\">true</control>\n      </controls>\n    </widget>\n\n    <widget name=\"summary_current_document_tagging\" type=\"summary_current_document_tagging\">\n      <labels>\n        <label mode=\"any\"/>\n      </labels>\n      <controls mode=\"any\">\n        <control name=\"requireSurroundingForm\">true</control>\n        <control name=\"handleLabels\">true</control>\n      </controls>\n      <properties widgetMode=\"any\">\n        <property name=\"ajaxReRender\">MultiTreeView</property>\n        <property name=\"placeholder\">\n          #{messages['label.add.tag.placeholder']}\n        </property>\n      </properties>\n    </widget>\n\n    <widget name=\"summary_current_document_dublincore\" type=\"summary_current_document_dublincore\">\n      <labels>\n        <label mode=\"any\"/>\n      </labels>\n      <controls mode=\"any\">\n        <control name=\"requireSurroundingForm\">true</control>\n        <control name=\"handleLabels\">true</control>\n      </controls>\n    </widget>\n\n    <widget name=\"summary_current_document_relations\" type=\"summary_current_document_relations\">\n      <controls mode=\"any\">\n        <control name=\"requireSurroundingForm\">true</control>\n      </controls>\n    </widget>\n\n    <widget name=\"summary_current_document_comments\" type=\"summary_current_document_comments\">\n      <labels>\n        <label mode=\"any\"/>\n      </labels>\n      <controls mode=\"any\">\n        <control name=\"requireSurroundingForm\">true</control>\n        <control name=\"handleLabels\">true</control>\n      </controls>\n    </widget>\n\n    <widget name=\"summary_current_document_publications\" type=\"summary_current_document_publications\">\n      <labels>\n        <label mode=\"any\"/>\n      </labels>\n      <controls mode=\"any\">\n        <control name=\"requireSurroundingForm\">true</control>\n        <control name=\"handleLabels\">true</control>\n      </controls>\n    </widget>\n\n    <widget name=\"summary_current_document_lc_and_version\" type=\"summary_current_document_lc_and_version\">\n      <labels>\n        <label mode=\"any\"/>\n      </labels>\n      <controls mode=\"any\">\n        <control name=\"requireSurroundingForm\">true</control>\n        <control name=\"handleLabels\">true</control>\n      </controls>\n    </widget>\n\n    <widget name=\"summary_current_document_single_tasks\" type=\"summary_current_document_single_tasks\">\n      <labels>\n        <label mode=\"any\"/>\n      </labels>\n      <controls mode=\"any\">\n        <control name=\"handleLabels\">true</control>\n        <control name=\"requireSurroundingForm\">false</control>\n      </controls>\n    </widget>\n\n    <widget name=\"summary_current_document_indicators\" type=\"documentActions\">\n      <labels>\n        <label mode=\"any\"/>\n      </labels>\n      <controls mode=\"any\">\n        <control name=\"handleLabels\">true</control>\n      </controls>\n      <properties widgetMode=\"view\">\n        <property name=\"category\">SUMMARY_INDICATORS</property>\n        <property name=\"overallDisplay\">horizontal_block</property>\n        <property name=\"styleClass\">indicators</property>\n      </properties>\n    </widget>\n\n    <widget name=\"summary_current_document_states\" type=\"summary_current_document_states\">\n      <labels>\n        <label mode=\"any\"/>\n      </labels>\n      <controls mode=\"any\">\n        <control name=\"handleLabels\">true</control>\n        <control name=\"requireSurroundingForm\">true</control>\n      </controls>\n    </widget>\n\n    <widget name=\"summary_current_document_contributors\" type=\"summary_current_document_contributors\">\n      <labels>\n        <label mode=\"any\"/>\n      </labels>\n      <controls mode=\"any\">\n        <control name=\"handleLabels\">true</control>\n        <control name=\"requireSurroundingForm\">true</control>\n      </controls>\n    </widget>\n\n    <widget name=\"summary_note_text\" type=\"richtext_with_mimetype\">\n      <fields>\n        <field>note:note</field>\n        <field>note:mime_type</field>\n      </fields>\n      <properties mode=\"view\">\n        <property name=\"translatedHtml\">\n          #{noteActions.translateImageLinks(field_0)}\n        </property>\n        <property name=\"cssClass\">note_content_block</property>\n      </properties>\n      <controls mode=\"any\">\n        <control name=\"requireSurroundingForm\">true</control>\n      </controls>\n    </widget>\n\n    <widget name=\"summary_panel_top\" type=\"documentActions\">\n      <labels>\n        <label mode=\"any\"/>\n      </labels>\n      <properties widgetMode=\"any\">\n        <property name=\"category\">SUMMARY_PANEL_TOP</property>\n        <property name=\"styleClass\">summaryActions</property>\n      </properties>\n      <controls mode=\"any\">\n        <control name=\"handleLabels\">true</control>\n        <control name=\"gridStyleClass\">gridStyle12</control>\n      </controls>\n    </widget>\n\n    <widget name=\"summary_panel_left\" type=\"documentActions\">\n      <labels>\n        <label mode=\"any\"/>\n      </labels>\n      <properties widgetMode=\"any\">\n        <property name=\"category\">SUMMARY_PANEL_LEFT</property>\n        <property name=\"styleClass\">summaryActions</property>\n      </properties>\n      <controls mode=\"any\">\n        <control name=\"handleLabels\">true</control>\n        <control name=\"gridStyleClass\">gridStyle8</control>\n      </controls>\n    </widget>\n\n    <widget name=\"summary_panel_right\" type=\"documentActions\">\n      <labels>\n        <label mode=\"any\"/>\n      </labels>\n      <properties widgetMode=\"any\">\n        <property name=\"category\">SUMMARY_PANEL_RIGHT</property>\n        <property name=\"styleClass\">summaryActions</property>\n      </properties>\n      <controls mode=\"any\">\n        <control name=\"handleLabels\">true</control>\n        <control name=\"gridStyleClass\">gridStyle4</control>\n      </controls>\n    </widget>\n\n    <widget name=\"summary_panel_bottom\" type=\"documentActions\">\n      <labels>\n        <label mode=\"any\"/>\n      </labels>\n      <properties widgetMode=\"any\">\n        <property name=\"category\">SUMMARY_PANEL_BOTTOM</property>\n        <property name=\"styleClass\">summaryActions</property>\n      </properties>\n      <controls mode=\"any\">\n        <control name=\"handleLabels\">true</control>\n        <control name=\"gridStyleClass\">gridStyle12</control>\n      </controls>\n    </widget>\n\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentation": "\n      Actions for stacking widgets inside the summary default\n      widgets.\n\n      @since 5.6\n    \n",
              "documentationHtml": "<p>\nActions for stacking widgets inside the summary default\nwidgets.\n</p><p>\n&#64;since 5.6\n</p><p></p>",
              "extensionPoint": "org.nuxeo.ecm.platform.actions.ActionService--actions",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.webapp/org.nuxeo.ecm.webapp.core/org.nuxeo.ecm.platform.forms.layouts.webapp.summary/Contributions/org.nuxeo.ecm.platform.forms.layouts.webapp.summary--actions",
              "id": "org.nuxeo.ecm.platform.forms.layouts.webapp.summary--actions",
              "registrationOrder": 31,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.actions.ActionService",
                "name": "org.nuxeo.ecm.platform.actions.ActionService",
                "type": "service"
              },
              "version": "2021.57.3",
              "xml": "<extension point=\"actions\" target=\"org.nuxeo.ecm.platform.actions.ActionService\">\n\n    <documentation>\n      Actions for stacking widgets inside the summary default\n      widgets.\n\n      @since 5.6\n    </documentation>\n\n    <!-- default widgets on left panel -->\n\n    <action id=\"summary_note_text\" order=\"100\" type=\"widget\">\n      <category>SUMMARY_PANEL_LEFT</category>\n      <properties>\n        <property name=\"widgetName\">summary_note_text</property>\n      </properties>\n      <filter-id>hasNote</filter-id>\n    </action>\n\n    <action id=\"summary_current_document_files\" order=\"200\" type=\"widget\">\n      <category>SUMMARY_PANEL_LEFT</category>\n      <properties>\n        <property name=\"widgetName\">summary_current_document_files</property>\n      </properties>\n    </action>\n\n    <action id=\"summary_current_document_view\" order=\"300\" type=\"widget\">\n      <category>SUMMARY_PANEL_LEFT</category>\n      <properties>\n        <property name=\"widgetName\">summary_current_document_view</property>\n      </properties>\n      <filter-id>notHasNote</filter-id>\n      <filter-id>denyForFile</filter-id>\n    </action>\n\n    <action id=\"summary_current_document_dublincore\" order=\"350\" type=\"widget\">\n      <category>SUMMARY_PANEL_LEFT</category>\n      <properties>\n        <property name=\"widgetName\">summary_current_document_dublincore</property>\n      </properties>\n      <filter-id>hasDublincore</filter-id>\n    </action>\n\n    <action id=\"summary_current_document_comments\" order=\"400\" type=\"widget\">\n      <category>SUMMARY_PANEL_LEFT</category>\n      <properties>\n        <property name=\"widgetName\">summary_current_document_comments</property>\n      </properties>\n    </action>\n\n    <action id=\"summary_current_document_publications\" order=\"500\" type=\"widget\">\n      <category>SUMMARY_PANEL_LEFT</category>\n      <properties>\n        <property name=\"widgetName\">summary_current_document_publications</property>\n      </properties>\n    </action>\n\n    <action id=\"summary_current_document_single_tasks\" order=\"600\" type=\"widget\">\n      <category>SUMMARY_PANEL_LEFT</category>\n      <properties>\n        <property name=\"widgetName\">summary_current_document_single_tasks</property>\n      </properties>\n    </action>\n\n    <!-- end of default widgets on left panel -->\n\n    <!-- default widgets on right panel -->\n\n    <action id=\"summary_current_document_description\" order=\"100\" type=\"widget\">\n      <category>SUMMARY_PANEL_RIGHT</category>\n      <properties>\n        <property name=\"widgetName\">summary_current_document_description</property>\n      </properties>\n    </action>\n\n    <action id=\"summary_current_document_indicators\" order=\"150\" type=\"widget\">\n      <category>SUMMARY_PANEL_RIGHT</category>\n      <properties>\n        <property name=\"widgetName\">summary_current_document_indicators</property>\n      </properties>\n    </action>\n\n\n\n    <action id=\"summary_current_document_states\" order=\"200\" type=\"widget\">\n      <category>SUMMARY_PANEL_RIGHT</category>\n      <properties>\n        <property name=\"widgetName\">summary_current_document_states</property>\n      </properties>\n    </action>\n\n    <action id=\"summary_current_document_contributors\" order=\"300\" type=\"widget\">\n      <category>SUMMARY_PANEL_RIGHT</category>\n      <properties>\n        <property name=\"widgetName\">summary_current_document_contributors</property>\n      </properties>\n    </action>\n\n    <action id=\"summary_current_document_custom_actions\" order=\"400\" type=\"widget\">\n      <category>SUMMARY_PANEL_RIGHT</category>\n      <properties>\n        <property name=\"widgetName\">summary_current_document_custom_actions</property>\n      </properties>\n    </action>\n\n    <action id=\"summary_current_document_tagging\" order=\"500\" type=\"widget\">\n      <category>SUMMARY_PANEL_RIGHT</category>\n      <properties>\n        <property name=\"widgetName\">summary_current_document_tagging</property>\n        <property name=\"disableMultipartForm\">true</property>\n      </properties>\n    </action>\n\n    <action id=\"summary_current_document_relations\" order=\"600\" type=\"widget\">\n      <category>SUMMARY_PANEL_RIGHT</category>\n      <properties>\n        <property name=\"widgetName\">summary_current_document_relations</property>\n      </properties>\n    </action>\n\n    <!-- end of default widgets on right panel -->\n\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentation": "\n      Default layouts displayed on documents summary view\n    \n",
              "documentationHtml": "<p>\nDefault layouts displayed on documents summary view\n</p><p></p>",
              "extensionPoint": "org.nuxeo.ecm.platform.forms.layout.WebLayoutManager--layouts",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.webapp/org.nuxeo.ecm.webapp.core/org.nuxeo.ecm.platform.forms.layouts.webapp.summary/Contributions/org.nuxeo.ecm.platform.forms.layouts.webapp.summary--layouts",
              "id": "org.nuxeo.ecm.platform.forms.layouts.webapp.summary--layouts",
              "registrationOrder": 17,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.forms.layout.WebLayoutManager",
                "name": "org.nuxeo.ecm.platform.forms.layout.WebLayoutManager",
                "type": "service"
              },
              "version": "2021.57.3",
              "xml": "<extension point=\"layouts\" target=\"org.nuxeo.ecm.platform.forms.layout.WebLayoutManager\">\n\n    <documentation>\n      Default layouts displayed on documents summary view\n    </documentation>\n\n    <layout name=\"grid_summary_layout\">\n      <templates>\n        <template mode=\"any\">\n          /layouts/layout_grid_template.xhtml\n        </template>\n      </templates>\n      <rows>\n        <row>\n          <widget>summary_panel_top</widget>\n        </row>\n        <row>\n          <widget>summary_panel_left</widget>\n          <widget>summary_panel_right</widget>\n        </row>\n        <row>\n          <widget>summary_panel_bottom</widget>\n        </row>\n      </rows>\n    </layout>\n\n    <!-- deprecated since 5.6, use a grid layout now -->\n    <layout name=\"default_summary_layout\">\n      <templates>\n        <template mode=\"any\">/layouts/layout_summary_template.xhtml</template>\n      </templates>\n      <rows>\n        <row>\n          <widget>summary_current_document_files</widget>\n          <widget>summary_current_document_view</widget>\n          <widget>summary_current_document_comments</widget>\n        </row>\n        <row>\n          <widget>summary_current_document_description</widget>\n          <widget>summary_current_document_states</widget>\n          <widget>summary_current_document_contributors</widget>\n          <widget>summary_current_document_custom_actions</widget>\n          <widget>summary_current_document_tagging</widget>\n          <widget>summary_current_document_relations</widget>\n        </row>\n        <row>\n          <widget>summary_current_document_publications</widget>\n        </row>\n        <row>\n          <widget>summary_current_document_single_tasks</widget>\n        </row>\n      </rows>\n    </layout>\n\n    <!-- deprecated since 5.6, use a grid layout now -->\n    <layout name=\"note_summary_layout\">\n      <templates>\n        <template mode=\"any\">/layouts/layout_summary_template.xhtml</template>\n      </templates>\n      <rows>\n        <row>\n          <widget>summary_note_text</widget>\n          <widget>summary_current_document_files</widget>\n          <widget>summary_current_document_comments</widget>\n        </row>\n        <row>\n          <widget>summary_current_document_description</widget>\n          <widget>summary_current_document_states</widget>\n          <widget>summary_current_document_contributors</widget>\n          <widget>summary_current_document_custom_actions</widget>\n          <widget>summary_current_document_tagging</widget>\n          <widget>summary_current_document_relations</widget>\n        </row>\n        <row>\n          <widget>summary_current_document_publications</widget>\n        </row>\n        <row>\n          <widget>summary_current_document_single_tasks</widget>\n        </row>\n      </rows>\n    </layout>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.webapp/org.nuxeo.ecm.webapp.core/org.nuxeo.ecm.platform.forms.layouts.webapp.summary",
          "name": "org.nuxeo.ecm.platform.forms.layouts.webapp.summary",
          "requirements": [],
          "resolutionOrder": 680,
          "services": [],
          "startOrder": 335,
          "version": "2021.57.3",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n\n<component name=\"org.nuxeo.ecm.platform.forms.layouts.webapp.summary\">\n\n  <extension target=\"org.nuxeo.ecm.platform.forms.layout.WebLayoutManager\"\n    point=\"widgettypes\">\n\n    <documentation>\n      The widget types from this contribution are intended to be\n      used in the summary view. All these widgets are bound to the\n      currentDocument in the Seam context.\n    </documentation>\n\n    <widgetType name=\"summary_current_document_actions\">\n      <configuration>\n        <sinceVersion>5.3.1</sinceVersion>\n        <deprecatedVersion>5.6</deprecatedVersion>\n        <title>Actions (lock, restore version)</title>\n        <description>\n          <p>\n            This widget displays the actions on the current document\n            (lock/unlock and undelete by default).\n          </p>\n          <p>\n            It requires the following variables to be present in the EL context:\n            <ul>\n              <li>currentDocument: the current document</li>\n            </ul>\n          </p>\n        </description>\n        <categories>\n          <category>summary</category>\n        </categories>\n        <supportedModes>\n          <mode>view</mode>\n        </supportedModes>\n        <!-- no configurable properties -->\n      </configuration>\n      <handler-class>\n        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler\n      </handler-class>\n      <property name=\"template\">\n        /widgets/summary/actions_widget_template.xhtml\n      </property>\n    </widgetType>\n\n    <widgetType name=\"summary_current_document_custom_actions\">\n      <configuration>\n        <sinceVersion>5.4.2</sinceVersion>\n        <deprecatedVersion>5.7</deprecatedVersion>\n        <title>Custom actions</title>\n        <description>\n          <p>This widget displays custom actions on the current document.</p>\n          <p>\n            It will display actions in the category given in the 'category'\n            property (defaults to 'DOCUMENT_SUMMARY_CUSTOM_ACTIONS' when not\n            set). The widget label and help label will be displayed above the\n            actions.\n          </p>\n        </description>\n        <categories>\n          <category>summary</category>\n          <category>tab_designer</category>\n        </categories>\n        <handlingLabels>true</handlingLabels>\n        <supportedModes>\n          <mode>view</mode>\n        </supportedModes>\n        <properties>\n          <layouts mode=\"any\">\n            <layout\n              name=\"summary_current_document_custom_actions_widget_type_properties_any\">\n              <rows>\n                <row>\n                  <widget>category</widget>\n                </row>\n                <row>\n                  <widget>actionsDisplay</widget>\n                </row>\n                <row>\n                  <widget>overallDisplay</widget>\n                </row>\n                <row>\n                  <widget>maxActionsNumber</widget>\n                </row>\n                <row>\n                  <widget>headerStyleClass</widget>\n                </row>\n                <row>\n                  <widget>styleClass</widget>\n                </row>\n                <row>\n                  <widget>subStyleClass</widget>\n                </row>\n                <row>\n                  <widget>moreMenuLabel</widget>\n                </row>\n              </rows>\n              <widget name=\"category\" type=\"selectOneResource\">\n                <labels>\n                  <label mode=\"any\">Category</label>\n                </labels>\n                <helpLabels>\n                  <label mode=\"any\">\n                    The category of actions to use (defaults to\n                    DOCUMENT_SUMMARY_CUSTOM_ACTIONS when not set)\n                  </label>\n                </helpLabels>\n                <fields>\n                  <field>category</field>\n                </fields>\n                <widgetModes>\n                  <mode value=\"edit_demo_preview\">hidden</mode>\n                </widgetModes>\n                <properties mode=\"any\">\n                  <property name=\"resourceName\">actionCategories</property>\n                </properties>\n              </widget>\n              <widget name=\"headerStyleClass\" type=\"text\">\n                <labels>\n                  <label mode=\"any\">Header style class</label>\n                </labels>\n                <helpLabels>\n                  <label mode=\"any\">\n                    Style class for the header, displaying this\n                    widget label. Available since 5.6.\n                  </label>\n                </helpLabels>\n                <fields>\n                  <field>headerStyleClass</field>\n                </fields>\n              </widget>\n              <widget name=\"actionsDisplay\" type=\"selectOneListbox\">\n                <categories>\n                  <category>widgetTypeConf</category>\n                </categories>\n                <labels>\n                  <label mode=\"any\">Actions display</label>\n                </labels>\n                <helpLabels>\n                  <label mode=\"any\">\n                    If set to 'buttons', actions will be\n                    displayed as command buttons. If set to 'links', actions\n                    will be displayed as command links. If set to 'icons',\n                    actions will be displayed as icons.\n                    Else (default behaviour),\n                    actions will be displayed as command links and display their\n                    icons when defined.\n                  </label>\n                </helpLabels>\n                <fields>\n                  <!-- still named display here, kept for BBB -->\n                  <field>display</field>\n                </fields>\n                <selectOptions>\n                  <option itemLabel=\"Icons and links (default)\"\n                    itemValue=\"icons_links\" />\n                  <option itemLabel=\"Icons\" itemValue=\"icons\" />\n                  <option itemLabel=\"Buttons\" itemValue=\"buttons\" />\n                  <option itemLabel=\"Links\" itemValue=\"links\" />\n                </selectOptions>\n              </widget>\n              <widget name=\"overallDisplay\" type=\"selectOneListbox\">\n                <categories>\n                  <category>widgetTypeConf</category>\n                </categories>\n                <labels>\n                  <label mode=\"any\">Overall display</label>\n                </labels>\n                <helpLabels>\n                  <label mode=\"any\">\n                    Overall display of actions, available since\n                    5.6.\n                  </label>\n                </helpLabels>\n                <fields>\n                  <field>overallDisplay</field>\n                </fields>\n                <selectOptions>\n                  <option itemLabel=\"Vertical block (default)\" itemValue=\"\" />\n                  <option itemLabel=\"Horizontal block\" itemValue=\"horizontal_block\" />\n                  <option itemLabel=\"Menu\" itemValue=\"menu\" />\n                </selectOptions>\n              </widget>\n              <widget name=\"styleClass\" type=\"text\">\n                <labels>\n                  <label mode=\"any\">Style class</label>\n                </labels>\n                <helpLabels>\n                  <label mode=\"any\">\n                    Style class for the global container div.\n                    Available since 5.6.\n                  </label>\n                </helpLabels>\n                <fields>\n                  <field>styleClass</field>\n                </fields>\n              </widget>\n              <widget name=\"subStyleClass\" type=\"text\">\n                <labels>\n                  <label mode=\"any\">Sub style class</label>\n                </labels>\n                <helpLabels>\n                  <label mode=\"any\">\n                    Style class for div containing actions.\n                    Available since 5.6.\n                  </label>\n                </helpLabels>\n                <fields>\n                  <field>subStyleClass</field>\n                </fields>\n              </widget>\n              <widget name=\"actionStyleClass\" type=\"text\">\n                <labels>\n                  <label mode=\"any\">Action style class</label>\n                </labels>\n                <helpLabels>\n                  <label mode=\"any\">\n                    Style class for each action link. Available\n                    since 5.6.\n                  </label>\n                </helpLabels>\n                <fields>\n                  <field>subStyleClass</field>\n                </fields>\n              </widget>\n              <widget name=\"maxActionsNumber\" type=\"int\">\n                <labels>\n                  <label mode=\"any\">Maximum number of actions</label>\n                </labels>\n                <helpLabels>\n                  <label mode=\"any\">\n                    Integer indicating the maximum number of\n                    actions to display. When this limit is reached, other\n                    actions are displayed in a menu. Available since 5.6.\n                  </label>\n                </helpLabels>\n                <fields>\n                  <field>maxActionsNumber</field>\n                </fields>\n              </widget>\n              <widget name=\"moreMenuLabel\" type=\"text\">\n                <labels>\n                  <label mode=\"any\">Label for the \"more\" menu</label>\n                </labels>\n                <fields>\n                  <field>moreMenuLabel</field>\n                </fields>\n              </widget>\n            </layout>\n          </layouts>\n        </properties>\n      </configuration>\n      <handler-class>\n        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler\n      </handler-class>\n      <property name=\"template\">\n        /widgets/summary/custom_actions_widget_template.xhtml\n      </property>\n    </widgetType>\n\n    <widgetType name=\"summary_current_document_description\">\n      <configuration>\n        <sinceVersion>5.3.1</sinceVersion>\n        <title>Description</title>\n        <description>\n          <p>This widget displays the description of the currentDocument.</p>\n          <p>\n            Since 5.6, it also displays the creation date, author and version\n            beneath the description.\n          </p>\n          <p>\n            It requires the following variables to be present in the EL context:\n            <ul>\n              <li>currentDocument: the current document</li>\n              <li>currentDocumentVersionInfo: the current document version\n                information</li>\n            </ul>\n          </p>\n        </description>\n        <categories>\n          <category>summary</category>\n        </categories>\n        <supportedModes>\n          <mode>view</mode>\n        </supportedModes>\n        <!-- no configurable properties -->\n      </configuration>\n      <handler-class>\n        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler\n      </handler-class>\n      <property name=\"template\">\n        /widgets/summary/description_widget_template.xhtml\n      </property>\n    </widgetType>\n\n    <widgetType name=\"summary_current_document_files\">\n      <configuration>\n        <sinceVersion>5.3.1</sinceVersion>\n        <title>Files</title>\n        <description>\n          <p>This widget displays the files held by the currentDocument</p>\n          <p>\n            It requires the following variables to be present in the EL context:\n            <ul>\n              <li>currentDocument: the current document</li>\n              <li>\n                currentDocumentAsBlobHolder: the BlobHolder on the\n                currentDocument\n              </li>\n              <li>\n                conversionActions: the Seam Bean wrapping the\n                conversionService\n              </li>\n              <li>liveEditHelper: the Seam Bean encapsulating LiveEdit</li>\n            </ul>\n          </p>\n        </description>\n        <handlingLabels>true</handlingLabels>\n        <categories>\n          <category>summary</category>\n        </categories>\n        <supportedModes>\n          <mode>view</mode>\n        </supportedModes>\n        <!-- no configurable properties -->\n      </configuration>\n      <handler-class>\n        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler\n      </handler-class>\n      <property name=\"template\">\n        /widgets/summary/content_widget_template.xhtml\n      </property>\n    </widgetType>\n\n    <widgetType name=\"summary_current_document_view\">\n      <configuration>\n        <sinceVersion>5.3.1</sinceVersion>\n        <title>View layout</title>\n        <description>\n          <p>This widget displays the view layouts of the currentDocument</p>\n          <p>\n            It requires the following variables to be present in the EL context:\n            <ul>\n              <li>currentDocument: the current document</li>\n              <li>currentDocumentType: the type of the current document</li>\n            </ul>\n          </p>\n        </description>\n        <handlingLabels>true</handlingLabels>\n        <categories>\n          <category>summary</category>\n        </categories>\n        <supportedModes>\n          <mode>view</mode>\n        </supportedModes>\n        <!-- no configurable properties -->\n      </configuration>\n      <handler-class>\n        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler\n      </handler-class>\n      <property name=\"template\">\n        /widgets/summary/metadata_custom_widget_template.xhtml\n      </property>\n    </widgetType>\n\n    <widgetType name=\"summary_current_document_dublincore\">\n      <configuration>\n        <sinceVersion>5.3.1</sinceVersion>\n        <title>Dublincore</title>\n        <description>\n          <p>\n            This widget displays the dublincore layout of the currentDocument.\n          </p>\n          <p>\n            It requires the following variables to be present in the EL context:\n            <ul>\n              <li>currentDocument: the current document</li>\n            </ul>\n          </p>\n        </description>\n        <handlingLabels>true</handlingLabels>\n        <categories>\n          <category>summary</category>\n        </categories>\n        <supportedModes>\n          <mode>view</mode>\n        </supportedModes>\n        <!-- no configurable properties -->\n      </configuration>\n      <handler-class>\n        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler\n      </handler-class>\n      <property name=\"template\">\n        /widgets/summary/metadata_dc_widget_template.xhtml\n      </property>\n    </widgetType>\n\n    <widgetType name=\"summary_current_document_tagging\">\n      <configuration>\n        <sinceVersion>5.3.1</sinceVersion>\n        <title>Tagging</title>\n        <description>\n          This widget displays the tags for the currentDocument and\n          allows to add new ones. It requires the tag service to be deployed.\n        </description>\n        <handlingLabels>true</handlingLabels>\n        <categories>\n          <category>summary</category>\n        </categories>\n        <properties>\n          <defaultValues mode=\"any\">\n            <property name=\"width\">100%</property>\n          </defaultValues>\n        </properties>\n        <supportedModes>\n          <mode>view</mode>\n        </supportedModes>\n        <!-- no configurable properties -->\n      </configuration>\n      <handler-class>\n        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler\n      </handler-class>\n      <property name=\"template\">\n        /widgets/summary/tagging_widget_template.xhtml\n      </property>\n    </widgetType>\n\n    <widgetType name=\"summary_current_document_relations\">\n      <configuration>\n        <sinceVersion>5.3.1</sinceVersion>\n        <title>Relations</title>\n        <description>\n          This widget displays the in/out relations for the\n          currentDocument. It requires the Relation service to be deployed.\n        </description>\n        <handlingLabels>true</handlingLabels>\n        <categories>\n          <category>summary</category>\n        </categories>\n        <supportedModes>\n          <mode>view</mode>\n        </supportedModes>\n        <!-- no configurable properties -->\n      </configuration>\n      <handler-class>\n        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler\n      </handler-class>\n      <property name=\"template\">\n        /widgets/summary/relations_widget_template.xhtml\n      </property>\n    </widgetType>\n\n    <widgetType name=\"summary_current_document_comments\">\n      <configuration>\n        <sinceVersion>5.3.1</sinceVersion>\n        <title>Comments</title>\n        <description>\n          This widget displays the comments for the currentDocument.\n          It requires the Comment service to be deployed.\n        </description>\n        <handlingLabels>true</handlingLabels>\n        <categories>\n          <category>summary</category>\n        </categories>\n        <supportedModes>\n          <mode>view</mode>\n        </supportedModes>\n        <!-- no configurable properties -->\n      </configuration>\n      <handler-class>\n        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler\n      </handler-class>\n      <property name=\"template\">\n        /widgets/summary/comments_widget_template.xhtml\n      </property>\n    </widgetType>\n\n    <widgetType name=\"summary_current_document_publications\">\n      <configuration>\n        <sinceVersion>5.3.1</sinceVersion>\n        <title>Publications</title>\n        <description>\n          This widget displays the publications of the\n          currentDocument. It requires the Publisher service to be deployed.\n        </description>\n        <handlingLabels>true</handlingLabels>\n        <categories>\n          <category>summary</category>\n        </categories>\n        <supportedModes>\n          <mode>view</mode>\n        </supportedModes>\n        <!-- no configurable properties -->\n      </configuration>\n      <handler-class>\n        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler\n      </handler-class>\n      <property name=\"template\">\n        /widgets/summary/publication_widget_template.xhtml\n      </property>\n    </widgetType>\n\n    <widgetType name=\"summary_current_document_lc_and_version\">\n      <configuration>\n        <sinceVersion>5.3.1</sinceVersion>\n        <title>Life cycle state and version</title>\n        <description>\n          <p>\n            This widget displays the life-cycle state and version of the\n            currentDocument.\n          </p>\n          <p>\n            Since 5.6, this widget is not used by default, it's replaced by the\n            widget named \"summary_current_document_states\".\n          </p>\n          <p>\n            It requires the following variables to be present in the EL context:\n            <ul>\n              <li>currentDocument: the current document</li>\n              <li>\n                currentDocumentVersionInfo: the current document versionning\n                information\n              </li>\n            </ul>\n          </p>\n        </description>\n        <categories>\n          <category>summary</category>\n        </categories>\n        <supportedModes>\n          <mode>view</mode>\n        </supportedModes>\n        <!-- no configurable properties -->\n      </configuration>\n      <handler-class>\n        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler\n      </handler-class>\n      <property name=\"template\">\n        /widgets/summary/lc_and_version_widget_template.xhtml\n      </property>\n    </widgetType>\n\n    <widgetType name=\"summary_current_document_single_tasks\">\n      <configuration>\n        <sinceVersion>5.3.2</sinceVersion>\n        <title>Tasks</title>\n        <description>\n          <p>\n            This widget displays the single tasks (out of a process instance)\n            attached to current document model.\n          </p>\n          <p>\n            It requires the following variables to be present in the EL context:\n            <ul>\n              <li>\n                currentSingleTasks: the single tasks attached to current\n                document\n              </li>\n            </ul>\n          </p>\n        </description>\n        <handlingLabels>true</handlingLabels>\n        <categories>\n          <category>summary</category>\n        </categories>\n        <supportedModes>\n          <mode>view</mode>\n        </supportedModes>\n        <containingForm>true</containingForm>\n        <!-- no configurable properties -->\n      </configuration>\n      <handler-class>\n        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler\n      </handler-class>\n      <property name=\"template\">\n        /widgets/summary/single_tasks_widget_template.xhtml\n      </property>\n    </widgetType>\n\n    <widgetType name=\"summary_current_document_states\">\n      <configuration>\n        <sinceVersion>5.6</sinceVersion>\n        <title>States</title>\n        <description>\n          <p>\n            This widget displays current document state (life cycle state and\n            lock status)\n          </p>\n        </description>\n        <handlingLabels>true</handlingLabels>\n        <categories>\n          <category>summary</category>\n        </categories>\n        <supportedModes>\n          <mode>view</mode>\n        </supportedModes>\n        <!-- no configurable properties -->\n      </configuration>\n      <handler-class>\n        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler\n      </handler-class>\n      <property name=\"template\">\n        /widgets/summary/states_widget_template.xhtml\n      </property>\n    </widgetType>\n\n    <widgetType name=\"summary_current_document_contributors\">\n      <configuration>\n        <sinceVersion>5.6</sinceVersion>\n        <title>Contributors</title>\n        <description>\n          <p>\n            This widget displays the document contributors.\n          </p>\n        </description>\n        <handlingLabels>true</handlingLabels>\n        <categories>\n          <category>summary</category>\n        </categories>\n        <supportedModes>\n          <mode>view</mode>\n        </supportedModes>\n        <!-- no configurable properties -->\n      </configuration>\n      <handler-class>\n        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler\n      </handler-class>\n      <property name=\"template\">\n        /widgets/summary/contributors_widget_template.xhtml\n      </property>\n    </widgetType>\n  </extension>\n\n  <extension target=\"org.nuxeo.ecm.platform.forms.layout.WebLayoutManager\"\n    point=\"widgets\">\n\n    <widget name=\"summary_current_document_description\" type=\"summary_current_document_description\">\n      <controls mode=\"any\">\n        <control name=\"requireSurroundingForm\">true</control>\n      </controls>\n    </widget>\n\n    <widget name=\"summary_current_document_actions\" type=\"summary_current_document_actions\">\n      <controls mode=\"any\">\n        <control name=\"requireSurroundingForm\">true</control>\n      </controls>\n    </widget>\n\n    <widget name=\"summary_current_document_custom_actions\" type=\"summary_current_document_custom_actions\">\n      <controls mode=\"any\">\n        <control name=\"requireSurroundingForm\">true</control>\n      </controls>\n    </widget>\n\n    <widget name=\"summary_current_document_files\" type=\"summary_current_document_files\">\n      <labels>\n        <label mode=\"any\"></label>\n      </labels>\n      <controls mode=\"any\">\n        <control name=\"requireSurroundingForm\">true</control>\n        <control name=\"handleLabels\">true</control>\n      </controls>\n    </widget>\n\n    <widget name=\"summary_current_document_view\" type=\"summary_current_document_view\">\n      <labels>\n        <label mode=\"any\"></label>\n      </labels>\n      <controls mode=\"any\">\n        <control name=\"requireSurroundingForm\">true</control>\n        <control name=\"handleLabels\">true</control>\n      </controls>\n    </widget>\n\n    <widget name=\"summary_current_document_tagging\" type=\"summary_current_document_tagging\">\n      <labels>\n        <label mode=\"any\"></label>\n      </labels>\n      <controls mode=\"any\">\n        <control name=\"requireSurroundingForm\">true</control>\n        <control name=\"handleLabels\">true</control>\n      </controls>\n      <properties widgetMode=\"any\">\n        <property name=\"ajaxReRender\">MultiTreeView</property>\n        <property name=\"placeholder\">\n          #{messages['label.add.tag.placeholder']}\n        </property>\n      </properties>\n    </widget>\n\n    <widget name=\"summary_current_document_dublincore\" type=\"summary_current_document_dublincore\">\n      <labels>\n        <label mode=\"any\"></label>\n      </labels>\n      <controls mode=\"any\">\n        <control name=\"requireSurroundingForm\">true</control>\n        <control name=\"handleLabels\">true</control>\n      </controls>\n    </widget>\n\n    <widget name=\"summary_current_document_relations\" type=\"summary_current_document_relations\">\n      <controls mode=\"any\">\n        <control name=\"requireSurroundingForm\">true</control>\n      </controls>\n    </widget>\n\n    <widget name=\"summary_current_document_comments\" type=\"summary_current_document_comments\">\n      <labels>\n        <label mode=\"any\"></label>\n      </labels>\n      <controls mode=\"any\">\n        <control name=\"requireSurroundingForm\">true</control>\n        <control name=\"handleLabels\">true</control>\n      </controls>\n    </widget>\n\n    <widget name=\"summary_current_document_publications\" type=\"summary_current_document_publications\">\n      <labels>\n        <label mode=\"any\"></label>\n      </labels>\n      <controls mode=\"any\">\n        <control name=\"requireSurroundingForm\">true</control>\n        <control name=\"handleLabels\">true</control>\n      </controls>\n    </widget>\n\n    <widget name=\"summary_current_document_lc_and_version\" type=\"summary_current_document_lc_and_version\">\n      <labels>\n        <label mode=\"any\"></label>\n      </labels>\n      <controls mode=\"any\">\n        <control name=\"requireSurroundingForm\">true</control>\n        <control name=\"handleLabels\">true</control>\n      </controls>\n    </widget>\n\n    <widget name=\"summary_current_document_single_tasks\" type=\"summary_current_document_single_tasks\">\n      <labels>\n        <label mode=\"any\"></label>\n      </labels>\n      <controls mode=\"any\">\n        <control name=\"handleLabels\">true</control>\n        <control name=\"requireSurroundingForm\">false</control>\n      </controls>\n    </widget>\n\n    <widget name=\"summary_current_document_indicators\" type=\"documentActions\">\n      <labels>\n        <label mode=\"any\"></label>\n      </labels>\n      <controls mode=\"any\">\n        <control name=\"handleLabels\">true</control>\n      </controls>\n      <properties widgetMode=\"view\">\n        <property name=\"category\">SUMMARY_INDICATORS</property>\n        <property name=\"overallDisplay\">horizontal_block</property>\n        <property name=\"styleClass\">indicators</property>\n      </properties>\n    </widget>\n\n    <widget name=\"summary_current_document_states\" type=\"summary_current_document_states\">\n      <labels>\n        <label mode=\"any\"></label>\n      </labels>\n      <controls mode=\"any\">\n        <control name=\"handleLabels\">true</control>\n        <control name=\"requireSurroundingForm\">true</control>\n      </controls>\n    </widget>\n\n    <widget name=\"summary_current_document_contributors\" type=\"summary_current_document_contributors\">\n      <labels>\n        <label mode=\"any\"></label>\n      </labels>\n      <controls mode=\"any\">\n        <control name=\"handleLabels\">true</control>\n        <control name=\"requireSurroundingForm\">true</control>\n      </controls>\n    </widget>\n\n    <widget name=\"summary_note_text\" type=\"richtext_with_mimetype\">\n      <fields>\n        <field>note:note</field>\n        <field>note:mime_type</field>\n      </fields>\n      <properties mode=\"view\">\n        <property name=\"translatedHtml\">\n          #{noteActions.translateImageLinks(field_0)}\n        </property>\n        <property name=\"cssClass\">note_content_block</property>\n      </properties>\n      <controls mode=\"any\">\n        <control name=\"requireSurroundingForm\">true</control>\n      </controls>\n    </widget>\n\n    <widget name=\"summary_panel_top\" type=\"documentActions\">\n      <labels>\n        <label mode=\"any\"></label>\n      </labels>\n      <properties widgetMode=\"any\">\n        <property name=\"category\">SUMMARY_PANEL_TOP</property>\n        <property name=\"styleClass\">summaryActions</property>\n      </properties>\n      <controls mode=\"any\">\n        <control name=\"handleLabels\">true</control>\n        <control name=\"gridStyleClass\">gridStyle12</control>\n      </controls>\n    </widget>\n\n    <widget name=\"summary_panel_left\" type=\"documentActions\">\n      <labels>\n        <label mode=\"any\"></label>\n      </labels>\n      <properties widgetMode=\"any\">\n        <property name=\"category\">SUMMARY_PANEL_LEFT</property>\n        <property name=\"styleClass\">summaryActions</property>\n      </properties>\n      <controls mode=\"any\">\n        <control name=\"handleLabels\">true</control>\n        <control name=\"gridStyleClass\">gridStyle8</control>\n      </controls>\n    </widget>\n\n    <widget name=\"summary_panel_right\" type=\"documentActions\">\n      <labels>\n        <label mode=\"any\"></label>\n      </labels>\n      <properties widgetMode=\"any\">\n        <property name=\"category\">SUMMARY_PANEL_RIGHT</property>\n        <property name=\"styleClass\">summaryActions</property>\n      </properties>\n      <controls mode=\"any\">\n        <control name=\"handleLabels\">true</control>\n        <control name=\"gridStyleClass\">gridStyle4</control>\n      </controls>\n    </widget>\n\n    <widget name=\"summary_panel_bottom\" type=\"documentActions\">\n      <labels>\n        <label mode=\"any\"></label>\n      </labels>\n      <properties widgetMode=\"any\">\n        <property name=\"category\">SUMMARY_PANEL_BOTTOM</property>\n        <property name=\"styleClass\">summaryActions</property>\n      </properties>\n      <controls mode=\"any\">\n        <control name=\"handleLabels\">true</control>\n        <control name=\"gridStyleClass\">gridStyle12</control>\n      </controls>\n    </widget>\n\n  </extension>\n\n  <extension target=\"org.nuxeo.ecm.platform.actions.ActionService\"\n    point=\"actions\">\n\n    <documentation>\n      Actions for stacking widgets inside the summary default\n      widgets.\n\n      @since 5.6\n    </documentation>\n\n    <!-- default widgets on left panel -->\n\n    <action id=\"summary_note_text\" type=\"widget\" order=\"100\">\n      <category>SUMMARY_PANEL_LEFT</category>\n      <properties>\n        <property name=\"widgetName\">summary_note_text</property>\n      </properties>\n      <filter-id>hasNote</filter-id>\n    </action>\n\n    <action id=\"summary_current_document_files\" type=\"widget\" order=\"200\">\n      <category>SUMMARY_PANEL_LEFT</category>\n      <properties>\n        <property name=\"widgetName\">summary_current_document_files</property>\n      </properties>\n    </action>\n\n    <action id=\"summary_current_document_view\" type=\"widget\" order=\"300\">\n      <category>SUMMARY_PANEL_LEFT</category>\n      <properties>\n        <property name=\"widgetName\">summary_current_document_view</property>\n      </properties>\n      <filter-id>notHasNote</filter-id>\n      <filter-id>denyForFile</filter-id>\n    </action>\n\n    <action id=\"summary_current_document_dublincore\" type=\"widget\" order=\"350\">\n      <category>SUMMARY_PANEL_LEFT</category>\n      <properties>\n        <property name=\"widgetName\">summary_current_document_dublincore</property>\n      </properties>\n      <filter-id>hasDublincore</filter-id>\n    </action>\n\n    <action id=\"summary_current_document_comments\" type=\"widget\" order=\"400\">\n      <category>SUMMARY_PANEL_LEFT</category>\n      <properties>\n        <property name=\"widgetName\">summary_current_document_comments</property>\n      </properties>\n    </action>\n\n    <action id=\"summary_current_document_publications\" type=\"widget\"\n      order=\"500\">\n      <category>SUMMARY_PANEL_LEFT</category>\n      <properties>\n        <property name=\"widgetName\">summary_current_document_publications</property>\n      </properties>\n    </action>\n\n    <action id=\"summary_current_document_single_tasks\" type=\"widget\"\n      order=\"600\">\n      <category>SUMMARY_PANEL_LEFT</category>\n      <properties>\n        <property name=\"widgetName\">summary_current_document_single_tasks</property>\n      </properties>\n    </action>\n\n    <!-- end of default widgets on left panel -->\n\n    <!-- default widgets on right panel -->\n\n    <action id=\"summary_current_document_description\" type=\"widget\"\n      order=\"100\">\n      <category>SUMMARY_PANEL_RIGHT</category>\n      <properties>\n        <property name=\"widgetName\">summary_current_document_description</property>\n      </properties>\n    </action>\n\n    <action id=\"summary_current_document_indicators\" type=\"widget\" order=\"150\">\n      <category>SUMMARY_PANEL_RIGHT</category>\n      <properties>\n        <property name=\"widgetName\">summary_current_document_indicators</property>\n      </properties>\n    </action>\n\n\n\n    <action id=\"summary_current_document_states\" type=\"widget\" order=\"200\">\n      <category>SUMMARY_PANEL_RIGHT</category>\n      <properties>\n        <property name=\"widgetName\">summary_current_document_states</property>\n      </properties>\n    </action>\n\n    <action id=\"summary_current_document_contributors\" type=\"widget\"\n      order=\"300\">\n      <category>SUMMARY_PANEL_RIGHT</category>\n      <properties>\n        <property name=\"widgetName\">summary_current_document_contributors</property>\n      </properties>\n    </action>\n\n    <action id=\"summary_current_document_custom_actions\" type=\"widget\"\n      order=\"400\">\n      <category>SUMMARY_PANEL_RIGHT</category>\n      <properties>\n        <property name=\"widgetName\">summary_current_document_custom_actions</property>\n      </properties>\n    </action>\n\n    <action id=\"summary_current_document_tagging\" type=\"widget\" order=\"500\">\n      <category>SUMMARY_PANEL_RIGHT</category>\n      <properties>\n        <property name=\"widgetName\">summary_current_document_tagging</property>\n        <property name=\"disableMultipartForm\">true</property>\n      </properties>\n    </action>\n\n    <action id=\"summary_current_document_relations\" type=\"widget\" order=\"600\">\n      <category>SUMMARY_PANEL_RIGHT</category>\n      <properties>\n        <property name=\"widgetName\">summary_current_document_relations</property>\n      </properties>\n    </action>\n\n    <!-- end of default widgets on right panel -->\n\n  </extension>\n\n  <extension target=\"org.nuxeo.ecm.platform.forms.layout.WebLayoutManager\"\n    point=\"layouts\">\n\n    <documentation>\n      Default layouts displayed on documents summary view\n    </documentation>\n\n    <layout name=\"grid_summary_layout\">\n      <templates>\n        <template mode=\"any\">\n          /layouts/layout_grid_template.xhtml\n        </template>\n      </templates>\n      <rows>\n        <row>\n          <widget>summary_panel_top</widget>\n        </row>\n        <row>\n          <widget>summary_panel_left</widget>\n          <widget>summary_panel_right</widget>\n        </row>\n        <row>\n          <widget>summary_panel_bottom</widget>\n        </row>\n      </rows>\n    </layout>\n\n    <!-- deprecated since 5.6, use a grid layout now -->\n    <layout name=\"default_summary_layout\">\n      <templates>\n        <template mode=\"any\">/layouts/layout_summary_template.xhtml</template>\n      </templates>\n      <rows>\n        <row>\n          <widget>summary_current_document_files</widget>\n          <widget>summary_current_document_view</widget>\n          <widget>summary_current_document_comments</widget>\n        </row>\n        <row>\n          <widget>summary_current_document_description</widget>\n          <widget>summary_current_document_states</widget>\n          <widget>summary_current_document_contributors</widget>\n          <widget>summary_current_document_custom_actions</widget>\n          <widget>summary_current_document_tagging</widget>\n          <widget>summary_current_document_relations</widget>\n        </row>\n        <row>\n          <widget>summary_current_document_publications</widget>\n        </row>\n        <row>\n          <widget>summary_current_document_single_tasks</widget>\n        </row>\n      </rows>\n    </layout>\n\n    <!-- deprecated since 5.6, use a grid layout now -->\n    <layout name=\"note_summary_layout\">\n      <templates>\n        <template mode=\"any\">/layouts/layout_summary_template.xhtml</template>\n      </templates>\n      <rows>\n        <row>\n          <widget>summary_note_text</widget>\n          <widget>summary_current_document_files</widget>\n          <widget>summary_current_document_comments</widget>\n        </row>\n        <row>\n          <widget>summary_current_document_description</widget>\n          <widget>summary_current_document_states</widget>\n          <widget>summary_current_document_contributors</widget>\n          <widget>summary_current_document_custom_actions</widget>\n          <widget>summary_current_document_tagging</widget>\n          <widget>summary_current_document_relations</widget>\n        </row>\n        <row>\n          <widget>summary_current_document_publications</widget>\n        </row>\n        <row>\n          <widget>summary_current_document_single_tasks</widget>\n        </row>\n      </rows>\n    </layout>\n\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/layouts-summary-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.web.common.exceptionhandling.service.ExceptionHandlingService--listener",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.webapp/org.nuxeo.ecm.webapp.core/org.nuxeo.ecm.platform.webapp.core.ExceptionHandlingContrib/Contributions/org.nuxeo.ecm.platform.webapp.core.ExceptionHandlingContrib--listener",
              "id": "org.nuxeo.ecm.platform.webapp.core.ExceptionHandlingContrib--listener",
              "registrationOrder": 0,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.web.common.exceptionhandling.service.ExceptionHandlingService",
                "name": "org.nuxeo.ecm.platform.web.common.exceptionhandling.service.ExceptionHandlingService",
                "type": "service"
              },
              "version": "2021.57.3",
              "xml": "<extension point=\"listener\" target=\"org.nuxeo.ecm.platform.web.common.exceptionhandling.service.ExceptionHandlingService\">\n    <listener class=\"org.nuxeo.ecm.webapp.shield.SeamExceptionHandlingListener\"/>\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.web.common.exceptionhandling.service.ExceptionHandlingService--requestdump",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.webapp/org.nuxeo.ecm.webapp.core/org.nuxeo.ecm.platform.webapp.core.ExceptionHandlingContrib/Contributions/org.nuxeo.ecm.platform.webapp.core.ExceptionHandlingContrib--requestdump",
              "id": "org.nuxeo.ecm.platform.webapp.core.ExceptionHandlingContrib--requestdump",
              "registrationOrder": 1,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.web.common.exceptionhandling.service.ExceptionHandlingService",
                "name": "org.nuxeo.ecm.platform.web.common.exceptionhandling.service.ExceptionHandlingService",
                "type": "service"
              },
              "version": "2021.57.3",
              "xml": "<extension point=\"requestdump\" target=\"org.nuxeo.ecm.platform.web.common.exceptionhandling.service.ExceptionHandlingService\">\n    <requestdump class=\"org.nuxeo.ecm.platform.web.common.exceptionhandling.service.DefaultRequestDumper\">\n      <notListed>\n        <attribute>org.jboss.seam.international.messages</attribute>\n      </notListed>\n    </requestdump>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.webapp/org.nuxeo.ecm.webapp.core/org.nuxeo.ecm.platform.webapp.core.ExceptionHandlingContrib",
          "name": "org.nuxeo.ecm.platform.webapp.core.ExceptionHandlingContrib",
          "requirements": [
            "org.nuxeo.ecm.platform.web.common.exceptionhandling.service.ExceptionHandlingContrib"
          ],
          "resolutionOrder": 686,
          "services": [],
          "startOrder": 595,
          "version": "2021.57.3",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.webapp.core.ExceptionHandlingContrib\">\n  <require>\n    org.nuxeo.ecm.platform.web.common.exceptionhandling.service.ExceptionHandlingContrib\n  </require>\n\n  <!-- TODO: move this contrib and java classe in ui-web -->\n\n  <extension\n    target=\"org.nuxeo.ecm.platform.web.common.exceptionhandling.service.ExceptionHandlingService\"\n    point=\"listener\">\n    <listener class=\"org.nuxeo.ecm.webapp.shield.SeamExceptionHandlingListener\" />\n  </extension>\n\n  <extension\n    target=\"org.nuxeo.ecm.platform.web.common.exceptionhandling.service.ExceptionHandlingService\"\n    point=\"requestdump\">\n    <requestdump\n      class=\"org.nuxeo.ecm.platform.web.common.exceptionhandling.service.DefaultRequestDumper\">\n      <notListed>\n        <attribute>org.jboss.seam.international.messages</attribute>\n      </notListed>\n    </requestdump>\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/exceptionhandling-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.ui.web.SeamRemotingJSBuilderComponent--remotableSeamBeans",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.webapp/org.nuxeo.ecm.webapp.core/org.nuxeo.ecm.platform.ui.web.SeamRemotingJSBuilderComponent.coreContrib/Contributions/org.nuxeo.ecm.platform.ui.web.SeamRemotingJSBuilderComponent.coreContrib--remotableSeamBeans",
              "id": "org.nuxeo.ecm.platform.ui.web.SeamRemotingJSBuilderComponent.coreContrib--remotableSeamBeans",
              "registrationOrder": 1,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.ui.web.SeamRemotingJSBuilderComponent",
                "name": "org.nuxeo.ecm.platform.ui.web.SeamRemotingJSBuilderComponent",
                "type": "service"
              },
              "version": "2021.57.3",
              "xml": "<extension point=\"remotableSeamBeans\" target=\"org.nuxeo.ecm.platform.ui.web.SeamRemotingJSBuilderComponent\">\n      <remotableSeamBeans>\n          <beans>\n                 <bean>FileManageActions</bean>\n                 <bean>workspaceActions</bean>\n                 <bean>documentActions</bean>\n                 <bean>popupHelper</bean>\n          </beans>\n      </remotableSeamBeans>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.webapp/org.nuxeo.ecm.webapp.core/org.nuxeo.ecm.platform.ui.web.SeamRemotingJSBuilderComponent.coreContrib",
          "name": "org.nuxeo.ecm.platform.ui.web.SeamRemotingJSBuilderComponent.coreContrib",
          "requirements": [
            "org.nuxeo.ecm.platform.ui.web.SeamRemotingJSBuilderComponent"
          ],
          "resolutionOrder": 687,
          "services": [],
          "startOrder": 547,
          "version": "2021.57.3",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.ui.web.SeamRemotingJSBuilderComponent.coreContrib\">\n\n  <require>org.nuxeo.ecm.platform.ui.web.SeamRemotingJSBuilderComponent</require>\n\n  <extension target=\"org.nuxeo.ecm.platform.ui.web.SeamRemotingJSBuilderComponent\" point=\"remotableSeamBeans\">\n      <remotableSeamBeans>\n          <beans>\n                 <bean>FileManageActions</bean>\n                 <bean>workspaceActions</bean>\n                 <bean>documentActions</bean>\n                 <bean>popupHelper</bean>\n          </beans>\n      </remotableSeamBeans>\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/seamremotingjsbuilder-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.directory.ui.DirectoryUIManager--directories",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.webapp/org.nuxeo.ecm.webapp.core/org.nuxeo.ecm.webapp.directory.directoryUI/Contributions/org.nuxeo.ecm.webapp.directory.directoryUI--directories",
              "id": "org.nuxeo.ecm.webapp.directory.directoryUI--directories",
              "registrationOrder": 0,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.directory.ui.DirectoryUIManager",
                "name": "org.nuxeo.ecm.directory.ui.DirectoryUIManager",
                "type": "service"
              },
              "version": "2021.57.3",
              "xml": "<extension point=\"directories\" target=\"org.nuxeo.ecm.directory.ui.DirectoryUIManager\">\n\n    <directory layout=\"vocabulary\" name=\"continent\" sortField=\"label\">\n      <deleteConstraint class=\"org.nuxeo.ecm.directory.api.ui.HierarchicalDirectoryUIDeleteConstraint\">\n        <property name=\"targetDirectory\">country</property>\n        <property name=\"targetDirectoryField\">parent</property>\n      </deleteConstraint>\n    </directory>\n    <directory layout=\"country_vocabulary\" name=\"country\" sortField=\"parent\"/>\n\n    <directory layout=\"vocabulary\" name=\"topic\" sortField=\"label\">\n      <deleteConstraint class=\"org.nuxeo.ecm.directory.api.ui.HierarchicalDirectoryUIDeleteConstraint\">\n        <property name=\"targetDirectory\">subtopic</property>\n        <property name=\"targetDirectoryField\">parent</property>\n      </deleteConstraint>\n    </directory>\n    <directory layout=\"subtopic_vocabulary\" name=\"subtopic\" sortField=\"parent\"/>\n\n    <directory layout=\"vocabulary\" name=\"predicates\" sortField=\"label\"/>\n    <directory layout=\"vocabulary\" name=\"inverse_predicates\" sortField=\"label\"/>\n    <directory layout=\"vocabulary\" name=\"language\" sortField=\"label\"/>\n    <directory layout=\"vocabulary\" name=\"nature\" sortField=\"label\"/>\n\n    <directory layout=\"l10ncoverage_vocabulary\" name=\"l10ncoverage\" sortField=\"id\">\n      <deleteConstraint class=\"org.nuxeo.ecm.directory.api.ui.HierarchicalDirectoryUIDeleteConstraint\">\n        <property name=\"targetDirectory\">l10ncoverage</property>\n        <property name=\"targetDirectoryField\">parent</property>\n      </deleteConstraint>\n    </directory>\n    <directory layout=\"l10nsubjects_vocabulary\" name=\"l10nsubjects\" sortField=\"id\">\n      <deleteConstraint class=\"org.nuxeo.ecm.directory.api.ui.HierarchicalDirectoryUIDeleteConstraint\">\n        <property name=\"targetDirectory\">l10nsubjects</property>\n        <property name=\"targetDirectoryField\">parent</property>\n      </deleteConstraint>\n    </directory>\n\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.forms.layout.WebLayoutManager--widgets",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.webapp/org.nuxeo.ecm.webapp.core/org.nuxeo.ecm.webapp.directory.directoryUI/Contributions/org.nuxeo.ecm.webapp.directory.directoryUI--widgets",
              "id": "org.nuxeo.ecm.webapp.directory.directoryUI--widgets",
              "registrationOrder": 23,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.forms.layout.WebLayoutManager",
                "name": "org.nuxeo.ecm.platform.forms.layout.WebLayoutManager",
                "type": "service"
              },
              "version": "2021.57.3",
              "xml": "<extension point=\"widgets\" target=\"org.nuxeo.ecm.platform.forms.layout.WebLayoutManager\">\n\n    <widget name=\"vocabulary_id\" type=\"text\">\n      <labels>\n        <label mode=\"any\">label.vocabulary.entry.id</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>vocabulary:id</field>\n      </fields>\n      <widgetModes>\n        <mode value=\"edit\">view</mode>\n      </widgetModes>\n      <properties widgetMode=\"edit\">\n        <property name=\"required\">true</property>\n      </properties>\n    </widget>\n\n    <widget name=\"vocabulary_label\" type=\"text\">\n      <labels>\n        <label mode=\"any\">label.vocabulary.entry.label</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>vocabulary:label</field>\n      </fields>\n      <properties widgetMode=\"edit\">\n        <property name=\"size\">50</property>\n      </properties>\n    </widget>\n\n    <widget name=\"vocabulary_obsolete\" type=\"template\">\n      <labels>\n        <label mode=\"any\">label.vocabulary.entry.obsolete</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>vocabulary:obsolete</field>\n      </fields>\n      <properties mode=\"any\">\n        <property name=\"template\">\n          /widgets/integer_yes_no_widget_template.xhtml\n        </property>\n      </properties>\n    </widget>\n\n    <widget name=\"vocabulary_order\" type=\"int\">\n      <labels>\n        <label mode=\"any\">label.vocabulary.entry.order</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>vocabulary:ordering</field>\n      </fields>\n      <properties widgetMode=\"edit\">\n        <property name=\"size\">10</property>\n      </properties>\n    </widget>\n\n    <widget name=\"xvocabulary_id\" type=\"text\">\n      <labels>\n        <label mode=\"any\">label.vocabulary.entry.id</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>xvocabulary:id</field>\n      </fields>\n      <widgetModes>\n        <mode value=\"edit\">view</mode>\n      </widgetModes>\n      <properties widgetMode=\"edit\">\n        <property name=\"required\">true</property>\n      </properties>\n    </widget>\n\n    <widget name=\"xvocabulary_label\" type=\"text\">\n      <labels>\n        <label mode=\"any\">label.vocabulary.entry.label</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>xvocabulary:label</field>\n      </fields>\n      <properties widgetMode=\"edit\">\n        <property name=\"size\">50</property>\n      </properties>\n    </widget>\n\n    <widget name=\"xvocabulary_obsolete\" type=\"template\">\n      <labels>\n        <label mode=\"any\">label.vocabulary.entry.obsolete</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>xvocabulary:obsolete</field>\n      </fields>\n      <properties mode=\"any\">\n        <property name=\"template\">\n          /widgets/integer_yes_no_widget_template.xhtml\n        </property>\n      </properties>\n    </widget>\n\n    <widget name=\"xvocabulary_order\" type=\"int\">\n      <labels>\n        <label mode=\"any\">label.vocabulary.entry.order</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>xvocabulary:ordering</field>\n      </fields>\n      <properties widgetMode=\"edit\">\n        <property name=\"size\">10</property>\n      </properties>\n    </widget>\n\n    <widget name=\"l10nvocabulary_id\" type=\"text\">\n      <labels>\n        <label mode=\"any\">label.vocabulary.entry.id</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>l10nvocabulary:id</field>\n      </fields>\n      continent\n      <widgetModes>\n        <mode value=\"edit\">view</mode>\n      </widgetModes>\n      <properties widgetMode=\"edit\">\n        <property name=\"required\">true</property>\n      </properties>\n    </widget>\n\n    <widget name=\"l10nvocabulary_label_fr\" type=\"text\">\n      <labels>\n        <label mode=\"any\">label.vocabulary.l10n.entry.label.french</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>l10nvocabulary:label_fr</field>\n      </fields>\n      <properties widgetMode=\"edit\">\n        <property name=\"size\">50</property>\n      </properties>\n    </widget>\n\n    <widget name=\"l10nvocabulary_label_en\" type=\"text\">\n      <labels>\n        <label mode=\"any\">label.vocabulary.l10n.entry.label.english</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>l10nvocabulary:label_en</field>\n      </fields>\n      <properties widgetMode=\"edit\">\n        <property name=\"size\">50</property>\n      </properties>\n    </widget>\n\n    <widget name=\"l10nvocabulary_obsolete\" type=\"template\">\n      <labels>\n        <label mode=\"any\">label.vocabulary.entry.obsolete</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>l10nvocabulary:obsolete</field>\n      </fields>\n      <properties mode=\"any\">\n        <property name=\"template\">\n          /widgets/integer_yes_no_widget_template.xhtml\n        </property>\n      </properties>\n    </widget>\n\n    <widget name=\"l10nvocabulary_order\" type=\"int\">\n      <labels>\n        <label mode=\"any\">label.vocabulary.entry.order</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>l10nvocabulary:ordering</field>\n      </fields>\n      <properties widgetMode=\"edit\">\n        <property name=\"size\">10</property>\n      </properties>\n    </widget>\n\n    <widget name=\"l10nxvocabulary_id\" type=\"text\">\n      <labels>\n        <label mode=\"any\">label.vocabulary.entry.id</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>l10nxvocabulary:id</field>\n      </fields>\n      <widgetModes>\n        <mode value=\"edit\">view</mode>\n      </widgetModes>\n      <properties widgetMode=\"edit\">\n        <property name=\"required\">true</property>\n      </properties>\n    </widget>\n\n    <widget name=\"l10nxvocabulary_label_fr\" type=\"text\">\n      <labels>\n        <label mode=\"any\">label.vocabulary.l10n.entry.label.french</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>l10nxvocabulary:label_fr</field>\n      </fields>\n      <properties widgetMode=\"edit\">\n        <property name=\"size\">50</property>\n      </properties>\n    </widget>\n\n    <widget name=\"l10nxvocabulary_label_en\" type=\"text\">\n      <labels>\n        <label mode=\"any\">label.vocabulary.l10n.entry.label.english</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>l10nxvocabulary:label_en</field>\n      </fields>\n      <properties widgetMode=\"edit\">\n        <property name=\"size\">50</property>\n      </properties>\n    </widget>\n\n    <widget name=\"l10nxvocabulary_obsolete\" type=\"template\">\n      <labels>\n        <label mode=\"any\">label.vocabulary.entry.obsolete</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>l10nxvocabulary:obsolete</field>\n      </fields>\n      <properties mode=\"any\">\n        <property name=\"template\">\n          /widgets/integer_yes_no_widget_template.xhtml\n        </property>\n      </properties>\n    </widget>\n\n    <widget name=\"l10nxvocabulary_order\" type=\"int\">\n      <labels>\n        <label mode=\"any\">label.vocabulary.entry.order</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>l10nxvocabulary:ordering</field>\n      </fields>\n      <properties widgetMode=\"edit\">\n        <property name=\"size\">10</property>\n      </properties>\n    </widget>\n\n\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.forms.layout.WebLayoutManager--layouts",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.webapp/org.nuxeo.ecm.webapp.core/org.nuxeo.ecm.webapp.directory.directoryUI/Contributions/org.nuxeo.ecm.webapp.directory.directoryUI--layouts",
              "id": "org.nuxeo.ecm.webapp.directory.directoryUI--layouts",
              "registrationOrder": 21,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.forms.layout.WebLayoutManager",
                "name": "org.nuxeo.ecm.platform.forms.layout.WebLayoutManager",
                "type": "service"
              },
              "version": "2021.57.3",
              "xml": "<extension point=\"layouts\" target=\"org.nuxeo.ecm.platform.forms.layout.WebLayoutManager\">\n\n    <layout name=\"vocabulary\">\n      <templates>\n        <template mode=\"any\">\n          /directory/directory_layout_template.xhtml\n        </template>\n      </templates>\n      <rows>\n        <row>\n          <widget>vocabulary_id</widget>\n        </row>\n        <row>\n          <widget>vocabulary_label</widget>\n        </row>\n        <row>\n          <widget>vocabulary_obsolete</widget>\n        </row>\n        <row>\n          <widget>vocabulary_order</widget>\n        </row>\n      </rows>\n    </layout>\n\n    <layout name=\"country_vocabulary\">\n      <templates>\n        <template mode=\"any\">\n          /directory/directory_layout_template.xhtml\n        </template>\n      </templates>\n      <rows>\n        <row>\n          <widget>parent</widget>\n        </row>\n        <row>\n          <widget>xvocabulary_id</widget>\n        </row>\n        <row>\n          <widget>xvocabulary_label</widget>\n        </row>\n        <row>\n          <widget>xvocabulary_obsolete</widget>\n        </row>\n        <row>\n          <widget>xvocabulary_order</widget>\n        </row>\n      </rows>\n      <widget name=\"parent\" type=\"selectOneDirectory\">\n        <labels>\n          <label mode=\"any\">label.vocabulary.entry.parent</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>xvocabulary:parent</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"directoryName\">continent</property>\n          <property name=\"localize\">true</property>\n        </properties>\n        <properties widgetMode=\"edit\">\n          <property name=\"required\">true</property>\n          <property name=\"displayObsoleteEntries\">true</property>\n        </properties>\n      </widget>\n    </layout>\n\n    <layout name=\"subtopic_vocabulary\">\n      <templates>\n        <template mode=\"any\">\n          /directory/directory_layout_template.xhtml\n        </template>\n      </templates>\n      <rows>\n        <row>\n          <widget>parent</widget>\n        </row>\n        <row>\n          <widget>xvocabulary_id</widget>\n        </row>\n        <row>\n          <widget>xvocabulary_label</widget>\n        </row>\n        <row>\n          <widget>xvocabulary_obsolete</widget>\n        </row>\n        <row>\n          <widget>xvocabulary_order</widget>\n        </row>\n      </rows>\n      <widget name=\"parent\" type=\"selectOneDirectory\">\n        <labels>\n          <label mode=\"any\">label.vocabulary.entry.parent</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>xvocabulary:parent</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"directoryName\">topic</property>\n          <property name=\"localize\">true</property>\n        </properties>\n        <properties widgetMode=\"edit\">\n          <property name=\"required\">true</property>\n          <property name=\"displayObsoleteEntries\">true</property>\n        </properties>\n      </widget>\n    </layout>\n\n    <layout name=\"l10nvocabulary\">\n      <templates>\n        <template mode=\"any\">\n          /directory/directory_layout_template.xhtml\n        </template>\n      </templates>\n      <rows>\n        <row>\n          <widget>l10nvocabulary_id</widget>\n        </row>\n        <row>\n          <widget>l10nvocabulary_label_fr</widget>\n        </row>\n        <row>\n          <widget>l10nvocabulary_label_en</widget>\n        </row>\n        <row>\n          <widget>l10nvocabulary_obsolete</widget>\n        </row>\n        <row>\n          <widget>l10nvocabulary_order</widget>\n        </row>\n      </rows>\n    </layout>\n\n    <layout name=\"l10ncoverage_vocabulary\">\n      <templates>\n        <template mode=\"any\">\n          /directory/directory_layout_template.xhtml\n        </template>\n      </templates>\n      <rows>\n        <row>\n          <widget>parent</widget>\n        </row>\n        <row>\n          <widget>l10nxvocabulary_id</widget>\n        </row>\n        <row>\n          <widget>l10nxvocabulary_label_en</widget>\n        </row>\n        <row>\n          <widget>l10nxvocabulary_label_fr</widget>\n        </row>\n        <row>\n          <widget>l10nxvocabulary_obsolete</widget>\n        </row>\n        <row>\n          <widget>l10nxvocabulary_order</widget>\n        </row>\n      </rows>\n      <widget name=\"parent\" type=\"suggestOneDirectory\">\n        <labels>\n          <label mode=\"any\">label.vocabulary.entry.parent</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>l10nxvocabulary:parent</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"directoryName\">l10ncoverage</property>\n          <property name=\"dbl10n\">true</property>\n        </properties>\n        <properties widgetMode=\"edit\">\n          <property name=\"width\">100%</property>\n          <property name=\"minChars\">0</property>\n          <property name=\"hideHelpLabel\">true</property>\n          <property name=\"displayObsoleteEntries\">true</property>\n          <property name=\"canSelectParent\">true</property>\n        </properties>\n      </widget>\n    </layout>\n\n    <layout name=\"l10nsubjects_vocabulary\">\n      <templates>\n        <template mode=\"any\">\n          /directory/directory_layout_template.xhtml\n        </template>\n      </templates>\n      <rows>\n        <row>\n          <widget>parent</widget>\n        </row>\n        <row>\n          <widget>l10nxvocabulary_id</widget>\n        </row>\n        <row>\n          <widget>l10nxvocabulary_label_en</widget>\n        </row>\n        <row>\n          <widget>l10nxvocabulary_label_fr</widget>\n        </row>\n        <row>\n          <widget>l10nxvocabulary_obsolete</widget>\n        </row>\n        <row>\n          <widget>l10nxvocabulary_order</widget>\n        </row>\n      </rows>\n      <widget name=\"parent\" type=\"suggestOneDirectory\">\n        <labels>\n          <label mode=\"any\">label.vocabulary.entry.parent</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>l10nxvocabulary:parent</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"directoryName\">l10nsubjects</property>\n          <property name=\"dbl10n\">true</property>\n        </properties>\n        <properties widgetMode=\"edit\">\n          <property name=\"width\">100%</property>\n          <property name=\"minChars\">0</property>\n          <property name=\"hideHelpLabel\">true</property>\n          <property name=\"displayObsoleteEntries\">true</property>\n          <property name=\"canSelectParent\">true</property>\n        </properties>\n      </widget>\n    </layout>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.webapp/org.nuxeo.ecm.webapp.core/org.nuxeo.ecm.webapp.directory.directoryUI",
          "name": "org.nuxeo.ecm.webapp.directory.directoryUI",
          "requirements": [],
          "resolutionOrder": 688,
          "services": [],
          "startOrder": 659,
          "version": "2021.57.3",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n\n<component name=\"org.nuxeo.ecm.webapp.directory.directoryUI\">\n\n  <extension target=\"org.nuxeo.ecm.directory.ui.DirectoryUIManager\"\n    point=\"directories\">\n\n    <directory name=\"continent\" layout=\"vocabulary\" sortField=\"label\">\n      <deleteConstraint\n        class=\"org.nuxeo.ecm.directory.api.ui.HierarchicalDirectoryUIDeleteConstraint\">\n        <property name=\"targetDirectory\">country</property>\n        <property name=\"targetDirectoryField\">parent</property>\n      </deleteConstraint>\n    </directory>\n    <directory name=\"country\" layout=\"country_vocabulary\" sortField=\"parent\" />\n\n    <directory name=\"topic\" layout=\"vocabulary\" sortField=\"label\">\n      <deleteConstraint\n        class=\"org.nuxeo.ecm.directory.api.ui.HierarchicalDirectoryUIDeleteConstraint\">\n        <property name=\"targetDirectory\">subtopic</property>\n        <property name=\"targetDirectoryField\">parent</property>\n      </deleteConstraint>\n    </directory>\n    <directory name=\"subtopic\" layout=\"subtopic_vocabulary\" sortField=\"parent\" />\n\n    <directory name=\"predicates\" layout=\"vocabulary\" sortField=\"label\" />\n    <directory name=\"inverse_predicates\" layout=\"vocabulary\" sortField=\"label\" />\n    <directory name=\"language\" layout=\"vocabulary\" sortField=\"label\" />\n    <directory name=\"nature\" layout=\"vocabulary\" sortField=\"label\" />\n\n    <directory name=\"l10ncoverage\" layout=\"l10ncoverage_vocabulary\"\n      sortField=\"id\">\n      <deleteConstraint\n        class=\"org.nuxeo.ecm.directory.api.ui.HierarchicalDirectoryUIDeleteConstraint\">\n        <property name=\"targetDirectory\">l10ncoverage</property>\n        <property name=\"targetDirectoryField\">parent</property>\n      </deleteConstraint>\n    </directory>\n    <directory name=\"l10nsubjects\" layout=\"l10nsubjects_vocabulary\"\n      sortField=\"id\">\n      <deleteConstraint\n        class=\"org.nuxeo.ecm.directory.api.ui.HierarchicalDirectoryUIDeleteConstraint\">\n        <property name=\"targetDirectory\">l10nsubjects</property>\n        <property name=\"targetDirectoryField\">parent</property>\n      </deleteConstraint>\n    </directory>\n\n  </extension>\n\n  <extension target=\"org.nuxeo.ecm.platform.forms.layout.WebLayoutManager\"\n    point=\"widgets\">\n\n    <widget name=\"vocabulary_id\" type=\"text\">\n      <labels>\n        <label mode=\"any\">label.vocabulary.entry.id</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>vocabulary:id</field>\n      </fields>\n      <widgetModes>\n        <mode value=\"edit\">view</mode>\n      </widgetModes>\n      <properties widgetMode=\"edit\">\n        <property name=\"required\">true</property>\n      </properties>\n    </widget>\n\n    <widget name=\"vocabulary_label\" type=\"text\">\n      <labels>\n        <label mode=\"any\">label.vocabulary.entry.label</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>vocabulary:label</field>\n      </fields>\n      <properties widgetMode=\"edit\">\n        <property name=\"size\">50</property>\n      </properties>\n    </widget>\n\n    <widget name=\"vocabulary_obsolete\" type=\"template\">\n      <labels>\n        <label mode=\"any\">label.vocabulary.entry.obsolete</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>vocabulary:obsolete</field>\n      </fields>\n      <properties mode=\"any\">\n        <property name=\"template\">\n          /widgets/integer_yes_no_widget_template.xhtml\n        </property>\n      </properties>\n    </widget>\n\n    <widget name=\"vocabulary_order\" type=\"int\">\n      <labels>\n        <label mode=\"any\">label.vocabulary.entry.order</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>vocabulary:ordering</field>\n      </fields>\n      <properties widgetMode=\"edit\">\n        <property name=\"size\">10</property>\n      </properties>\n    </widget>\n\n    <widget name=\"xvocabulary_id\" type=\"text\">\n      <labels>\n        <label mode=\"any\">label.vocabulary.entry.id</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>xvocabulary:id</field>\n      </fields>\n      <widgetModes>\n        <mode value=\"edit\">view</mode>\n      </widgetModes>\n      <properties widgetMode=\"edit\">\n        <property name=\"required\">true</property>\n      </properties>\n    </widget>\n\n    <widget name=\"xvocabulary_label\" type=\"text\">\n      <labels>\n        <label mode=\"any\">label.vocabulary.entry.label</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>xvocabulary:label</field>\n      </fields>\n      <properties widgetMode=\"edit\">\n        <property name=\"size\">50</property>\n      </properties>\n    </widget>\n\n    <widget name=\"xvocabulary_obsolete\" type=\"template\">\n      <labels>\n        <label mode=\"any\">label.vocabulary.entry.obsolete</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>xvocabulary:obsolete</field>\n      </fields>\n      <properties mode=\"any\">\n        <property name=\"template\">\n          /widgets/integer_yes_no_widget_template.xhtml\n        </property>\n      </properties>\n    </widget>\n\n    <widget name=\"xvocabulary_order\" type=\"int\">\n      <labels>\n        <label mode=\"any\">label.vocabulary.entry.order</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>xvocabulary:ordering</field>\n      </fields>\n      <properties widgetMode=\"edit\">\n        <property name=\"size\">10</property>\n      </properties>\n    </widget>\n\n    <widget name=\"l10nvocabulary_id\" type=\"text\">\n      <labels>\n        <label mode=\"any\">label.vocabulary.entry.id</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>l10nvocabulary:id</field>\n      </fields>\n      continent\n      <widgetModes>\n        <mode value=\"edit\">view</mode>\n      </widgetModes>\n      <properties widgetMode=\"edit\">\n        <property name=\"required\">true</property>\n      </properties>\n    </widget>\n\n    <widget name=\"l10nvocabulary_label_fr\" type=\"text\">\n      <labels>\n        <label mode=\"any\">label.vocabulary.l10n.entry.label.french</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>l10nvocabulary:label_fr</field>\n      </fields>\n      <properties widgetMode=\"edit\">\n        <property name=\"size\">50</property>\n      </properties>\n    </widget>\n\n    <widget name=\"l10nvocabulary_label_en\" type=\"text\">\n      <labels>\n        <label mode=\"any\">label.vocabulary.l10n.entry.label.english</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>l10nvocabulary:label_en</field>\n      </fields>\n      <properties widgetMode=\"edit\">\n        <property name=\"size\">50</property>\n      </properties>\n    </widget>\n\n    <widget name=\"l10nvocabulary_obsolete\" type=\"template\">\n      <labels>\n        <label mode=\"any\">label.vocabulary.entry.obsolete</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>l10nvocabulary:obsolete</field>\n      </fields>\n      <properties mode=\"any\">\n        <property name=\"template\">\n          /widgets/integer_yes_no_widget_template.xhtml\n        </property>\n      </properties>\n    </widget>\n\n    <widget name=\"l10nvocabulary_order\" type=\"int\">\n      <labels>\n        <label mode=\"any\">label.vocabulary.entry.order</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>l10nvocabulary:ordering</field>\n      </fields>\n      <properties widgetMode=\"edit\">\n        <property name=\"size\">10</property>\n      </properties>\n    </widget>\n\n    <widget name=\"l10nxvocabulary_id\" type=\"text\">\n      <labels>\n        <label mode=\"any\">label.vocabulary.entry.id</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>l10nxvocabulary:id</field>\n      </fields>\n      <widgetModes>\n        <mode value=\"edit\">view</mode>\n      </widgetModes>\n      <properties widgetMode=\"edit\">\n        <property name=\"required\">true</property>\n      </properties>\n    </widget>\n\n    <widget name=\"l10nxvocabulary_label_fr\" type=\"text\">\n      <labels>\n        <label mode=\"any\">label.vocabulary.l10n.entry.label.french</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>l10nxvocabulary:label_fr</field>\n      </fields>\n      <properties widgetMode=\"edit\">\n        <property name=\"size\">50</property>\n      </properties>\n    </widget>\n\n    <widget name=\"l10nxvocabulary_label_en\" type=\"text\">\n      <labels>\n        <label mode=\"any\">label.vocabulary.l10n.entry.label.english</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>l10nxvocabulary:label_en</field>\n      </fields>\n      <properties widgetMode=\"edit\">\n        <property name=\"size\">50</property>\n      </properties>\n    </widget>\n\n    <widget name=\"l10nxvocabulary_obsolete\" type=\"template\">\n      <labels>\n        <label mode=\"any\">label.vocabulary.entry.obsolete</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>l10nxvocabulary:obsolete</field>\n      </fields>\n      <properties mode=\"any\">\n        <property name=\"template\">\n          /widgets/integer_yes_no_widget_template.xhtml\n        </property>\n      </properties>\n    </widget>\n\n    <widget name=\"l10nxvocabulary_order\" type=\"int\">\n      <labels>\n        <label mode=\"any\">label.vocabulary.entry.order</label>\n      </labels>\n      <translated>true</translated>\n      <fields>\n        <field>l10nxvocabulary:ordering</field>\n      </fields>\n      <properties widgetMode=\"edit\">\n        <property name=\"size\">10</property>\n      </properties>\n    </widget>\n\n\n  </extension>\n\n  <extension target=\"org.nuxeo.ecm.platform.forms.layout.WebLayoutManager\"\n    point=\"layouts\">\n\n    <layout name=\"vocabulary\">\n      <templates>\n        <template mode=\"any\">\n          /directory/directory_layout_template.xhtml\n        </template>\n      </templates>\n      <rows>\n        <row>\n          <widget>vocabulary_id</widget>\n        </row>\n        <row>\n          <widget>vocabulary_label</widget>\n        </row>\n        <row>\n          <widget>vocabulary_obsolete</widget>\n        </row>\n        <row>\n          <widget>vocabulary_order</widget>\n        </row>\n      </rows>\n    </layout>\n\n    <layout name=\"country_vocabulary\">\n      <templates>\n        <template mode=\"any\">\n          /directory/directory_layout_template.xhtml\n        </template>\n      </templates>\n      <rows>\n        <row>\n          <widget>parent</widget>\n        </row>\n        <row>\n          <widget>xvocabulary_id</widget>\n        </row>\n        <row>\n          <widget>xvocabulary_label</widget>\n        </row>\n        <row>\n          <widget>xvocabulary_obsolete</widget>\n        </row>\n        <row>\n          <widget>xvocabulary_order</widget>\n        </row>\n      </rows>\n      <widget name=\"parent\" type=\"selectOneDirectory\">\n        <labels>\n          <label mode=\"any\">label.vocabulary.entry.parent</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>xvocabulary:parent</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"directoryName\">continent</property>\n          <property name=\"localize\">true</property>\n        </properties>\n        <properties widgetMode=\"edit\">\n          <property name=\"required\">true</property>\n          <property name=\"displayObsoleteEntries\">true</property>\n        </properties>\n      </widget>\n    </layout>\n\n    <layout name=\"subtopic_vocabulary\">\n      <templates>\n        <template mode=\"any\">\n          /directory/directory_layout_template.xhtml\n        </template>\n      </templates>\n      <rows>\n        <row>\n          <widget>parent</widget>\n        </row>\n        <row>\n          <widget>xvocabulary_id</widget>\n        </row>\n        <row>\n          <widget>xvocabulary_label</widget>\n        </row>\n        <row>\n          <widget>xvocabulary_obsolete</widget>\n        </row>\n        <row>\n          <widget>xvocabulary_order</widget>\n        </row>\n      </rows>\n      <widget name=\"parent\" type=\"selectOneDirectory\">\n        <labels>\n          <label mode=\"any\">label.vocabulary.entry.parent</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>xvocabulary:parent</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"directoryName\">topic</property>\n          <property name=\"localize\">true</property>\n        </properties>\n        <properties widgetMode=\"edit\">\n          <property name=\"required\">true</property>\n          <property name=\"displayObsoleteEntries\">true</property>\n        </properties>\n      </widget>\n    </layout>\n\n    <layout name=\"l10nvocabulary\">\n      <templates>\n        <template mode=\"any\">\n          /directory/directory_layout_template.xhtml\n        </template>\n      </templates>\n      <rows>\n        <row>\n          <widget>l10nvocabulary_id</widget>\n        </row>\n        <row>\n          <widget>l10nvocabulary_label_fr</widget>\n        </row>\n        <row>\n          <widget>l10nvocabulary_label_en</widget>\n        </row>\n        <row>\n          <widget>l10nvocabulary_obsolete</widget>\n        </row>\n        <row>\n          <widget>l10nvocabulary_order</widget>\n        </row>\n      </rows>\n    </layout>\n\n    <layout name=\"l10ncoverage_vocabulary\">\n      <templates>\n        <template mode=\"any\">\n          /directory/directory_layout_template.xhtml\n        </template>\n      </templates>\n      <rows>\n        <row>\n          <widget>parent</widget>\n        </row>\n        <row>\n          <widget>l10nxvocabulary_id</widget>\n        </row>\n        <row>\n          <widget>l10nxvocabulary_label_en</widget>\n        </row>\n        <row>\n          <widget>l10nxvocabulary_label_fr</widget>\n        </row>\n        <row>\n          <widget>l10nxvocabulary_obsolete</widget>\n        </row>\n        <row>\n          <widget>l10nxvocabulary_order</widget>\n        </row>\n      </rows>\n      <widget name=\"parent\" type=\"suggestOneDirectory\">\n        <labels>\n          <label mode=\"any\">label.vocabulary.entry.parent</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>l10nxvocabulary:parent</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"directoryName\">l10ncoverage</property>\n          <property name=\"dbl10n\">true</property>\n        </properties>\n        <properties widgetMode=\"edit\">\n          <property name=\"width\">100%</property>\n          <property name=\"minChars\">0</property>\n          <property name=\"hideHelpLabel\">true</property>\n          <property name=\"displayObsoleteEntries\">true</property>\n          <property name=\"canSelectParent\">true</property>\n        </properties>\n      </widget>\n    </layout>\n\n    <layout name=\"l10nsubjects_vocabulary\">\n      <templates>\n        <template mode=\"any\">\n          /directory/directory_layout_template.xhtml\n        </template>\n      </templates>\n      <rows>\n        <row>\n          <widget>parent</widget>\n        </row>\n        <row>\n          <widget>l10nxvocabulary_id</widget>\n        </row>\n        <row>\n          <widget>l10nxvocabulary_label_en</widget>\n        </row>\n        <row>\n          <widget>l10nxvocabulary_label_fr</widget>\n        </row>\n        <row>\n          <widget>l10nxvocabulary_obsolete</widget>\n        </row>\n        <row>\n          <widget>l10nxvocabulary_order</widget>\n        </row>\n      </rows>\n      <widget name=\"parent\" type=\"suggestOneDirectory\">\n        <labels>\n          <label mode=\"any\">label.vocabulary.entry.parent</label>\n        </labels>\n        <translated>true</translated>\n        <fields>\n          <field>l10nxvocabulary:parent</field>\n        </fields>\n        <properties mode=\"any\">\n          <property name=\"directoryName\">l10nsubjects</property>\n          <property name=\"dbl10n\">true</property>\n        </properties>\n        <properties widgetMode=\"edit\">\n          <property name=\"width\">100%</property>\n          <property name=\"minChars\">0</property>\n          <property name=\"hideHelpLabel\">true</property>\n          <property name=\"displayObsoleteEntries\">true</property>\n          <property name=\"canSelectParent\">true</property>\n        </properties>\n      </widget>\n    </layout>\n\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/directory-ui-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.operation.OperationServiceComponent--chains",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.webapp/org.nuxeo.ecm.webapp.core/org.nuxeo.ecm.platform.automation.defaultChains/Contributions/org.nuxeo.ecm.platform.automation.defaultChains--chains",
              "id": "org.nuxeo.ecm.platform.automation.defaultChains--chains",
              "registrationOrder": 7,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.operation.OperationServiceComponent",
                "name": "org.nuxeo.ecm.core.operation.OperationServiceComponent",
                "type": "service"
              },
              "version": "2021.57.3",
              "xml": "<extension point=\"chains\" target=\"org.nuxeo.ecm.core.operation.OperationServiceComponent\">\n\n    <chain id=\"addCurrentDocumentToWorklist\">\n      <operation id=\"Context.FetchDocument\"/>\n      <operation id=\"Seam.AddToWorklist\"/>\n      <operation id=\"Seam.AddMessage\">\n        <param name=\"severity\" type=\"string\">INFO</param>\n        <param name=\"message\" type=\"string\">label.document.added.to.worklist</param>\n      </operation>\n    </chain>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.webapp/org.nuxeo.ecm.webapp.core/org.nuxeo.ecm.platform.automation.defaultChains",
          "name": "org.nuxeo.ecm.platform.automation.defaultChains",
          "requirements": [],
          "resolutionOrder": 689,
          "services": [],
          "startOrder": 281,
          "version": "2021.57.3",
          "xmlFileContent": "<component name=\"org.nuxeo.ecm.platform.automation.defaultChains\">\n\n  <extension target=\"org.nuxeo.ecm.core.operation.OperationServiceComponent\"\n    point=\"chains\">\n\n    <chain id=\"addCurrentDocumentToWorklist\">\n      <operation id=\"Context.FetchDocument\" />\n      <operation id=\"Seam.AddToWorklist\" />\n      <operation id=\"Seam.AddMessage\">\n        <param type=\"string\" name=\"severity\">INFO</param>\n        <param type=\"string\" name=\"message\">label.document.added.to.worklist</param>\n      </operation>\n    </chain>\n\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/chains-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.query.api.PageProviderService--providers",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.webapp/org.nuxeo.ecm.webapp.core/org.nuxeo.ecm.platform.pageproviders.contrib/Contributions/org.nuxeo.ecm.platform.pageproviders.contrib--providers",
              "id": "org.nuxeo.ecm.platform.pageproviders.contrib--providers",
              "registrationOrder": 26,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.query.api.PageProviderService",
                "name": "org.nuxeo.ecm.platform.query.api.PageProviderService",
                "type": "service"
              },
              "version": "2021.57.3",
              "xml": "<extension point=\"providers\" target=\"org.nuxeo.ecm.platform.query.api.PageProviderService\">\n\n    <coreQueryPageProvider name=\"search_media_all\">\n      <property name=\"maxResults\">PAGE_SIZE</property>\n      <pattern>\n        SELECT * FROM Document WHERE ecm:primaryType = ?\n      </pattern>\n      <sort ascending=\"true\" column=\"dc:title\"/>\n      <pageSize>100</pageSize>\n    </coreQueryPageProvider>\n\n    <coreQueryPageProvider name=\"search_media_by_title\">\n      <property name=\"maxResults\">PAGE_SIZE</property>\n      <pattern>\n        SELECT * FROM Document WHERE ecm:primaryType = ?\n        AND ecm:fulltext LIKE ?\n      </pattern>\n      <sort ascending=\"true\" column=\"dc:title\"/>\n      <pageSize>100</pageSize>\n    </coreQueryPageProvider>\n\n    <genericPageProvider class=\"org.nuxeo.ecm.webapp.provider.ImportFolderPageProvider\" name=\"importFolders\">\n      <pattern escapeParameters=\"true\" quoteParameters=\"false\">\n        SELECT * FROM Document WHERE ecm:fulltext.dc:title LIKE '?%' AND ecm:mixinType !=\n        'HiddenInNavigation' AND ecm:mixinType = 'Folderish'\n        AND ecm:isTrashed = 0\n        AND SORTED_COLUMN IS NOT NULL\n      </pattern>\n      <sort ascending=\"true\" column=\"dc:title\"/>\n      <pageSize>10</pageSize>\n    </genericPageProvider>\n\n    <coreQueryPageProvider name=\"breadcrumb_user_domains\">\n      <property name=\"maxResults\">DEFAULT_NAVIGATION_RESULTS</property>\n      <pattern>\n        SELECT * FROM Domain WHERE ecm:mixinType != 'HiddenInNavigation'\n        AND ecm:isTrashed = 0\n      </pattern>\n      <sort ascending=\"true\" column=\"dc:title\"/>\n      <pageSize>0</pageSize>\n    </coreQueryPageProvider>\n\n    <coreQueryPageProvider name=\"startup_domains\">\n      <property name=\"maxResults\">PAGE_SIZE</property>\n      <pattern>\n        SELECT * FROM Domain\n        WHERE ecm:mixinType != 'HiddenInNavigation'\n        AND ecm:isTrashed = 0\n        AND ecm:isVersion = 0\n        AND ecm:isProxy = 0\n      </pattern>\n      <sort ascending=\"true\" column=\"dc:title\"/>\n      <pageSize>2</pageSize>\n\n    </coreQueryPageProvider>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.webapp/org.nuxeo.ecm.webapp.core/org.nuxeo.ecm.platform.pageproviders.contrib",
          "name": "org.nuxeo.ecm.platform.pageproviders.contrib",
          "requirements": [],
          "resolutionOrder": 690,
          "services": [],
          "startOrder": 372,
          "version": "2021.57.3",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n\n<component name=\"org.nuxeo.ecm.platform.pageproviders.contrib\">\n\n  <extension target=\"org.nuxeo.ecm.platform.query.api.PageProviderService\"\n    point=\"providers\">\n\n    <coreQueryPageProvider name=\"search_media_all\">\n      <property name=\"maxResults\">PAGE_SIZE</property>\n      <pattern>\n        SELECT * FROM Document WHERE ecm:primaryType = ?\n      </pattern>\n      <sort column=\"dc:title\" ascending=\"true\" />\n      <pageSize>100</pageSize>\n    </coreQueryPageProvider>\n\n    <coreQueryPageProvider name=\"search_media_by_title\">\n      <property name=\"maxResults\">PAGE_SIZE</property>\n      <pattern>\n        SELECT * FROM Document WHERE ecm:primaryType = ?\n        AND ecm:fulltext LIKE ?\n      </pattern>\n      <sort column=\"dc:title\" ascending=\"true\" />\n      <pageSize>100</pageSize>\n    </coreQueryPageProvider>\n\n    <genericPageProvider name=\"importFolders\"\n      class=\"org.nuxeo.ecm.webapp.provider.ImportFolderPageProvider\">\n      <pattern quoteParameters=\"false\" escapeParameters=\"true\">\n        SELECT * FROM Document WHERE ecm:fulltext.dc:title LIKE '?%' AND ecm:mixinType !=\n        'HiddenInNavigation' AND ecm:mixinType = 'Folderish'\n        AND ecm:isTrashed = 0\n        AND SORTED_COLUMN IS NOT NULL\n      </pattern>\n      <sort column=\"dc:title\" ascending=\"true\" />\n      <pageSize>10</pageSize>\n    </genericPageProvider>\n\n    <coreQueryPageProvider name=\"breadcrumb_user_domains\">\n      <property name=\"maxResults\">DEFAULT_NAVIGATION_RESULTS</property>\n      <pattern>\n        SELECT * FROM Domain WHERE ecm:mixinType != 'HiddenInNavigation'\n        AND ecm:isTrashed = 0\n      </pattern>\n      <sort column=\"dc:title\" ascending=\"true\" />\n      <pageSize>0</pageSize>\n    </coreQueryPageProvider>\n\n    <coreQueryPageProvider name=\"startup_domains\">\n      <property name=\"maxResults\">PAGE_SIZE</property>\n      <pattern>\n        SELECT * FROM Domain\n        WHERE ecm:mixinType != 'HiddenInNavigation'\n        AND ecm:isTrashed = 0\n        AND ecm:isVersion = 0\n        AND ecm:isProxy = 0\n      </pattern>\n      <sort column=\"dc:title\" ascending=\"true\" />\n      <pageSize>2</pageSize>\n\n    </coreQueryPageProvider>\n\n  </extension>\n</component>\n",
          "xmlFileName": "/OSGI-INF/pageproviders-webapp-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.actions.ActionService--actions",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.webapp/org.nuxeo.ecm.webapp.core/org.nuxeo.ecm.webapp.import.actions/Contributions/org.nuxeo.ecm.webapp.import.actions--actions",
              "id": "org.nuxeo.ecm.webapp.import.actions--actions",
              "registrationOrder": 37,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.actions.ActionService",
                "name": "org.nuxeo.ecm.platform.actions.ActionService",
                "type": "service"
              },
              "version": "2021.57.3",
              "xml": "<extension point=\"actions\" target=\"org.nuxeo.ecm.platform.actions.ActionService\">\n\n    <action help=\"desc.smart.import.file\" id=\"dndBulkImportDocuments\" label=\"label.smart.import\" link=\"\" order=\"10\">\n      <category>IMPORT_DOCUMENTS</category>\n      <properties>\n        <property name=\"chainId\">FileManager.ImportWithMetaDataInSeam</property>\n        <property name=\"layout\">bulkImport@create</property>\n      </properties>\n    </action>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.webapp/org.nuxeo.ecm.webapp.core/org.nuxeo.ecm.webapp.import.actions",
          "name": "org.nuxeo.ecm.webapp.import.actions",
          "requirements": [],
          "resolutionOrder": 691,
          "services": [],
          "startOrder": 661,
          "version": "2021.57.3",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.webapp.import.actions\">\n\n  <extension target=\"org.nuxeo.ecm.platform.actions.ActionService\"\n    point=\"actions\">\n\n    <action id=\"dndBulkImportDocuments\" link=\"\"\n      order=\"10\" label=\"label.smart.import\"\n      help=\"desc.smart.import.file\">\n      <category>IMPORT_DOCUMENTS</category>\n      <properties>\n        <property name=\"chainId\">FileManager.ImportWithMetaDataInSeam</property>\n        <property name=\"layout\">bulkImport@create</property>\n      </properties>\n    </action>\n\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/import-actions-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.forms.layout.WebLayoutManager--widgets",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.webapp/org.nuxeo.ecm.webapp.core/org.nuxeo.ecm.webapp.info.view/Contributions/org.nuxeo.ecm.webapp.info.view--widgets",
              "id": "org.nuxeo.ecm.webapp.info.view--widgets",
              "registrationOrder": 24,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.forms.layout.WebLayoutManager",
                "name": "org.nuxeo.ecm.platform.forms.layout.WebLayoutManager",
                "type": "service"
              },
              "version": "2021.57.3",
              "xml": "<extension point=\"widgets\" target=\"org.nuxeo.ecm.platform.forms.layout.WebLayoutManager\">\n\n    <widget name=\"infoViewPanelLeft\" type=\"documentActions\">\n      <properties widgetMode=\"view\">\n        <property name=\"category\">INFO_VIEW_PANEL_LEFT</property>\n      </properties>\n      <controls mode=\"any\">\n        <control name=\"requireSurroundingForm\">false</control>\n        <control name=\"gridStyleClass\">\n          gridStyle8 infoViewLeft\n        </control>\n      </controls>\n    </widget>\n\n    <widget name=\"infoViewPanelRight\" type=\"documentActions\">\n      <properties widgetMode=\"view\">\n        <property name=\"category\">INFO_VIEW_PANEL_RIGHT</property>\n      </properties>\n      <controls mode=\"any\">\n        <control name=\"requireSurroundingForm\">false</control>\n        <control name=\"gridStyleClass\">\n          gridStyle4 compactLayout infoViewRight\n        </control>\n      </controls>\n    </widget>\n\n    <widget name=\"infoViewPreview\" type=\"container\">\n      <handlingLabels>false</handlingLabels>\n      <properties widgetMode=\"any\">\n        <property name=\"hideSubLabels\">true</property>\n        <property name=\"styleClass\">infoViewDocContainer</property>\n        <property name=\"display\">block_top</property>\n      </properties>\n      <subWidgets>\n        <widget name=\"preview\" type=\"documentPreview\">\n          <properties widgetMode=\"view\">\n            <property name=\"width\">100%</property>\n            <property name=\"height\">600px</property>\n          </properties>\n        </widget>\n      </subWidgets>\n    </widget>\n\n    <widget name=\"infoViewNote\" type=\"container\">\n      <handlingLabels>false</handlingLabels>\n      <properties widgetMode=\"any\">\n        <property name=\"hideSubLabels\">true</property>\n        <property name=\"styleClass\">infoViewDocContainer</property>\n        <property name=\"display\">block_top</property>\n      </properties>\n      <subWidgetRefs>\n        <widget>summary_note_text</widget>\n      </subWidgetRefs>\n    </widget>\n\n    <widget name=\"infoViewNoPreview\" type=\"container\">\n      <handlingLabels>false</handlingLabels>\n      <properties widgetMode=\"any\">\n        <property name=\"hideSubLabels\">true</property>\n        <property name=\"styleClass\">infoViewDocContainer</property>\n        <property name=\"display\">block_top</property>\n      </properties>\n      <subWidgets>\n        <widget name=\"noPreview\" type=\"template\">\n          <properties mode=\"any\">\n            <property name=\"template\">\n              /widgets/info_view_no_preview_widget.xhtml\n            </property>\n          </properties>\n        </widget>\n      </subWidgets>\n    </widget>\n\n    <widget name=\"infoViewTitleContainer\" type=\"container\">\n      <handlingLabels>false</handlingLabels>\n      <properties widgetMode=\"any\">\n        <property name=\"hideSubLabels\">true</property>\n        <property name=\"styleClass\">infoViewTitle</property>\n        <property name=\"display\">block_top</property>\n      </properties>\n      <subWidgets>\n        <widget name=\"infoViewTitle\" type=\"title_link\">\n          <fields>\n            <field/>\n            <field>ref</field>\n            <field>dc.description</field>\n          </fields>\n          <properties mode=\"any\">\n            <property name=\"target\">_top</property>\n            <property name=\"hideExternalLink\">true</property>\n            <property name=\"hideDownloadLink\">true</property>\n          </properties>\n        </widget>\n      </subWidgets>\n    </widget>\n\n    <widget name=\"infoViewInfoLayoutContainer\" type=\"container\">\n      <handlingLabels>false</handlingLabels>\n      <properties widgetMode=\"any\">\n        <property name=\"hideSubLabels\">true</property>\n        <property name=\"styleClass\">infoViewInfoLayout</property>\n        <property name=\"display\">block_top</property>\n      </properties>\n      <subWidgets>\n        <widget name=\"infoViewInfoLayout\" type=\"documentLayout\">\n          <properties widgetMode=\"view\">\n            <property name=\"mode\">view</property>\n            <property name=\"documentMode\">info</property>\n            <property name=\"defaultLayout\">defaultInfoLayout@tabLayout</property>\n            <property name=\"includeAnyMode\">false</property>\n          </properties>\n        </widget>\n      </subWidgets>\n    </widget>\n\n    <widget name=\"infoViewActions\" type=\"documentActionsWithForms\">\n      <properties widgetMode=\"view\">\n        <property name=\"category\">INFO_VIEW_ACTIONS</property>\n        <property name=\"styleClass\">globalActionBar infoViewActions</property>\n        <property name=\"subStyleClass\">contextActions</property>\n        <property name=\"overallDisplay\">horizontal_block</property>\n        <property name=\"actionsDisplay\">icons</property>\n        <property name=\"useAjaxForm\">true</property>\n        <property name=\"ignoreTemplateProperty\">true</property>\n        <property name=\"maxActionsNumber\">5</property>\n      </properties>\n    </widget>\n\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.actions.ActionService--actions",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.webapp/org.nuxeo.ecm.webapp.core/org.nuxeo.ecm.webapp.info.view/Contributions/org.nuxeo.ecm.webapp.info.view--actions",
              "id": "org.nuxeo.ecm.webapp.info.view--actions",
              "registrationOrder": 38,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.actions.ActionService",
                "name": "org.nuxeo.ecm.platform.actions.ActionService",
                "type": "service"
              },
              "version": "2021.57.3",
              "xml": "<extension point=\"actions\" target=\"org.nuxeo.ecm.platform.actions.ActionService\">\n\n    <action id=\"infoViewPreview\" order=\"100\" type=\"widget\">\n      <category>INFO_VIEW_PANEL_LEFT</category>\n      <properties>\n        <property name=\"widgetName\">infoViewPreview</property>\n      </properties>\n      <filter-id>notHasNote</filter-id>\n      <filter-id>view_preview</filter-id>\n      <filter-id>denyInfoViewPreview</filter-id>\n    </action>\n\n    <action id=\"infoViewNote\" order=\"100\" type=\"widget\">\n      <category>INFO_VIEW_PANEL_LEFT</category>\n      <properties>\n        <property name=\"widgetName\">infoViewNote</property>\n      </properties>\n      <filter-id>hasNote</filter-id>\n    </action>\n\n    <action id=\"infoViewNoPreview\" order=\"100\" type=\"widget\">\n      <category>INFO_VIEW_PANEL_LEFT</category>\n      <properties>\n        <property name=\"widgetName\">infoViewNoPreview</property>\n      </properties>\n      <filter-id>notHasPreview</filter-id>\n    </action>\n\n    <action id=\"infoViewTitleContainer\" order=\"100\" type=\"widget\">\n      <category>INFO_VIEW_PANEL_RIGHT</category>\n      <properties>\n        <property name=\"widgetName\">infoViewTitleContainer</property>\n      </properties>\n    </action>\n\n    <action id=\"infoViewInfoLayoutContainer\" order=\"200\" type=\"widget\">\n      <category>INFO_VIEW_PANEL_RIGHT</category>\n      <properties>\n        <property name=\"widgetName\">infoViewInfoLayoutContainer</property>\n      </properties>\n    </action>\n\n    <action id=\"infoViewActions\" order=\"300\" type=\"widget\">\n      <category>INFO_VIEW_PANEL_RIGHT</category>\n      <properties>\n        <property name=\"widgetName\">infoViewActions</property>\n      </properties>\n    </action>\n\n    <action icon=\"/icons/pin.png\" id=\"infoAddToFavoritesAction\" label=\"label.addToFavorites\" link=\"#{favoritesActions.addCurrentDocumentToFavorites()}\" order=\"0\">\n      <category>INFO_VIEW_ACTIONS</category>\n      <filter-id>canAddToFavorites</filter-id>\n      <properties>\n        <property name=\"ajaxSupport\">true</property>\n      </properties>\n    </action>\n\n    <action icon=\"/icons/pinned.png\" id=\"infoRemoveFromFavoritesAction\" label=\"label.removeFromFavorites\" link=\"#{favoritesActions.removeCurrentDocumentFromFavorites()}\" order=\"0\">\n      <category>INFO_VIEW_ACTIONS</category>\n      <filter-id>canRemoveFromFavorites</filter-id>\n      <properties>\n        <property name=\"ajaxSupport\">true</property>\n      </properties>\n    </action>\n\n    <action icon=\"/icons/contextual_menu/unlocked.png\" id=\"infoDocumentLock\" label=\"command.lock\" link=\"#{lockActions.lockCurrentDocument}\" order=\"10\" type=\"link\">\n      <category>INFO_VIEW_ACTIONS</category>\n      <filter-id>mutable_document</filter-id>\n      <filter-id>can_lock</filter-id>\n      <properties>\n        <property name=\"ajaxSupport\">true</property>\n      </properties>\n    </action>\n\n    <action icon=\"/icons/contextual_menu/locked.png\" id=\"infoDocumentUnlock\" label=\"command.unlock\" link=\"#{lockActions.unlockCurrentDocument}\" order=\"10\" type=\"link\">\n      <category>INFO_VIEW_ACTIONS</category>\n      <filter-id>mutable_document</filter-id>\n      <filter-id>can_unlock</filter-id>\n      <properties>\n        <property name=\"ajaxSupport\">true</property>\n      </properties>\n    </action>\n\n    <action accessKey=\"k\" icon=\"/icons/contextual_menu/share.png\" id=\"infoPermalinkAction\" label=\"label.permalink\" order=\"20\" type=\"fancybox\">\n      <category>INFO_VIEW_ACTIONS</category>\n      <properties>\n        <property name=\"include\">/incl/permalink_box.xhtml</property>\n        <property name=\"ajaxSupport\">true</property>\n      </properties>\n    </action>\n\n    <action icon=\"/icons/contextual_menu/download.png\" id=\"infoDownloadAction\" label=\"label.document.download\" link=\"#{operationActionBean.doOperation('downloadFilesZip')}\" order=\"30\" type=\"link\">\n      <category>INFO_VIEW_ACTIONS</category>\n      <filter-id>documentHasBlobs</filter-id>\n    </action>\n\n    <action icon=\"/icons/contextual_menu/subscribe.png\" id=\"infoSubscribesAllDocNotifications\" label=\"label.subscriptions.follow\" link=\"#{subscriptionAction.updateAllSubscriptions}\" order=\"40\" type=\"link\">\n      <category>INFO_VIEW_ACTIONS</category>\n      <filter-id>hasNoSubscriptions</filter-id>\n      <filter-id>canSubscribe</filter-id>\n      <filter-id>isNotVersion</filter-id>\n      <properties>\n        <property name=\"ajaxSupport\">true</property>\n      </properties>\n    </action>\n\n    <action icon=\"/icons/contextual_menu/unsubscribe.png\" id=\"infoUnsubscribesAllDocNotifications\" label=\"label.subscriptions.unfollow\" link=\"#{subscriptionAction.updateAllSubscriptions}\" order=\"40\" type=\"link\">\n      <category>INFO_VIEW_ACTIONS</category>\n      <filter-id>hasSubscriptions</filter-id>\n      <filter-id>canSubscribe</filter-id>\n      <filter-id>isNotVersion</filter-id>\n      <properties>\n        <property name=\"ajaxSupport\">true</property>\n      </properties>\n    </action>\n\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.forms.layout.WebLayoutManager--layouts",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.webapp/org.nuxeo.ecm.webapp.core/org.nuxeo.ecm.webapp.info.view/Contributions/org.nuxeo.ecm.webapp.info.view--layouts",
              "id": "org.nuxeo.ecm.webapp.info.view--layouts",
              "registrationOrder": 22,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.forms.layout.WebLayoutManager",
                "name": "org.nuxeo.ecm.platform.forms.layout.WebLayoutManager",
                "type": "service"
              },
              "version": "2021.57.3",
              "xml": "<extension point=\"layouts\" target=\"org.nuxeo.ecm.platform.forms.layout.WebLayoutManager\">\n\n    <layout name=\"gridInfoViewLayout\">\n      <templates>\n        <template mode=\"any\">\n          /layouts/layout_grid_template.xhtml\n        </template>\n      </templates>\n      <rows>\n        <row>\n          <widget>infoViewPanelLeft</widget>\n          <widget>infoViewPanelRight</widget>\n        </row>\n      </rows>\n    </layout>\n\n    <layout name=\"defaultInfoLayout@tabLayout\">\n      <templates>\n        <template mode=\"any\">\n          /layouts/layout_grid_template.xhtml\n        </template>\n      </templates>\n      <rows>\n        <row>\n          <widget>infoViewInfoBox</widget>\n        </row>\n        <row>\n          <widget>infoViewMetadata</widget>\n        </row>\n        <row>\n          <widget>infoViewWorkflow</widget>\n        </row>\n        <row>\n          <widget>infoViewTags</widget>\n        </row>\n        <row>\n          <widget>infoViewCollections</widget>\n        </row>\n        <row>\n          <widget>infoViewComments</widget>\n        </row>\n      </rows>\n      <widget name=\"infoViewInfoBox\" type=\"container\">\n        <subWidgets>\n          <widget name=\"infoBox\" type=\"info_box\"/>\n        </subWidgets>\n        <properties widgetMode=\"any\">\n          <property name=\"hideSubLabels\">true</property>\n        </properties>\n        <controls mode=\"any\">\n          <control name=\"gridStyleClass\">gridStyle12</control>\n        </controls>\n      </widget>\n      <widget name=\"infoViewMetadata\" type=\"container\">\n        <labels>\n          <label mode=\"any\">action.view.metadata</label>\n        </labels>\n        <translated>true</translated>\n        <subWidgets>\n          <widget name=\"metadata\" type=\"documentLayout\">\n            <properties widgetMode=\"view\">\n              <property name=\"mode\">view</property>\n              <property name=\"documentMode\">view</property>\n              <property name=\"includeAnyMode\">false</property>\n            </properties>\n            <controls mode=\"any\">\n              <control name=\"requireSurroundingForm\">true</control>\n            </controls>\n          </widget>\n        </subWidgets>\n        <controls mode=\"any\">\n          <control name=\"handleLabels\">true</control>\n          <control name=\"gridStyleClass\">gridStyle12</control>\n        </controls>\n        <properties widgetMode=\"any\">\n          <property name=\"hideSubLabels\">true</property>\n        </properties>\n      </widget>\n      <widget name=\"infoViewWorkflow\" type=\"container\">\n        <labels>\n          <label mode=\"any\">label.document.routing.workflow</label>\n        </labels>\n        <translated>true</translated>\n        <subWidgets>\n          <widget name=\"workflow\" type=\"summary_document_route\">\n            <controls mode=\"any\">\n              <control name=\"requireSurroundingForm\">true</control>\n            </controls>\n          </widget>\n        </subWidgets>\n        <controls mode=\"any\">\n          <control name=\"handleLabels\">true</control>\n          <control name=\"gridStyleClass\">gridStyle12</control>\n        </controls>\n        <properties widgetMode=\"any\">\n          <property name=\"hideSubLabels\">true</property>\n        </properties>\n        <widgetModes>\n          <mode value=\"view\">#{routingActions.filteredRouteModels.size() &gt; 0 ?\n            'view' : 'hidden'}</mode>\n        </widgetModes>\n      </widget>\n      <widget name=\"infoViewTags\" type=\"container\">\n        <labels>\n          <label mode=\"any\">action.view.tagging</label>\n        </labels>\n        <translated>true</translated>\n        <subWidgets>\n          <widget name=\"tags\" type=\"summary_current_document_tagging\">\n            <controls mode=\"any\">\n              <control name=\"requireSurroundingForm\">true</control>\n            </controls>\n            <properties widgetMode=\"any\">\n              <property name=\"placeholder\">\n                #{messages['label.add.tag.placeholder']}\n              </property>\n            </properties>\n          </widget>\n        </subWidgets>\n        <controls mode=\"any\">\n          <control name=\"handleLabels\">true</control>\n          <control name=\"gridStyleClass\">gridStyle12</control>\n        </controls>\n        <properties widgetMode=\"any\">\n          <property name=\"hideSubLabels\">true</property>\n        </properties>\n      </widget>\n      <widget name=\"infoViewCollections\" type=\"container\">\n        <labels>\n          <label mode=\"any\">label.collections</label>\n        </labels>\n        <translated>true</translated>\n        <subWidgets>\n          <widget name=\"collections\" type=\"summary_current_document_collections\"/>\n        </subWidgets>\n        <controls mode=\"any\">\n          <control name=\"handleLabels\">true</control>\n          <control name=\"gridStyleClass\">gridStyle12</control>\n        </controls>\n        <properties widgetMode=\"any\">\n          <property name=\"hideSubLabels\">true</property>\n        </properties>\n        <widgetModes>\n          <mode value=\"view\">#{collectionActions.hasCurrentDocumentVisibleCollection()\n            ? 'view' : 'hidden'}</mode>\n        </widgetModes>\n      </widget>\n      <widget name=\"infoViewComments\" type=\"container\">\n        <labels>\n          <label mode=\"any\">#{nxu:translate('label.summary.comments',\n            documentThreadedComments.size)}</label>\n        </labels>\n        <translated>false</translated>\n        <subWidgets>\n          <widget name=\"comments\" type=\"summary_current_document_comments\">\n            <controls mode=\"any\">\n              <control name=\"requireSurroundingForm\">true</control>\n            </controls>\n          </widget>\n        </subWidgets>\n        <controls mode=\"any\">\n          <control name=\"handleLabels\">true</control>\n          <control name=\"gridStyleClass\">gridStyle12</control>\n        </controls>\n        <properties widgetMode=\"any\">\n          <property name=\"hideSubLabels\">true</property>\n        </properties>\n        <widgetModes>\n          <mode value=\"view\">#{documentThreadedComments.size() &gt; 0 ? 'view' :\n            'hidden'}</mode>\n        </widgetModes>\n      </widget>\n    </layout>\n\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.actions.ActionService--filters",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.webapp/org.nuxeo.ecm.webapp.core/org.nuxeo.ecm.webapp.info.view/Contributions/org.nuxeo.ecm.webapp.info.view--filters",
              "id": "org.nuxeo.ecm.webapp.info.view--filters",
              "registrationOrder": 28,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.actions.ActionService",
                "name": "org.nuxeo.ecm.platform.actions.ActionService",
                "type": "service"
              },
              "version": "2021.57.3",
              "xml": "<extension point=\"filters\" target=\"org.nuxeo.ecm.platform.actions.ActionService\">\n\n    <filter append=\"true\" id=\"denyInfoViewPreview\">\n    </filter>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.webapp/org.nuxeo.ecm.webapp.core/org.nuxeo.ecm.webapp.info.view",
          "name": "org.nuxeo.ecm.webapp.info.view",
          "requirements": [],
          "resolutionOrder": 692,
          "services": [],
          "startOrder": 662,
          "version": "2021.57.3",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.webapp.info.view\">\n\n  <extension target=\"org.nuxeo.ecm.platform.forms.layout.WebLayoutManager\"\n    point=\"widgets\">\n\n    <widget name=\"infoViewPanelLeft\" type=\"documentActions\">\n      <properties widgetMode=\"view\">\n        <property name=\"category\">INFO_VIEW_PANEL_LEFT</property>\n      </properties>\n      <controls mode=\"any\">\n        <control name=\"requireSurroundingForm\">false</control>\n        <control name=\"gridStyleClass\">\n          gridStyle8 infoViewLeft\n        </control>\n      </controls>\n    </widget>\n\n    <widget name=\"infoViewPanelRight\" type=\"documentActions\">\n      <properties widgetMode=\"view\">\n        <property name=\"category\">INFO_VIEW_PANEL_RIGHT</property>\n      </properties>\n      <controls mode=\"any\">\n        <control name=\"requireSurroundingForm\">false</control>\n        <control name=\"gridStyleClass\">\n          gridStyle4 compactLayout infoViewRight\n        </control>\n      </controls>\n    </widget>\n\n    <widget name=\"infoViewPreview\" type=\"container\">\n      <handlingLabels>false</handlingLabels>\n      <properties widgetMode=\"any\">\n        <property name=\"hideSubLabels\">true</property>\n        <property name=\"styleClass\">infoViewDocContainer</property>\n        <property name=\"display\">block_top</property>\n      </properties>\n      <subWidgets>\n        <widget name=\"preview\" type=\"documentPreview\">\n          <properties widgetMode=\"view\">\n            <property name=\"width\">100%</property>\n            <property name=\"height\">600px</property>\n          </properties>\n        </widget>\n      </subWidgets>\n    </widget>\n\n    <widget name=\"infoViewNote\" type=\"container\">\n      <handlingLabels>false</handlingLabels>\n      <properties widgetMode=\"any\">\n        <property name=\"hideSubLabels\">true</property>\n        <property name=\"styleClass\">infoViewDocContainer</property>\n        <property name=\"display\">block_top</property>\n      </properties>\n      <subWidgetRefs>\n        <widget>summary_note_text</widget>\n      </subWidgetRefs>\n    </widget>\n\n    <widget name=\"infoViewNoPreview\" type=\"container\">\n      <handlingLabels>false</handlingLabels>\n      <properties widgetMode=\"any\">\n        <property name=\"hideSubLabels\">true</property>\n        <property name=\"styleClass\">infoViewDocContainer</property>\n        <property name=\"display\">block_top</property>\n      </properties>\n      <subWidgets>\n        <widget name=\"noPreview\" type=\"template\">\n          <properties mode=\"any\">\n            <property name=\"template\">\n              /widgets/info_view_no_preview_widget.xhtml\n            </property>\n          </properties>\n        </widget>\n      </subWidgets>\n    </widget>\n\n    <widget name=\"infoViewTitleContainer\" type=\"container\">\n      <handlingLabels>false</handlingLabels>\n      <properties widgetMode=\"any\">\n        <property name=\"hideSubLabels\">true</property>\n        <property name=\"styleClass\">infoViewTitle</property>\n        <property name=\"display\">block_top</property>\n      </properties>\n      <subWidgets>\n        <widget name=\"infoViewTitle\" type=\"title_link\">\n          <fields>\n            <field></field>\n            <field>ref</field>\n            <field>dc.description</field>\n          </fields>\n          <properties mode=\"any\">\n            <property name=\"target\">_top</property>\n            <property name=\"hideExternalLink\">true</property>\n            <property name=\"hideDownloadLink\">true</property>\n          </properties>\n        </widget>\n      </subWidgets>\n    </widget>\n\n    <widget name=\"infoViewInfoLayoutContainer\" type=\"container\">\n      <handlingLabels>false</handlingLabels>\n      <properties widgetMode=\"any\">\n        <property name=\"hideSubLabels\">true</property>\n        <property name=\"styleClass\">infoViewInfoLayout</property>\n        <property name=\"display\">block_top</property>\n      </properties>\n      <subWidgets>\n        <widget name=\"infoViewInfoLayout\" type=\"documentLayout\">\n          <properties widgetMode=\"view\">\n            <property name=\"mode\">view</property>\n            <property name=\"documentMode\">info</property>\n            <property name=\"defaultLayout\">defaultInfoLayout@tabLayout</property>\n            <property name=\"includeAnyMode\">false</property>\n          </properties>\n        </widget>\n      </subWidgets>\n    </widget>\n\n    <widget name=\"infoViewActions\" type=\"documentActionsWithForms\">\n      <properties widgetMode=\"view\">\n        <property name=\"category\">INFO_VIEW_ACTIONS</property>\n        <property name=\"styleClass\">globalActionBar infoViewActions</property>\n        <property name=\"subStyleClass\">contextActions</property>\n        <property name=\"overallDisplay\">horizontal_block</property>\n        <property name=\"actionsDisplay\">icons</property>\n        <property name=\"useAjaxForm\">true</property>\n        <property name=\"ignoreTemplateProperty\">true</property>\n        <property name=\"maxActionsNumber\">5</property>\n      </properties>\n    </widget>\n\n  </extension>\n\n  <extension target=\"org.nuxeo.ecm.platform.actions.ActionService\"\n    point=\"actions\">\n\n    <action id=\"infoViewPreview\" type=\"widget\" order=\"100\">\n      <category>INFO_VIEW_PANEL_LEFT</category>\n      <properties>\n        <property name=\"widgetName\">infoViewPreview</property>\n      </properties>\n      <filter-id>notHasNote</filter-id>\n      <filter-id>view_preview</filter-id>\n      <filter-id>denyInfoViewPreview</filter-id>\n    </action>\n\n    <action id=\"infoViewNote\" type=\"widget\" order=\"100\">\n      <category>INFO_VIEW_PANEL_LEFT</category>\n      <properties>\n        <property name=\"widgetName\">infoViewNote</property>\n      </properties>\n      <filter-id>hasNote</filter-id>\n    </action>\n\n    <action id=\"infoViewNoPreview\" type=\"widget\" order=\"100\">\n      <category>INFO_VIEW_PANEL_LEFT</category>\n      <properties>\n        <property name=\"widgetName\">infoViewNoPreview</property>\n      </properties>\n      <filter-id>notHasPreview</filter-id>\n    </action>\n\n    <action id=\"infoViewTitleContainer\" type=\"widget\" order=\"100\">\n      <category>INFO_VIEW_PANEL_RIGHT</category>\n      <properties>\n        <property name=\"widgetName\">infoViewTitleContainer</property>\n      </properties>\n    </action>\n\n    <action id=\"infoViewInfoLayoutContainer\" type=\"widget\" order=\"200\">\n      <category>INFO_VIEW_PANEL_RIGHT</category>\n      <properties>\n        <property name=\"widgetName\">infoViewInfoLayoutContainer</property>\n      </properties>\n    </action>\n\n    <action id=\"infoViewActions\" type=\"widget\" order=\"300\">\n      <category>INFO_VIEW_PANEL_RIGHT</category>\n      <properties>\n        <property name=\"widgetName\">infoViewActions</property>\n      </properties>\n    </action>\n\n    <action id=\"infoAddToFavoritesAction\" order=\"0\" label=\"label.addToFavorites\"\n      link=\"#{favoritesActions.addCurrentDocumentToFavorites()}\" icon=\"/icons/pin.png\">\n      <category>INFO_VIEW_ACTIONS</category>\n      <filter-id>canAddToFavorites</filter-id>\n      <properties>\n        <property name=\"ajaxSupport\">true</property>\n      </properties>\n    </action>\n\n    <action id=\"infoRemoveFromFavoritesAction\" order=\"0\"\n      label=\"label.removeFromFavorites\" link=\"#{favoritesActions.removeCurrentDocumentFromFavorites()}\"\n      icon=\"/icons/pinned.png\">\n      <category>INFO_VIEW_ACTIONS</category>\n      <filter-id>canRemoveFromFavorites</filter-id>\n      <properties>\n        <property name=\"ajaxSupport\">true</property>\n      </properties>\n    </action>\n\n    <action id=\"infoDocumentLock\" link=\"#{lockActions.lockCurrentDocument}\"\n      order=\"10\" label=\"command.lock\" type=\"link\" icon=\"/icons/contextual_menu/unlocked.png\">\n      <category>INFO_VIEW_ACTIONS</category>\n      <filter-id>mutable_document</filter-id>\n      <filter-id>can_lock</filter-id>\n      <properties>\n        <property name=\"ajaxSupport\">true</property>\n      </properties>\n    </action>\n\n    <action id=\"infoDocumentUnlock\" link=\"#{lockActions.unlockCurrentDocument}\"\n      order=\"10\" label=\"command.unlock\" type=\"link\" icon=\"/icons/contextual_menu/locked.png\">\n      <category>INFO_VIEW_ACTIONS</category>\n      <filter-id>mutable_document</filter-id>\n      <filter-id>can_unlock</filter-id>\n      <properties>\n        <property name=\"ajaxSupport\">true</property>\n      </properties>\n    </action>\n\n    <action id=\"infoPermalinkAction\" order=\"20\" label=\"label.permalink\"\n      type=\"fancybox\" icon=\"/icons/contextual_menu/share.png\" accessKey=\"k\">\n      <category>INFO_VIEW_ACTIONS</category>\n      <properties>\n        <property name=\"include\">/incl/permalink_box.xhtml</property>\n        <property name=\"ajaxSupport\">true</property>\n      </properties>\n    </action>\n\n    <action id=\"infoDownloadAction\" link=\"#{operationActionBean.doOperation('downloadFilesZip')}\"\n      order=\"30\" label=\"label.document.download\" type=\"link\"\n      icon=\"/icons/contextual_menu/download.png\">\n      <category>INFO_VIEW_ACTIONS</category>\n      <filter-id>documentHasBlobs</filter-id>\n    </action>\n\n    <action id=\"infoSubscribesAllDocNotifications\" link=\"#{subscriptionAction.updateAllSubscriptions}\"\n      order=\"40\" label=\"label.subscriptions.follow\" type=\"link\"\n      icon=\"/icons/contextual_menu/subscribe.png\">\n      <category>INFO_VIEW_ACTIONS</category>\n      <filter-id>hasNoSubscriptions</filter-id>\n      <filter-id>canSubscribe</filter-id>\n      <filter-id>isNotVersion</filter-id>\n      <properties>\n        <property name=\"ajaxSupport\">true</property>\n      </properties>\n    </action>\n\n    <action id=\"infoUnsubscribesAllDocNotifications\" link=\"#{subscriptionAction.updateAllSubscriptions}\"\n      order=\"40\" label=\"label.subscriptions.unfollow\" type=\"link\"\n      icon=\"/icons/contextual_menu/unsubscribe.png\">\n      <category>INFO_VIEW_ACTIONS</category>\n      <filter-id>hasSubscriptions</filter-id>\n      <filter-id>canSubscribe</filter-id>\n      <filter-id>isNotVersion</filter-id>\n      <properties>\n        <property name=\"ajaxSupport\">true</property>\n      </properties>\n    </action>\n\n  </extension>\n\n  <extension target=\"org.nuxeo.ecm.platform.forms.layout.WebLayoutManager\"\n    point=\"layouts\">\n\n    <layout name=\"gridInfoViewLayout\">\n      <templates>\n        <template mode=\"any\">\n          /layouts/layout_grid_template.xhtml\n        </template>\n      </templates>\n      <rows>\n        <row>\n          <widget>infoViewPanelLeft</widget>\n          <widget>infoViewPanelRight</widget>\n        </row>\n      </rows>\n    </layout>\n\n    <layout name=\"defaultInfoLayout@tabLayout\">\n      <templates>\n        <template mode=\"any\">\n          /layouts/layout_grid_template.xhtml\n        </template>\n      </templates>\n      <rows>\n        <row>\n          <widget>infoViewInfoBox</widget>\n        </row>\n        <row>\n          <widget>infoViewMetadata</widget>\n        </row>\n        <row>\n          <widget>infoViewWorkflow</widget>\n        </row>\n        <row>\n          <widget>infoViewTags</widget>\n        </row>\n        <row>\n          <widget>infoViewCollections</widget>\n        </row>\n        <row>\n          <widget>infoViewComments</widget>\n        </row>\n      </rows>\n      <widget name=\"infoViewInfoBox\" type=\"container\">\n        <subWidgets>\n          <widget name=\"infoBox\" type=\"info_box\" />\n        </subWidgets>\n        <properties widgetMode=\"any\">\n          <property name=\"hideSubLabels\">true</property>\n        </properties>\n        <controls mode=\"any\">\n          <control name=\"gridStyleClass\">gridStyle12</control>\n        </controls>\n      </widget>\n      <widget name=\"infoViewMetadata\" type=\"container\">\n        <labels>\n          <label mode=\"any\">action.view.metadata</label>\n        </labels>\n        <translated>true</translated>\n        <subWidgets>\n          <widget name=\"metadata\" type=\"documentLayout\">\n            <properties widgetMode=\"view\">\n              <property name=\"mode\">view</property>\n              <property name=\"documentMode\">view</property>\n              <property name=\"includeAnyMode\">false</property>\n            </properties>\n            <controls mode=\"any\">\n              <control name=\"requireSurroundingForm\">true</control>\n            </controls>\n          </widget>\n        </subWidgets>\n        <controls mode=\"any\">\n          <control name=\"handleLabels\">true</control>\n          <control name=\"gridStyleClass\">gridStyle12</control>\n        </controls>\n        <properties widgetMode=\"any\">\n          <property name=\"hideSubLabels\">true</property>\n        </properties>\n      </widget>\n      <widget name=\"infoViewWorkflow\" type=\"container\">\n        <labels>\n          <label mode=\"any\">label.document.routing.workflow</label>\n        </labels>\n        <translated>true</translated>\n        <subWidgets>\n          <widget name=\"workflow\" type=\"summary_document_route\">\n            <controls mode=\"any\">\n              <control name=\"requireSurroundingForm\">true</control>\n            </controls>\n          </widget>\n        </subWidgets>\n        <controls mode=\"any\">\n          <control name=\"handleLabels\">true</control>\n          <control name=\"gridStyleClass\">gridStyle12</control>\n        </controls>\n        <properties widgetMode=\"any\">\n          <property name=\"hideSubLabels\">true</property>\n        </properties>\n        <widgetModes>\n          <mode value=\"view\">#{routingActions.filteredRouteModels.size() > 0 ?\n            'view' : 'hidden'}</mode>\n        </widgetModes>\n      </widget>\n      <widget name=\"infoViewTags\" type=\"container\">\n        <labels>\n          <label mode=\"any\">action.view.tagging</label>\n        </labels>\n        <translated>true</translated>\n        <subWidgets>\n          <widget name=\"tags\" type=\"summary_current_document_tagging\">\n            <controls mode=\"any\">\n              <control name=\"requireSurroundingForm\">true</control>\n            </controls>\n            <properties widgetMode=\"any\">\n              <property name=\"placeholder\">\n                #{messages['label.add.tag.placeholder']}\n              </property>\n            </properties>\n          </widget>\n        </subWidgets>\n        <controls mode=\"any\">\n          <control name=\"handleLabels\">true</control>\n          <control name=\"gridStyleClass\">gridStyle12</control>\n        </controls>\n        <properties widgetMode=\"any\">\n          <property name=\"hideSubLabels\">true</property>\n        </properties>\n      </widget>\n      <widget name=\"infoViewCollections\" type=\"container\">\n        <labels>\n          <label mode=\"any\">label.collections</label>\n        </labels>\n        <translated>true</translated>\n        <subWidgets>\n          <widget name=\"collections\" type=\"summary_current_document_collections\" />\n        </subWidgets>\n        <controls mode=\"any\">\n          <control name=\"handleLabels\">true</control>\n          <control name=\"gridStyleClass\">gridStyle12</control>\n        </controls>\n        <properties widgetMode=\"any\">\n          <property name=\"hideSubLabels\">true</property>\n        </properties>\n        <widgetModes>\n          <mode value=\"view\">#{collectionActions.hasCurrentDocumentVisibleCollection()\n            ? 'view' : 'hidden'}</mode>\n        </widgetModes>\n      </widget>\n      <widget name=\"infoViewComments\" type=\"container\">\n        <labels>\n          <label mode=\"any\">#{nxu:translate('label.summary.comments',\n            documentThreadedComments.size)}</label>\n        </labels>\n        <translated>false</translated>\n        <subWidgets>\n          <widget name=\"comments\" type=\"summary_current_document_comments\">\n            <controls mode=\"any\">\n              <control name=\"requireSurroundingForm\">true</control>\n            </controls>\n          </widget>\n        </subWidgets>\n        <controls mode=\"any\">\n          <control name=\"handleLabels\">true</control>\n          <control name=\"gridStyleClass\">gridStyle12</control>\n        </controls>\n        <properties widgetMode=\"any\">\n          <property name=\"hideSubLabels\">true</property>\n        </properties>\n        <widgetModes>\n          <mode value=\"view\">#{documentThreadedComments.size() > 0 ? 'view' :\n            'hidden'}</mode>\n        </widgetModes>\n      </widget>\n    </layout>\n\n  </extension>\n\n  <extension target=\"org.nuxeo.ecm.platform.actions.ActionService\"\n    point=\"filters\">\n\n    <filter id=\"denyInfoViewPreview\" append=\"true\">\n    </filter>\n\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/info-view-layouts-contrib.xml",
          "xmlPureComponent": true
        }
      ],
      "fileName": "nuxeo-platform-webapp-core-2021.57.3.jar",
      "groupId": "org.nuxeo.ecm.platform",
      "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.webapp/org.nuxeo.ecm.webapp.core",
      "id": "org.nuxeo.ecm.webapp.core",
      "location": "",
      "manifest": "Manifest-Version: 1.0\r\nArchiver-Version: Plexus Archiver\r\nCreated-By: Apache Maven\r\nBuilt-By: root\r\nBuild-Jdk: 11.0.23\r\nBundle-ManifestVersion: 2\r\nBundle-Version: 2021.57.3-t20240722-084338\r\nBundle-Name: NuxeoWeb\r\nBundle-SymbolicName: org.nuxeo.ecm.webapp.core\r\nBundle-Localization: plugin\r\nBundle-Vendor: Nuxeo\r\nBundle-Category: web\r\nNuxeo-Component: OSGI-INF/theme-contrib.xml, OSGI-INF/actions-contrib.\r\n xml, OSGI-INF/action-widgets-contrib.xml, OSGI-INF/importOptions-acti\r\n ons-contrib.xml, OSGI-INF/documentslists-contrib.xml, OSGI-INF/trashM\r\n anagement-framework.xml, OSGI-INF/trashManagement-contrib.xml, OSGI-I\r\n NF/uiPermissionService-framework.xml, OSGI-INF/layouts-contrib.xml, O\r\n SGI-INF/layouts-summary-contrib.xml, OSGI-INF/exceptionhandling-contr\r\n ib.xml, OSGI-INF/seamremotingjsbuilder-contrib.xml, OSGI-INF/director\r\n y-ui-contrib.xml, OSGI-INF/chains-contrib.xml, OSGI-INF/pageproviders\r\n -webapp-contrib.xml, OSGI-INF/import-actions-contrib.xml, OSGI-INF/in\r\n fo-view-layouts-contrib.xml\r\nRequire-Bundle: org.nuxeo.ecm.platform.types.api,org.nuxeo.ecm.platfor\r\n m.versioning.api,org.nuxeo.ecm.platform.ui,org.nuxeo.ecm.webapp.base,\r\n org.nuxeo.ecm.core.query,org.nuxeo.ecm.platform.search.api,org.nuxeo.\r\n ecm.directory.api,org.nuxeo.ecm.platform.forms.layout.client,org.nuxe\r\n o.ecm.platform.jbpm.api\r\n\r\n",
      "maxResolutionOrder": 692,
      "minResolutionOrder": 656,
      "packages": [
        "nuxeo-jsf-ui"
      ],
      "requirements": [
        "org.nuxeo.ecm.platform.types.api",
        "org.nuxeo.ecm.platform.versioning.api",
        "org.nuxeo.ecm.platform.ui",
        "org.nuxeo.ecm.webapp.base",
        "org.nuxeo.ecm.core.query",
        "org.nuxeo.ecm.platform.search.api",
        "org.nuxeo.ecm.directory.api",
        "org.nuxeo.ecm.platform.forms.layout.client",
        "org.nuxeo.ecm.platform.jbpm.api"
      ],
      "version": "2021.57.3"
    }
  ],
  "creationDate": 1721639286546,
  "key": "Nuxeo Platform-2021.57",
  "name": "Nuxeo Platform",
  "operations": [
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Chain",
      "contributingComponent": "org.nuxeo.ecm.platform.automation.defaultChains",
      "hierarchyPath": "/op:addCurrentDocumentToWorklist",
      "label": "addCurrentDocumentToWorklist",
      "name": "addCurrentDocumentToWorklist",
      "operationClass": "org.nuxeo.ecm.automation.core.impl.OperationChainCompiler.CompiledChainImpl",
      "params": [],
      "signature": [
        "document",
        "document",
        "documents",
        "documents"
      ],
      "url": "addCurrentDocumentToWorklist",
      "version": "2021.57.3"
    }
  ],
  "packages": [
    {
      "@type": "NXPackage",
      "bundles": [
        "org.nuxeo.admin.center.analytics.dashboards",
        "org.nuxeo.admin.center.jsf",
        "org.nuxeo.admin.center.monitoring",
        "org.nuxeo.admin.center.oauth.opensocial",
        "org.nuxeo.ecm.automation.jsf",
        "org.nuxeo.elasticsearch.web",
        "org.nuxeo.ecm.localconf.web",
        "org.nuxeo.ecm.actions.jsf",
        "org.nuxeo.ecm.platform.audio.jsf",
        "org.nuxeo.ecm.platform.audit.web",
        "org.nuxeo.ecm.platform.comment.web",
        "org.nuxeo.ecm.platform.contentview.jsf",
        "org.nuxeo.ecm.directory.web",
        "org.nuxeo.ecm.platform.forms.layout.client",
        "org.nuxeo.ecm.platform.forms.layout.io",
        "org.nuxeo.ecm.platform.forms.layout.io.plugins",
        "org.nuxeo.ecm.platform.picture.jsf",
        "org.nuxeo.ecm.platform.io.web",
        "org.nuxeo.ecm.platform.login.token.jsf",
        "org.nuxeo.ecm.platform.notification.web",
        "org.nuxeo.ecm.platform.publisher.web",
        "org.nuxeo.ecm.relations.web",
        "org.nuxeo.ecm.platform.rendition.web",
        "org.nuxeo.ecm.platform.suggestbox.jsf",
        "org.nuxeo.ecm.platform.tag.web",
        "org.nuxeo.ecm.platform.task.web",
        "org.nuxeo.ecm.platform.ui.select2",
        "org.nuxeo.ecm.platform.ui",
        "org.nuxeo.ecm.platform.userworkspace.web",
        "org.nuxeo.ecm.platform.video.jsf",
        "org.nuxeo.ecm.webapp.ui",
        "org.nuxeo.ecm.webapp.base",
        "org.nuxeo.ecm.webapp.core",
        "org.nuxeo.ecm.platform.preview.jsf",
        "org.nuxeo.ecm.platform.routing.dashboard",
        "org.nuxeo.ecm.platform.routing.default.jsf",
        "org.nuxeo.ecm.platform.routing.dm",
        "org.nuxeo.ecm.platform.routing.web",
        "org.nuxeo.search.ui",
        "org.nuxeo.theme.migration",
        "org.nuxeo.ecm.user.center",
        "org.nuxeo.ecm.user.center.dashboard",
        "org.nuxeo.ecm.user.center.dashboard.jsf",
        "org.nuxeo.ecm.user.center.notification",
        "org.nuxeo.ecm.user.center.oauth",
        "org.nuxeo.ecm.user.center.profile.jsf",
        "org.nuxeo.web.resources.jsf"
      ],
      "conflicts": [],
      "dependencies": [],
      "hierarchyPath": "/nuxeo-jsf-ui-2021.57.3",
      "id": "nuxeo-jsf-ui-2021.57.3",
      "name": "nuxeo-jsf-ui",
      "optionalDependencies": [],
      "packageType": "addon",
      "title": "Nuxeo JSF UI",
      "version": "2021.57.3"
    }
  ],
  "pluginSnapshots": {},
  "releaseDate": 1721639286546,
  "version": "2021.57"
}