<commit_before><div class="widget-frame" id="portlet-id-{{::portlet.nodeId}}">
  <div class="widget-header">
    <!-- Widget Chrome -->
    <div class='widget-info'>
      <i title="Info" class="fa fa-info-circle"
      tooltip="{{::portlet.description}}"
      tooltip-trigger="mouseenter"
      tooltip-placement="top"
      tooltip-popup-delay="200"></i>
    </div>
    <div class='widget-remove'>
      <i title="Remove" class="fa fa-times portlet-options" ng-click="widgetCtrl.removePortlet(portlet.nodeId, portlet.title)"><a aria-label="Remove this app" href="#"></a></i>
    </div>
    
    <div class="widget-title">
      <h4 id="appTitle_portlet.title-{{::portlet.nodeId}}" aria-labelledby="appTitle_portlet.title-{{::portlet.nodeId}}" tabindex="0">{{ ::portlet.title }}</h4>
    </div>
  </div>
  <sub class="sr-only" id="goToApps-{{::portlet.nodeId}}">go to</sub>
  <!-- For widgets, show fancy markup! -->
  <div ng-if="'WIDGET' === widgetCtrl.portletType(portlet)">
    <div class="portlet-content">
       <div ng-if="'option-link' === portlet.widgetType">
         <div class="widget-icon-container">
           <portlet-icon></portlet-icon>
         </div>
       </div>
       <div ng-bind-html="portlet.widgetContent"></div>
    </div>
    <a class="btn btn-default launch-app-button" href="{{::portlet.url}}" target="{{::portlet.target}}">Launch full app</a>
  </div>

  <div ng-if="'OPTION_LINK' === widgetCtrl.portletType(portlet)">
    <option-link app="portlet" config="portlet.widgetConfig"></option-link>
  </div>

  <div ng-if="'WEATHER' === widgetCtrl.portletType(portlet)">
    <weather app="portlet" config="portlet.widgetConfig"></weather>
  </div>

  <div ng-if="'RSS' === widgetCtrl.portletType(portlet)">
    <rss app="portlet" config="portlet.widgetConfig"></rss>
  </div>

  <div ng-if="'GENERIC' === widgetCtrl.portletType(portlet)">
    <div ng-controller="GenericWidgetController as genericWidgetCtrl">
        <div ng-if="loading" id="loading">
            <loading-gif data-object='content' data-empty='isEmpty'></loading-gif>
        </div>
        <content-item></content-item>
    </div>
  </div>

  <!-- For basic apps (not a widget, not simple content, no pithy content), show only an icon -->
  <a tabindex="-1" ng-if="'NORMAL' === widgetCtrl.portletType(portlet)" href="{{::portlet.url}}" target="{{::portlet.target}}">
    <div class="widget-icon-container">
      <portlet-icon></portlet-icon>
    </div>
    <button aria-labelledby="goToApps-{{::portlet.nodeId}} appTitle_portlet.title-{{::portlet.nodeId}}" class="btn btn-default launch-app-button">Launch full app</button>
  </a>
  
  <!-- For pithy content, display the pithy content -->
  <div ng-if="'PITHY' === widgetCtrl.portletType(portlet)">
    <div class="portlet-content">
       <div ng-bind-html="portlet.pithyStaticContent"></div>
    </div>
    <a class="btn btn-default launch-app-button" href="{{::portlet.url}}" target="{{::portlet.target}}">Launch full app</a>
  </div>
  
  <!-- For simple content portlets, show only an icon -->
  <a tabindex="-1" ng-if="'SIMPLE' === widgetCtrl.portletType(portlet)" ng-click="widgetCtrl.maxStaticPortlet(portlet)" class="simple-content-container">
    <div class="widget-icon-container">
      <portlet-icon></portlet-icon>
    </div>
    <button aria-labelledby="goToApps-{{::portlet.nodeId}} appTitle_portlet.title-{{::portlet.nodeId}}" class="btn btn-default launch-app-button">Launch full app</button>
  </a>
</div>
<commit_msg>add !loading to <content-item><commit_after><div class="widget-frame" id="portlet-id-{{::portlet.nodeId}}">
  <div class="widget-header">
    <!-- Widget Chrome -->
    <div class='widget-info'>
      <i title="Info" class="fa fa-info-circle"
      tooltip="{{::portlet.description}}"
      tooltip-trigger="mouseenter"
      tooltip-placement="top"
      tooltip-popup-delay="200"></i>
    </div>
    <div class='widget-remove'>
      <i title="Remove" class="fa fa-times portlet-options" ng-click="widgetCtrl.removePortlet(portlet.nodeId, portlet.title)"><a aria-label="Remove this app" href="#"></a></i>
    </div>

    <div class="widget-title">
      <h4 id="appTitle_portlet.title-{{::portlet.nodeId}}" aria-labelledby="appTitle_portlet.title-{{::portlet.nodeId}}" tabindex="0">{{ ::portlet.title }}</h4>
    </div>
  </div>
  <sub class="sr-only" id="goToApps-{{::portlet.nodeId}}">go to</sub>
  <!-- For widgets, show fancy markup! -->
  <div ng-if="'WIDGET' === widgetCtrl.portletType(portlet)">
    <div class="portlet-content">
       <div ng-if="'option-link' === portlet.widgetType">
         <div class="widget-icon-container">
           <portlet-icon></portlet-icon>
         </div>
       </div>
       <div ng-bind-html="portlet.widgetContent"></div>
    </div>
    <a class="btn btn-default launch-app-button" href="{{::portlet.url}}" target="{{::portlet.target}}">Launch full app</a>
  </div>

  <div ng-if="'OPTION_LINK' === widgetCtrl.portletType(portlet)">
    <option-link app="portlet" config="portlet.widgetConfig"></option-link>
  </div>

  <div ng-if="'WEATHER' === widgetCtrl.portletType(portlet)">
    <weather app="portlet" config="portlet.widgetConfig"></weather>
  </div>

  <div ng-if="'RSS' === widgetCtrl.portletType(portlet)">
    <rss app="portlet" config="portlet.widgetConfig"></rss>
  </div>

  <div ng-if="'GENERIC' === widgetCtrl.portletType(portlet)">
    <div ng-controller="GenericWidgetController as genericWidgetCtrl">
        <div ng-if="loading" id="loading">
            <loading-gif data-object='content' data-empty='isEmpty'></loading-gif>
        </div>
        <content-item ng-if="!loading"></content-item>
    </div>
  </div>

  <!-- For basic apps (not a widget, not simple content, no pithy content), show only an icon -->
  <a tabindex="-1" ng-if="'NORMAL' === widgetCtrl.portletType(portlet)" href="{{::portlet.url}}" target="{{::portlet.target}}">
    <div class="widget-icon-container">
      <portlet-icon></portlet-icon>
    </div>
    <button aria-labelledby="goToApps-{{::portlet.nodeId}} appTitle_portlet.title-{{::portlet.nodeId}}" class="btn btn-default launch-app-button">Launch full app</button>
  </a>

  <!-- For pithy content, display the pithy content -->
  <div ng-if="'PITHY' === widgetCtrl.portletType(portlet)">
    <div class="portlet-content">
       <div ng-bind-html="portlet.pithyStaticContent"></div>
    </div>
    <a class="btn btn-default launch-app-button" href="{{::portlet.url}}" target="{{::portlet.target}}">Launch full app</a>
  </div>

  <!-- For simple content portlets, show only an icon -->
  <a tabindex="-1" ng-if="'SIMPLE' === widgetCtrl.portletType(portlet)" ng-click="widgetCtrl.maxStaticPortlet(portlet)" class="simple-content-container">
    <div class="widget-icon-container">
      <portlet-icon></portlet-icon>
    </div>
    <button aria-labelledby="goToApps-{{::portlet.nodeId}} appTitle_portlet.title-{{::portlet.nodeId}}" class="btn btn-default launch-app-button">Launch full app</button>
  </a>
</div>

{'fraction_non_alphanumeric': 0.20853554096488724, 'fraction_numerical': 0.0022837567799029405, 'mean_word_length': 3.9659815733522326, 'pattern_counts': {'":': 0, '<': 174, '<?xml version=': 0, '>': 174, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4631107', 'n_tokens_mistral': 2411, 'n_tokens_neox': 2349, 'n_words': 406}