{"version":3,"file":"static/js/application.initial~ca480cae.3b86dbb3.js","mappings":"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","sources":["../webpack/bootstrap","../../../../../../../../external/pug-runtime","../webpack-src:/card-panel/index.js","../webpack-src:/card-panel/src/view/card-panel.es","../webpack-src:/card-panel/src/view/card-holder.es","../../../../../../../../external/@bingads-webui/multilevel-dropdown","../../../../../../../../external/@bingads-webui/uiblocker","../webpack-src:/card-panel/src/view/empty-card.es","../webpack-src:/card-panel/src/viewmodel/card-holder.es","../webpack-src:/card-panel/src/template/card-holder.pug","../webpack-src:/card-panel/src/view/layouts.es","../webpack-src:/card-panel/src/view/resize-detector.es","../webpack-src:/card-panel/src/view/drag-and-drop.es","../../../../../../../../external/@bingads-webui/kendo/kendo.sortable","../webpack-src:/card-panel/src/template/card-panel.pug","../../../../../../../../external/jquery","../../../../../../../../external/knockout","../../../../../../../../external/underscore","../../../../../../../../external/backbone","../webpack-src:/clientcenter-customer-service/index.js","../webpack-src:/clientcenter-customer-service/src/index.es","../../../../../../../../external/bluebird","../../../../../../../../external/react","../../../../../../../../external/react-dom","../webpack-src:/column-chooser-editable-picker/index.js","../webpack-src:/column-chooser-editable-picker/src/view.es","../webpack-src:/column-chooser-editable-picker/src/template.pug","../webpack-src:/column-chooser-editable-picker/src/invliad-option-with-tooltip.js","../../../../../../../../external/prop-types","../../../../../../../../external/@bingads-webui-react/fabric-control","../../../../../../../../external/@bingads-webui/deterministic-wrapper-view","../../../../../../../../external/@bingads-webui/deterministic-view","../../../../../../../../external/@bingads-webui/keycode","../webpack-src:/column-chooser/index.js","../webpack-src:/column-chooser/src/column-chooser/column-chooser.es","../../../../../../../../external/@bingads-webui/draggable-list","../webpack-src:/column-chooser/src/column-chooser/column-chooser-template.pug","../webpack-src:/column-chooser/src/column-chooser/column-chooser-template-simplified.pug","../webpack-src:/column-chooser/src/column-chooser/column-chooser-template-split.pug","../webpack-src:/column-chooser/src/column-chooser/column-chooser-template-simplified-split.pug","../webpack-src:/column-chooser/src/category-tabs/category-tabs.es","../webpack-src:/column-chooser/src/category-tabs/category-tabs-template.pug","../webpack-src:/column-chooser/src/option-list/options-view/options-view.es","../webpack-src:/column-chooser/src/option-list/options-view/options-view-template.pug","../webpack-src:/column-chooser/src/option-list/default-picker/default-picker.es","../../../../../../../../external/@bingads-webui/restore-scroll-bar","../webpack-src:/column-chooser/src/option-list/default-picker/default-picker-template.pug","../webpack-src:/column-chooser/src/selected-list-item/selected-list-item.es","../webpack-src:/column-chooser/src/selected-list-item/selected-list-item-template.pug","../webpack-src:/column-chooser/src/save-column/save-column.es","../webpack-src:/column-chooser/src/save-column/save-column-template.pug","../webpack/universalModuleDefinition","../../../../../../../../external/@bingads-webui/listener","../webpack-src:/console-listener/index.js","../webpack-src:/console-listener/src/index.es","../../../../../../../../external/underscore.string"],"sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 145);\n","module.exports = __WEBPACK_EXTERNAL_MODULE__13__;","export { CardPanel } from './src/view/card-panel';\r\n","import _ from 'underscore';\r\nimport Backbone from 'backbone';\r\n\r\nimport { CardHolder } from './card-holder';\r\nimport { Layouts } from './layouts';\r\nimport { setupDragAndDrop, clearDragAndDrop } from './drag-and-drop';\r\nimport template from '../template/card-panel.pug';\r\n\r\n/* private functions always bind to CardPanel instance */\r\nfunction isValidCardId(id) {\r\n return _.has(this.cards, id);\r\n}\r\n\r\nfunction initCardView(cardAttr) {\r\n const attr = _.extend({}, cardAttr);\r\n\r\n _.defaults(attr, {\r\n title: '',\r\n showToolbar: true,\r\n content: null,\r\n preDefinedMenuItems: [],\r\n helpIconAttr: {},\r\n });\r\n\r\n const holderView = new CardHolder({\r\n view: this,\r\n i18n: this.i18n,\r\n showToolbar: attr.showToolbar,\r\n title: attr.title,\r\n enableDragAndDrop: this.config.dragAndDrop,\r\n content: attr.content,\r\n sizeOption: attr.sizeOption,\r\n preDefinedMenuItems: attr.preDefinedMenuItems,\r\n helpIconAttr: attr.helpIconAttr,\r\n showMenuIcon: attr.showMenuIcon,\r\n });\r\n\r\n holderView.on('toolbar-action', (e) => {\r\n // Now handle pre-defined events the card-panel cares, customized items\r\n // won't reach here.\r\n if (e.action === 'delete-requested') {\r\n // Note: no need to notify the card content, we will call into card.content.remove() anyway.\r\n this.delete(holderView.id);\r\n } else if (e.action === 'resize-requested') {\r\n // Note: layouts will eventually call holderView.updateState() to pass the size info back.\r\n this.layouts.resizeHolder(holderView, e.args);\r\n } else if (e.action === 'add-requested') {\r\n // Note: forward the event to the user of card panel to handle add/remove card experience.\r\n /**\r\n * Add card request from toolbar or menu.\r\n *\r\n * When user clicks 'add' toolbar menu, the caller receives this event.\r\n *\r\n * @event CardPanel#add-requested\r\n * @type {void}\r\n */\r\n this.trigger('add-requested', { id: holderView.id });\r\n }\r\n }, this);\r\n\r\n return holderView;\r\n}\r\n\r\nfunction renderCard(id, insertBeforeId) {\r\n this.cards[id].render();\r\n this.layouts.layoutHolder(this.cards[id], 'render');\r\n if (insertBeforeId) {\r\n const insertBeforeCard = this.cards[insertBeforeId];\r\n if (insertBeforeCard) {\r\n const { $el } = insertBeforeCard;\r\n this.cards[id].$el.insertBefore($el);\r\n } else {\r\n throw new Error('Invalid card id to insert before it');\r\n }\r\n } else {\r\n this.$cardContainer.append(this.cards[id].el);\r\n }\r\n\r\n if (this.attachedToDocument) {\r\n this.cards[id].trigger('attached');\r\n }\r\n}\r\n\r\nfunction relayout() {\r\n this.layouts.relayout();\r\n}\r\n\r\n// Note:\r\n// 1. panel resize behavior is not locked down yet.\r\n// 2. card size property is not locked down yet.\r\n// 3. card resize support is not decided yet.\r\n\r\n/**\r\n * @class CardPanel\r\n * @classdesc\r\n * The View for rendering all the cards. This view manages the layout of the cards as\r\n * well as handling reorder request of the cards.\r\n *\r\n * This view will trigger below events. See detailed event properties from functions\r\n * where they are fired.\r\n *\r\n * @fires CardPanel#card-added\r\n * @fires CardPanel#card-deleted\r\n * @fires CardPanel#card-orderchanged\r\n * @fires CardPanel#card-resized\r\n * @fires CardPanel#add-requested\r\n *\r\n * @extends Backbone.View\r\n */\r\nexport class CardPanel extends Backbone.View {\r\n /**\r\n * Initialize the CardPanel object with options parameters\r\n *\r\n * @param {Object} options - Caller supplied creation options, see below for details\r\n * @param {Object} options.config - Options to control CardPanel's config\r\n * @param {Boolean} options.config.dragAndDrop - All user to reorder cards with Drag and Drop\r\n * @param {String} [options.config.dragHintSelector] - Use which element as hint while dragging\r\n * @param {Boolean} [options.config.dragHandlerSelector] - Use which element for dragging\r\n * @param {Object} options.i18n - Object contains getString function for i18n\r\n * @param {Object} [options.layoutOptions] - Object to describe the layout attribute\r\n *\r\n * @returns {void} no return value\r\n *\r\n * @example\r\n * // Create a CardPanel which has layout options and doesn't allow Drag and Drop reorder cards\r\n *\r\n * new CardPanel({\r\n * config: {\r\n * dragAndDrop: false,\r\n * },\r\n * i18n: {\r\n * getString: _.identity,\r\n * },\r\n * layoutOptions: {\r\n * small: {\r\n * // A key name for a container size\r\n * breakpoint: 0,\r\n * // When container size is bigger than break point, this key name is used.\r\n * minCardSize: 6,\r\n * // Minimum allowed card size (in column), the container is divided into 12 columns.\r\n * maxCardSize: 12,\r\n * // Maximum allowed card size (in column).\r\n * defaultHeight: 400,\r\n * // Default card height (in pixel).\r\n * },\r\n * medium: {\r\n * breakpoint: 768,\r\n * minCardSize: 4,\r\n * maxCardSize: 12,\r\n * defaultHeight: 400,\r\n * },\r\n * large: {\r\n * breakpoint: 1200,\r\n * minCardSize: 3,\r\n * maxCardSize: 6,\r\n * defaultHeight: 400,\r\n * },\r\n * },\r\n * });\r\n *\r\n */\r\n initialize({\r\n config: {\r\n dragAndDrop = true,\r\n dragHintSelector = null,\r\n dragHandlerSelector = null,\r\n debug = false,\r\n } = {},\r\n i18n = {\r\n getString: _.identity,\r\n },\r\n layoutOptions = {},\r\n initialWidth,\r\n } = {}) {\r\n this.config = { dragAndDrop, debug };\r\n this.i18n = i18n;\r\n\r\n if (this.config.dragAndDrop) {\r\n this.config.dragHintSelector = dragHintSelector || '.card-holder__wrapper';\r\n this.config.dragHandlerSelector = dragHandlerSelector || '.card-holder__toolbar, .card-holder__title';\r\n }\r\n\r\n this.layouts = new Layouts({\r\n view: this,\r\n options: layoutOptions,\r\n initialWidth,\r\n });\r\n\r\n // Raise the size changed info to caller for saving user preference\r\n this.layouts.on('holderview-resized', (sizeInfo) => {\r\n /**\r\n * Card resized event.\r\n *\r\n * @event CardPanel#card-resized\r\n * @type {Object}\r\n * @property {String} id - The ID of the card\r\n * @property {String} key - The current container size key name\r\n * @property {Number} width - The new width of the card, in column\r\n */\r\n _.defer(() => {\r\n this.trigger('card-resized', sizeInfo);\r\n });\r\n }, this);\r\n\r\n // cards objects is an associative array (object), card ID as key.\r\n this.cards = {};\r\n\r\n this.on('attached', () => {\r\n this.attachedToDocument = true;\r\n _.each(this.cards, (card) => {\r\n card.trigger('attached');\r\n });\r\n });\r\n\r\n // Create renderOnce function handle to be used in render()\r\n this.renderOnce = _.once(() => {\r\n this.$el.html(template());\r\n if (this.$cardContainer.length === 0) {\r\n throw new Error('No container element from CardPanel template');\r\n }\r\n\r\n // Initialize Drag-And-Drop support.\r\n if (this.config.dragAndDrop) {\r\n this.dropCallback = (function DropCallback() {\r\n /**\r\n * Card order changed event.\r\n *\r\n * When order is changed, caller can get the new order from this.cardsOrder\r\n *\r\n * @event CardPanel#card-orderchanged\r\n * @type {void}\r\n */\r\n\r\n this.trigger('card-orderchanged');\r\n }).bind(this);\r\n\r\n this.setupDragAndDrop();\r\n }\r\n\r\n // Initial layout call\r\n relayout.call(this);\r\n });\r\n }\r\n\r\n /**\r\n * Render the card panel, as well as setup bindings\r\n *\r\n * @returns {Backbone.View} The view represent the card panel.\r\n */\r\n render() {\r\n this.renderOnce();\r\n return this;\r\n }\r\n\r\n /**\r\n * Callback function called when custom toolbar menu item is activated.\r\n *\r\n * @callback MenuCallback\r\n * @param {String} event - The name of the event defined by the custom toolbar item.\r\n */\r\n\r\n /**\r\n * Add a new card or an array of cards to the card panel using the card attribute passed in.\r\n *\r\n * @param {(Object|Object[])} attrs - The attribute or attribute array of a card or cards.\r\n * @param {Boolean} attr.showToolbar - Do not show toolbar if false, default is true.\r\n * @param {String} attrs.title - The title of the card. Caller supplies the localization.\r\n * @param {Object} attrs.content - The Backbone.View representing the content of the card.\r\n * @param {Object} [attrs.sizeOption] - The size option for the card.\r\n * @param {String[]} [attrs.preDefinedMenuItems] - The list of pre-defined menu items.\r\n * @param {Object} [options={}}] - Options.\r\n * @param {Boolean} [options.silent] - Do not trigger event if true.\r\n * @param {String} [options.insertBefore] - The unique id of card to add before it.\r\n *\r\n * @returns {string[]} The unique ids of the newly added cards\r\n * @fires CardPanel#card-added\r\n *\r\n * @example\r\n * // Add a card with custom toolbar menu items and size option\r\n *\r\n * const CardContent = Backbone.View.extend({\r\n * updateState: function(e) {\r\n * // Handle state change\r\n * // - when the card is resized by the CardPanel, this function will be called with\r\n * // the parameter containing the new size information and the reason of resize.\r\n * // {\r\n * // size: {\r\n * // key, // This is the current screen key\r\n * // },\r\n * // reason, // This is the reason of the resize, possible values are:\r\n * // // 'relayout':\r\n * // // initial layout by the CardPanel\r\n * // // 'increase', 'decrease', 'minimum', 'maximum', 'intermediate':\r\n * // // resize requests triggered from menu.\r\n * },\r\n * onMenuAction: function(e) {\r\n * if (e === 'menu-item-1-clicked') {\r\n * // Handle the menu click event\r\n * }\r\n * },\r\n * // Custom toolbar menu items supplied by the card is optional. It should be an array.\r\n * // Each item can have below properties:\r\n * // name - The name of the menu item.\r\n * // action - The name of the event being raised.\r\n * // class - The css style of the menu item.\r\n * // displayText - The localized text of the menu item.\r\n * // preset - Pre-selected item if this is true.\r\n * menuItems: [\r\n * {\r\n * name: 'MenuItem_1',\r\n * displayText: i18n.getString('MenuItem_1_Text'),\r\n * action: 'menu-item-1-clicked',\r\n * },\r\n * {\r\n * name: 'Menuitem_2',\r\n * displayText: i18n.getString('MenuItem_2_Text'),\r\n * action: 'menu-item-2-clicked',\r\n * preset: true,\r\n * },\r\n * ],\r\n * });\r\n *\r\n * const ids = view.add([{\r\n * title: 'card title',\r\n * content: new CardContent(),\r\n * preDefinedMenuItem: [ 'Close' ], // Pre-defined menu items\r\n * sizeOption: {\r\n * resizeAllLayouts: true, // If this is specified as true, when user trigger resize\r\n * // on the card, the new size target will be applied to all\r\n * // size of layouts.\r\n * medium: {\r\n * width: 6,\r\n * supportedWidth: [4, 6, 12],\r\n * },\r\n * },\r\n * }]);\r\n *\r\n */\r\n add(attrs, options = { silent: false, insertBefore: null }) {\r\n const attrsToAdd = _.isArray(attrs) ? attrs : [attrs];\r\n\r\n const ids = _.map(attrsToAdd, (attr) => {\r\n const holderView = initCardView.call(this, {\r\n showToolbar: attr.showToolbar,\r\n title: attr.title || '',\r\n content: attr.content || null,\r\n sizeOption: attr.sizeOption,\r\n preDefinedMenuItems: attr.preDefinedMenuItems,\r\n helpIconAttr: attr.helpIconAttr,\r\n showMenuIcon: attr.showMenuIcon,\r\n });\r\n\r\n const { id } = holderView;\r\n\r\n this.cards[id] = holderView;\r\n renderCard.call(this, id, options.insertBefore);\r\n\r\n return id;\r\n }, this);\r\n\r\n if (!options.silent) {\r\n /**\r\n * Card added event.\r\n *\r\n * @event CardPanel#card-added\r\n * @type {Object}\r\n * @property {Array} ids - The IDs array of the newly added card\r\n */\r\n _.defer(() => {\r\n this.trigger('card-added', {\r\n ids,\r\n });\r\n });\r\n }\r\n\r\n return ids;\r\n }\r\n\r\n /**\r\n * Delete a specific card or an array of cards from the card panel.\r\n *\r\n * @param {(string|string[])} ids - The unique card id or an array of ids, which is returned from\r\n * add() when the card was intially added.\r\n *\r\n * @returns {void} no return value.\r\n * @fires CardPanel#card-deleted\r\n */\r\n delete(ids) {\r\n const idsToDelete = _.isArray(ids) ? ids : [ids];\r\n\r\n const idsDeleted = [];\r\n\r\n _.each(idsToDelete, (id) => {\r\n if (isValidCardId.call(this, id)) {\r\n // Call the CardHolder to remove its view\r\n this.cards[id].remove();\r\n delete this.cards[id];\r\n\r\n // Trigger a relayout\r\n relayout.call(this);\r\n\r\n idsDeleted.push(id);\r\n }\r\n }, this);\r\n\r\n /**\r\n * Card deleted event.\r\n *\r\n * @event CardPanel#card-deleted\r\n * @type {Object}\r\n * @property {Array} ids - The IDs array of the cards being deleted\r\n */\r\n _.defer(() => {\r\n this.trigger('card-deleted', {\r\n ids: idsDeleted,\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * Update content of card with new content.\r\n * @param {String} id - The unique card id.\r\n * @param {Object} content - The Backbone.View representing the new content of the card.\r\n * @returns {void} no return value.\r\n */\r\n updateContent(id, content) {\r\n if (!isValidCardId.call(this, id)) {\r\n return;\r\n }\r\n\r\n this.cards[id].updateContent(content);\r\n }\r\n\r\n /**\r\n * Update pre-defined menu items.\r\n * @param {String} id - The unique card id.\r\n * @param {String[]} preDefinedMenuItems - The list of pre-defined menu items.\r\n * @returns {void} no return value.\r\n */\r\n updatePreDefinedMenuItems(id, preDefinedMenuItems) {\r\n this.cards[id].updatePreDefinedMenuItems(preDefinedMenuItems);\r\n }\r\n\r\n /**\r\n * Override the remove method on the view to do cleanup.\r\n *\r\n * @returns {void} no return value.\r\n */\r\n remove() {\r\n // Clean up each of the card holder view.\r\n _.each(this.cards, (card, id) => {\r\n card.remove();\r\n delete this.cards[id];\r\n }, this);\r\n\r\n if (this.config.dragAndDrop) {\r\n this.clearDragAndDrop();\r\n }\r\n super.remove();\r\n }\r\n\r\n /**\r\n * Clear drag and drop\r\n *\r\n * @returns {void} no return value.\r\n */\r\n clearDragAndDrop() {\r\n clearDragAndDrop(this.$cardContainer);\r\n }\r\n\r\n /**\r\n * Setup drag and drop\r\n *\r\n * @returns {void} no return value.\r\n */\r\n setupDragAndDrop() {\r\n setupDragAndDrop(this.$cardContainer, this.dropCallback, this.config.dragHintSelector, {\r\n handler: this.config.dragHandlerSelector,\r\n ignore: '.card-holder__content *',\r\n });\r\n }\r\n\r\n /**\r\n * Return the default class of the card panel.\r\n *\r\n * @returns {String} the class name.\r\n */\r\n get className() {\r\n return 'card-panel';\r\n }\r\n\r\n /**\r\n * Return the jQuery object of the card container element\r\n *\r\n * @returns {Object} the jQuery wrapper of the card container element.\r\n */\r\n get $cardContainer() {\r\n return this.$('.card-panel__card-container');\r\n }\r\n\r\n /**\r\n * Return the current order information of all the cards.\r\n *\r\n * @returns {Array} the list of IDs of all the cards. The index of each of the ID implies the\r\n * order the card is put in the panel.\r\n */\r\n get cardsOrder() {\r\n return _.map(this.$cardContainer.find(CardHolder.selector), holder => holder.dataset.id);\r\n }\r\n\r\n // P2: optional API, also could be a set property.\r\n /**\r\n * Reorder all the cards using the new order.\r\n *\r\n * @param {Array} newOrder - A list of IDs of all the cards. The index of each of the ID\r\n * represents the new position of the corresponding card.\r\n *\r\n * @returns {void}\r\n */\r\n /*\r\n reorder(newOrder = []) {\r\n }\r\n */\r\n}\r\n\r\n","import _ from 'underscore';\r\nimport $ from 'jquery';\r\nimport ko from 'knockout';\r\nimport Backbone from 'backbone';\r\n\r\nimport { MultilevelDropdown } from '@bingads-webui/multilevel-dropdown';\r\nimport { withUiBlock } from '@bingads-webui/uiblocker';\r\n\r\nimport { EmptyCard } from './empty-card';\r\nimport { CardHolderViewModel } from '../viewmodel/card-holder';\r\nimport template from '../template/card-holder.pug';\r\n\r\nlet builtInMenuItemsConfig;\r\n\r\nfunction allowIncreaseSize(sizeOption, key, width) {\r\n let result = false;\r\n\r\n if (sizeOption && _.has(sizeOption, key)) {\r\n const option = sizeOption[key];\r\n result = (_.isArray(option.supportedWidth)\r\n && !_.isEmpty(option.supportedWidth)\r\n && width < _.max(option.supportedWidth));\r\n }\r\n\r\n return result;\r\n}\r\n\r\nfunction allowDecreaseSize(sizeOption, key, width) {\r\n let result = false;\r\n\r\n if (sizeOption && _.has(sizeOption, key)) {\r\n const option = sizeOption[key];\r\n result = (_.isArray(option.supportedWidth)\r\n && !_.isEmpty(option.supportedWidth)\r\n && width > _.min(option.supportedWidth));\r\n }\r\n\r\n return result;\r\n}\r\n\r\nfunction matchSizeSelected(sizeOption, key, width, name) {\r\n let result = false;\r\n const option = sizeOption[key];\r\n\r\n if (name === 'SmallSize') {\r\n result = option && (width <= _.min(option.supportedWidth));\r\n }\r\n\r\n if (name === 'LargeSize') {\r\n result = option && option.supportedWidth.length >= 2 && width >= _.max(option.supportedWidth);\r\n }\r\n\r\n if (name === 'MediumSize') {\r\n result = option &&\r\n option.supportedWidth.length >= 3 &&\r\n width > _.min(option.supportedWidth) &&\r\n width < _.max(option.supportedWidth);\r\n }\r\n\r\n return result;\r\n}\r\n\r\nfunction constructDropDownMenuData(menuItems) {\r\n const items = menuItems;\r\n let preset = null;\r\n\r\n // whenever we construct the dropdown menu, we contruct it as a whole\r\n let numValue = new Date().getUTCMilliseconds();\r\n\r\n _.each(items, (item) => {\r\n _.extend(item, {\r\n menuData: {\r\n children: null,\r\n text: item.displayText,\r\n divider: item.name === 'Divider',\r\n disabled: item.disabled,\r\n value: numValue,\r\n },\r\n });\r\n\r\n if (item.preset && item.preset === true) {\r\n preset = numValue;\r\n }\r\n\r\n numValue += 1;\r\n });\r\n\r\n return {\r\n data: _.pluck(items, 'menuData'),\r\n preset,\r\n };\r\n}\r\n\r\nfunction getMenuItemByData(menuItems, data) {\r\n return _.find(menuItems, item => item.menuData.value === data);\r\n}\r\n\r\nfunction updateCustomMenuItems({\r\n value,\r\n options,\r\n}) {\r\n // Custom menu items might change\r\n if ((options && options.replace) || !_.isArray(value)) {\r\n if (this.customMenuView) {\r\n this.customMenuView.remove();\r\n this.customMenuView = null;\r\n }\r\n\r\n this.customMenuItems = value || [];\r\n this.setupCustomMenuView();\r\n\r\n if (this.customMenuView) {\r\n this.customMenuView.render();\r\n this.$('.card-holder__custom-menu').append(this.customMenuView.el);\r\n }\r\n } else if (this.customMenuView) {\r\n this.updateCustomMenuView(value);\r\n }\r\n}\r\n\r\nfunction setupContentEvents() {\r\n this.content.on('change:menuItems', updateCustomMenuItems.bind(this));\r\n\r\n this.content.on('updateTitle', (newTitle) => {\r\n this.viewModel.title(newTitle);\r\n this.viewModel.moreOptionsLabel(this.i18n.getString('More options for {{item}}', { item: newTitle }));\r\n });\r\n}\r\n\r\nfunction refreshPreDefinedMenuItems(preDefinedMenuItems, key, width) {\r\n this.preDefinedMenuItems = this.buildMenuItems(preDefinedMenuItems, key, width);\r\n this.viewModel.preDefinedMenuItems.removeAll();\r\n this.viewModel.updatePreDefinedMenuItems(this.preDefinedMenuItems);\r\n // rebind the menu items events\r\n this.rebindPreDefinedMenuItemEvents();\r\n}\r\n\r\n/**\r\n * @ignore\r\n * @class\r\n *\r\n * @classdesc The CardHolder class to act as a container of the card content.\r\n *\r\n * @fires CardHolder#toolbar-action\r\n *\r\n * @extends Backbone.View\r\n *\r\n */\r\nexport class CardHolder extends Backbone.View {\r\n /**\r\n * Initialize the CardHolder\r\n *\r\n * @param {Object} options - Creation options\r\n * @param {Object} options.i18n - Localization provider\r\n * @param {String} options.title - The title of the card\r\n * @param {Object} options.content - The view object of the card content\r\n * @param {Object} [options.sizeOption] - An option object describe how this card should be sized.\r\n * @param {String[]} [options.preDefinedMenuItems] - A list of pre-defined menu items should be\r\n * on toolbar.\r\n * See CardHolder.builtInMenuItemsConfig() for all pre-defined menu items.\r\n * @param {Object} options.helpIconAttr - An object that containes attributes used by help icon\r\n *\r\n * @returns {void} no return value\r\n *\r\n * @fires CardHolderView#toolbar-action\r\n *\r\n * @example\r\n *\r\n * // Example of card size option, the key names are defined by CardPanel. width is the default\r\n * // width of the card, supportedWidth list all possible width supported by the card\r\n * const sizeOption = {\r\n * small: {\r\n * width: 12,\r\n * supportedWidth: [3, 4, 6, 12],\r\n * },\r\n * medium: {\r\n * width: 12,\r\n * supportedWidth: [3, 4, 6, 12],\r\n * },\r\n * large: {\r\n * width: 12,\r\n * supportedWidth: [3, 4, 6, 12],\r\n * },\r\n * };\r\n *\r\n * // Example of preDefinedMenuItems option.\r\n * const preDefinedMenuItems = [\r\n * 'Close',\r\n * 'Divider',\r\n * 'Enlarge',\r\n * 'Shrink',\r\n * 'Divider',\r\n * 'Help',\r\n * ];\r\n */\r\n initialize({\r\n i18n,\r\n showToolbar,\r\n title,\r\n content,\r\n sizeOption = {},\r\n preDefinedMenuItems,\r\n helpIconAttr,\r\n showMenuIcon,\r\n }) {\r\n this.i18n = i18n;\r\n this.id = _.uniqueId('CardHolder-');\r\n this.isPlaceHolderContent = !content;\r\n this.content = content || new EmptyCard({ title });\r\n this.sizeOption = sizeOption;\r\n this.preDefinedMenuItems = this.buildMenuItems(preDefinedMenuItems);\r\n this.currentLayout = {};\r\n this.customMenuItems = this.content.menuItems || [];\r\n this.setupCustomMenuView();\r\n setupContentEvents.call(this);\r\n\r\n // Dynamically setup events for menu items\r\n this.staticEvents = _.extend(this.events || {});\r\n\r\n // Note: Backbone.View internally will call delegateEvents() during constructor.\r\n // At that time only the static events will be set up. While in this view, we\r\n // will need to dynamically set up the menu items. The updated menu items will\r\n // need new events setting. In order to make the dynamically created events to\r\n // work, we need to explicitly call delegateEvents() after this.events is updated.\r\n this.rebindPreDefinedMenuItemEvents();\r\n\r\n this.viewModel = new CardHolderViewModel({\r\n i18n,\r\n id: this.id,\r\n showToolbar,\r\n title,\r\n preDefinedMenuItems: this.preDefinedMenuItems,\r\n helpIconAttr,\r\n showMenuIcon,\r\n });\r\n\r\n this.on('attached', () => {\r\n this.content.trigger('attached');\r\n if (this.isPlaceHolderContent) {\r\n if ($.contains(document.documentElement, _.first(this.getContentContainer()))) {\r\n this.unblock = withUiBlock(this.getContentContainer(), this.i18n.getString('Loading'));\r\n }\r\n }\r\n });\r\n }\r\n\r\n getContentContainer() {\r\n return this.$('.card-holder__content');\r\n }\r\n\r\n setupCustomMenuView() {\r\n if (_.isArray(this.customMenuItems)) {\r\n if (this.customMenuItems.length !== 0) {\r\n const { data, preset } = constructDropDownMenuData(this.customMenuItems);\r\n\r\n this.customMenuView = new MultilevelDropdown({\r\n data,\r\n preset,\r\n attributes: {\r\n id: `custom-menu-${this.id}`,\r\n },\r\n });\r\n\r\n this.customMenuView.on('selected', this.onCustomMenuSelected, this);\r\n }\r\n } else if (_.isObject(this.customMenuItems)) {\r\n this.customMenuView = this.customMenuItems;\r\n }\r\n }\r\n\r\n updateCustomMenuView(items) {\r\n _.each(items, (item) => {\r\n // Find the menu item\r\n const menuItem = _.find(this.customMenuItems, t => t.name === item.name);\r\n if (menuItem) {\r\n _.extend(menuItem.menuData, {\r\n text: item.displayText,\r\n divider: item.name === 'Divider',\r\n disabled: item.disabled,\r\n });\r\n\r\n // Update the new data to multi-level dropdown menu component\r\n this.customMenuView.update(menuItem.menuData.value, menuItem.menuData);\r\n }\r\n }, this);\r\n }\r\n\r\n onCustomMenuSelected(event) {\r\n // Translate and forward the event to card\r\n const menuItem = getMenuItemByData(this.customMenuItems, event.value);\r\n\r\n if (menuItem) {\r\n this.content.onMenuAction(menuItem.action);\r\n }\r\n }\r\n\r\n buildMenuItems(names, key, width) {\r\n const menuItems = [];\r\n const menuItemConfig = this.getBuiltInMenuItemsConfig();\r\n\r\n // Note: for now we update the menu items as a whole. We can change this to\r\n // update individual menu item's properties in the future\r\n _.each(names, (name) => {\r\n const item = menuItemConfig[name];\r\n\r\n let disabled = false;\r\n let selected = false;\r\n\r\n // Disable items based on the screen size and card size.\r\n if (key && width) {\r\n if (name === 'Enlarge') {\r\n disabled = !allowIncreaseSize(this.sizeOption, key, width);\r\n }\r\n\r\n if (name === 'Shrink') {\r\n disabled = !allowDecreaseSize(this.sizeOption, key, width);\r\n }\r\n\r\n if (name === 'SmallSize' || name === 'LargeSize') {\r\n disabled = !(_.has(this.sizeOption, key)\r\n && this.sizeOption[key].supportedWidth.length >= 2);\r\n }\r\n\r\n if (name === 'MediumSize') {\r\n disabled = !(_.has(this.sizeOption, key)\r\n && this.sizeOption[key].supportedWidth.length >= 3);\r\n }\r\n\r\n selected = matchSizeSelected(this.sizeOption, key, width, name);\r\n }\r\n\r\n menuItems.push(_.extend({}, item, {\r\n id: _.uniqueId(`${item.name}-`),\r\n disabled,\r\n selected,\r\n }));\r\n }, this);\r\n\r\n return menuItems;\r\n }\r\n\r\n updateState({\r\n layout = {},\r\n size = {},\r\n reason = '',\r\n } = {}) {\r\n // Layout changed, update menu items from view model.\r\n if (!_.isEmpty(layout)) {\r\n this.currentLayout = layout;\r\n const { key, width } = layout;\r\n refreshPreDefinedMenuItems.call(this, _.pluck(this.preDefinedMenuItems, 'name'), key, width);\r\n }\r\n\r\n // Size changed, dispatch the state to the card content\r\n if (!_.isEmpty(size)) {\r\n this.content.updateState({\r\n size,\r\n reason,\r\n });\r\n }\r\n }\r\n\r\n rebindPreDefinedMenuItemEvents() {\r\n this.events = _.extend(this.staticEvents, this.getDynamicEventsForPreDefinedMenuItems());\r\n this.delegateEvents();\r\n }\r\n\r\n getDynamicEventsForPreDefinedMenuItems() {\r\n const events = {};\r\n\r\n _.each(this.preDefinedMenuItems || [], (menuItem) => {\r\n const eventSelector = `click .card-holder__menu-item[data-id=${menuItem.id}]`;\r\n\r\n events[eventSelector] = () => {\r\n if (menuItem.name === 'Help') {\r\n // Help item as a special item will be handled by individual card\r\n this.content.updateState({\r\n requestingHelp: true,\r\n });\r\n } else {\r\n // Built in toolbar items, bubble the event up to the card panel\r\n this.trigger('toolbar-action', {\r\n action: menuItem.action,\r\n args: menuItem.args,\r\n });\r\n }\r\n };\r\n }, this);\r\n\r\n return events;\r\n }\r\n\r\n /**\r\n * Render the card holder, also invoke the content for render.\r\n *\r\n * @returns {Object} - the view of this class\r\n */\r\n render() {\r\n this.$el.html(template({ i18n: this.i18n }));\r\n\r\n this.el.dataset.id = this.id;\r\n ko.applyBindings(this.viewModel, this.el);\r\n\r\n // Render the card content\r\n this.content.render();\r\n this.$('.card-holder__content').append(this.content.el);\r\n\r\n // Render the toolbar items - custom dropdown menu\r\n if (this.customMenuView) {\r\n this.customMenuView.render();\r\n this.$('.card-holder__custom-menu').append(this.customMenuView.el);\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Override of remove method on the view\r\n *\r\n * Call the remove callback function of the card content before remove the card holder.\r\n *\r\n * @returns {void}\r\n */\r\n remove() {\r\n this.content.remove();\r\n\r\n if (this.customMenuView) {\r\n this.customMenuView.remove();\r\n }\r\n\r\n if (this.unblock) {\r\n this.unblock();\r\n }\r\n\r\n super.remove();\r\n }\r\n\r\n /**\r\n * Replace existing content with new content\r\n *\r\n * @param {Object} content - The Backbone.View representing the new content of the card.\r\n *\r\n * @returns {void}\r\n */\r\n updateContent(content) {\r\n this.isPlaceHolderContent = false;\r\n this.content.remove();\r\n this.content = content;\r\n // Let the content handle ui blocker.\r\n if (!this.content.unblock) {\r\n this.content.unblock = this.unblock;\r\n } else if (this.unblock) {\r\n this.unblock();\r\n }\r\n\r\n setupContentEvents.call(this);\r\n this.content.trigger('attached');\r\n updateCustomMenuItems.call(this, {\r\n value: this.content.menuItems || [],\r\n options: { replace: true },\r\n });\r\n this.$('.card-holder__content').append(this.content.el);\r\n }\r\n\r\n /**\r\n * Update pre-defined menu items.\r\n * @param {String[]} preDefinedMenuItems - The list of pre-defined menu items.\r\n * @returns {void} no return value.\r\n */\r\n updatePreDefinedMenuItems(preDefinedMenuItems) {\r\n const { key, width } = this.currentLayout;\r\n refreshPreDefinedMenuItems.call(this, preDefinedMenuItems, key, width);\r\n }\r\n\r\n setWidth(width) {\r\n this.$el.css('width', width);\r\n }\r\n\r\n setHeight(height) {\r\n this.$('.card-holder__wrapper').css('height', height);\r\n }\r\n\r\n /**\r\n * Class selector of the card holders.\r\n *\r\n * @returns {String} - the class name selector for card holder\r\n */\r\n static get selector() {\r\n return '.card-holder';\r\n }\r\n\r\n /**\r\n * Default class name for this view.\r\n *\r\n * @returns {String} - the default class name\r\n */\r\n get className() {\r\n return 'card-holder';\r\n }\r\n\r\n getBuiltInMenuItemsConfig() {\r\n if (builtInMenuItemsConfig) {\r\n return builtInMenuItemsConfig;\r\n }\r\n\r\n builtInMenuItemsConfig = {\r\n Divider: {\r\n name: 'Divider',\r\n class: 'card-holder__menu-divider',\r\n displayText: '',\r\n },\r\n Close: {\r\n name: 'Close',\r\n class: 'card-holder__menu-close',\r\n displayText: this.i18n.getString('CardHolder_Toolbar_Close'),\r\n action: 'delete-requested',\r\n },\r\n Add: {\r\n name: 'Add',\r\n class: 'card-holder__menu-add',\r\n displayText: this.i18n.getString('CardHolder_Toolbar_Add'),\r\n action: 'add-requested',\r\n },\r\n Refresh: {\r\n name: 'Refresh',\r\n class: 'card-holder__menu-refresh',\r\n displayText: this.i18n.getString('CardHolder_Toolbar_Refresh'),\r\n action: 'refresh-requested',\r\n },\r\n Hide: {\r\n name: 'Hide',\r\n class: 'card-holder__menu-hide',\r\n displayText: this.i18n.getString('CardHolder_Toolbar_Hide'),\r\n action: 'hide-requested',\r\n },\r\n Help: {\r\n name: 'Help',\r\n class: 'card-holder__menu-help',\r\n displayText: this.i18n.getString('CardHolder_Toolbar_Help'),\r\n action: 'help-requested',\r\n },\r\n Enlarge: {\r\n name: 'Enlarge',\r\n class: 'card-holder__menu-enlarge',\r\n displayText: this.i18n.getString('CardHolder_Toolbar_Enlarge'),\r\n action: 'resize-requested',\r\n args: {\r\n type: 'increase',\r\n },\r\n },\r\n Shrink: {\r\n name: 'Shrink',\r\n class: 'card-holder__menu-shrink',\r\n displayText: this.i18n.getString('CardHolder_Toolbar_Shrink'),\r\n action: 'resize-requested',\r\n args: {\r\n type: 'decrease',\r\n },\r\n },\r\n SmallSize: {\r\n name: 'SmallSize',\r\n class: 'card-holder__menu-smallsize',\r\n displayText: this.i18n.getString('CardHolder_Toolbar_SmallSize'),\r\n action: 'resize-requested',\r\n args: {\r\n type: 'minimum',\r\n },\r\n },\r\n MediumSize: {\r\n name: 'MediumSize',\r\n class: 'card-holder__menu-mediumsize',\r\n displayText: this.i18n.getString('CardHolder_Toolbar_MediumSize'),\r\n action: 'resize-requested',\r\n args: {\r\n type: 'intermediate',\r\n },\r\n },\r\n LargeSize: {\r\n name: 'LargeSize',\r\n class: 'card-holder__menu-largesize',\r\n displayText: this.i18n.getString('CardHolder_Toolbar_LargeSize'),\r\n action: 'resize-requested',\r\n args: {\r\n type: 'maximum',\r\n },\r\n },\r\n };\r\n\r\n return builtInMenuItemsConfig;\r\n }\r\n}\r\n","module.exports = __WEBPACK_EXTERNAL_MODULE__149__;","module.exports = __WEBPACK_EXTERNAL_MODULE__150__;","import Backbone from 'backbone';\r\n\r\n/**\r\n * @ignore\r\n * @class\r\n *\r\n * @classdesc The place holder card\r\n *\r\n * @extends Backbone.View\r\n *\r\n */\r\nexport class EmptyCard extends Backbone.View {\r\n initialize({\r\n title,\r\n }) {\r\n this.title = title;\r\n }\r\n\r\n render() {\r\n return this;\r\n }\r\n\r\n updateState() {\r\n }\r\n}\r\n","import ko from 'knockout';\r\nimport _ from 'underscore';\r\n\r\nexport class CardHolderViewModel {\r\n /**\r\n * @ignore\r\n * @class\r\n *\r\n * @classdesc ViewModel for the CardHolder view\r\n *\r\n * @param {Object} i18n - Localization provider\r\n * @param {String} id - The ID of the card holder\r\n * @param {String} title - The title of the card\r\n * @param {Array} preDefinedMenuItems - The list of toolbar menu items specified by card panel.\r\n * @param {Object} helpIconAttr - Attributes used by help icon\r\n *\r\n * @returns {void} no return value\r\n */\r\n constructor({\r\n i18n,\r\n id,\r\n showToolbar,\r\n title,\r\n preDefinedMenuItems,\r\n helpIconAttr,\r\n showMenuIcon,\r\n }) {\r\n this.i18n = i18n;\r\n\r\n this.id = ko.observable(id);\r\n this.showToolbar = ko.observable(showToolbar);\r\n this.showMenu = ko.observable(false);\r\n this.title = ko.observable(title);\r\n this.moreOptionsLabel = ko.observable(i18n.getString('More options for {{item}}', { item: title }));\r\n this.preDefinedMenuItems = ko.observableArray(this.setAppliedClass(preDefinedMenuItems));\r\n this.helpIconAttr = helpIconAttr;\r\n this.helpIconCss = { [helpIconAttr.class]: true };\r\n this.showMenuIcon = ko.observable(showMenuIcon);\r\n }\r\n\r\n helpIconOnClick(data, event) {\r\n window.PopupController.PopupJsClick(event.target);\r\n }\r\n\r\n updatePreDefinedMenuItems(items) {\r\n this.preDefinedMenuItems(this.setAppliedClass(items));\r\n }\r\n\r\n setAppliedClass(items) {\r\n return _.each(items, (item) => {\r\n _.extend(item, {\r\n appliedClass: ko.pureComputed(() => {\r\n const disabledClass = item.disabled ? 'card-holder__menu-item--disabled' : '';\r\n const selectedClass = item.selected ? 'card-holder__menu-item--selected' : '';\r\n return `${item.class} ${disabledClass} ${selectedClass}`;\r\n }, item),\r\n });\r\n });\r\n }\r\n}\r\n","var pug = require(\"!../../../../../node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (i18n) {pug_mixins[\"toolbar\"] = pug_interp = function(){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\npug_html = pug_html + \"\\u003Cdiv class=\\\"card-holder__toolbar\\\"\\u003E\\u003Cdiv class=\\\"card-holder__icon\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Ch3 class=\\\"card-holder__title\\\" data-bind=\\\"text: $root.title\\\"\\u003E\\u003C\\u002Fh3\\u003E\\u003C!--ko if: helpIconAttr.visible--\\u003E\\u003Ca class=\\\"card-holder__help-icon\\\" data-bind=\\\"attr: { "aria-label": helpIconAttr.ariaLabel, "aria-labelledby": helpIconAttr.ariaLabelledBy, href: "javascript:void(0);", topic: helpIconAttr.topic, type: "helppopup" }, css: helpIconCss, click: helpIconOnClick\\\"\\u003E\\u003C\\u002Fa\\u003E\\u003C!--\\u002Fko--\\u003E\\u003Cdiv class=\\\"card-holder__menu-container\\\"\\u003E\\u003Cdiv class=\\\"dropdown\\\" data-bind=\\\"visible: preDefinedMenuItems().length > 0 || showMenuIcon()\\\"\\u003E\\u003Cdiv class=\\\"dropdown-container dropdown-toggle clickable legacy-dropdown-toggle\\\" data-bind=\\\"attr: { "aria-label": moreOptionsLabel }\\\" role=\\\"button\\\" aria-haspopup=\\\"true\\\" data-toggle=\\\"dropdown\\\" tabIndex=\\\"0\\\"\\u003E\\u003Cdiv class=\\\"glyphicon card-holder-toggle-icon card-holder__toggle-btn\\\"\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('CardHolder_Toolbar_Toggle')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cul class=\\\"dropdown-menu card-holder__menu\\\" role=\\\"menu\\\"\\u003E\\u003C!--ko foreach: preDefinedMenuItems--\\u003E\\u003Cli class=\\\"card-holder__menu-item\\\" data-bind=\\\"text: $data.displayText, css: $data.appliedClass, disable: $data.disabled || false, visible: $data.visible || true, attr: { 'aria-disabled': $data.disabled || false, 'data-id': $data.id, name: $data.name, 'role': $data.name==='Divider' ? 'presentation' : 'menuitem', 'tabindex': $data.name==='Divider' ? '' : '0'}\\\"\\u003E\\u003C\\u002Fli\\u003E\\u003C!--\\u002Fko--\\u003E\\u003C\\u002Ful\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"card-holder__custom-menu\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n};\npug_html = pug_html + \"\\u003Cdiv class=\\\"card-holder__wrapper\\\"\\u003E\\u003C!--ko if:showToolbar--\\u003E\";\npug_mixins[\"toolbar\"]();\npug_html = pug_html + \"\\u003C!--\\u002Fko--\\u003E\\u003Cdiv class=\\\"card-holder__content\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined));;return pug_html;};\nmodule.exports = template;","import _ from 'underscore';\r\nimport Backbone from 'backbone';\r\nimport { ResizeDetector } from './resize-detector';\r\n\r\nconst clearElement = function ($el) {\r\n $el.css('display', 'block');\r\n $el.css('float', '');\r\n $el.css('position', '');\r\n $el.css('top', '');\r\n $el.css('left', '');\r\n $el.css('bottom', '');\r\n $el.css('right', '');\r\n $el.css('margin', '');\r\n $el.css('padding', '');\r\n $el.css('min-width', '');\r\n $el.css('max-width', '');\r\n $el.css('min-height', '');\r\n};\r\n\r\n// Tuned width number for all columns\r\nconst columnWidthMap = [\r\n undefined,\r\n '8.33333333%',\r\n '16.66666667%',\r\n '25%',\r\n '33.33333333%',\r\n '41.66666667%',\r\n '50%',\r\n '58.33333333%',\r\n '66.66666667%',\r\n '75%',\r\n '83.33333333%',\r\n '91.66666667%',\r\n '100%',\r\n];\r\n\r\n// Default layout options for CardPanel\r\nconst defaultLayoutOptions = {\r\n small: {\r\n breakpoint: 0,\r\n columnNumber: 12,\r\n minCardSize: 6,\r\n maxCardSize: 12,\r\n defaultHeight: 400,\r\n },\r\n medium: {\r\n breakpoint: 768,\r\n columnNumber: 12,\r\n minCardSize: 4,\r\n maxCardSize: 12,\r\n defaultHeight: 400,\r\n },\r\n large: {\r\n breakpoint: 1200,\r\n columnNumber: 12,\r\n minCardSize: 3,\r\n maxCardSize: 6,\r\n defaultHeight: 400,\r\n },\r\n panelClass: '',\r\n containerClass: '',\r\n};\r\n\r\nfunction clapSize(candidate, min, max) {\r\n return _.min([_.max([candidate, min]), max]);\r\n}\r\n\r\nexport class Layouts {\r\n constructor({\r\n view,\r\n options,\r\n initialWidth,\r\n }) {\r\n _.extend(this, Backbone.Events); // trigger() support\r\n\r\n this.view = view;\r\n this.options = _.isEmpty(options) ? { small: {} } : options;\r\n this.defaultCardSize = {};\r\n this.initialWidth = initialWidth;\r\n\r\n _.each(this.options, (option, index) => {\r\n _.defaults(option, defaultLayoutOptions[index]);\r\n\r\n // Construct the default card size\r\n this.defaultCardSize[index] = {\r\n width: option.minCardSize,\r\n supportedWidth: [option.minCardSize],\r\n height: option.defaultHeight,\r\n };\r\n });\r\n\r\n this.breakpoints = _.pluck(this.options, 'breakpoint');\r\n this.currentScreenKey = this.getScreenSizeKey(undefined, initialWidth);\r\n this.holderWidthOverride = {};\r\n }\r\n\r\n getScreenSizeKey(width, initialContainerWidth) {\r\n let targetWidth;\r\n\r\n if (_.isUndefined(width)) {\r\n const containerWidth = this.view.$cardContainer.width() || initialContainerWidth || 0;\r\n targetWidth = _.max(_.filter(this.breakpoints, b => b <= containerWidth));\r\n } else {\r\n targetWidth = width;\r\n }\r\n\r\n return _.findKey(this.options, option => option.breakpoint === targetWidth);\r\n }\r\n\r\n onResized(size) {\r\n const newScreenKey = this.getScreenSizeKey(size);\r\n if (this.currentScreenKey !== newScreenKey) {\r\n this.currentScreenKey = newScreenKey;\r\n this.relayout();\r\n }\r\n }\r\n\r\n clearLayout() {\r\n this.view.$cardContainer.removeClass(this.options.containerClass);\r\n\r\n _.each(this.view.cards, (card) => {\r\n this.clearHolderLayout(card);\r\n });\r\n }\r\n\r\n // DOM structure from panel to card\r\n //\r\n // .card-panel => apply panelClass here, could be 'container-fluid'\r\n // .card-panel__card-container => apply containerClass here, could be 'row'\r\n // .card-holder => cards[id].$el, allpy holderClass like 'col-sm-6'\r\n // .card-holder__toolbar\r\n // .card-holder__content\r\n // .card => supplied by each card\r\n\r\n relayout() {\r\n this.clearLayout();\r\n this.view.$el.addClass(this.options.panelClass);\r\n this.view.$cardContainer.addClass(this.options.containerClass);\r\n\r\n if (!this.resizeDetector) {\r\n this.resizeDetector = new ResizeDetector({\r\n $el: this.view.$cardContainer,\r\n breakpoints: this.breakpoints,\r\n callback: this.onResized.bind(this),\r\n });\r\n }\r\n\r\n _.each(this.view.cards, card => this.layoutHolder(card, 'relayout'));\r\n }\r\n\r\n clearHolderLayout(holderView) {\r\n clearElement(holderView.$el);\r\n holderView.setWidth(columnWidthMap[this.defaultCardSize[this.currentScreenKey].width]);\r\n holderView.setHeight(columnWidthMap[this.defaultCardSize[this.currentScreenKey].height]);\r\n }\r\n\r\n layoutHolder(holderView, reason) {\r\n // Update width override\r\n const view = holderView;\r\n const allWidth = {};\r\n\r\n if (view.sizeOption) {\r\n // regulate the supported width based on the panel default\r\n _.each(view.sizeOption, (option, key) => {\r\n if (_.isObject(option)) {\r\n const sizeOption = option;\r\n\r\n if (option.supportedWidth) {\r\n sizeOption.supportedWidth = _.filter(option.supportedWidth, item =>\r\n (item >= this.options[key].minCardSize\r\n && item <= this.options[key].maxCardSize));\r\n }\r\n }\r\n });\r\n\r\n // regulate the new size\r\n const cardSize = _.extend({}, this.defaultCardSize, view.sizeOption);\r\n\r\n const width = clapSize(\r\n cardSize[this.currentScreenKey].width,\r\n this.options[this.currentScreenKey].minCardSize,\r\n this.options[this.currentScreenKey].maxCardSize\r\n );\r\n\r\n if (_.has(view.sizeOption, this.currentScreenKey)\r\n && view.sizeOption[this.currentScreenKey].width !== width) {\r\n view.sizeOption[this.currentScreenKey].width = width;\r\n }\r\n\r\n allWidth[this.currentScreenKey] = width;\r\n\r\n // Save the new width\r\n _.extend(this.holderWidthOverride[view.id], allWidth);\r\n }\r\n\r\n // Apply the width for current screen key\r\n let newWidth;\r\n\r\n if (_.has(allWidth, this.currentScreenKey)) {\r\n newWidth = allWidth[this.currentScreenKey];\r\n } else {\r\n newWidth = this.defaultCardSize[this.currentScreenKey].width;\r\n }\r\n\r\n holderView.setWidth(columnWidthMap[newWidth]);\r\n\r\n // Note: height of the card won't change after card panel is setup.\r\n holderView.setHeight(this.defaultCardSize[this.currentScreenKey].height);\r\n\r\n holderView.updateState({\r\n layout: {\r\n key: this.currentScreenKey,\r\n width: newWidth, // in column\r\n },\r\n size: {\r\n key: this.currentScreenKey,\r\n },\r\n reason,\r\n });\r\n\r\n return {\r\n key: this.currentScreenKey,\r\n width: newWidth,\r\n };\r\n }\r\n\r\n resizeHolderForScreenKey(o, key, type) {\r\n const option = o;\r\n const currentWidth = option.width;\r\n\r\n switch (type) {\r\n case 'increase': {\r\n const biggerResult = _.filter(option.supportedWidth, width => width > currentWidth);\r\n\r\n if (biggerResult.length > 0) {\r\n option.width = _.min(biggerResult);\r\n }\r\n break;\r\n }\r\n\r\n case 'decrease': {\r\n const smallerResult = _.filter(option.supportedWidth, width => width < currentWidth);\r\n\r\n if (smallerResult.length > 0) {\r\n option.width = _.max(smallerResult);\r\n }\r\n break;\r\n }\r\n\r\n case 'minimum':\r\n option.width = _.min(option.supportedWidth);\r\n break;\r\n\r\n case 'maximum':\r\n option.width = _.max(option.supportedWidth);\r\n break;\r\n\r\n case 'intermediate':\r\n if (option.supportedWidth.length >= 3) {\r\n // Only when we have more than three supported sizes, we choose one in between.\r\n option.supportedWidth.sort((a, b) => a - b);\r\n option.width = option.supportedWidth[((option.supportedWidth.length + 1) / 2) - 1];\r\n }\r\n break;\r\n\r\n default:\r\n throw new Error(`Unknown resize request type of ${type}`);\r\n }\r\n\r\n option.width = clapSize(\r\n option.width,\r\n this.options[key].minCardSize,\r\n this.options[key].maxCardSize\r\n );\r\n\r\n if (currentWidth !== option.width) {\r\n return option.width;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n resizeHolder(holderView, {\r\n type,\r\n }) {\r\n const result = {};\r\n\r\n // If user specify 'resizeAllLayouts' in the sizeOption of the card, we will resize the\r\n // card for all different layout screen keys.\r\n _.each(holderView.sizeOption, (sizeOption, key) => {\r\n if (_.isObject(sizeOption) &&\r\n (key === this.currentScreenKey || holderView.sizeOption.resizeAllLayouts)) {\r\n const ret = this.resizeHolderForScreenKey(sizeOption, key, type);\r\n\r\n // Resize for all screen key, but only re-layout for current screen key.\r\n if (!_.isNull(ret) && key === this.currentScreenKey) {\r\n result[key] = ret;\r\n }\r\n }\r\n });\r\n\r\n if (!_.isEmpty(result)) {\r\n this.clearHolderLayout(holderView);\r\n const newLayout = this.layoutHolder(holderView, type);\r\n\r\n // Pass the information back to card panel only when the layout is changed\r\n this.trigger('holderview-resized', _.extend({\r\n id: holderView.id,\r\n }, newLayout));\r\n }\r\n\r\n return result;\r\n }\r\n}\r\n","/* eslint-disable no-extra-bind */\r\nimport $ from 'jquery';\r\nimport _ from 'underscore';\r\n\r\n// Helper class to detect the width change of a container. Callback will be called if\r\n// the change is crossing the breakpoints.\r\nexport class ResizeDetector {\r\n constructor({\r\n $el,\r\n breakpoints,\r\n callback,\r\n }) {\r\n this.$el = $el;\r\n this.breakpoints = breakpoints;\r\n this.callback = callback;\r\n\r\n const detectorStyle = 'position: absolute; top: 0px; left: 0px; bottom: 0px; right: 0px; overflow: scroll; z-index: -1; visibility: hidden;';\r\n const childStyle = 'position: absolute; top: 0px; left: 0px; min-height: 1px;';\r\n\r\n this.$resizeDetector = $('
', {\r\n id: 'card-panel-resize-detector',\r\n style: detectorStyle,\r\n });\r\n\r\n this.$expand = $('
', {\r\n id: 'resize-detector-expand',\r\n style: detectorStyle,\r\n });\r\n\r\n this.$shrink = $('
', {\r\n id: 'resize-detector-shrink',\r\n style: detectorStyle,\r\n });\r\n\r\n this.$expandChild = $('
', {\r\n id: 'resize-detector-expand-child',\r\n style: childStyle,\r\n });\r\n\r\n this.$shrinkChild = $('
', {\r\n id: 'resize-detector-shrink-child',\r\n style: `${childStyle} width: 200%; height: 200%;`,\r\n });\r\n\r\n this.$shrinkChild.appendTo(this.$shrink);\r\n this.$expandChild.appendTo(this.$expand);\r\n this.$shrink.appendTo(this.$resizeDetector);\r\n this.$expand.appendTo(this.$resizeDetector);\r\n\r\n this.$resizeDetector.appendTo($el);\r\n if ($el.css('position') !== 'absolute' && $el.css('position') !== 'fixed') {\r\n $el.css('position', 'relative');\r\n }\r\n\r\n // Initial change handler\r\n this.lastRange = this.getCurrentRange();\r\n _.defer((() => {\r\n if (this.getCurrentRange() !== this.lastRange) {\r\n this.callback(this.getCurrentRange());\r\n }\r\n this.resetScrollState();\r\n }).bind(this));\r\n\r\n // Scroll handler\r\n this.$expand.on('scroll', (() => {\r\n if (this.lastWidth < this.$el.width()) {\r\n if (this.getCurrentRange() > this.lastRange) {\r\n this.callback(this.getCurrentRange());\r\n }\r\n this.resetScrollState();\r\n }\r\n }).bind(this));\r\n\r\n this.$shrink.on('scroll', (() => {\r\n if (this.lastWidth > this.$el.width()) {\r\n if (this.getCurrentRange() < this.lastRange) {\r\n this.callback(this.getCurrentRange());\r\n }\r\n this.resetScrollState();\r\n }\r\n }).bind(this));\r\n }\r\n\r\n getCurrentRange() {\r\n const points = _.filter(this.breakpoints, point => point < this.$el.width());\r\n\r\n return points.length === 0 ? 0 : _.max(points);\r\n }\r\n\r\n resetScrollState() {\r\n this.$expandChild.width(this.$expand.width() + 10);\r\n this.$expand[0].scrollLeft = this.$expand[0].scrollWidth;\r\n this.$shrink[0].scrollLeft = this.$shrink[0].scrollWidth;\r\n\r\n this.lastWidth = this.$el.width();\r\n this.lastRange = this.getCurrentRange();\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport '@bingads-webui/kendo/kendo.sortable';\r\n\r\n// This file contains kendo-ui based drag-and-drop setup. The dependency on kendo\r\n// can be potentially replaced in the future. So all kendo drag and drop related\r\n// logic are captured in this file.\r\nconst draggableDraggingEffectClass = 'card-holder--dragging';\r\nconst draggableHintEffectClass = 'card-holder--hint';\r\n\r\nexport function setupDragAndDrop($el, dropCallback, hintSelector, dragAndDropOptions) {\r\n const kendoSortableOptions = _.defaults(dragAndDropOptions, {\r\n hint: (e) => {\r\n let element;\r\n\r\n if (hintSelector) {\r\n const hintElement = e.find(hintSelector);\r\n element = hintElement.clone(true).addClass(draggableHintEffectClass);\r\n element.width(hintElement.width());\r\n } else {\r\n element = e.clone(true).addClass(draggableHintEffectClass);\r\n }\r\n\r\n return element;\r\n },\r\n placeholder: e => e.clone(true).addClass(draggableDraggingEffectClass),\r\n change: (e) => {\r\n if (_.isFunction(dropCallback)) {\r\n dropCallback(e.oldIndex, e.newIndex);\r\n }\r\n },\r\n });\r\n\r\n $el.kendoSortable(kendoSortableOptions);\r\n}\r\n\r\nexport function clearDragAndDrop($el) {\r\n if ($el.data('kendoSortable')) {\r\n $el.data('kendoSortable').destroy();\r\n }\r\n}\r\n","module.exports = __WEBPACK_EXTERNAL_MODULE__157__;","var pug = require(\"!../../../../../node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;pug_html = pug_html + \"\\u003Cdiv class=\\\"card-panel\\\"\\u003E\\u003Cdiv class=\\\"card-panel__card-container\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";;return pug_html;};\nmodule.exports = template;","module.exports = __WEBPACK_EXTERNAL_MODULE__43__;","module.exports = __WEBPACK_EXTERNAL_MODULE__61__;","module.exports = __WEBPACK_EXTERNAL_MODULE__8__;","module.exports = __WEBPACK_EXTERNAL_MODULE__9__;","export { ClientCenterCustomerService } from './src/index';\r\n","import $ from 'jquery';\r\nimport Promise from 'bluebird';\r\n\r\nconst defaultAjaxOptions = {\r\n xhrFields: {\r\n withCredentials: true,\r\n },\r\n headers: {\r\n 'X-Requested-With': 'XMLHttpRequest',\r\n },\r\n};\r\n\r\n/**\r\n * Client Center Customer Service relevant for Customer Related Operations like fetch and manage\r\n * @param {String} ccBaseUrl - represents base url for client center site\r\n * @param {Object} ccJsData - JsData object for caching response\r\n * @param {function} getUserPreferences() - asynchronous Ajax funtion to get a user's preferences\r\n * @param {function} setUserPreferences() - asynchronous Ajax funtion to set a user's preferences\r\n * @param {function} getCustomers() - asynchronous Ajax funtion to get Customers under a Person\r\n * @param {function} getRecentAccesssEntities() - asynchronous Ajax funtion to get recently accessed\r\n * entities under a customer\r\n * @param {function} getCustomerHierarchy() - asynchronous Ajax funtion to get linked\r\n * accounts and customers for a given customer id\r\n * return Promise for the corresponding API response\r\n * @param {function} getAccount() - asynchronous Ajax funtion to get Account\r\n */\r\nexport class ClientCenterCustomerService {\r\n constructor({\r\n ccBaseUrl,\r\n ccJsData,\r\n }) {\r\n this.baseCustomerUrl = ccBaseUrl;\r\n this.ccJsData = ccJsData;\r\n }\r\n\r\n getUserPreferences({ uid, id }) {\r\n if (this.ccJsData) {\r\n return this.ccJsData.UserPreference.findAll({ uid, id });\r\n }\r\n\r\n const url = this.baseCustomerUrl.concat('/Api/Preference/UserPreference');\r\n\r\n return Promise.resolve($.ajax({\r\n url,\r\n data: {\r\n uid,\r\n id,\r\n },\r\n ...defaultAjaxOptions,\r\n }));\r\n }\r\n\r\n setUserPreferences({ data, uid, id }) {\r\n const url = this.baseCustomerUrl.concat('/Api/Preference/UserPreference');\r\n\r\n return new Promise((resolve, reject) => {\r\n $.ajax({\r\n url,\r\n data: {\r\n data,\r\n uid,\r\n id,\r\n },\r\n ...defaultAjaxOptions,\r\n type: 'POST',\r\n success: response => resolve(response),\r\n error: (xhr, status) => reject(status),\r\n });\r\n });\r\n }\r\n\r\n // ToDO: Task 1460962: Add Test Case for the ClientCenterCustomerService Shared Component\r\n getCustomers() {\r\n const getCustomersListUrl = this.baseCustomerUrl.concat('/Customers/GetCustomers');\r\n\r\n // $.getJSON throws parse error for Cross Domain Requests. using $.ajax with xhrFields\r\n // checks for authorization before making the call and allows cross domain requests\r\n return Promise.resolve($.ajax({\r\n url: getCustomersListUrl,\r\n data: {\r\n rurl: window.location.href,\r\n },\r\n ...defaultAjaxOptions,\r\n }));\r\n }\r\n\r\n getRecentAccesssEntities({ cid, uid, limit = null }) {\r\n const getRecentAccesssEntitiesUrl = this.baseCustomerUrl.concat('/Customers/RecentAccessedEntities');\r\n\r\n return Promise.resolve($.ajax({\r\n url: getRecentAccesssEntitiesUrl,\r\n data: {\r\n cid,\r\n uid,\r\n limit,\r\n rurl: window.location.href,\r\n },\r\n ...defaultAjaxOptions,\r\n }));\r\n }\r\n\r\n getCustomerHierarchy({\r\n cid,\r\n uid,\r\n searchTerm = null,\r\n start = null,\r\n limit = null,\r\n returnOnlyDirectlyLinkedEntities = true,\r\n }) {\r\n const options = {\r\n cid,\r\n uid,\r\n targetCid: cid,\r\n searchTerm,\r\n start,\r\n limit,\r\n returnOnlyDirectlyLinkedEntities,\r\n rurl: window.location.href,\r\n };\r\n\r\n if (this.ccJsData) {\r\n return this.ccJsData.CustomerHierarchy.find(cid, {\r\n params: options,\r\n bypassCache: true,\r\n });\r\n }\r\n\r\n const getCustomerHierarchyUrl = this.baseCustomerUrl.concat('/Customers/SearchCustomerHierarchy');\r\n\r\n return Promise.resolve($.ajax({\r\n url: getCustomerHierarchyUrl,\r\n data: options,\r\n ...defaultAjaxOptions,\r\n }));\r\n }\r\n\r\n getAncestorHierarchyPath({\r\n cid,\r\n uid,\r\n entityId,\r\n isCustomer,\r\n }) {\r\n const options = {\r\n cid,\r\n uid,\r\n targetCid: cid,\r\n entityId,\r\n isCustomer,\r\n };\r\n\r\n if (this.ccJsData) {\r\n return this.ccJsData.AncestorHierarchyPath.find(`${entityId}_${cid}`, {\r\n params: options,\r\n bypassCache: true,\r\n });\r\n }\r\n\r\n const getAncestorHierarchyPathUrl = this.baseCustomerUrl.concat('/Customers/AncestorHierarchyPath');\r\n\r\n return Promise.resolve($.ajax({\r\n url: getAncestorHierarchyPathUrl,\r\n data: options,\r\n ...defaultAjaxOptions,\r\n }));\r\n }\r\n\r\n getAccount({ uid, id, cid }) {\r\n const url = this.baseCustomerUrl.concat('/ApI/Account');\r\n\r\n return Promise.resolve($.ajax({\r\n url,\r\n data: {\r\n uid,\r\n id,\r\n cid,\r\n },\r\n ...defaultAjaxOptions,\r\n }));\r\n }\r\n}\r\n","module.exports = __WEBPACK_EXTERNAL_MODULE__17__;","module.exports = __WEBPACK_EXTERNAL_MODULE__102__;","module.exports = __WEBPACK_EXTERNAL_MODULE__103__;","\r\n\r\nexport { ColumnChooserEditablePicker } from './src/view';\r\n","import _ from 'underscore';\r\nimport { DeterministicView } from '@bingads-webui/deterministic-view';\r\nimport EditablePickerTemplate from './template.pug';\r\nimport { getDeterministicTooltipView } from './invliad-option-with-tooltip';\r\n\r\n/**\r\n * The ColumnChooserEditablePicker component\r\n * A customized option list view in ColumnChooser component that\r\n * support create/delete/edit column configs on-the-fly.\r\n * @param {Object} options - ColumnChooserEditablePicker config\r\n * @param {object} options.i18n - Has a getString function\r\n * @param {function} options.i18n.getString - Takes a key and returns a string\r\n * keys below are needed\r\n ColumnChooser_Add\r\n ColumnChooser_Added\r\n ColumnChooser_AddAllInList\r\n ColumnChooser_RemoveAllInList\r\n ColumnChooser_CreateColumn\r\n * @param {Boolean} options.isReadOnlyUser - If the user is readonly.\r\n * @param {Function} options.p$createColumn - Returns a promise that is resolved with column config\r\n * when the customized column is created\r\n * @param {Function} options.p$editColumn - Take a column config and returns a promise that is\r\n * resolved with column config when the customized column is updated\r\n * @param {Function} options.p$removeColumn - Takes a column key and returns a promise that is\r\n * resolved with column config when the customized column is created\r\n * @param {Object[]} options.options - Configs of each column\r\n * @param {String} options.options[].key - The key for the column\r\n * @param {String} options.options[].name - The name for the column\r\n*/\r\nexport class ColumnChooserEditablePicker extends DeterministicView {\r\n initialize(options) {\r\n this.allColumnOptions = options.options || [];\r\n this.options = options;\r\n this.i18n = options.i18n;\r\n this.model.set({\r\n options: options.options || [],\r\n validOptions: _.filter(options.options, option => option.isValid),\r\n categoryName: options.categoryName,\r\n isReadOnlyUser: options.isReadOnlyUser,\r\n });\r\n\r\n _.each(options.options, (option, index) => {\r\n if (!option.isValid) {\r\n const tooltipView = getDeterministicTooltipView(\r\n this.i18n.getString('ColumnChooser_CustomColumnNotApplicable'),\r\n {\r\n addColumnAriaLabel: `${this.i18n.getString('ColumnChooser_Add')} ${option.name}`,\r\n key: option.key,\r\n text: this.i18n.getString('ColumnChooser_Add'),\r\n }\r\n );\r\n\r\n this.setChild(String(index), tooltipView);\r\n }\r\n });\r\n }\r\n\r\n setState({\r\n selectedKeys = [],\r\n searchStr,\r\n } = {}) {\r\n this.searchStr = searchStr;\r\n\r\n const options = this.allColumnOptions;\r\n this.model.set({\r\n selectedKeys,\r\n });\r\n this.updateOptions({ options });\r\n\r\n return this;\r\n }\r\n\r\n updateOptions({ options }) {\r\n this.allColumnOptions = options;\r\n const selectedKeys = this.model.get('selectedKeys');\r\n\r\n const searchedOptions = _.isString(this.searchStr) ?\r\n _.chain(options)\r\n .filter(node => node.name.toLowerCase()\r\n .indexOf(this.searchStr.toLowerCase()) !== -1)\r\n .value()\r\n : options;\r\n\r\n const validSearchedOptions = _.chain(searchedOptions)\r\n .filter(option => option.isValid)\r\n .value();\r\n\r\n const allSelected = _.chain(validSearchedOptions)\r\n .pluck('key')\r\n .difference(selectedKeys)\r\n .value().length === 0;\r\n\r\n this.model.set({\r\n allSelected,\r\n options: searchedOptions,\r\n validOptions: validSearchedOptions,\r\n });\r\n }\r\n\r\n findConfigWithKey(key) {\r\n return _.find(this.allColumnOptions, option => option.key === key);\r\n }\r\n\r\n allToggle() {\r\n const options = this.model.get('options');\r\n const allSelected = this.model.get('allSelected');\r\n const allOptionalKeys = _.chain(options)\r\n .filter(option => option.isValid)\r\n .pluck('key')\r\n .value();\r\n\r\n this.trigger(allSelected ? 'removeColumns' : 'addColumns', allOptionalKeys);\r\n }\r\n\r\n addColumn(e) {\r\n this.trigger('addColumns', [e.target.dataset.columnKey]);\r\n }\r\n\r\n removeCustomColumnByKey(key) {\r\n this.options.p$removeColumn(key)\r\n .then(() => {\r\n this.trigger('removeColumns', [key]);\r\n this.updateOptions({\r\n options: _.reject(\r\n this.allColumnOptions,\r\n option => option.key === key\r\n ),\r\n });\r\n })\r\n .catch(_.noop);\r\n }\r\n\r\n removeCustomColumn(e) {\r\n const key = e.target.dataset.columnKey;\r\n\r\n this.removeCustomColumnByKey(key);\r\n }\r\n\r\n editCustomColumn(e) {\r\n const options = this.allColumnOptions;\r\n const index = _.findIndex(options, option => option.key === e.target.dataset.columnKey);\r\n\r\n this.options.p$editColumn(options[index])\r\n .then((option) => {\r\n const edited = _.defaults({\r\n key: options[index].key,\r\n }, option);\r\n const newOptions = options.slice(0);\r\n\r\n newOptions.splice(index, 1, edited);\r\n this.updateOptions({ options: newOptions });\r\n this.trigger('updateColumn', option);\r\n })\r\n .catch(_.noop);\r\n }\r\n\r\n createCustomColumn() {\r\n this.options.p$createColumn()\r\n .then((newColumnOption) => {\r\n const addedColumnOption = _.extend(newColumnOption, { isValid: true });\r\n this.updateOptions({ options: this.allColumnOptions.concat(addedColumnOption) });\r\n this.trigger('addColumns', [newColumnOption.key]);\r\n })\r\n .catch(_.noop);\r\n }\r\n\r\n get className() {\r\n return 'column-chooser-editable-picker';\r\n }\r\n\r\n get template() {\r\n return EditablePickerTemplate;\r\n }\r\n\r\n get events() {\r\n return {\r\n 'click .column-chooser-bulk-control a': this.allToggle,\r\n 'click a.add-column-link': this.addColumn,\r\n 'click a.custom-column-remove': this.removeCustomColumn,\r\n 'click a.custom-column-edit': this.editCustomColumn,\r\n 'click button.custom-column-add': this.createCustomColumn,\r\n };\r\n }\r\n}\r\n","var pug = require(\"!../../../../node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (String, model, view) {pug_html = pug_html + \"\\u003Cdiv class=\\\"column-chooser-bulk-control\\\"\\u003E\\u003Cbutton\" + (\" class=\\\"btn btn-primary custom-column-add\\\"\"+pug.attr(\"disabled\", model.isReadOnlyUser, true, true)) + \"\\u003E\\u003Cspan class=\\\"iconba iconba-Add\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cspan href=\\\"javascript:void(0);\\\"\\u003E\" + (pug.escape(null == (pug_interp = view.i18n.getString('ColumnChooser_CreateColumn')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fbutton\\u003E\";\nif ((model.validOptions && model.validOptions.length !== 0)) {\nif ((model.allSelected)) {\npug_html = pug_html + \"\\u003Ca class=\\\"remove-all-in-list\\\" href=\\\"javascript:void(0);\\\" role=\\\"button\\\"\\u003E\" + (pug.escape(null == (pug_interp = view.i18n.getString('ColumnChooser_RemoveAllInList')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Ca class=\\\"add-all-in-list\\\" href=\\\"javascript:void(0);\\\" role=\\\"button\\\"\\u003E\" + (pug.escape(null == (pug_interp = view.i18n.getString('ColumnChooser_AddAllInList')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n}\n}\npug_html = pug_html + \"\\u003Cspan class=\\\"arrow-button enabled\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\nif ((model.options.length && model.options.length > 0)) {\npug_html = pug_html + \"\\u003Cul\" + (\" class=\\\"column-chooser-options\\\"\"+\" role=\\\"listbox\\\"\"+pug.attr(\"aria-labelledby\", model.categoryName, true, true)) + \"\\u003E\";\n// iterate model.options\n;(function(){\n var $$obj = model.options;\n if ('number' == typeof $$obj.length) {\n for (var index = 0, $$l = $$obj.length; index < $$l; index++) {\n var option = $$obj[index];\nvar isSelected = (model.selectedKeys.indexOf(option.key) >= 0)\nvar addColumnAriaLabel = `${view.i18n.getString('ColumnChooser_Add')} ${option.name}`\npug_html = pug_html + \"\\u003Cli\" + (\" class=\\\"option\\\"\"+pug.attr(\"aria-selected\", isSelected ? 'true' : 'false', true, true)+\" role=\\\"option\\\"\") + \"\\u003E\\u003Cspan\" + (pug.attr(\"class\", pug.classes([\"option-name\",isSelected ? 'option-selected' : 'option-not-selected'], [false,true]), false, true)+pug.attr(\"title\", option.name, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = option.name) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\nif (!model.isReadOnlyUser) {\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"glyphicon glyphicon-pencil custom-column-edit clickable\\\"\"+\" href=\\\"javascript:void(0);\\\"\"+pug.attr(\"data-column-key\", option.key, true, true)+pug.attr(\"aria-label\", view.i18n.getString('Edit'), true, true)) + \"\\u003E\\u003C\\u002Fa\\u003E\";\n}\nif (!model.isReadOnlyUser) {\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"glyphicon glyphicon-remove custom-column-remove clickable\\\"\"+\" href=\\\"javascript:void(0);\\\"\"+pug.attr(\"data-column-key\", option.key, true, true)+pug.attr(\"aria-label\", view.i18n.getString('Remove'), true, true)) + \"\\u003E\\u003C\\u002Fa\\u003E\";\n}\nif (isSelected) {\npug_html = pug_html + \"\\u003Cspan\" + (pug.attr(\"class\", pug.classes([\"option-status\",(option.selectOption === 'locked' || option.selectOption === 'mandatory' ? 'disabled' : 'enabled')], [false,true]), false, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = view.i18n.getString('ColumnChooser_Added')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\nelse {\nif ((option.isValid)) {\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"add-column-link\\\"\"+\" href=\\\"javascript:void(0);\\\" role=\\\"button\\\" tabindex=\\\"0\\\"\"+pug.attr(\"aria-label\", addColumnAriaLabel, true, true)+pug.attr(\"data-column-key\", option.key, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = view.i18n.getString('ColumnChooser_Add')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cdiv class=\\\"inapplicable-column\\\"\\u003E\\u003Cdiv\" + (pug.attr(\"data-ref\", String(index), true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\n}\npug_html = pug_html + \"\\u003C\\u002Fli\\u003E\";\n }\n } else {\n var $$l = 0;\n for (var index in $$obj) {\n $$l++;\n var option = $$obj[index];\nvar isSelected = (model.selectedKeys.indexOf(option.key) >= 0)\nvar addColumnAriaLabel = `${view.i18n.getString('ColumnChooser_Add')} ${option.name}`\npug_html = pug_html + \"\\u003Cli\" + (\" class=\\\"option\\\"\"+pug.attr(\"aria-selected\", isSelected ? 'true' : 'false', true, true)+\" role=\\\"option\\\"\") + \"\\u003E\\u003Cspan\" + (pug.attr(\"class\", pug.classes([\"option-name\",isSelected ? 'option-selected' : 'option-not-selected'], [false,true]), false, true)+pug.attr(\"title\", option.name, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = option.name) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\nif (!model.isReadOnlyUser) {\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"glyphicon glyphicon-pencil custom-column-edit clickable\\\"\"+\" href=\\\"javascript:void(0);\\\"\"+pug.attr(\"data-column-key\", option.key, true, true)+pug.attr(\"aria-label\", view.i18n.getString('Edit'), true, true)) + \"\\u003E\\u003C\\u002Fa\\u003E\";\n}\nif (!model.isReadOnlyUser) {\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"glyphicon glyphicon-remove custom-column-remove clickable\\\"\"+\" href=\\\"javascript:void(0);\\\"\"+pug.attr(\"data-column-key\", option.key, true, true)+pug.attr(\"aria-label\", view.i18n.getString('Remove'), true, true)) + \"\\u003E\\u003C\\u002Fa\\u003E\";\n}\nif (isSelected) {\npug_html = pug_html + \"\\u003Cspan\" + (pug.attr(\"class\", pug.classes([\"option-status\",(option.selectOption === 'locked' || option.selectOption === 'mandatory' ? 'disabled' : 'enabled')], [false,true]), false, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = view.i18n.getString('ColumnChooser_Added')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\nelse {\nif ((option.isValid)) {\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"add-column-link\\\"\"+\" href=\\\"javascript:void(0);\\\" role=\\\"button\\\" tabindex=\\\"0\\\"\"+pug.attr(\"aria-label\", addColumnAriaLabel, true, true)+pug.attr(\"data-column-key\", option.key, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = view.i18n.getString('ColumnChooser_Add')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cdiv class=\\\"inapplicable-column\\\"\\u003E\\u003Cdiv\" + (pug.attr(\"data-ref\", String(index), true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\n}\npug_html = pug_html + \"\\u003C\\u002Fli\\u003E\";\n }\n }\n}).call(this);\n\npug_html = pug_html + \"\\u003C\\u002Ful\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cdiv\" + (\" class=\\\"column-chooser-options\\\"\"+pug.attr(\"aria-labelledby\", model.categoryName, true, true)) + \"\\u003E\\u003Cdiv style=\\\"\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n height: 100%;\\n \\\"\\u003E\" + (pug.escape(null == (pug_interp = view.i18n.getString('ColumnChooser_NoSearchResult')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}}.call(this,\"String\" in locals_for_with?locals_for_with.String:typeof String!==\"undefined\"?String:undefined,\"model\" in locals_for_with?locals_for_with.model:typeof model!==\"undefined\"?model:undefined,\"view\" in locals_for_with?locals_for_with.view:typeof view!==\"undefined\"?view:undefined));;return pug_html;};\nmodule.exports = template;","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport Backbone from 'backbone';\r\nimport PropTypes from 'prop-types';\r\nimport { TooltipHost } from '@bingads-webui-react/fabric-control';\r\nimport { DeterministicViewForBackBoneView } from '@bingads-webui/deterministic-wrapper-view';\r\n\r\nconst OptionToolTip = ({ content, optionContent }) => (\r\n \r\n \r\n {optionContent.text}\r\n \r\n \r\n);\r\n\r\nOptionToolTip.propTypes = {\r\n content: PropTypes.string,\r\n optionContent: PropTypes.shape().isRequired,\r\n};\r\n\r\nOptionToolTip.defaultProps = {\r\n content: '',\r\n};\r\n\r\nclass OptionToolTipBackBoneView extends Backbone.View {\r\n initialize({ content, optionContent }) {\r\n this.content = content;\r\n this.optionContent = optionContent;\r\n }\r\n\r\n render() {\r\n ReactDOM.render(\r\n (),\r\n this.el\r\n );\r\n return this;\r\n }\r\n\r\n remove() {\r\n ReactDOM.unmountComponentAtNode(this.el);\r\n return super.remove();\r\n }\r\n}\r\n\r\nexport function getDeterministicTooltipView(content, optionContent) {\r\n return new DeterministicViewForBackBoneView({\r\n view: new OptionToolTipBackBoneView({ content, optionContent }),\r\n });\r\n}\r\n","module.exports = __WEBPACK_EXTERNAL_MODULE__182__;","module.exports = __WEBPACK_EXTERNAL_MODULE__183__;","module.exports = __WEBPACK_EXTERNAL_MODULE__184__;","module.exports = __WEBPACK_EXTERNAL_MODULE__19__;","module.exports = __WEBPACK_EXTERNAL_MODULE__10__;","import { ColumnChooser } from './src/column-chooser/column-chooser';\r\n\r\n\r\nexport { ColumnChooser };\r\n","import _ from 'underscore';\r\nimport { DeterministicView, helpers } from '@bingads-webui/deterministic-view';\r\nimport { DraggableList } from '@bingads-webui/draggable-list';\r\nimport ColumnChooserTemplate from './column-chooser-template.pug';\r\nimport ColumnChooserTemplateSimplified from './column-chooser-template-simplified.pug';\r\nimport ColumnChooserTemplateSplit from './column-chooser-template-split.pug';\r\nimport ColumnChooserTemplateSimplifiedSplit from './column-chooser-template-simplified-split.pug';\r\nimport { CategoryTabs } from '../category-tabs/category-tabs';\r\nimport { OptionsView } from '../option-list/options-view/options-view';\r\nimport { SelectedListItem } from '../selected-list-item/selected-list-item';\r\nimport { SaveColumn } from '../save-column/save-column';\r\n\r\nconst { ensureChildView, updateView } = helpers;\r\n\r\nconst DraggableListActionStringMapping = {\r\n LiftItem: 'ColumnChooser_LiftColumn',\r\n MoveItem: 'ColumnChooser_MoveColumn',\r\n DropItem: 'ColumnChooser_DropColumn',\r\n};\r\n\r\nconst traceSearchInfo = _.debounce((logger, searchStr, searchResultCount) => {\r\n logger.trace(JSON.stringify({\r\n searchText: searchStr,\r\n searchResultCount,\r\n }), 'column-chooser');\r\n}, 300);\r\n\r\n/**\r\n * The column chooser component\r\n *\r\n * @class ColumnChooser\r\n * @param {Object} instrumentation - instrumentation from provider\r\n * @param {Object} options - ColumnChooser view config\r\n * @param {Object} options.simplified - Using a simplified interface of column chooser of not\r\n * @param {Object} options.instrumentation - instrumentation from provider\r\n * @param {Object} [options.withColumnsChangeAnnouncement] - Whether to announce the change of columns to screen reader\r\n * @param {Object} options.i18n - Has a getString function\r\n * @param {function} options.i18n.getString - Takes a key and returns a string\r\n * keys below are needed\r\n ColumnChooser_Header\r\n ColumnChooser_SubHeader\r\n ColumnChooser_AvailableColumnsHeader\r\n ColumnChooser_SelectedColumnsHeader\r\n ColumnChooser_SelectedColumnsHeader_TopHalf\r\n ColumnChooser_SelectedColumnsHeader_BottomHalf\r\n ColumnChooser_SaveColumnDescription\r\n ColumnChooser_Apply\r\n ColumnChooser_Cancel\r\n ColumnChooser_Add\r\n ColumnChooser_AddColumn\r\n ColumnChooser_Added\r\n ColumnChooser_Remove\r\n ColumnChooser_RemoveColumn\r\n ColumnChooser_AddAllInList\r\n ColumnChooser_RemoveAllInList\r\n ColumnChooser_RemoveAllSelected\r\n ColumnChooser_Search_Column\r\n ColumnChooser_Disabled\r\n ColumnChooser_LiftColumn\r\n ColumnChooser_MoveColumn\r\n ColumnChooser_DropColumn\r\n ColumnChooser_AddedColumn\r\n ColumnChooser_AddedColumns\r\n ColumnChooser_RemovedColumn\r\n ColumnChooser_RemovedColumns\r\n */\r\nexport class ColumnChooser extends DeterministicView {\r\n static instrumentationSchema = {\r\n scenario: [\r\n {\r\n name: 'ColumnChooser',\r\n value: 'ColumnChooser',\r\n activity: [\r\n {\r\n name: 'general',\r\n value: 'general',\r\n },\r\n ],\r\n },\r\n ],\r\n };\r\n\r\n static setupInstrumentation = (instrumentation) => {\r\n instrumentation.addScenario(ColumnChooser.instrumentationSchema);\r\n return instrumentation.ColumnChooser.create();\r\n };\r\n\r\n initialize(options) {\r\n this.isDataInitialized = false;\r\n this.originSelected = []; // used for log when click apply\r\n\r\n this.options = options;\r\n this.i18n = options.i18n;\r\n this.logger = options.instrumentation && _.isObject(options.instrumentation)\r\n && !_.isEmpty(options.instrumentation) ?\r\n ColumnChooser.setupInstrumentation(options.instrumentation).general.create() :\r\n { trace: _.noop };\r\n _.bindAll(this, 'removeColumns', 'addColumns', 'updateColumn');\r\n this.logger.trace('column chooser is created.', 'column-chooser');\r\n }\r\n\r\n activateCategory(categoryName) {\r\n updateView(this, {\r\n currentActive: categoryName,\r\n searchStr: this.getState().searchStr,\r\n });\r\n }\r\n\r\n getOptionsKeys(...args) {\r\n return _.chain(args)\r\n .flatten()\r\n .pluck('key')\r\n .value();\r\n }\r\n\r\n findConfigWithKey(key) {\r\n const { categories } = this.getChild('column-chooser-options-view').getState();\r\n let result = null;\r\n\r\n _.find(categories, (category, index) => {\r\n if (category.optionListViewFactory) {\r\n result = this.getChild('column-chooser-options-view').getChildAtIndex(index).findConfigWithKey(key);\r\n return !_.isEmpty(result);\r\n } else if (category.options) {\r\n result = _.find(category.options, option => option.key === key);\r\n\r\n return !_.isEmpty(result);\r\n }\r\n\r\n return false;\r\n });\r\n\r\n return result;\r\n }\r\n\r\n filter(candidate = [], condition) {\r\n const defaultCondition = {\r\n locked: false,\r\n mandatory: false,\r\n optional: false,\r\n };\r\n const finalizedCondition = _.defaults(condition, defaultCondition);\r\n\r\n const candidateConfigs = _.chain(candidate)\r\n .map(key => this.findConfigWithKey(key))\r\n .compact()\r\n .value();\r\n\r\n const candidateWithI18n = _.map(candidateConfigs, config => _.defaults(config, {\r\n i18n: this.options.i18n,\r\n selectOption: 'optional',\r\n }));\r\n\r\n const targetItems = _.filter(candidateWithI18n, (config) => {\r\n switch (config.selectOption) {\r\n case 'locked':\r\n return finalizedCondition.locked;\r\n case 'mandatory':\r\n return finalizedCondition.mandatory;\r\n case 'optional':\r\n return finalizedCondition.optional;\r\n default:\r\n return true;\r\n }\r\n });\r\n const noTargetItems = _.difference(candidateWithI18n, targetItems);\r\n\r\n return { targetItems, noTargetItems };\r\n }\r\n\r\n addColumns(keys) {\r\n let lockedItems;\r\n let draggableItems;\r\n if (!this.options.isSplittingSelectedArea) {\r\n ({ lockedItems, draggableItems } = this.getChild('column-chooser-selected-list').getState());\r\n } else {\r\n const topResult = this.getChild('column-chooser-selected-list-top-half').getState();\r\n const bottomResult = this.getChild('column-chooser-selected-list-bottom-half').getState();\r\n lockedItems = _.flatten([topResult.lockedItems, bottomResult.lockedItems]);\r\n draggableItems = _.flatten([topResult.draggableItems, bottomResult.draggableItems]);\r\n }\r\n\r\n const allItems = _.flatten([lockedItems, draggableItems]);\r\n const toAddToLocked = [];\r\n const toAddToDraggable = [];\r\n\r\n _.each(keys, (key) => {\r\n if (_.every(allItems, config => config.key !== key)) {\r\n const column = this.findConfigWithKey(key);\r\n\r\n if (column) {\r\n if (column.selectOption === 'locked') {\r\n toAddToLocked.push(column);\r\n } else {\r\n toAddToDraggable.push(column);\r\n }\r\n } else {\r\n throw new Error(`Cannot find column config with key: ${key}`);\r\n }\r\n }\r\n });\r\n\r\n this.announce({\r\n action: 'addedColumns',\r\n addedColumns: toAddToDraggable.map(_.property('name')),\r\n });\r\n\r\n updateView(this, {\r\n selected: this.getOptionsKeys(lockedItems, toAddToLocked, draggableItems, toAddToDraggable),\r\n });\r\n\r\n this.$('.add-all-in-list').focus();\r\n }\r\n\r\n announce({\r\n action,\r\n addedColumns,\r\n removedColumns,\r\n }) {\r\n if (this.options.withColumnsChangeAnnouncement) {\r\n const liveRegion = this.$('.column-chooser-live-region');\r\n\r\n switch (action) {\r\n case 'addedColumns':\r\n liveRegion.text(this.i18n.getString(\r\n addedColumns.length > 1 ? 'ColumnChooser_AddedColumns' : 'ColumnChooser_AddedColumn',\r\n { columnNames: addedColumns.join(', ') }\r\n ));\r\n break;\r\n case 'removedColumns':\r\n liveRegion.text(this.i18n.getString(\r\n removedColumns.length > 1 ? 'ColumnChooser_RemovedColumns' : 'ColumnChooser_RemovedColumn',\r\n { columnNames: removedColumns.join(', ') }\r\n ));\r\n break;\r\n default:\r\n }\r\n }\r\n }\r\n\r\n removeColumns(keys) {\r\n let lockedItems;\r\n let draggableItems;\r\n if (!this.options.isSplittingSelectedArea) {\r\n ({ lockedItems, draggableItems } = this.getChild('column-chooser-selected-list').getState());\r\n } else {\r\n const topResult = this.getChild('column-chooser-selected-list-top-half').getState();\r\n const bottomResult = this.getChild('column-chooser-selected-list-bottom-half').getState();\r\n lockedItems = _.flatten([topResult.lockedItems, bottomResult.lockedItems]);\r\n draggableItems = _.flatten([topResult.draggableItems, bottomResult.draggableItems]);\r\n }\r\n\r\n const locked = _.reject(lockedItems, config => _.contains(keys, config.key));\r\n const draggable = _.reject(draggableItems, config => _.contains(keys, config.key));\r\n const removedColumns = _.difference(draggableItems, draggable).map(_.property('name'));\r\n this.announce({\r\n action: 'removedColumns',\r\n removedColumns,\r\n });\r\n\r\n updateView(this, {\r\n selected: this.getOptionsKeys(locked, draggable),\r\n });\r\n this.$('.remove-all-in-selected-list').focus();\r\n }\r\n\r\n updateColumn() {\r\n let lockedItems;\r\n let draggableItems;\r\n if (!this.options.isSplittingSelectedArea) {\r\n ({ lockedItems, draggableItems } = this.getChild('column-chooser-selected-list').getState());\r\n } else {\r\n const topResult = this.getChild('column-chooser-selected-list-top-half').getState();\r\n const bottomResult = this.getChild('column-chooser-selected-list-bottom-half').getState();\r\n lockedItems = _.flatten([topResult.lockedItems, bottomResult.lockedItems]);\r\n draggableItems = _.flatten([topResult.draggableItems, bottomResult.draggableItems]);\r\n }\r\n\r\n updateView(this, {\r\n selected: this.getOptionsKeys(lockedItems, draggableItems),\r\n });\r\n }\r\n\r\n apply() {\r\n const state = this.getState();\r\n const payload = {\r\n selectedKeys: state.selected,\r\n savedName: state.savedName,\r\n };\r\n if (this.options.simplified) {\r\n payload.searchStr = state.searchStr;\r\n payload.currentActive = state.currentActive;\r\n }\r\n\r\n const originSelectedColumnKeys = this.originSelected;\r\n const currentSelectedColumnKeys = state.selected;\r\n\r\n const isColumnsSame = originSelectedColumnKeys.length === currentSelectedColumnKeys.length\r\n && _.difference(originSelectedColumnKeys, currentSelectedColumnKeys).length === 0;\r\n\r\n if (!isColumnsSame) {\r\n this.logger.trace(JSON.stringify({\r\n event: 'apply',\r\n originSelectedColumnKeys: this.originSelected,\r\n currentSelectedColumnKeys: state.selected,\r\n }), 'column-chooser');\r\n }\r\n\r\n this.trigger('hide', payload);\r\n }\r\n\r\n cancel() {\r\n this.trigger('hide');\r\n }\r\n\r\n /**\r\n * Sets the state of the column chooser\r\n *\r\n * @param {Object} newState - The new state of the component\r\n * @param {Object[]} newState.categories - The configs for column categories\r\n * @param {String} newState.categories[].name - The name of the category\r\n * @param {Object[]} newState.categories[].options - The config for columns\r\n * @param {String} newState.categories[].options[].key - The key for the column\r\n * @param {String} newState.categories[].options[].name - The name for the column\r\n * @param {String} newState.categories[].options[].helpTopic - The accosiated help topic\r\n * @param {String} newState.categories[].options[].selectOption - The select behavior of the\r\n * column, possible values are 'locked', 'mandatory' and 'optional', default value is 'optional',\r\n * 'locked' means must be selected and cannot re-order, 'mandatory' means must be selected and can\r\n * re-order, 'optional' means can be selected and can re-order.\r\n * @param {Function} newState.categories[].optionListViewFactory - The customized option list view\r\n * factory, newState.categories[].options is ignored if this is provided, the created customized\r\n * option list view should have a method named findConfigWithKey, that takes a column key string\r\n * and return the config of the column or undefined if no match found.\r\n * @param {String} newState.currentActive - The current active column category\r\n * @param {Boolean} newState.isSaveNameEnabled - Indicate if apply with a name is enabled, true\r\n * by default\r\n * @param {String} newState.savedName - The name of the selection, no name by default\r\n * @param {String[]} newState.selected - The array of keys for selected columns\r\n * @param {bool} newState.external - Prevents hide from being triggered on simplified interface\r\n * @returns {ColumnChooser} this\r\n */\r\n setState({\r\n categories,\r\n currentActive = '',\r\n external = false,\r\n isSaveNameEnabled = true,\r\n savedName = null,\r\n selected = [],\r\n searchStr,\r\n }) {\r\n if (!_.isArray(categories) || categories.legnth === 0) {\r\n throw new Error('No column options provided.');\r\n }\r\n\r\n if (!this.isDataInitialized) {\r\n this.isDataInitialized = true;\r\n this.originSelected = [...selected];\r\n }\r\n\r\n const activeListName = currentActive || categories[0].name;\r\n\r\n ensureChildView(this, 'column-chooser-categories', CategoryTabs, {\r\n i18n: this.options.i18n,\r\n }, {\r\n activateCategory: _.bind(this.activateCategory, this),\r\n }).setState({\r\n categories: _.map(categories, category => ({\r\n name: category.name,\r\n isNewCategory: category.isNewCategory,\r\n })),\r\n currentActive: activeListName,\r\n });\r\n\r\n ensureChildView(this, 'column-chooser-options-view', OptionsView, {\r\n i18n: this.options.i18n,\r\n }, {\r\n addColumns: this.addColumns,\r\n removeColumns: this.removeColumns,\r\n updateColumn: this.updateColumn,\r\n }).setState({\r\n categories,\r\n currentActive: activeListName,\r\n selectedKeys: selected,\r\n searchStr,\r\n });\r\n\r\n const {\r\n targetItems: lockedItems,\r\n noTargetItems: draggableItems,\r\n } = this.filter(selected, { locked: true });\r\n\r\n if (!this.options.isSplittingSelectedArea) {\r\n ensureChildView(this, 'column-chooser-selected-list', DraggableList, this.getDraggableListConfig({\r\n i18n: this.i18n,\r\n ariaLabel: this.i18n.getString('ColumnChooser_SelectedColumnsHeader'),\r\n })).setState({\r\n lockedItems,\r\n draggableItems,\r\n });\r\n } else {\r\n const topItemSet = [];\r\n if (categories.length > 0) {\r\n categories[0].options.forEach((entry) => {\r\n topItemSet[entry.key] = true;\r\n });\r\n }\r\n\r\n const draggableTopItems = [];\r\n draggableItems.forEach((item) => {\r\n if (topItemSet[item.key]) {\r\n draggableTopItems.push(item);\r\n }\r\n });\r\n const draggableBottomItems = _.difference(draggableItems, draggableTopItems);\r\n\r\n const lockedTopItems = [];\r\n lockedItems.forEach((item) => {\r\n if (topItemSet[item.key]) {\r\n lockedTopItems.push(item);\r\n }\r\n });\r\n const lockedBottomItems = _.difference(lockedItems, lockedTopItems);\r\n\r\n ensureChildView(this, 'column-chooser-selected-list-top-half', DraggableList, this.getDraggableListConfig({\r\n i18n: this.i18n,\r\n ariaLabel: this.i18n.getString('ColumnChooser_SelectedColumnsHeader_TopHalf'),\r\n })).setState({\r\n lockedItems: lockedTopItems,\r\n draggableItems: draggableTopItems,\r\n });\r\n\r\n ensureChildView(this, 'column-chooser-selected-list-bottom-half', DraggableList, this.getDraggableListConfig({\r\n i18n: this.i18n,\r\n ariaLabel: this.i18n.getString('ColumnChooser_SelectedColumnsHeader_BottomHalf'),\r\n })).setState({\r\n lockedItems: lockedBottomItems,\r\n draggableItems: draggableBottomItems,\r\n });\r\n }\r\n\r\n if (!this.options.simplified) {\r\n ensureChildView(this, 'column-chooser-save-column', SaveColumn, {\r\n i18n: this.options.i18n,\r\n }).setState({\r\n isSaveNameEnabled,\r\n savedName: isSaveNameEnabled === true ? savedName : null,\r\n isSavingColumn: isSaveNameEnabled && _.isString(savedName),\r\n });\r\n } else if (!external) {\r\n this.apply();\r\n }\r\n\r\n return this;\r\n }\r\n\r\n getState() {\r\n let lockedItems;\r\n let draggableItems;\r\n if (!this.options.isSplittingSelectedArea) {\r\n ({ lockedItems, draggableItems } = this.getChild('column-chooser-selected-list').getState());\r\n } else {\r\n const topResult = this.getChild('column-chooser-selected-list-top-half').getState();\r\n const bottomResult = this.getChild('column-chooser-selected-list-bottom-half').getState();\r\n lockedItems = _.flatten([topResult.lockedItems, bottomResult.lockedItems]);\r\n draggableItems = _.flatten([topResult.draggableItems, bottomResult.draggableItems]);\r\n }\r\n\r\n return _.extend(\r\n {},\r\n {\r\n selected: this.getOptionsKeys(lockedItems, draggableItems),\r\n },\r\n this.options.simplified || this.getChild('column-chooser-save-column').getState(),\r\n this.options.simplified && {\r\n currentActive: this.getChild('column-chooser-categories').getState().currentActive,\r\n },\r\n this.getChild('column-chooser-options-view').getState(),\r\n {\r\n searchStr: this.$('input.search-input').first().val(),\r\n }\r\n );\r\n }\r\n\r\n getDraggableListConfig({ i18n, ariaLabel }) {\r\n return {\r\n i18n,\r\n afterDrop: () => { if (this.options.simplified) { this.apply(); } },\r\n itemViewFactory: () => {\r\n const itemView = new SelectedListItem();\r\n this.listenTo(itemView, 'remove', this.removeColumns);\r\n return itemView;\r\n },\r\n getAnnouncement: ({\r\n action,\r\n positionFrom,\r\n positionTo,\r\n }) => {\r\n const lockedItemsLength = this.model.get('lockedItemsLength') || 0;\r\n return i18n.getString(DraggableListActionStringMapping[action], {\r\n columnName: this.$('.draggable-list__item-draggable').eq(_.isUndefined(positionTo) ? positionFrom : positionTo).find('.selected-item-name').text(),\r\n positionFrom: positionFrom + lockedItemsLength + 1,\r\n positionTo: _.isUndefined(positionTo) ? '' : positionTo + lockedItemsLength + 1,\r\n });\r\n },\r\n ariaLabel,\r\n };\r\n }\r\n\r\n removeAllSelected() {\r\n this.logger.trace('remove all selected columns', 'column-chooser');\r\n const state = this.getState();\r\n\r\n const { targetItems: mustHaveItems } = this.filter(state.selected, {\r\n locked: true,\r\n mandatory: true,\r\n });\r\n const mustHaveItemsKeys = _.pluck(mustHaveItems, 'key');\r\n const newState = _.defaults({ selected: mustHaveItemsKeys }, state);\r\n\r\n let draggableItems;\r\n if (!this.options.isSplittingSelectedArea) {\r\n ({ draggableItems } = this.getChild('column-chooser-selected-list').getState());\r\n } else {\r\n const topResult = this.getChild('column-chooser-selected-list-top-half').getState();\r\n const bottomResult = this.getChild('column-chooser-selected-list-bottom-half').getState();\r\n draggableItems = _.flatten([topResult.draggableItems, bottomResult.draggableItems]);\r\n }\r\n\r\n const draggable = newState.selected.filter(config => config.selectOptions !== 'locked');\r\n const removedColumns = _.difference(draggableItems, draggable).map(_.property('name'));\r\n this.announce({\r\n action: 'removedColumns',\r\n removedColumns,\r\n });\r\n\r\n this.setState(newState);\r\n }\r\n\r\n searchColumn(e) {\r\n const state = this.getState();\r\n const newState = _.defaults({ searchStr: e.target.value }, state);\r\n this.setState(newState);\r\n const { searchStr, filteredOptions } = this.getState();\r\n const searchResultCount = filteredOptions.length;\r\n traceSearchInfo(this.logger, searchStr, searchResultCount);\r\n }\r\n\r\n get className() { return 'column-chooser'; }\r\n\r\n /**\r\n * Template of the ColumnChooser\r\n * @type {TemplateCallback}\r\n * @override\r\n */\r\n get template() {\r\n if (this.options.isSplittingSelectedArea) {\r\n return this.options.simplified ?\r\n ColumnChooserTemplateSimplifiedSplit :\r\n ColumnChooserTemplateSplit;\r\n }\r\n return this.options.simplified ?\r\n ColumnChooserTemplateSimplified :\r\n ColumnChooserTemplate;\r\n }\r\n\r\n get events() {\r\n return {\r\n 'click input.btn.btn-primary': this.apply,\r\n 'click input.btn.btn-default': this.cancel,\r\n 'click .remove-all-in-selected-list': this.removeAllSelected,\r\n 'input .search-input': this.searchColumn,\r\n };\r\n }\r\n}\r\n","module.exports = __WEBPACK_EXTERNAL_MODULE__168__;","var pug = require(\"!../../../../../node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (view) {pug_html = pug_html + \"\\u003Cdiv class=\\\"panel\\\"\\u003E\\u003Cdiv class=\\\"panel-heading\\\"\\u003E\\u003Ch1 class=\\\"panel-title\\\"\\u003E\" + (pug.escape(null == (pug_interp = view.i18n.getString('ColumnChooser_Header')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fh1\\u003E\\u003C\\u002Fdiv\\u003E\";\nvar subHeaderText = view.i18n.getString('ColumnChooser_SubHeader')\nif (subHeaderText) {\npug_html = pug_html + \"\\u003Cspan class=\\\"small column-chooser-instructions\\\"\\u003E\" + (pug.escape(null == (pug_interp = subHeaderText) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\npug_html = pug_html + \"\\u003Cdiv class=\\\"panel-body\\\"\\u003E\\u003Cdiv class=\\\"column-chooser-selection-area\\\"\\u003E\\u003Cdiv class=\\\"column-chooser-option\\\"\\u003E\\u003Cdiv class=\\\"column-chooser-option-header\\\"\\u003E\\u003Cb\\u003E\" + (pug.escape(null == (pug_interp = view.i18n.getString('ColumnChooser_AvailableColumnsHeader')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fb\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"column-chooser-search-box\\\"\\u003E\\u003Cinput\" + (\" class=\\\"form-control search-input\\\"\"+pug.attr(\"placeholder\", view.i18n.getString('ColumnChooser_Search_Column'), true, true)+pug.attr(\"aria-label\", view.i18n.getString('ColumnChooser_Search_Column'), true, true)+\" type=\\\"text\\\"\") + \"\\u003E\\u003Cspan class=\\\"glyphicon glyphicon-search\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv data-ref=\\\"column-chooser-categories\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv data-ref=\\\"column-chooser-options-view\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"column-chooser-selected\\\"\\u003E\\u003Cdiv class=\\\"column-chooser-selected-header\\\"\\u003E\\u003Cb\\u003E\" + (pug.escape(null == (pug_interp = view.i18n.getString('ColumnChooser_SelectedColumnsHeader')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fb\\u003E\\u003C\\u002Fdiv\\u003E\";\nvar removeAllSelected = view.i18n.getString('ColumnChooser_RemoveAllSelected')\nif (removeAllSelected) {\npug_html = pug_html + \"\\u003Ca class=\\\"remove-all-in-selected-list\\\" href=\\\"javascript:void(0);\\\" role=\\\"button\\\"\\u003E\" + (pug.escape(null == (pug_interp = removeAllSelected) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n}\npug_html = pug_html + \"\\u003Cdiv class=\\\"column-chooser-selected-list\\\"\\u003E\\u003Cdiv data-ref=\\\"column-chooser-selected-list\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Chr\\u003E\\u003Cdiv data-ref=\\\"column-chooser-save-column\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"column-chooser-live-region sr-only\\\" role=\\\"status\\\" aria-live=\\\"assertive\\\" aria-atomic=\\\"true\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"panel-footer\\\"\\u003E\\u003Cinput\" + (\" class=\\\"btn btn-primary\\\"\"+\" type=\\\"button\\\"\"+pug.attr(\"value\", view.i18n.getString('ColumnChooser_Apply'), true, true)) + \"\\u003E\\u003Cinput\" + (\" class=\\\"btn btn-default\\\"\"+\" type=\\\"button\\\"\"+pug.attr(\"value\", view.i18n.getString('ColumnChooser_Cancel'), true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"view\" in locals_for_with?locals_for_with.view:typeof view!==\"undefined\"?view:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (view) {pug_html = pug_html + \"\\u003Cdiv class=\\\"panel\\\"\\u003E\\u003Cdiv class=\\\"panel-body\\\"\\u003E\\u003Cdiv class=\\\"column-chooser-selection-area\\\"\\u003E\\u003Cdiv class=\\\"column-chooser-option\\\"\\u003E\\u003Cdiv class=\\\"column-chooser-option-header\\\"\\u003E\\u003Cb\\u003E\" + (pug.escape(null == (pug_interp = view.i18n.getString('ColumnChooser_AvailableColumnsHeader')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fb\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"column-chooser-search-box\\\"\\u003E\\u003Cinput\" + (\" class=\\\"form-control search-input\\\"\"+pug.attr(\"placeholder\", view.i18n.getString('ColumnChooser_Search_Column'), true, true)+pug.attr(\"aria-label\", view.i18n.getString('ColumnChooser_Search_Column'), true, true)+\" type=\\\"text\\\"\") + \"\\u003E\\u003Cspan class=\\\"glyphicon glyphicon-search\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv data-ref=\\\"column-chooser-categories\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv data-ref=\\\"column-chooser-options-view\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"column-chooser-selected\\\"\\u003E\\u003Cdiv class=\\\"column-chooser-selected-header\\\"\\u003E\\u003Cb\\u003E\" + (pug.escape(null == (pug_interp = view.i18n.getString('ColumnChooser_SelectedColumnsHeader')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fb\\u003E\\u003C\\u002Fdiv\\u003E\";\nvar removeAllSelected = view.i18n.getString('ColumnChooser_RemoveAllSelected')\nif (removeAllSelected) {\npug_html = pug_html + \"\\u003Ca class=\\\"remove-all-in-selected-list\\\" href=\\\"javascript:void(0);\\\" role=\\\"button\\\"\\u003E\" + (pug.escape(null == (pug_interp = removeAllSelected) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n}\npug_html = pug_html + \"\\u003Cdiv class=\\\"column-chooser-selected-list search-enable\\\"\\u003E\\u003Cdiv data-ref=\\\"column-chooser-selected-list\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"column-chooser-live-region sr-only\\\" role=\\\"status\\\" aria-live=\\\"assertive\\\" aria-atomic=\\\"true\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"view\" in locals_for_with?locals_for_with.view:typeof view!==\"undefined\"?view:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (view) {pug_html = pug_html + \"\\u003Cdiv class=\\\"panel\\\"\\u003E\\u003Cdiv class=\\\"panel-heading\\\"\\u003E\\u003Ch1 class=\\\"panel-title\\\"\\u003E\" + (pug.escape(null == (pug_interp = view.i18n.getString('ColumnChooser_Header')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fh1\\u003E\\u003C\\u002Fdiv\\u003E\";\nvar subHeaderText = view.i18n.getString('ColumnChooser_SubHeader')\nif (subHeaderText) {\npug_html = pug_html + \"\\u003Cspan class=\\\"small column-chooser-instructions\\\"\\u003E\" + (pug.escape(null == (pug_interp = subHeaderText) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\npug_html = pug_html + \"\\u003Cdiv class=\\\"panel-body\\\"\\u003E\\u003Cdiv class=\\\"column-chooser-selection-area\\\"\\u003E\\u003Cdiv class=\\\"column-chooser-option\\\"\\u003E\\u003Cdiv class=\\\"column-chooser-option-header\\\"\\u003E\\u003Cb\\u003E\" + (pug.escape(null == (pug_interp = view.i18n.getString('ColumnChooser_AvailableColumnsHeader')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fb\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"column-chooser-search-box\\\"\\u003E\\u003Cinput\" + (\" class=\\\"form-control search-input\\\"\"+pug.attr(\"placeholder\", view.i18n.getString('ColumnChooser_Search_Column'), true, true)+pug.attr(\"aria-label\", view.i18n.getString('ColumnChooser_Search_Column'), true, true)+\" type=\\\"text\\\"\") + \"\\u003E\\u003Cspan class=\\\"glyphicon glyphicon-search\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv data-ref=\\\"column-chooser-categories\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv data-ref=\\\"column-chooser-options-view\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"column-chooser-selected\\\"\\u003E\\u003Cdiv class=\\\"column-chooser-selected-half\\\"\\u003E\\u003Cdiv class=\\\"column-chooser-selected-header\\\"\\u003E\\u003Cb\\u003E\" + (pug.escape(null == (pug_interp = view.i18n.getString('ColumnChooser_SelectedColumnsHeader_TopHalf')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fb\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"column-chooser-selected-list-top-half\\\"\\u003E\\u003Cdiv data-ref=\\\"column-chooser-selected-list-top-half\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"hr\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"column-chooser-selected-half\\\"\\u003E\\u003Cdiv class=\\\"column-chooser-selected-header\\\"\\u003E\\u003Cb\\u003E\" + (pug.escape(null == (pug_interp = view.i18n.getString('ColumnChooser_SelectedColumnsHeader_BottomHalf')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fb\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"column-chooser-selected-list-bottom-half\\\"\\u003E\\u003Cdiv data-ref=\\\"column-chooser-selected-list-bottom-half\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Chr\\u003E\\u003Cdiv data-ref=\\\"column-chooser-save-column\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"column-chooser-live-region sr-only\\\" role=\\\"status\\\" aria-live=\\\"assertive\\\" aria-atomic=\\\"true\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"panel-footer\\\"\\u003E\\u003Cinput\" + (\" class=\\\"btn btn-primary\\\"\"+\" type=\\\"button\\\"\"+pug.attr(\"value\", view.i18n.getString('ColumnChooser_Apply'), true, true)) + \"\\u003E\\u003Cinput\" + (\" class=\\\"btn btn-default\\\"\"+\" type=\\\"button\\\"\"+pug.attr(\"value\", view.i18n.getString('ColumnChooser_Cancel'), true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"view\" in locals_for_with?locals_for_with.view:typeof view!==\"undefined\"?view:undefined));;return pug_html;};\nmodule.exports = template;","var pug = require(\"!../../../../../node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (view) {pug_html = pug_html + \"\\u003Cdiv class=\\\"panel\\\"\\u003E\\u003Cdiv class=\\\"panel-body\\\"\\u003E\\u003Cdiv class=\\\"column-chooser-selection-area\\\"\\u003E\\u003Cdiv class=\\\"column-chooser-option\\\"\\u003E\\u003Cdiv class=\\\"column-chooser-option-header\\\"\\u003E\\u003Cb\\u003E\" + (pug.escape(null == (pug_interp = view.i18n.getString('ColumnChooser_AvailableColumnsHeader')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fb\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"column-chooser-search-box\\\"\\u003E\\u003Cinput\" + (\" class=\\\"form-control search-input\\\"\"+pug.attr(\"placeholder\", view.i18n.getString('ColumnChooser_Search_Column'), true, true)+pug.attr(\"aria-label\", view.i18n.getString('ColumnChooser_Search_Column'), true, true)+\" type=\\\"text\\\"\") + \"\\u003E\\u003Cspan class=\\\"glyphicon glyphicon-search\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv data-ref=\\\"column-chooser-categories\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv data-ref=\\\"column-chooser-options-view\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"column-chooser-selected\\\"\\u003E\\u003Cdiv class=\\\"column-chooser-selected-half\\\"\\u003E\\u003Cdiv class=\\\"column-chooser-selected-header\\\"\\u003E\\u003Cb\\u003E\" + (pug.escape(null == (pug_interp = view.i18n.getString('ColumnChooser_SelectedColumnsHeader_TopHalf')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fb\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"column-chooser-selected-list-top-half\\\"\\u003E\\u003Cdiv data-ref=\\\"column-chooser-selected-list-top-half\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"hr\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"column-chooser-selected-half\\\"\\u003E\\u003Cdiv class=\\\"column-chooser-selected-header\\\"\\u003E\\u003Cb\\u003E\" + (pug.escape(null == (pug_interp = view.i18n.getString('ColumnChooser_SelectedColumnsHeader_BottomHalf')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fb\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"column-chooser-selected-list-bottom-half\\\"\\u003E\\u003Cdiv data-ref=\\\"column-chooser-selected-list-bottom-half\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"column-chooser-live-region sr-only\\\" role=\\\"status\\\" aria-live=\\\"assertive\\\" aria-atomic=\\\"true\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"view\" in locals_for_with?locals_for_with.view:typeof view!==\"undefined\"?view:undefined));;return pug_html;};\nmodule.exports = template;","import _ from 'underscore';\r\nimport { keyCode } from '@bingads-webui/keycode';\r\nimport { DeterministicView, helpers } from '@bingads-webui/deterministic-view';\r\nimport ColumnChooserTemplate from './category-tabs-template.pug';\r\n\r\nconst { updateView } = helpers;\r\n\r\nexport class CategoryTabs extends DeterministicView {\r\n initialize(options) {\r\n this.i18n = options.i18n;\r\n }\r\n\r\n onTabClick(e) {\r\n const newActive = this.$(e.target).closest('li')[0].dataset.categoryName;\r\n\r\n updateView(this, { currentActive: newActive });\r\n\r\n this.trigger('activateCategory', newActive);\r\n }\r\n\r\n onKeydownHandler(e) {\r\n const triggerKey = e.keyCode || e.which;\r\n if (triggerKey !== keyCode.ArrowDown && triggerKey !== keyCode.ArrowUp) return;\r\n\r\n const activeCategory = this.$(e.target).find('li[aria-selected=\"true\"]');\r\n const categories = this.$(e.target).find('li');\r\n\r\n if (categories.length <= 0) return;\r\n const activeIndex = categories.index(activeCategory);\r\n\r\n if (triggerKey === keyCode.ArrowUp && activeIndex > 0) {\r\n categories.eq(activeIndex - 1).click();\r\n _.delay(() => this.$('ul.category-tabs').focus(), 100);\r\n } else if (triggerKey === keyCode.ArrowDown && activeIndex + 1 < categories.length) {\r\n categories.eq(activeIndex + 1).click();\r\n _.delay(() => this.$('ul.category-tabs').focus(), 100);\r\n }\r\n e.preventDefault();\r\n e.stopPropagation();\r\n }\r\n\r\n get className() { return 'column-chooser-categories'; }\r\n\r\n get template() { return ColumnChooserTemplate; }\r\n\r\n get events() {\r\n return {\r\n 'click ul.category-tabs > li': _.bind(this.onTabClick, this),\r\n 'keydown ul.category-tabs': _.bind(this.onKeydownHandler, this),\r\n };\r\n }\r\n}\r\n","var pug = require(\"!../../../../../node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (model, view) {pug_html = pug_html + \"\\u003Cul\" + (\" class=\\\"category-tabs\\\"\"+\" tabindex=\\\"0\\\" role=\\\"tablist\\\"\"+pug.attr(\"aria-activedescendant\", model.currentActive, true, true)) + \"\\u003E\";\n// iterate model.categories\n;(function(){\n var $$obj = model.categories;\n if ('number' == typeof $$obj.length) {\n for (var index = 0, $$l = $$obj.length; index < $$l; index++) {\n var category = $$obj[index];\nvar ariaSelected = category.name === model.currentActive ? 'true' : 'false'\npug_html = pug_html + \"\\u003Cli\" + (pug.attr(\"class\", pug.classes([{active: category.name === model.currentActive}], [true]), false, true)+\" role=\\\"tab\\\"\"+pug.attr(\"id\", category.name, true, true)+pug.attr(\"data-category-name\", category.name, true, true)+pug.attr(\"aria-selected\", ariaSelected, true, true)+pug.attr(\"aria-controls\", `column-chooser-category-${index}`, true, true)+pug.attr(\"aria-label\", category.name, true, true)) + \"\\u003E\\u003Ca\" + (pug.attr(\"class\", pug.classes([{currentActive: category.name === model.currentActive}], [true]), false, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = category.name) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\nif (category.isNewCategory) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"new-feature-label\\\"\\u003E\" + (pug.escape(null == (pug_interp = view.i18n.getString('ColumnChooser_New')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fli\\u003E\";\n }\n } else {\n var $$l = 0;\n for (var index in $$obj) {\n $$l++;\n var category = $$obj[index];\nvar ariaSelected = category.name === model.currentActive ? 'true' : 'false'\npug_html = pug_html + \"\\u003Cli\" + (pug.attr(\"class\", pug.classes([{active: category.name === model.currentActive}], [true]), false, true)+\" role=\\\"tab\\\"\"+pug.attr(\"id\", category.name, true, true)+pug.attr(\"data-category-name\", category.name, true, true)+pug.attr(\"aria-selected\", ariaSelected, true, true)+pug.attr(\"aria-controls\", `column-chooser-category-${index}`, true, true)+pug.attr(\"aria-label\", category.name, true, true)) + \"\\u003E\\u003Ca\" + (pug.attr(\"class\", pug.classes([{currentActive: category.name === model.currentActive}], [true]), false, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = category.name) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\nif (category.isNewCategory) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"new-feature-label\\\"\\u003E\" + (pug.escape(null == (pug_interp = view.i18n.getString('ColumnChooser_New')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fli\\u003E\";\n }\n }\n}).call(this);\n\npug_html = pug_html + \"\\u003C\\u002Ful\\u003E\";}.call(this,\"model\" in locals_for_with?locals_for_with.model:typeof model!==\"undefined\"?model:undefined,\"view\" in locals_for_with?locals_for_with.view:typeof view!==\"undefined\"?view:undefined));;return pug_html;};\nmodule.exports = template;","import _ from 'underscore';\r\nimport { DeterministicView, helpers } from '@bingads-webui/deterministic-view';\r\nimport Template from './options-view-template.pug';\r\nimport { DefaultPicker } from '../default-picker/default-picker';\r\n\r\nconst { ensureChildView } = helpers;\r\n\r\n/**\r\n * @typedef {Object} OptionsViewState\r\n * @property describe your properties in the state here\r\n */\r\n\r\nexport class OptionsView extends DeterministicView {\r\n initialize(options) {\r\n this.options = options;\r\n _.bindAll(this, 'addColumns', 'removeColumns', 'updateColumn');\r\n }\r\n\r\n addColumns(columns) {\r\n this.trigger('addColumns', columns);\r\n }\r\n\r\n removeColumns(keys) {\r\n this.trigger('removeColumns', keys);\r\n }\r\n\r\n updateColumn(column) {\r\n this.trigger('updateColumn', column);\r\n }\r\n\r\n getChildAtIndex(index) {\r\n return this.getChild(`column-chooser-option-list-${index}`);\r\n }\r\n\r\n setState({\r\n categories,\r\n currentActive,\r\n selectedKeys = [],\r\n searchStr,\r\n }) {\r\n _.each(categories, (category, index) => {\r\n if (category.optionListViewFactory) {\r\n ensureChildView(this, `column-chooser-option-list-${index}`, category.optionListViewFactory, {\r\n categoryName: category.name,\r\n }, {\r\n addColumns: this.addColumns,\r\n removeColumns: this.removeColumns,\r\n updateColumn: this.updateColumn,\r\n }).setState({\r\n selectedKeys,\r\n searchStr,\r\n });\r\n } else if (category.options) {\r\n ensureChildView(this, `column-chooser-option-list-${index}`, DefaultPicker, {\r\n i18n: this.options.i18n,\r\n categoryName: category.name,\r\n }, {\r\n addColumns: this.addColumns,\r\n removeColumns: this.removeColumns,\r\n }).setState({\r\n selectedKeys,\r\n options: category.options,\r\n searchStr,\r\n });\r\n }\r\n });\r\n this.model.set({\r\n currentActive,\r\n categories,\r\n });\r\n }\r\n\r\n getState() {\r\n const { selectedKeys, options } = this.getChild('column-chooser-option-list-0').getState();\r\n\r\n return _.extend({}, { selectedKeys, filteredOptions: options }, super.getState());\r\n }\r\n\r\n get className() { return 'options-view'; }\r\n\r\n get template() { return Template; }\r\n}\r\n","var pug = require(\"!../../../../../../node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (model) {// iterate model.categories\n;(function(){\n var $$obj = model.categories;\n if ('number' == typeof $$obj.length) {\n for (var index = 0, $$l = $$obj.length; index < $$l; index++) {\n var category = $$obj[index];\npug_html = pug_html + \"\\u003Cdiv\" + (pug.attr(\"class\", pug.classes([\"column-chooser-option-list\",`column-chooser-option-list-${index}`], [false,true]), false, true)+pug.attr(\"id\", `column-chooser-category-${index}`, true, true)+pug.attr(\"style\", pug.style({display: model.currentActive === category.name ? 'block' : 'none'}), true, true)+\" aria-live=\\\"polite\\\"\") + \"\\u003E\\u003Cdiv\" + (pug.attr(\"data-ref\", `column-chooser-option-list-${index}`, true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n }\n } else {\n var $$l = 0;\n for (var index in $$obj) {\n $$l++;\n var category = $$obj[index];\npug_html = pug_html + \"\\u003Cdiv\" + (pug.attr(\"class\", pug.classes([\"column-chooser-option-list\",`column-chooser-option-list-${index}`], [false,true]), false, true)+pug.attr(\"id\", `column-chooser-category-${index}`, true, true)+pug.attr(\"style\", pug.style({display: model.currentActive === category.name ? 'block' : 'none'}), true, true)+\" aria-live=\\\"polite\\\"\") + \"\\u003E\\u003Cdiv\" + (pug.attr(\"data-ref\", `column-chooser-option-list-${index}`, true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n }\n }\n}).call(this);\n}.call(this,\"model\" in locals_for_with?locals_for_with.model:typeof model!==\"undefined\"?model:undefined));;return pug_html;};\nmodule.exports = template;","import _ from 'underscore';\r\nimport { DeterministicView } from '@bingads-webui/deterministic-view';\r\nimport { restoreScrollBarPosition } from '@bingads-webui/restore-scroll-bar';\r\nimport DefaultPickerTemplate from './default-picker-template.pug';\r\n\r\nclass OptionsNoKeyError extends Error {\r\n}\r\n\r\n/**\r\n * @typedef {Object} DefaultPickerState\r\n * @property describe your properties in the state here\r\n */\r\n\r\nexport class DefaultPicker extends DeterministicView {\r\n initialize({\r\n i18n,\r\n categoryName,\r\n } = {}) {\r\n this.i18n = i18n;\r\n this.categoryName = categoryName;\r\n restoreScrollBarPosition(this, '.column-chooser-options');\r\n }\r\n\r\n setState({\r\n selectedKeys = [],\r\n options,\r\n searchStr,\r\n }) {\r\n try {\r\n if (_.some(options, option => option.key === undefined)) {\r\n throw new OptionsNoKeyError(`column chooser option key cannot be undefined: ${JSON.stringify(options)}`);\r\n }\r\n } catch (e) {\r\n if (e instanceof OptionsNoKeyError) {\r\n throw e;\r\n }\r\n }\r\n const searchedOptions = _.isString(searchStr) ?\r\n _.chain(options)\r\n .filter(node => node.name.toLowerCase().indexOf(searchStr.toLowerCase()) !== -1).value()\r\n : options;\r\n const allSelected = _.chain(searchedOptions)\r\n .filter(node => node.disabled !== true)\r\n .pluck('key')\r\n .difference(selectedKeys)\r\n .value().length === 0;\r\n this.model.set({\r\n selectedKeys,\r\n allSelected,\r\n options: searchedOptions,\r\n });\r\n\r\n return this;\r\n }\r\n\r\n allToggle() {\r\n const options = this.model.get('options');\r\n const allSelected = this.model.get('allSelected');\r\n const allOptionalKeys = _.chain(options)\r\n .filter(option => !option.disabled && option.selectOption !== 'locked' && option.selectOption !== 'mandatory')\r\n .map(_.property('key'))\r\n .value();\r\n\r\n this.trigger(allSelected ? 'removeColumns' : 'addColumns', allOptionalKeys);\r\n }\r\n\r\n addColumn(e) {\r\n if (e.target.dataset.columnKey) {\r\n this.trigger('addColumns', [e.target.dataset.columnKey]);\r\n }\r\n }\r\n\r\n get className() {\r\n return 'column-chooser-default-option-list';\r\n }\r\n\r\n get template() {\r\n return DefaultPickerTemplate;\r\n }\r\n\r\n get events() {\r\n return {\r\n 'click .column-chooser-bulk-control': this.allToggle,\r\n 'click a.add-column-link': this.addColumn,\r\n };\r\n }\r\n}\r\n","module.exports = __WEBPACK_EXTERNAL_MODULE__178__;","var pug = require(\"!../../../../../../node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (model, view) {pug_html = pug_html + \"\\u003Cdiv class=\\\"column-chooser-bulk-control\\\"\\u003E\";\nif ((model.options && model.options.length !== 0)) {\nif ((model.allSelected)) {\npug_html = pug_html + \"\\u003Ca class=\\\"remove-all-in-list\\\" href=\\\"javascript:void(0);\\\" role=\\\"button\\\" data-focus-id=\\\"column-chooser-all-action\\\"\\u003E\" + (pug.escape(null == (pug_interp = view.i18n.getString('ColumnChooser_RemoveAllInList')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Ca class=\\\"add-all-in-list\\\" href=\\\"javascript:void(0);\\\" role=\\\"button\\\" data-focus-id=\\\"column-chooser-all-action\\\"\\u003E\" + (pug.escape(null == (pug_interp = view.i18n.getString('ColumnChooser_AddAllInList')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n}\n}\npug_html = pug_html + \"\\u003Cspan class=\\\"arrow-button enabled\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cul\" + (\" class=\\\"column-chooser-options\\\"\"+\" role=\\\"listbox\\\"\"+pug.attr(\"aria-labelledby\", view.categoryName, true, true)) + \"\\u003E\";\nif ((model.options.length && model.options.length > 0)) {\n// iterate model.options\n;(function(){\n var $$obj = model.options;\n if ('number' == typeof $$obj.length) {\n for (var index = 0, $$l = $$obj.length; index < $$l; index++) {\n var option = $$obj[index];\nvar isSelected = (model.selectedKeys.indexOf(option.key) >= 0)\nvar disabled = (option.disabled)\npug_html = pug_html + (\"\\u003Cli\" + (\" class=\\\"option\\\"\"+pug.attr(\"aria-selected\", isSelected ? 'true' : 'false', true, true)+\" role=\\\"option\\\"\") + \"\\u003E\\u003Cspan\" + (pug.attr(\"class\", pug.classes([\"option-name\",disabled ? 'option-disabled': (isSelected ? 'option-selected' : 'option-not-selected')], [false,true]), false, true)+pug.attr(\"title\", option.name, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = option.name) ? \"\" : pug_interp)));\nif ((option.helpTopic)) {\npug_html = pug_html + \"\\u003Ca\" + (pug.attr(\"class\", pug.classes([\"helpbutton\",disabled ? 'option-disabled' : ''], [false,true]), false, true)+pug.attr(\"topic\", option.helpTopic, true, true)+\" type=\\\"helppopup\\\" onclick=\\\"PopupController.PopupJsClick(this)\\\" href=\\\"javascript:void(0);\\\"\") + \"\\u003E\\u003C\\u002Fa\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fspan\\u003E\";\nif ((option.isNewColumn)) {\npug_html = pug_html + \"\\u003Cspan class=\\\"new-feature-label\\\"\\u003E\" + (pug.escape(null == (pug_interp = view.i18n.getString('ColumnChooser_New')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\nif ((option.disabled === true)) {\npug_html = pug_html + \"\\u003Cspan class=\\\"option-status option-disabled\\\"\\u003E\" + (pug.escape(null == (pug_interp = view.i18n.getString('ColumnChooser_Disabled')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\nelse\nif (isSelected) {\npug_html = pug_html + \"\\u003Cspan\" + (pug.attr(\"class\", pug.classes([\"option-status\",(option.selectOption === 'locked' || option.selectOption === 'mandatory' ? 'option-disabled' : 'enabled')], [false,true]), false, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = view.i18n.getString('ColumnChooser_Added')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"add-column-link clickable\\\"\"+\" href=\\\"javascript:void(0);\\\" role=\\\"button\\\" tabindex=\\\"0\\\"\"+pug.attr(\"aria-label\", view.i18n.getString('ColumnChooser_AddColumn', { columnName: option.name }), true, true)+pug.attr(\"data-column-key\", option.key, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = view.i18n.getString('ColumnChooser_Add')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fli\\u003E\";\n }\n } else {\n var $$l = 0;\n for (var index in $$obj) {\n $$l++;\n var option = $$obj[index];\nvar isSelected = (model.selectedKeys.indexOf(option.key) >= 0)\nvar disabled = (option.disabled)\npug_html = pug_html + (\"\\u003Cli\" + (\" class=\\\"option\\\"\"+pug.attr(\"aria-selected\", isSelected ? 'true' : 'false', true, true)+\" role=\\\"option\\\"\") + \"\\u003E\\u003Cspan\" + (pug.attr(\"class\", pug.classes([\"option-name\",disabled ? 'option-disabled': (isSelected ? 'option-selected' : 'option-not-selected')], [false,true]), false, true)+pug.attr(\"title\", option.name, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = option.name) ? \"\" : pug_interp)));\nif ((option.helpTopic)) {\npug_html = pug_html + \"\\u003Ca\" + (pug.attr(\"class\", pug.classes([\"helpbutton\",disabled ? 'option-disabled' : ''], [false,true]), false, true)+pug.attr(\"topic\", option.helpTopic, true, true)+\" type=\\\"helppopup\\\" onclick=\\\"PopupController.PopupJsClick(this)\\\" href=\\\"javascript:void(0);\\\"\") + \"\\u003E\\u003C\\u002Fa\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fspan\\u003E\";\nif ((option.isNewColumn)) {\npug_html = pug_html + \"\\u003Cspan class=\\\"new-feature-label\\\"\\u003E\" + (pug.escape(null == (pug_interp = view.i18n.getString('ColumnChooser_New')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\nif ((option.disabled === true)) {\npug_html = pug_html + \"\\u003Cspan class=\\\"option-status option-disabled\\\"\\u003E\" + (pug.escape(null == (pug_interp = view.i18n.getString('ColumnChooser_Disabled')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\nelse\nif (isSelected) {\npug_html = pug_html + \"\\u003Cspan\" + (pug.attr(\"class\", pug.classes([\"option-status\",(option.selectOption === 'locked' || option.selectOption === 'mandatory' ? 'option-disabled' : 'enabled')], [false,true]), false, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = view.i18n.getString('ColumnChooser_Added')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"add-column-link clickable\\\"\"+\" href=\\\"javascript:void(0);\\\" role=\\\"button\\\" tabindex=\\\"0\\\"\"+pug.attr(\"aria-label\", view.i18n.getString('ColumnChooser_AddColumn', { columnName: option.name }), true, true)+pug.attr(\"data-column-key\", option.key, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = view.i18n.getString('ColumnChooser_Add')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fli\\u003E\";\n }\n }\n}).call(this);\n\n}\nelse {\npug_html = pug_html + \"\\u003Cdiv aria-live=\\\"assertive\\\" role=\\\"alert\\\" style=\\\"\\n display: flex;\\n align-items: center;\\n justify-content: center;\\n height: 100%;\\n\\\"\\u003E\" + (pug.escape(null == (pug_interp = view.i18n.getString('ColumnChooser_NoSearchResult')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Ful\\u003E\";}.call(this,\"model\" in locals_for_with?locals_for_with.model:typeof model!==\"undefined\"?model:undefined,\"view\" in locals_for_with?locals_for_with.view:typeof view!==\"undefined\"?view:undefined));;return pug_html;};\nmodule.exports = template;","import { DeterministicView } from '@bingads-webui/deterministic-view';\r\nimport Template from './selected-list-item-template.pug';\r\n\r\nconst KEYS = {\r\n ArrowLeft: 'ArrowLeft',\r\n};\r\n\r\n/**\r\n * @typedef {Object} SelectedListItemState\r\n * @property describe your properties in the state here\r\n */\r\n\r\nexport class SelectedListItem extends DeterministicView {\r\n removeItem(e) {\r\n this.trigger('remove', [this.$(e.target).closest('span.remove')[0].dataset.itemKey]);\r\n }\r\n\r\n /**\r\n *\r\n * @param {KeyboardEvent} e - keyboard event\r\n * @returns {void}\r\n */\r\n onKeyDown(e) {\r\n if (e.target !== e.currentTarget) {\r\n return;\r\n }\r\n\r\n const acceptableKeysReg = new RegExp(`(${Object.values(KEYS).join('|')})`);\r\n\r\n const triggerKey = e.key;\r\n if (!acceptableKeysReg.test(triggerKey)) {\r\n return;\r\n }\r\n\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n switch (triggerKey) {\r\n case KEYS.ArrowLeft:\r\n this.$el.trigger('focusRequestFromChildren');\r\n break;\r\n default:\r\n throw new Error('unhandled availiable key!');\r\n }\r\n }\r\n\r\n get className() { return 'selected-list-item'; }\r\n\r\n get template() { return Template; }\r\n\r\n get events() {\r\n return {\r\n 'click span.remove': 'removeItem',\r\n 'keydown span.remove': 'onKeyDown',\r\n };\r\n }\r\n}\r\n","var pug = require(\"!../../../../../node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (model) {if (model.selectOption !== 'locked') {\npug_html = pug_html + \"\\u003Cspan class=\\\"trigger-icon\\\"\\u003E\\u003C\\u002Fspan\\u003E\";\n}\npug_html = pug_html + \"\\u003Cspan\" + (\" class=\\\"selected-item-name\\\"\"+pug.attr(\"title\", model.name || model.key, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = model.name || model.key) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\nif (model.selectOption !== 'locked' && model.selectOption !== 'mandatory') {\npug_html = pug_html + \"\\u003Cspan\" + (\" class=\\\"remove focusable clickable\\\"\"+pug.attr(\"data-item-key\", model.key, true, true)+\" tabindex=\\\"0\\\" role=\\\"button\\\"\"+pug.attr(\"aria-label\", model.i18n.getString('ColumnChooser_RemoveColumn', { columnName: model.name || model.key }), true, true)) + \"\\u003E\\u003Ca class=\\\"a11y-delete\\\" href=\\\"javascript:void(0);\\\" tabindex=\\\"-1\\\" draggable=\\\"false\\\"\\u003E\" + (pug.escape(null == (pug_interp = model.i18n.getString('ColumnChooser_Remove')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fspan\\u003E\";\n}}.call(this,\"model\" in locals_for_with?locals_for_with.model:typeof model!==\"undefined\"?model:undefined));;return pug_html;};\nmodule.exports = template;","import _ from 'underscore';\r\nimport { DeterministicView, helpers } from '@bingads-webui/deterministic-view';\r\nimport Template from './save-column-template.pug';\r\n\r\nconst { updateView } = helpers;\r\n\r\nexport class SaveColumn extends DeterministicView {\r\n initialize(options) {\r\n this.i18n = options.i18n;\r\n _.bindAll(this, 'updateSavedName', 'toggleSavingColumns');\r\n }\r\n\r\n updateSavedName(e) {\r\n updateView(this, {\r\n savedName: e.target.value,\r\n });\r\n }\r\n\r\n toggleSavingColumns(e) {\r\n updateView(this, {\r\n isSavingColumn: e.target.checked,\r\n savedName: e.target.checked ? '' : null,\r\n });\r\n }\r\n\r\n get className() { return 'save-column-view'; }\r\n\r\n get template() { return Template; }\r\n\r\n get events() {\r\n return {\r\n 'change input.column-chooser-saved-name': this.updateSavedName,\r\n 'change input.save-column-checkbox': this.toggleSavingColumns,\r\n };\r\n }\r\n}\r\n","var pug = require(\"!../../../../../node_modules/pug-runtime/index.js\");\n\nfunction template(locals) {var pug_html = \"\", pug_mixins = {}, pug_interp;;var locals_for_with = (locals || {});(function (model, view) {if (model.isSaveNameEnabled) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"save-checkbox\\\"\\u003E\\u003Clabel class=\\\"column-chooser-save-column\\\"\\u003E\\u003Cinput\" + (\" class=\\\"save-column-checkbox\\\"\"+\" type=\\\"checkbox\\\"\"+pug.attr(\"checked\", model.isSavingColumn, true, true)+\" data-focus-id=\\\"save-column-checkbox\\\"\") + \"\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = view.i18n.getString('ColumnChooser_SaveColumnDescription')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Flabel\\u003E\\u003Cinput\" + (\" class=\\\"column-chooser-saved-name\\\"\"+\" type=\\\"text\\\" maxlength=\\\"100\\\"\"+pug.attr(\"style\", pug.style({visibility: model.isSavingColumn ? 'visible' : 'hidden'}), true, true)+pug.attr(\"value\", model.savedName, true, true)+pug.attr(\"aria-label\", view.i18n.getString('ColumnChooser_SaveColumnDescription'), true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}}.call(this,\"model\" in locals_for_with?locals_for_with.model:typeof model!==\"undefined\"?model:undefined,\"view\" in locals_for_with?locals_for_with.view:typeof view!==\"undefined\"?view:undefined));;return pug_html;};\nmodule.exports = template;","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"@bingads-webui/listener\"), require(\"underscore.string\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"@bingads-webui/listener\", \"underscore.string\"], factory);\n\telse {\n\t\tvar a = typeof exports === 'object' ? factory(require(\"@bingads-webui/listener\"), require(\"underscore.string\")) : factory(root[\"@bingads-webui/listener\"], root[\"underscore.string\"]);\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})((typeof self !== 'undefined' ? self : this), function(__WEBPACK_EXTERNAL_MODULE__5__, __WEBPACK_EXTERNAL_MODULE__13__) {\nreturn ","module.exports = __WEBPACK_EXTERNAL_MODULE__5__;","export { ConsoleListener } from './src/index';\r\n","import { include } from 'underscore.string';\r\nimport { Listener } from '@bingads-webui/listener';\r\n\r\n/**\r\n * Console listener class\r\n */\r\nexport class ConsoleListener extends Listener {\r\n constructor(options = {}) {\r\n super(options);\r\n\r\n this.formatters = options.formatters || [];\r\n this.filters = options.filters || [];\r\n }\r\n\r\n init() {\r\n this.initialized = true;\r\n }\r\n\r\n /* eslint-disable no-console */\r\n write(logMessage) {\r\n if (!this.initialized || this.filterLogs(logMessage)) {\r\n return;\r\n }\r\n\r\n const formattedMsg = this.formatLogs(logMessage);\r\n\r\n const category = logMessage.logCategory || '';\r\n if (include(category.toLowerCase(), 'error')) {\r\n console.error(formattedMsg);\r\n } else {\r\n console.log(formattedMsg);\r\n }\r\n\r\n // TODO: use console.timeStamp for activity perf marker\r\n }\r\n}\r\n","module.exports = __WEBPACK_EXTERNAL_MODULE__13__;"],"names":["installedModules","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","__WEBPACK_EXTERNAL_MODULE__13__","isValidCardId","id","_","has","this","cards","initCardView","cardAttr","attr","extend","defaults","title","showToolbar","content","preDefinedMenuItems","helpIconAttr","holderView","CardHolder","view","i18n","enableDragAndDrop","config","dragAndDrop","sizeOption","showMenuIcon","on","e","action","delete","layouts","resizeHolder","args","trigger","renderCard","insertBeforeId","render","layoutHolder","insertBeforeCard","Error","$el","insertBefore","$cardContainer","append","el","attachedToDocument","relayout","CardPanel","Backbone","View","initialize","dragHintSelector","dragHandlerSelector","debug","getString","identity","layoutOptions","initialWidth","Layouts","options","sizeInfo","defer","each","card","renderOnce","once","html","length","dropCallback","setupDragAndDrop","add","attrs","silent","attrsToAdd","isArray","ids","map","idsToDelete","idsDeleted","remove","push","updateContent","updatePreDefinedMenuItems","clearDragAndDrop","super","handler","ignore","className","$","cardsOrder","find","selector","holder","dataset","builtInMenuItemsConfig","updateCustomMenuItems","replace","customMenuView","customMenuItems","setupCustomMenuView","updateCustomMenuView","setupContentEvents","newTitle","viewModel","moreOptionsLabel","item","refreshPreDefinedMenuItems","width","buildMenuItems","removeAll","rebindPreDefinedMenuItemEvents","uniqueId","isPlaceHolderContent","EmptyCard","currentLayout","menuItems","staticEvents","events","CardHolderViewModel","contains","document","documentElement","first","getContentContainer","unblock","withUiBlock","items","preset","numValue","Date","getUTCMilliseconds","menuData","children","text","displayText","divider","disabled","data","pluck","constructDropDownMenuData","MultilevelDropdown","attributes","onCustomMenuSelected","isObject","menuItem","update","event","onMenuAction","names","menuItemConfig","getBuiltInMenuItemsConfig","selected","result","option","supportedWidth","isEmpty","max","allowIncreaseSize","min","allowDecreaseSize","matchSizeSelected","updateState","layout","size","reason","getDynamicEventsForPreDefinedMenuItems","delegateEvents","eventSelector","requestingHelp","ko","applyBindings","setWidth","css","setHeight","height","Divider","class","Close","Add","Refresh","Hide","Help","Enlarge","type","Shrink","SmallSize","MediumSize","LargeSize","__WEBPACK_EXTERNAL_MODULE__149__","__WEBPACK_EXTERNAL_MODULE__150__","constructor","observable","showMenu","observableArray","setAppliedClass","helpIconCss","helpIconOnClick","window","PopupController","PopupJsClick","target","appliedClass","pureComputed","disabledClass","selectedClass","pug","require","locals","pug_interp","pug_html","pug_mixins","locals_for_with","block","escape","undefined","columnWidthMap","defaultLayoutOptions","small","breakpoint","columnNumber","minCardSize","maxCardSize","defaultHeight","medium","large","panelClass","containerClass","clapSize","candidate","Events","defaultCardSize","index","breakpoints","currentScreenKey","getScreenSizeKey","holderWidthOverride","initialContainerWidth","targetWidth","isUndefined","containerWidth","filter","b","findKey","onResized","newScreenKey","clearLayout","removeClass","clearHolderLayout","addClass","resizeDetector","ResizeDetector","callback","allWidth","newWidth","resizeHolderForScreenKey","currentWidth","biggerResult","smallerResult","sort","a","resizeAllLayouts","ret","isNull","newLayout","detectorStyle","childStyle","$resizeDetector","style","$expand","$shrink","$expandChild","$shrinkChild","appendTo","lastRange","getCurrentRange","resetScrollState","lastWidth","points","point","scrollLeft","scrollWidth","hintSelector","dragAndDropOptions","kendoSortableOptions","hint","element","hintElement","clone","draggableHintEffectClass","placeholder","draggableDraggingEffectClass","change","isFunction","oldIndex","newIndex","kendoSortable","destroy","__WEBPACK_EXTERNAL_MODULE__157__","__WEBPACK_EXTERNAL_MODULE__43__","__WEBPACK_EXTERNAL_MODULE__61__","__WEBPACK_EXTERNAL_MODULE__8__","__WEBPACK_EXTERNAL_MODULE__9__","defaultAjaxOptions","xhrFields","withCredentials","headers","ccBaseUrl","ccJsData","baseCustomerUrl","getUserPreferences","uid","UserPreference","findAll","url","concat","Promise","resolve","ajax","setUserPreferences","reject","success","response","error","xhr","status","getCustomers","getCustomersListUrl","rurl","location","href","getRecentAccesssEntities","cid","limit","getRecentAccesssEntitiesUrl","getCustomerHierarchy","searchTerm","start","returnOnlyDirectlyLinkedEntities","targetCid","CustomerHierarchy","params","bypassCache","getCustomerHierarchyUrl","getAncestorHierarchyPath","entityId","isCustomer","AncestorHierarchyPath","getAncestorHierarchyPathUrl","getAccount","__WEBPACK_EXTERNAL_MODULE__17__","__WEBPACK_EXTERNAL_MODULE__102__","__WEBPACK_EXTERNAL_MODULE__103__","ColumnChooserEditablePicker","DeterministicView","allColumnOptions","model","set","validOptions","isValid","categoryName","isReadOnlyUser","tooltipView","getDeterministicTooltipView","addColumnAriaLabel","setChild","String","setState","selectedKeys","searchStr","updateOptions","searchedOptions","isString","chain","node","toLowerCase","indexOf","validSearchedOptions","allSelected","difference","findConfigWithKey","allToggle","allOptionalKeys","addColumn","columnKey","removeCustomColumnByKey","p$removeColumn","then","catch","noop","removeCustomColumn","editCustomColumn","findIndex","p$editColumn","edited","newOptions","slice","splice","createCustomColumn","p$createColumn","newColumnOption","addedColumnOption","template","EditablePickerTemplate","$$obj","$$l","isSelected","classes","selectOption","optionContent","DeterministicViewForBackBoneView","OptionToolTipBackBoneView","OptionToolTip","TooltipHost","role","tabIndex","propTypes","PropTypes","string","shape","isRequired","defaultProps","ReactDOM","unmountComponentAtNode","__WEBPACK_EXTERNAL_MODULE__182__","__WEBPACK_EXTERNAL_MODULE__183__","__WEBPACK_EXTERNAL_MODULE__184__","__WEBPACK_EXTERNAL_MODULE__19__","__WEBPACK_EXTERNAL_MODULE__10__","ensureChildView","helpers","updateView","DraggableListActionStringMapping","LiftItem","MoveItem","DropItem","traceSearchInfo","debounce","logger","searchResultCount","trace","JSON","stringify","searchText","ColumnChooser","isDataInitialized","originSelected","instrumentation","setupInstrumentation","general","bindAll","activateCategory","currentActive","getState","getOptionsKeys","flatten","categories","getChild","category","optionListViewFactory","getChildAtIndex","condition","finalizedCondition","locked","mandatory","optional","candidateConfigs","compact","candidateWithI18n","targetItems","noTargetItems","addColumns","keys","lockedItems","draggableItems","isSplittingSelectedArea","topResult","bottomResult","allItems","toAddToLocked","toAddToDraggable","every","column","announce","addedColumns","focus","removedColumns","withColumnsChangeAnnouncement","liveRegion","columnNames","join","removeColumns","draggable","updateColumn","apply","state","payload","savedName","simplified","originSelectedColumnKeys","currentSelectedColumnKeys","cancel","external","isSaveNameEnabled","legnth","activeListName","CategoryTabs","isNewCategory","OptionsView","topItemSet","forEach","entry","draggableTopItems","draggableBottomItems","lockedTopItems","lockedBottomItems","DraggableList","getDraggableListConfig","ariaLabel","SaveColumn","isSavingColumn","val","afterDrop","itemViewFactory","itemView","SelectedListItem","listenTo","getAnnouncement","positionFrom","positionTo","lockedItemsLength","columnName","eq","removeAllSelected","mustHaveItems","mustHaveItemsKeys","newState","selectOptions","searchColumn","filteredOptions","ColumnChooserTemplateSimplifiedSplit","ColumnChooserTemplateSplit","ColumnChooserTemplateSimplified","ColumnChooserTemplate","scenario","activity","addScenario","instrumentationSchema","__WEBPACK_EXTERNAL_MODULE__168__","subHeaderText","onTabClick","newActive","closest","onKeydownHandler","triggerKey","keyCode","which","ArrowDown","ArrowUp","activeCategory","activeIndex","click","delay","preventDefault","stopPropagation","ariaSelected","active","columns","DefaultPicker","Template","display","OptionsNoKeyError","restoreScrollBarPosition","some","DefaultPickerTemplate","__WEBPACK_EXTERNAL_MODULE__178__","helpTopic","isNewColumn","KEYS","ArrowLeft","removeItem","itemKey","onKeyDown","currentTarget","acceptableKeysReg","RegExp","values","test","updateSavedName","toggleSavingColumns","checked","visibility","factory","self","__WEBPACK_EXTERNAL_MODULE__5__","ConsoleListener","Listener","formatters","filters","init","initialized","write","logMessage","filterLogs","formattedMsg","formatLogs","logCategory","include","console","log"],"sourceRoot":""}