<commit_before>/*jshint indent:2, curly:true eqeqeq:true, immed:true, latedef:true,
newcap:true, noarg:true, regexp:true, undef:true, trailing:true
white:true*/
/*global enyo:true, XM:true, XV:true, XT:true, _:true */


(function () {

  /**
   @name XV.AssignmentBox
   @class An assignment box is a groupbox that manages the assignment of a set of
   available options to an object. For example, setting up the privileges that
   are associated with a role.<br />
   Derived from <a href="http://enyojs.com/api/#enyo.Scroller">enyo.Scroller</a>. 
   @extends enyo.Scroller
   */
  enyo.kind(/** @lends XV.AssignmentBox# */{
    name: "XV.AssignmentBox",
    kind: "Scroller",
    fit: true,
    horizontal: "hidden",
    handlers: {
      onValueChange: "checkboxChange"
    },

    /**
     * Published fields
     * @type {Object}
     *
     * @property {XM.Collection} assignedCollection
     * The collection that backs this box. The model of the collection is the
     *    assignment (link) model.
     *
     * @property {Array} assignedIds
     * The ids of the assignable models. Cached for performance and recached whenever
     *    the assignedCollection is changed.
     *
     * @property {String} cacheName
     * The name of the cached collection if the collection is stored in the XM cache.
     *
     * @property {Array} restrictedValues
     * An array of the values that we want to see in this assignment box. Values not in
     *    this array will be suppressed. If this is null (as by default) then no suppression
     *    will occur.
     *
     * @property {Array} segmentedCollections
     * An array of collections, each of whom are a subset of totalCollection.
     *
     * @property {Array} segments
     * We allow the assignable checkboxes to be grouped by segment.
     *    If this array is length one then there is no segmentation, and the one value
     *    of the array becomes the header of the box. If the array is length zero then
     *    we dynamically generate the segments based on the incoming data. It must be
     *    overridden by the implementation to be something other than null, though.
     *
     * @property {XM.Collection} totalCollection
     * The collection of all possible assignable models.
     *
     * @property {String} totalCollectionName
     * The name in the the XM namespace of the collection. Used to making new
     * segmentedCollections.
     *
     * @property {Boolean} translateLabels
     * We want to translate the labels if they are hardcoded into our system (such as privileges)
     *    but not if they are user-defined.
     *
     * @property {String} type
     * Camelized name of assignable model. Used for drilling down from the assignment
     *    (link) model to the assignable model.
     */
    published: {
      assignedCollection: null,
      assignedIds: null,
      cacheName: "",
      restrictedValues: null,
      segmentedCollections: null,
      segments: null,
      totalCollection: null,
      totalCollectionName: "",
      translateLabels: true,
      type: ""
    },

    components: [
      {kind: "Repeater", name: "segmentRepeater", fit: true, onSetupItem: "setupSegment", segmentIndex: 0, components: [
        {kind: "onyx.GroupboxHeader", name: "segmentHeader", content: ""},
        {kind: "Repeater", name: "checkboxRepeater", fit: true, onSetupItem: "setupCheckbox", components: [
          {kind: "XV.CheckboxWidget", name: "checkbox" }
        ]}
      ]}
    ],<commit_msg>issue #19026: improved jsdoc<commit_after>/*jshint indent:2, curly:true eqeqeq:true, immed:true, latedef:true,
newcap:true, noarg:true, regexp:true, undef:true, trailing:true
white:true*/
/*global enyo:true, XM:true, XV:true, XT:true, _:true */


(function () {

  /**
   @name XV.AssignmentBox
   @class An assignment box is a groupbox that manages the assignment of a set of
   available options to an object. For example, setting up the privileges that
   are associated with a role.<br />
   Derived from <a href="http://enyojs.com/api/#enyo.Scroller">enyo.Scroller</a>.
   @extends enyo.Scroller
   */
  enyo.kind(/** @lends XV.AssignmentBox# */{
    name: "XV.AssignmentBox",
    kind: "Scroller",
    fit: true,
    horizontal: "hidden",
    handlers: {
      onValueChange: "checkboxChange"
    },

    /**
     * Published fields
     * @type {Object}
     *
     * @property {XM.Collection} assignedCollection
     * The collection that backs this box. The model of the collection is the
     *    assignment (link) model.
     *
     * @property {Array} assignedIds
     * The ids of the assignable models. Cached for performance and recached whenever
     *    the assignedCollection is changed.
     *
     * @property {String} cacheName
     * The name of the cached collection if the collection is stored in the XM cache.
     *
     * @property {Array} restrictedValues
     * An array of the values that we want to see in this assignment box. Values not in
     *    this array will be suppressed. If this is null (as by default) then no suppression
     *    will occur.
     *
     * @property {Array} segmentedCollections
     * An array of collections, each of whom are a subset of totalCollection.
     *
     * @property {Array} segments
     * We allow the assignable checkboxes to be grouped by segment.
     *    If this array is length one then there is no segmentation, and the one value
     *    of the array becomes the header of the box. If the array is length zero then
     *    we dynamically generate the segments based on the incoming data. It must be
     *    overridden by the implementation to be something other than null, though.
     *
     * @property {XM.Collection} totalCollection
     * The collection of all possible assignable models.
     *
     * @property {String} totalCollectionName
     * The name in the the XM namespace of the collection. Used to making new
     * segmentedCollections.
     *
     * @property {Boolean} translateLabels
     * We want to translate the labels if they are hardcoded into our system (such as privileges)
     *    but not if they are user-defined.
     *
     * @property {String} type
     * Camelized name of assignable model. Used for drilling down from the assignment
     *    (link) model to the assignable model. It is important that this be the attribute
     *    in the assignment model that contains the assignable model.
     */
    published: {
      assignedCollection: null,
      assignedIds: null,
      cacheName: "",
      restrictedValues: null,
      segmentedCollections: null,
      segments: null,
      totalCollection: null,
      totalCollectionName: "",
      translateLabels: true,
      type: ""
    },

    components: [
      {kind: "Repeater", name: "segmentRepeater", fit: true, onSetupItem: "setupSegment", segmentIndex: 0, components: [
        {kind: "onyx.GroupboxHeader", name: "segmentHeader", content: ""},
        {kind: "Repeater", name: "checkboxRepeater", fit: true, onSetupItem: "setupCheckbox", components: [
          {kind: "XV.CheckboxWidget", name: "checkbox" }
        ]}
      ]}
    ],
{'fraction_non_alphanumeric': 0.09087084560370215, 'fraction_numerical': 0.0012620950778291964, 'mean_word_length': 2.777542372881356, 'pattern_counts': {'":': 0, '<': 9, '<?xml version=': 0, '>': 9, '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': '1857604', 'n_tokens_mistral': 2013, 'n_tokens_neox': 1968, 'n_words': 770}