docs: public static void firstById(String id, UIComponent base, char separatorChar, FacesContext context, ContextCallback callback) {
  
          // try #findComponent first
          UIComponent component = base.findComponent(id);
  
          // try #invokeOnComponent
          // it's required to support e.g. a full client id for a component which is placed inside UIData components
          if (component == null) {
              // #invokeOnComponent doesn't support the leading seperator char
              String tempExpression = id;
              if (tempExpression.charAt(0) == separatorChar) {
                  tempExpression = tempExpression.substring(1);
              }
  
              context.getViewRoot().invokeOnComponent(context, tempExpression, callback);
          }
          else {
              callback.invokeContextCallback(context, component);
          }
      }