{"version":3,"file":"static/js/application.initial~a936c738.10e26f89.js","mappings":"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","sources":["../webpack/bootstrap","../../../../../../../../external/urijs","../webpack-src:/router/index.js","../webpack-src:/router/src/index.es","../../../../../../../../external/underscore","../webpack/universalModuleDefinition","../webpack-src:/safe-json/index.ts","../webpack-src:/safe-json/src/index.ts","../../../../../../../../external/@bingads-webui/keycode","../../../../../../../../external/pug-runtime","../webpack-src:/search-box/index.js","../webpack-src:/search-box/src/view/index.es","../webpack-src:/search-box/src/template/index.pug","../webpack-src:/search-box/src/viewmodel/index.es","../../../../../../../../external/knockout","../../../../../../../../external/backbone","../webpack-src:/search-utils/index.js","../webpack-src:/search-utils/src/index.js","../webpack-src:/search-utils/src/search-questions.js","../../../../../../../../external/fast-levenshtein","../webpack-src:/search-utils/src/data.js","../webpack-src:/search-utils/src/map-current-page-to-page-group.js","../../../../../../../../external/bluebird","../../../../../../../../external/@bingads-webui/deterministic-view","../webpack-src:/selector/index.js","../webpack-src:/selector/src/index.es","../../../../../../../../external/@bingads-webui/search-box","../../../../../../../../external/@bingads-webui/deflicker","../../../../../../../../external/projection-grid","../webpack-src:/selector/src/pill-control/index.es","../webpack-src:/selector/src/pill-control/template.pug","../webpack-src:/selector/src/template/index.pug","../webpack-src:/selector/src/view-model.es","../webpack-src:/shadow-tree/index.js","../webpack-src:/shadow-tree/src/shadow-tree.es","../../../../../../../../external/@bingads-webui-universal/primitive-utilities","../../../../../../../../external/@bingads-webui/validation","../../../../../../../../external/jquery","../webpack-src:/simple-form/index.js","../webpack-src:/simple-form/src/index.es","../webpack-src:/simple-form/src/view/simple-form.js","../webpack-src:/simple-form/src/view/field/generate.es","../webpack-src:/simple-form/src/view/field/type.es","../webpack-src:/simple-form/src/view/field/boolean.es","../webpack-src:/simple-form/src/view/field/enum.es","../webpack-src:/simple-form/src/view/field/integer.es","../webpack-src:/simple-form/src/view/field/number.es","../webpack-src:/simple-form/src/view/field/string.es","../webpack-src:/simple-form/src/view/field/control.js","../webpack-src:/simple-form/src/template/simple-form/control/text-input.pug","../webpack-src:/simple-form/src/template/simple-form/control/textarea.pug","../webpack-src:/simple-form/src/template/simple-form/control/select-input.pug","../webpack-src:/simple-form/src/template/simple-form/control/checkbox-input.pug","../webpack-src:/simple-form/src/template/simple-form/control/radios-input.pug","../webpack-src:/simple-form/src/template/simple-form/control/inline-radios-input.pug","../webpack-src:/simple-form/src/template/simple-form/control/static.pug","../webpack-src:/simple-form/src/view/util.es","../webpack-src:/simple-form/src/view/sidebar/generator.es","../../../../../../../../external/underscore.string","../webpack-src:/simple-form/src/view/sidebar/aggregate-length.es","../webpack-src:/simple-form/src/template/sidebar/aggregate-length.pug","../webpack-src:/simple-form/src/template/sidebar/wrapper.pug","../webpack-src:/simple-form/src/template/simple-form/layout/horizontal.pug","../webpack-src:/simple-form/src/template/simple-form/layout/inline.pug","../webpack-src:/simple-form/src/template/simple-form/control/label.pug","../webpack-src:/simple-form/src/template/simple-form/control/buttons.pug","../webpack-src:/simple-form/src/template/simple-form/control/validation.pug","../webpack-src:/simple-form/src/viewmodel/simple-form.es","../../../../../../../../external/@bingads-webui/ko-schema","../webpack-src:/simple-form/src/viewmodel/control/index.es","../webpack-src:/simple-form/src/viewmodel/control/checkbox.es","../webpack-src:/simple-form/src/viewmodel/control/radios.es","../webpack-src:/simple-form/src/viewmodel/control/select.es","../webpack-src:/simple-form/src/viewmodel/control/text.es","../webpack-src:/simple-form/src/viewmodel/control/readonly-computed.es","../webpack-src:/simple-form/src/viewmodel/control/textarea.es","../webpack-src:/simple-form/src/viewmodel/control/label.es","../webpack-src:/simple-form/src/viewmodel/control/visible.es","../webpack-src:/simple-form/src/viewmodel/control/collapse.es","../webpack-src:/simple-form/src/service/status.es","../webpack-src:/simple-form/src/viewmodel/control/static.js","../webpack-src:/simple-form/src/viewmodel/control/group.es","../webpack-src:/state-store/index.ts","../webpack-src:/state-store/src/state-store.ts","../../../../../../../../external/@bingads-webui-universal/observable","../webpack-src:/steps-wizard/index.js","../webpack-src:/steps-wizard/src/view/index.es","../webpack-src:/steps-wizard/src/template/layout-horizontal.pug","../webpack-src:/steps-wizard/src/template/layout-vertical.pug","../webpack-src:/steps-wizard/src/template/action.pug","../webpack-src:/steps-wizard/src/template/header.pug","../webpack-src:/steps-wizard/src/view/base-step-view.es","../webpack-src:/steps-wizard/src/builder/index.es","../webpack-src:/steps-wizard/src/template/header-with-pencil.pug","../webpack-src:/storage/index.js","../webpack-src:/storage/src/local-storage.js","../webpack-src:/storage/src/memory-storage.js","../webpack-src:/storage/src/session-storage.js","../webpack-src:/toolbar/index.js","../webpack-src:/toolbar/src/index.es","../../../../../../../../external/backbone-toolbar","../webpack-src:/toolbar/src/search-box.es","../webpack-src:/toolbar/src/template/search-box.pug","../webpack-src:/toolbar/src/selector.es","../webpack-src:/toolbar/src/template/selector.pug","../webpack-src:/toolbar/src/pill-control.es","../webpack-src:/toolbar/src/template/pill-control.pug","../webpack-src:/toolbar/src/text-view.es","../webpack-src:/toolbar/src/template/text-view.pug","../webpack-src:/toolbar/src/toolbar-view.es","../webpack-src:/uiblocker/index.js","../webpack-src:/uiblocker/src/index.es","../webpack-src:/uiblocker/src/view/index.es","../webpack-src:/uiblocker/src/template/uiBlocker.pug","../webpack-src:/uiblocker/src/template/uiBlocker-container.pug"],"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 = 473);\n","module.exports = __WEBPACK_EXTERNAL_MODULE__118__;","\r\n\r\nexport { Router } from './src/index';\r\n","import _ from 'underscore';\r\nimport URI from 'urijs';\r\n\r\nlet lastHash;\r\n\r\nconst specificDigitsParams = {\r\n accountId: 'aid',\r\n customerId: 'cid',\r\n id: 'id',\r\n userId: 'uid',\r\n};\r\n\r\nconst specificDigitsParamsValues = _.values(specificDigitsParams);\r\n\r\nconst isDigits = s => /^\\d+$/.test(s);\r\n\r\nconst mapSpecificsParams = params => _.mapObject(params, (value, key) => {\r\n if (_.contains(specificDigitsParamsValues, key) && _.isArray(value)) {\r\n // In case of an array of params values is returns,\r\n // we return the 1st digit value or undefined if none\r\n return _.find(value, isDigits);\r\n }\r\n return value;\r\n});\r\n\r\n/**\r\n * This class is a wrapper of HTML5 History API and stores no data itself\r\n */\r\nexport class Router {\r\n /**\r\n * An alias of window.history.back();\r\n * @returns {undefined} - perform window.history.back()\r\n */\r\n static back() {\r\n window.history.back();\r\n }\r\n\r\n /**\r\n * An alias of window.history.forward();\r\n * @returns {undefined} - perform window.history.forward()\r\n */\r\n static forward() {\r\n window.history.forward();\r\n }\r\n\r\n /**\r\n * A wrapper of window.history.go();\r\n * @param {interger|string} numberOrUrl - (required) The parameter can either be a number which\r\n * goes to the URL within the specific\r\n * position (-1 goes back one page, 1 goes\r\n * forward one page),or a string.The string\r\n * must be a partial or full URL,and the\r\n * function will go to the first URL that\r\n * matches the string.\r\n * @returns {undefined} - perform window.history.go()\r\n */\r\n static go(numberOrUrl) {\r\n window.history.go(numberOrUrl);\r\n }\r\n\r\n /**\r\n * Convert route state to URL hash\r\n * @param {object} state - (required) the route state need to be converted\r\n *\r\n * @returns {string} the URL hash string.\r\n */\r\n static formatHash(state) {\r\n const generateHashForEachLevel = (level) => {\r\n const paramsString = _.isEmpty(_.compact(level.parameters)) ? '' :\r\n `(${_.map(level.parameters, encodeURIComponent).join(',')})`;\r\n\r\n return `/${encodeURIComponent(level.name)}${paramsString}`;\r\n };\r\n\r\n const path = _.isEmpty(state.levels) ? '/' :\r\n _.map(state.levels, generateHashForEachLevel).join('');\r\n\r\n const query = _.isEmpty(state.properties) ? '' :\r\n `?${URI.buildQuery(state.properties, false, false)}`;\r\n\r\n return `#${path}${query}`;\r\n }\r\n\r\n /**\r\n * Convert URL hash to route state\r\n * @param {string} hash - (required) the hash need to be converted\r\n *\r\n * @returns {object} the route state\r\n */\r\n static parseHash(hash) {\r\n const [, path, query] = /^#([^?]+)(?:\\?([^?]*))?$/.exec(hash);\r\n const levels = _.chain((path || '').split('/'))\r\n .reject(_.isEmpty)\r\n .map((level) => {\r\n const res = /^([^(]+)(?:\\(([^)]*)\\))?$/.exec(level);\r\n return {\r\n name: decodeURIComponent(res[1]),\r\n parameters: _.map(\r\n decodeURIComponent(res[2] || '').split(','),\r\n param => param.trim()\r\n ),\r\n };\r\n }).value();\r\n\r\n const properties = URI.parseQuery(query);\r\n\r\n return {\r\n levels,\r\n properties,\r\n };\r\n }\r\n\r\n /**\r\n * Convert URL path and query to route state\r\n * @param {string} url - (required) the url need to be converted\r\n *\r\n * @returns {object} the route state\r\n */\r\n static parsePathAndQuery(url) {\r\n const uri = new URI(url);\r\n const params = URI.parseQuery(uri.query());\r\n const levels = _.map(uri.segment(), level =>\r\n _.object(['name', 'parameters'], [decodeURIComponent(level), null]));\r\n\r\n return {\r\n levels,\r\n properties: mapSpecificsParams(params),\r\n };\r\n }\r\n\r\n /**\r\n * Perform a navigation based on the new route state\r\n * @param {object|string} route - (required) The parameter can either be a route state\r\n * or a URL hash string\r\n * @returns {undefined} - perform URL change\r\n */\r\n static navigate(route) {\r\n if (_.isObject(route)) {\r\n window.location.hash = this.formatHash(route);\r\n } else {\r\n window.location.href = route;\r\n }\r\n }\r\n\r\n /**\r\n * Calls the callback with a route state object on navigation\r\n * @param {function} callback - (required) The callback function for navigation\r\n * @returns {undefined} - listen to event and perform callback\r\n */\r\n static onNavigate(callback) {\r\n const navigationHandler = () => {\r\n if (lastHash !== window.location.hash) {\r\n lastHash = window.location.hash;\r\n callback(this.parseHash(lastHash));\r\n }\r\n };\r\n\r\n // Polyfill for IE 11\r\n window.addEventListener('popstate', navigationHandler);\r\n window.addEventListener('hashchange', navigationHandler);\r\n }\r\n}\r\n","module.exports = __WEBPACK_EXTERNAL_MODULE__8__;","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"underscore\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"underscore\"], factory);\n\telse {\n\t\tvar a = typeof exports === 'object' ? factory(require(\"underscore\")) : factory(root[\"underscore\"]);\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__7__) {\nreturn ","export * from './src/index';\r\n","import _ from 'underscore';\r\n\r\nexport function parse(json: string, cb: (err: Error | undefined, data?: any) => void) {\r\n try {\r\n cb(undefined, JSON.parse(json));\r\n } catch (err: any) {\r\n cb(err);\r\n }\r\n}\r\n\r\nexport function parseSync(json: string) {\r\n try {\r\n return JSON.parse(json);\r\n } catch (err) {\r\n return undefined;\r\n }\r\n}\r\n\r\nexport function stringifySync(obj: any) {\r\n try {\r\n return JSON.stringify(obj);\r\n } catch (err) {\r\n return '';\r\n }\r\n}\r\n\r\ntype IndexArray = (string | number)[]\r\ntype Cycle = { inner: IndexArray, outer: IndexArray, str: string } | null\r\n\r\nexport function findCycle(obj?: any) {\r\n const stackObj = [obj];\r\n const stackKey: Array = ['[obj]'];\r\n\r\n function step(innerObj: any) {\r\n let result: Cycle = null;\r\n const stackIndex = _.indexOf(stackObj, innerObj);\r\n\r\n if (stackIndex !== -1 && stackIndex !== stackObj.length - 1) {\r\n const inner = _.tail(stackKey, 0);\r\n const outer = _.head(stackKey, stackIndex + 1);\r\n return {\r\n inner,\r\n outer,\r\n str: `${inner.join('.')} === ${outer.join('.')}`,\r\n };\r\n }\r\n\r\n _.each(innerObj, (val, key) => {\r\n if (!!result || !_.isObject(val)) {\r\n return;\r\n }\r\n stackObj.push(val);\r\n stackKey.push(key);\r\n\r\n result = result || step(val);\r\n\r\n stackObj.pop();\r\n stackKey.pop();\r\n });\r\n return result;\r\n }\r\n\r\n return step(obj);\r\n}\r\n","module.exports = __WEBPACK_EXTERNAL_MODULE__10__;","module.exports = __WEBPACK_EXTERNAL_MODULE__13__;","\r\n\r\nexport { SearchBox } from './src/view/index';\r\n","import ko from 'knockout';\r\nimport Backbone from 'backbone';\r\nimport { keyCode } from '@bingads-webui/keycode';\r\nimport template from '../template/index.pug';\r\nimport ViewModel from '../viewmodel/index';\r\n\r\n/**\r\n * @this {SearchBox}\r\n * @private\r\n * @returns {void} void\r\n */\r\nfunction search() {\r\n const value = this.viewModel.value();\r\n\r\n this.trigger('search', value);\r\n}\r\n\r\n/**\r\n * @this {SearchBox}\r\n * @private\r\n * @param {Object} event - event object\r\n * @returns {void} void\r\n */\r\nfunction onClick(event) {\r\n event.preventDefault();\r\n search.call(this);\r\n}\r\n\r\n/**\r\n * @this {SearchBox}\r\n * @private\r\n * @param {Object} event - event object\r\n * @returns {void} void\r\n */\r\nfunction onKeyPress(event) {\r\n if (event.keyCode === keyCode.Enter) {\r\n event.preventDefault();\r\n search.call(this);\r\n }\r\n}\r\n\r\n/**\r\n * View for search box component with an input box and a search icon\r\n * @param {Object} options - the view options\r\n * @param {Number} [options.maxLength=150] - the maximum length of the search text\r\n * @param {String} [options.placeholder=''] - the placeholder for the search box\r\n * @param {String} [options.value=''] - default value of the input box\r\n * @param {boolean} [options.isDisabled=false] - disable the input box or not\r\n * @param {Array} [options.iconClasses=[]] - the classes to assign to the icon's\r\n * span element. This is helpful if glyphicon is to be used. Then two classes must be\r\n * passed: class of the icon, and genereal glyphicon class.\r\n * @fires SearchBox#search - triggered when user clicks search icon or presses 'Enter' key\r\n * @fires SearchBox#change:query - triggered when input box value changes\r\n * @tutorial default\r\n */\r\nexport class SearchBox extends Backbone.View {\r\n /**\r\n * Intializes the view based on the options specified.\r\n * @param {Object} options - See {@link SearchBox#constructor} for more details\r\n * @private\r\n * @return {void}\r\n */\r\n initialize({\r\n maxLength = 150,\r\n placeholder = '',\r\n value = '',\r\n isDisabled = false,\r\n iconClasses = [],\r\n ariaLabel = null,\r\n } = {}) {\r\n this.maxLength = maxLength;\r\n this.placeholder = placeholder;\r\n this.iconClasses = iconClasses;\r\n this.ariaLabel = ariaLabel;\r\n\r\n this.viewModel = new ViewModel({\r\n value,\r\n isDisabled,\r\n });\r\n\r\n this.viewModel.value.subscribe((newValue) => {\r\n this.trigger('change:query', newValue);\r\n });\r\n }\r\n\r\n get events() {\r\n return {\r\n 'keypress .search-box__input': onKeyPress,\r\n 'click .search-box__icon': onClick,\r\n };\r\n }\r\n\r\n render() {\r\n this.$el.html(template({\r\n maxLength: this.maxLength,\r\n placeholder: this.placeholder,\r\n iconClasses: this.iconClasses,\r\n ariaLabel: this.ariaLabel || this.placeholder,\r\n }));\r\n\r\n ko.applyBindings(this.viewModel, this.el);\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Enable the search input box\r\n * @return {void}\r\n */\r\n enable() {\r\n this.viewModel.isDisabled(false);\r\n }\r\n\r\n /**\r\n * Disable the search input box\r\n * @return {void}\r\n */\r\n disable() {\r\n this.viewModel.isDisabled(true);\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 (ariaLabel, iconClasses, maxLength, placeholder) {pug_html = pug_html + \"\\u003Cdiv class=\\\"search-box-v2\\\"\\u003E\\u003Cdiv class=\\\"search-box__input-group\\\"\\u003E\\u003Cinput\" + (\" class=\\\"search-box__input form-control\\\"\"+\" type=\\\"text\\\"\"+pug.attr(\"maxlength\", maxLength, true, true)+pug.attr(\"placeholder\", placeholder, true, true)+pug.attr(\"aria-label\", ariaLabel, true, true)+\" data-bind=\\\"value: value, valueUpdate: "input", disable: isDisabled()\\\"\") + \"\\u003E\\u003Cspan\" + (pug.attr(\"class\", pug.classes([\"search-box__icon\",iconClasses], [false,true]), false, true)+\" tabIndex=\\\"0\\\" role=\\\"button\\\"\"+pug.attr(\"aria-label\", ariaLabel, true, true)) + \"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"ariaLabel\" in locals_for_with?locals_for_with.ariaLabel:typeof ariaLabel!==\"undefined\"?ariaLabel:undefined,\"iconClasses\" in locals_for_with?locals_for_with.iconClasses:typeof iconClasses!==\"undefined\"?iconClasses:undefined,\"maxLength\" in locals_for_with?locals_for_with.maxLength:typeof maxLength!==\"undefined\"?maxLength:undefined,\"placeholder\" in locals_for_with?locals_for_with.placeholder:typeof placeholder!==\"undefined\"?placeholder:undefined));;return pug_html;};\nmodule.exports = template;","import ko from 'knockout';\r\n\r\nexport default class ViewModel {\r\n constructor({\r\n value = '',\r\n isDisabled = false,\r\n } = {}) {\r\n this.isDisabled = ko.observable(isDisabled);\r\n this.value = ko.observable(value);\r\n }\r\n}\r\n","module.exports = __WEBPACK_EXTERNAL_MODULE__61__;","module.exports = __WEBPACK_EXTERNAL_MODULE__9__;","export * from './src/index';\r\n","export * from './search-questions';\r\nexport * from './map-current-page-to-page-group';\r\n","import _ from 'underscore';\r\nimport * as fastLevenshtein from 'fast-levenshtein';\r\nimport { defaultData } from './data';\r\n\r\nconst DEFAULT_MAX_QUESTION_COUNT = 3;\r\nconst DEFAULT_RESULT_KEY = 'default';\r\nconst TROUBLESHOOTING_KEY = 'Troubleshooting';\r\nconst defaultI18n = {\r\n getString: value => value,\r\n};\r\n\r\n/**\r\n * Search the dataset with the shortest distance to given query.\r\n * @param {string} query - The search query.\r\n * @param {string} data - The dataset t search within.\r\n * @param {number} length - The number of questions to return.\r\n * @returns {string[]} - An array containing the top length questions matching the search query.\r\n */\r\nfunction getNMatchedQuestion(query, data, length) {\r\n return data\r\n .map((question) => {\r\n const { text } = question;\r\n return { question, distance: fastLevenshtein.get(query, text) };\r\n })\r\n .sort((a, b) => a.distance - b.distance)\r\n .slice(0, length)\r\n .map(item => item.question);\r\n}\r\n\r\n/**\r\n * Search the dataset for questions matching the given query.\r\n * @param {string} query - The search query.\r\n * @param {object} [i18n=defaultI18n] - i18n object.\r\n * @param {boolean} [isPageSearch=false] - Indicates whether the search is restricted to a specific page.\r\n * @param {Object} [options] - Optional parameters.\r\n * @param {Number} [options.maxQuestionCount=3] - Max number of questions to return.\r\n * @param {object} [options.data=defaultData] - The dataset to search within.\r\n * @param {string} [options.defaultResultKey='default'] - The key to use when searching for default results.\r\n * @param {boolean} [options.isTroubleshootingEnabled=false] - Indicates whether troubleshooting is enabled.\r\n * @returns {IQuestion[]} - An array containing the top 3 questions matching the search query.\r\n */\r\nexport const searchQuestions = (\r\n query,\r\n i18n = defaultI18n,\r\n isPageSearch = false,\r\n {\r\n maxQuestionCount = DEFAULT_MAX_QUESTION_COUNT,\r\n data = defaultData,\r\n defaultResultKey = DEFAULT_RESULT_KEY,\r\n isTroubleshootingEnabled = false,\r\n } = {}\r\n) => {\r\n if (query === '') return [];\r\n\r\n if (isPageSearch) {\r\n let pageResult;\r\n if (query in data) {\r\n pageResult = data[query]; // Use page-specific result\r\n } else if (defaultResultKey in data) {\r\n pageResult = data[defaultResultKey]; // Use the default result\r\n } else {\r\n pageResult = []; // Return an empty array if both page and default result don't exist\r\n }\r\n\r\n // general question list\r\n const questionList = pageResult\r\n .slice(0, maxQuestionCount)\r\n .map(question => ({\r\n ...question,\r\n text: question.text || i18n.getString(question.translationKey),\r\n }));\r\n\r\n if (isTroubleshootingEnabled) {\r\n const troubleshootingQuestion = _.first(data[TROUBLESHOOTING_KEY]);\r\n\r\n // insert troubleshooting question as the third question\r\n questionList.splice(2, 1, {\r\n ...troubleshootingQuestion,\r\n text: troubleshootingQuestion.text || i18n.getString(troubleshootingQuestion.translationKey),\r\n });\r\n }\r\n\r\n return questionList;\r\n }\r\n\r\n // get a flat array of all non-default questions\r\n const nonDefaultValues = Object.entries(data)\r\n .filter(([key]) => key !== defaultResultKey && key !== TROUBLESHOOTING_KEY)\r\n .flatMap(([, value]) => value);\r\n\r\n const nonDefaultQuestions = _.uniq(nonDefaultValues)\r\n .map(question => ({\r\n ...question,\r\n text: question.text || i18n.getString(question.translationKey),\r\n }));\r\n const allQuestions = [...nonDefaultQuestions];\r\n\r\n // return the top 3 questions with the closest string match to the query\r\n const matchedQuestions = allQuestions\r\n .filter(question => question.text.toLowerCase().includes(query.toLowerCase()));\r\n\r\n const results = getNMatchedQuestion(query, matchedQuestions, maxQuestionCount);\r\n return results;\r\n};\r\n\r\nexport function isTroubleshootingQuery({\r\n query,\r\n i18n,\r\n}) {\r\n const troubleshootingList = defaultData[TROUBLESHOOTING_KEY];\r\n return _.any(troubleshootingList, q => query === i18n.getString(q.translationKey));\r\n}\r\n","module.exports = __WEBPACK_EXTERNAL_MODULE__483__;","export const defaultData = {\r\n Campaigns: [\r\n { translationKey: _TL_('How do I create a campaign?'), category: 'support' },\r\n { translationKey: _TL_('What bid strategies can I use?'), category: 'support' },\r\n { translationKey: _TL_('What are the ad types I can create?'), category: 'support' },\r\n { translationKey: _TL_('How do I control which websites my ads appear on?'), category: 'support' },\r\n { translationKey: _TL_('How can I control where my ad shows?'), category: 'support' },\r\n { translationKey: _TL_('How does my Budget work?'), category: 'support' },\r\n { translationKey: _TL_('How do Keywords work?'), category: 'support' },\r\n { translationKey: _TL_('What are Keyword Match Types?'), category: 'support' },\r\n { translationKey: _TL_('How does location targeting work?'), category: 'support' },\r\n { translationKey: _TL_('How do I create Audience targeting?'), category: 'support' },\r\n ],\r\n AdDelivery: [\r\n { translationKey: _TL_('How do I control which websites my ads appear on?'), category: 'support' },\r\n { translationKey: _TL_('How do I know if my clicks are genuine?'), category: 'support' },\r\n { translationKey: _TL_('Are my ads live?'), category: 'support' },\r\n { translationKey: _TL_('My ads are live - why can\\'t I find them?'), category: 'support' },\r\n { translationKey: _TL_('How can I control where my ad shows?'), category: 'support' },\r\n { translationKey: _TL_('Why is my account in budget pause?'), category: 'support' },\r\n { translationKey: _TL_('Why do I see extensions I didn\\'t create showing on my ads?'), category: 'support' },\r\n { translationKey: _TL_('What do the various delivery status\\' mean?'), category: 'support' },\r\n { translationKey: _TL_('What bid strategies can I use to improve my competitiveness?'), category: 'support' },\r\n { translationKey: _TL_('How can I find keywords to help my ads reach more people?'), category: 'support' },\r\n ],\r\n Import: [\r\n { translationKey: _TL_('How to I manage scheduled Imports for my campaigns?'), category: 'support' },\r\n { translationKey: _TL_('How do I manage what campaign information gets imported from Google?'), category: 'support' },\r\n { translationKey: _TL_('How do I import campaigns from Google?'), category: 'support' },\r\n { translationKey: _TL_('How do I import campaigns from Facebook?'), category: 'support' },\r\n { translationKey: _TL_('How do I import campaigns from an offline file?'), category: 'support' },\r\n { translationKey: _TL_('How do I make bulk changes to campaigns in my account?'), category: 'support' },\r\n ],\r\n MerchantCenter: [\r\n { translationKey: _TL_('How do I set up a Microsoft Merchant Center Store'), category: 'support' },\r\n { translationKey: _TL_('How do I claim my domain'), category: 'support' },\r\n { translationKey: _TL_('How do I set up a Microsoft Shopping Campaign'), category: 'support' },\r\n { translationKey: _TL_('How do I set up a Microsoft Shopping Feed'), category: 'support' },\r\n { translationKey: _TL_('How do I download a Feed File'), category: 'support' },\r\n { translationKey: _TL_('I can\\'t match the file to a feed'), category: 'support' },\r\n { translationKey: _TL_('My Catalog/Feed Items are Rejected/Disapproved'), category: 'support' },\r\n { translationKey: _TL_('How do I update my offers through a manual feed, FTP/SFTP, or via API'), category: 'support' },\r\n { translationKey: _TL_('How do I set up UET using Shopify'), category: 'support' },\r\n { translationKey: _TL_('Whats the Minimum bid for Microsoft shopping campaigns'), category: 'support' },\r\n { translationKey: _TL_('What are Local Inventory Ads?'), category: 'support' },\r\n { translationKey: _TL_('What is Microsoft Merchant Center?'), category: 'support' },\r\n { translationKey: _TL_('What are Product Ads?'), category: 'support' },\r\n { translationKey: _TL_('Why is my offer non compliant'), category: 'support' },\r\n { translationKey: _TL_('Understand and use Product Groups'), category: 'support' },\r\n { translationKey: _TL_('Get started with shopping campaigns'), category: 'support' },\r\n { translationKey: _TL_('Product ads filter limits'), category: 'support' },\r\n { translationKey: _TL_('Learn about product filters for Microsoft Shopping Campaigns'), category: 'support' },\r\n { translationKey: _TL_('About smart shopping campaigns'), category: 'support' },\r\n { translationKey: _TL_('Product ads (All the help article associated in Shopping is linked in this page)'), category: 'support' },\r\n ],\r\n AssetManagement: [\r\n { translationKey: _TL_('Where do I manage my images, videos, etc?'), category: 'support' },\r\n { translationKey: _TL_('Why are my images getting cropped?'), category: 'support' },\r\n { translationKey: _TL_('What are the image guidelines I need to follow?'), category: 'support' },\r\n { translationKey: _TL_('What are the video guidelines I need to follow?'), category: 'support' },\r\n { translationKey: _TL_('What kinds of video ad can I create?'), category: 'support' },\r\n { translationKey: _TL_('What are image extensions?'), category: 'support' },\r\n { translationKey: _TL_('What are video extensions?'), category: 'support' },\r\n ],\r\n Reports: [\r\n { translationKey: _TL_('What are the best reports to track and improve performance?'), category: 'support' },\r\n { translationKey: _TL_('How can I see what changes were made in my account?'), category: 'support' },\r\n { translationKey: _TL_('How can I see what keywords triggered my ad?'), category: 'support' },\r\n { translationKey: _TL_('How can I see how competitive my campaigns are?'), category: 'support' },\r\n { translationKey: _TL_('How do I create a report?'), category: 'support' },\r\n { translationKey: _TL_('What do the report statistics mean?'), category: 'support' },\r\n { translationKey: _TL_('How do I create custom columns?'), category: 'support' },\r\n { translationKey: _TL_('What do the different column types mean?'), category: 'support' },\r\n ],\r\n Conversions: [\r\n { translationKey: _TL_('How do I set up conversion tracking?'), category: 'support' },\r\n { translationKey: _TL_('Why am I not receiving any conversions? / Why is my UET tag not working?'), category: 'support' },\r\n { translationKey: _TL_('How do I ensure my conversion tracking is set up properly?'), category: 'support' },\r\n { translationKey: _TL_('How do I set up custom event tracking?'), category: 'support' },\r\n { translationKey: _TL_('How do I set up UET via Google Tag Manager?'), category: 'support' },\r\n { translationKey: _TL_('How do I set up variable revenue tracking?'), category: 'support' },\r\n { translationKey: _TL_('Why am I seeing a discrepancy between Microsoft Advertising conversion data and 3rd party data?'), category: 'support' },\r\n { translationKey: _TL_('How do I set up offline conversion tracking?'), category: 'support' },\r\n { translationKey: _TL_('Can I use one UET tag for all of my conversion goals or accounts?'), category: 'support' },\r\n { translationKey: _TL_('How do I set up UET using a 3rd party website platform?'), category: 'support' },\r\n ],\r\n Billing: [\r\n { translationKey: _TL_('How do I add a payment method?'), category: 'support' },\r\n { translationKey: _TL_('What are the payment options in my country?'), category: 'support' },\r\n { translationKey: _TL_('When will my payment be processed on my account?'), category: 'support' },\r\n { translationKey: _TL_('What is an account hold and what should I do?'), category: 'support' },\r\n { translationKey: _TL_('How do I fix a declined payment?'), category: 'support' },\r\n { translationKey: _TL_('How do I pay with a credit card?'), category: 'support' },\r\n { translationKey: _TL_('When will I receive my refund to my payment method?'), category: 'support' },\r\n { translationKey: _TL_('Why do you need my business location?'), category: 'support' },\r\n { translationKey: _TL_('Where can I update my business address?'), category: 'support' },\r\n { translationKey: _TL_('Why is my account on hold?'), category: 'support' },\r\n ],\r\n Troubleshooting: [\r\n { translationKey: _TL_('Review and diagnose campaign issues.'), category: 'troubleshooting' },\r\n ],\r\n default: [\r\n { translationKey: _TL_('How do I create a campaign?'), category: 'support' },\r\n { translationKey: _TL_('What bid strategies can I use?'), category: 'support' },\r\n { translationKey: _TL_('What are the ad types I can create?'), category: 'support' },\r\n ],\r\n};\r\n","import _ from 'underscore';\r\n\r\nconst pageGroupRegexMap = [{\r\n pageGroup: 'Campaigns',\r\n regexps: [/^campaigns$/i],\r\n}, {\r\n pageGroup: 'AdDelivery',\r\n regexps: [\r\n /^ads$/i,\r\n /^automated-extensions$/i,\r\n /^action$/i,\r\n /^app$/i,\r\n /^callout$/i,\r\n /^image$/i,\r\n /^price$/i,\r\n /^review$/i,\r\n /^sitelink$/i,\r\n /^structuredsnippet$/i,\r\n /^promotion$/i,\r\n /^filterlink$/i,\r\n /^flyer$/i,\r\n /^video$/i,\r\n /^businessinfo$/i,\r\n ],\r\n}, {\r\n pageGroup: 'Import',\r\n regexps: [/^import-/i],\r\n}, {\r\n pageGroup: 'MerchantCenter',\r\n regexps: [/^mmc-/i],\r\n}, {\r\n pageGroup: 'AssetManagement',\r\n regexps: [/asset-library/i],\r\n}, {\r\n pageGroup: 'Reports',\r\n regexps: [/^reports-/i],\r\n}, {\r\n pageGroup: 'Conversions',\r\n regexps: [/^uet-tag/i, /^conversion-/i, /^offline-conversions/i],\r\n}, {\r\n pageGroup: 'Billing',\r\n regexps: [/^billing/i, /^transactions/i, /^payment/i, /^balance/i, /^insertion/i],\r\n}];\r\n\r\n// NOTE: This is the same as findSelectedNode in @bingads-webui/with-site-map but avoids the many peer dependencies it requires\r\nfunction findSelectedNode(siteMap) {\r\n const currentNode = _.find(siteMap, node => _.result(node, 'selected', false));\r\n if (currentNode && currentNode.children) {\r\n const selectedChild = findSelectedNode(currentNode.children);\r\n if (selectedChild) {\r\n return selectedChild;\r\n }\r\n }\r\n return currentNode;\r\n}\r\n\r\n/**\r\n * Gets the current page from the site map and maps it to one of the supported page groups.\r\n * @param {Object} siteMap - Bing Ads site map object.\r\n * @returns {string} - The page group that the current page belongs to.\r\n */\r\nexport function mapCurrentPageToPageGroup(siteMap) {\r\n if (siteMap) {\r\n const selectedNode = findSelectedNode(siteMap);\r\n\r\n if (selectedNode) {\r\n const { id } = selectedNode;\r\n\r\n const matchedPageGroupRegex = _.find(pageGroupRegexMap, (pageGroupRegex) => {\r\n const isMatch = _.find(pageGroupRegex.regexps, r => r.test(id));\r\n\r\n return !!isMatch;\r\n });\r\n\r\n if (matchedPageGroupRegex) {\r\n return matchedPageGroupRegex.pageGroup;\r\n }\r\n }\r\n\r\n // selected page not in map, default to Campaigns group\r\n return 'Campaigns';\r\n }\r\n\r\n return 'default';\r\n}\r\n","module.exports = __WEBPACK_EXTERNAL_MODULE__17__;","module.exports = __WEBPACK_EXTERNAL_MODULE__19__;","\r\n\r\nexport { Selector } from './src/index';\r\nexport { PillControl } from './src/pill-control/index';\r\n","import Backbone from 'backbone';\r\n\r\nimport _ from 'underscore';\r\nimport ko from 'knockout';\r\nimport Promise from 'bluebird';\r\n\r\nimport { SearchBox } from '@bingads-webui/search-box';\r\nimport { helpers } from '@bingads-webui/deterministic-view';\r\nimport { deflickerPromise } from '@bingads-webui/deflicker';\r\n\r\n// grid\r\nimport pgrid, {\r\n GridView,\r\n projections,\r\n layout,\r\n} from 'projection-grid';\r\n\r\nimport { PillControl } from './pill-control/index';\r\n\r\nimport template from './template/index.pug';\r\nimport ViewModel from './view-model';\r\n\r\n\r\nconst inputDebounceWait = 300;\r\n\r\nconst {\r\n RowTriStateCheckboxProjection: CheckboxProjection,\r\n ColumnQueryable: ColumnQueryableProjection,\r\n Sink: SourceProjection,\r\n} = projections;\r\n\r\nconst {\r\n TableLayout,\r\n templates: { table: GridTemplate },\r\n renderers: { Virtualization },\r\n} = layout;\r\n\r\n/**\r\n * Enumerates the values for the fixed view filter types\r\n * @typedef {Object} Selector~ViewFilter\r\n * @property {String} all\r\n * @property {String} selected\r\n * @property {String} changed\r\n */\r\nconst ViewFilter = {\r\n all: 'all',\r\n selected: 'selected',\r\n changed: 'changed',\r\n};\r\n\r\n/**\r\n * Enumerates the values for the check states\r\n * @typedef {Object} Selector~CheckState\r\n * @property {String} checked\r\n * @property {String} unchecked\r\n * @property {String} indeterminate\r\n */\r\nconst CheckState = {\r\n checked: 'checked',\r\n unchecked: 'unchecked',\r\n indeterminate: 'indeterminate',\r\n};\r\n\r\n/**\r\n * For the specified check state, determines the next check state\r\n * @callback Selector~TransitionFunction\r\n * @param {Selector~CheckState} checkState - the current check state\r\n * @returns {Selector~CheckState} the next check state\r\n */\r\n\r\n/**\r\n * Enumerates the predefined check transition functions.\r\n * State transition depends on the current state and whether a short or full cycle is requested.\r\n * When a short cycle is requested, the checkbox cannot return to the indeterminate state,\r\n * event if it started in this state.\r\n * Two directions of transition are available:\r\n * - ... -> indeterminate -> checked -> unchecked -> ...\r\n * - ... -> indeterminate -> unchecked -> checked -> ...\r\n *\r\n * @typedef {Object} Selector~CheckTransition\r\n * @property {Selector~TransitionFunction} indeterminateToCheckedFullCycle\r\n * @property {Selector~TransitionFunction} indeterminateToUncheckedFullCycle\r\n * @property {Selector~TransitionFunction} indeterminateToCheckedShortCycle\r\n * @property {Selector~TransitionFunction} indeterminateToUncheckedShortCycle\r\n */\r\nconst CheckTransition = {\r\n indeterminateToCheckedFullCycle:\r\n CheckboxProjection.CheckTransitionRule.indeterminateToCheckedFullCycle,\r\n indeterminateToUncheckedFullCycle:\r\n CheckboxProjection.CheckTransitionRule.indeterminateToUncheckedFullCycle,\r\n indeterminateToCheckedShortCycle:\r\n CheckboxProjection.CheckTransitionRule.indeterminateToCheckedShortCycle,\r\n indeterminateToUncheckedShortCycle:\r\n CheckboxProjection.CheckTransitionRule.indeterminateToUncheckedShortCycle,\r\n};\r\n\r\nconst defaultCheckAllState = {\r\n state: CheckState.indeterminate,\r\n transition: CheckTransition.indeterminateToCheckedFullCycle,\r\n};\r\n\r\nfunction takeTop(limit, items) {\r\n return items.slice(0, limit);\r\n}\r\n\r\nfunction createCheckAllCheckMap(stats, checkAll, items) {\r\n const targetCheckState = _.defaults(defaultCheckAllState, checkAll);\r\n const notChanged = item => !_.has(stats.changed, item.Id);\r\n\r\n return _.chain(items)\r\n .filter(notChanged)\r\n .map(item =>\r\n [item.Id, {\r\n id: item.Id,\r\n state: targetCheckState.state,\r\n transition: targetCheckState.transition,\r\n }])\r\n .object()\r\n .value();\r\n}\r\n\r\nfunction stopEventPropogation(event) {\r\n event.stopPropagation();\r\n const { isForVNext } = this.options;\r\n if (isForVNext) {\r\n event.preventDefault();\r\n }\r\n}\r\n\r\n/**\r\n * The Backbone View class.\r\n * @external \"Backbone.View\"\r\n * @see {@link http://backbonejs.org/#View|Backbone View}\r\n */\r\n\r\n/** The projection grid\r\n * @external projection-grid\r\n * @see {@link https://github.com/Microsoft/projection-grid#projection-grid|Projection grid}\r\n * */\r\n\r\n/**\r\n * A simple object describing an item's check state and check state transition rule\r\n * @typedef {Object} Selector~CheckMapItem\r\n * @property {(String|Symbol)} id - the item's ID\r\n * @property {Selector~CheckState} state - the check state\r\n * @property {Selector~TransitionFunction} transition - the check state transition function\r\n */\r\n\r\n/**\r\n * A key/value map, where keys are item IDs and values are the respective\r\n * items' check states represented by {@link Selector~CheckMapItem} objects\r\n * @typedef {Object.<(String|Symbol), Selector~CheckMapItem>} Selector~CheckMap\r\n */\r\n\r\n/**\r\n * A simple record object describing the statistics on the selected items.\r\n * @typedef {Object} Selector~FullStat\r\n * @property {Selector~CheckMapItem[]} checked - all checked items\r\n * @property {Selector~CheckMapItem[]} unchecked - all unchecked items, which changed their\r\n * state since the last data load\r\n * @property {Selector~CheckMapItem[]} indeterminate - all items in the indeterminate state,\r\n * which changed their state since the last data load or pre-check initialization\r\n * @property {Selector~CheckMap} added - ones that got into checked or indeterminate state\r\n * from unchecked\r\n * @property {Selector~CheckMap} changed - the added + removed + the ones that changed their\r\n * checkbox state, when compared to the initial state\r\n * @property {Selector~CheckMap} removed - the ones that got unchecked\r\n * @property {Selector~CheckMap} unchanged - the ones, which check state hasn't changed,\r\n * when compared to the initial state\r\n * @property {Function} hasChanges - determines if the current object shows any changes\r\n * from the initial state\r\n */\r\n\r\n/**\r\n * Signals the finishing of data fetching\r\n * @event Selector#load:data\r\n * @type {Object}\r\n * @property {Boolean} hasData - Indicates whether any items were fetched\r\n */\r\n\r\n/**\r\n * Signals any changes to the selection caused by the user\r\n * @event Selector#change:selection\r\n * @type {Selector~FullStat}\r\n */\r\n\r\n/**\r\n * The forwarded grid events. Useful to synchronize with grid\r\n * data update and rendering processes.\r\n * @event Selector#grid:*\r\n * @type {Any}\r\n */\r\n\r\n\r\n/**\r\n * Applies defaults to the options object.\r\n *\r\n * It does it by setting the default values for options\r\n * which are _undefined_ in the passed in object.\r\n * @private\r\n * @param {Object} options - the options object\r\n * @return {Object} - a shallow copy of the original options object, with defaults applied\r\n*/\r\nfunction applyDefaults(options) {\r\n const defaultOptions = {\r\n isForVNext: false,\r\n busyIndicator: {\r\n enabled: false,\r\n showAfterMs: 500,\r\n showForMs: 700,\r\n },\r\n data: {\r\n itemsDisplayLimit: 50,\r\n checkMap: {},\r\n // checkAll: undefined,\r\n },\r\n filter: {\r\n disableSearch: false,\r\n showSelected: false,\r\n showChanged: false,\r\n },\r\n showNoDataMessage: false,\r\n styles: {\r\n searchIcon: [],\r\n list: [],\r\n checkboxColumn: [],\r\n nameColumn: [],\r\n },\r\n };\r\n\r\n const mergedOptions = _.defaults({}, options, defaultOptions);\r\n\r\n _.defaults(mergedOptions.busyIndicator, defaultOptions.busyIndicator);\r\n _.defaults(mergedOptions.data, defaultOptions.data);\r\n _.defaults(mergedOptions.filter, defaultOptions.filter);\r\n _.defaults(mergedOptions.styles, defaultOptions.styles);\r\n\r\n // use default itemsDisplayLimit if current limit is not valid\r\n if (!_.isFinite(mergedOptions.data.itemsDisplayLimit)\r\n || mergedOptions.data.itemsDisplayLimit <= 0) {\r\n mergedOptions.data.itemsDisplayLimit = defaultOptions.data.itemsDisplayLimit;\r\n }\r\n\r\n return mergedOptions;\r\n}\r\n\r\n// Eslint gets confused with the use of quoted symbol references\r\n// eslint-disable-next-line valid-jsdoc\r\n/**\r\n * The Selector view\r\n * @extends external:\"Backbone.View\"\r\n * @param {Object} options - the options object. Please refere to Backbone's documentation for\r\n * information on standard options. This control expects only the `className` option to be\r\n * overriden, if needed.\r\n * @param {Boolean} [options.isForVNext] - whether it is used in vnext\r\n * @param {Object} [options.busyIndicator] - the busy indicator related options\r\n * @param {Boolean} [options.busyIndicator.enabled=false] - the flag specifying whether busy\r\n * indicator should be shown if it takes more than configured time for the data to load\r\n * @param {Boolean} [options.busyIndicator.showAfterMs=500] - the time in milliseconds to wait\r\n * before displaying the busy indicator and message, had the data fetching not\r\n * finished by that time.\r\n * @param {Boolean} [options.busyIndicator.showForMs=700] - the minimum amount of time\r\n * in milliseconds to wait before hiding the busy indicator and message. The busy indicator\r\n * will continue running until the process finishes, even if this time has elapsed.\r\n * @param {Object} [options.data] - the data related options\r\n * @param {Selector~CheckMapItem} [options.data.checkAll=undefined] - the check state\r\n * description for all the items, to be applied after data is fetched. Use it to, for example,\r\n * set all items checked or in indeterminate state.\r\n * @param {Selector~CheckMap} [options.data.checkMap={}] - an object describing the state of items\r\n * in the selector control, in regards to their checked/unchecked/indeterminate state, and\r\n * the respective check-state transition rules\r\n * @param {int} [options.data.itemsDisplayLimit=50] - Maximum number of items to display. If there\r\n * are number of items is greater than the limit, an alert is displayed at the bottom of the list.\r\n * @param {Object} [options.filter] - the filter related options. If either of showSelected or\r\n * showChanged is true, the 'All' fixed filter will also be shown. If neither of the fixed\r\n * filter options is true, then fixed filter bar will be hidden\r\n * @param {Object} [options.filter.showSelected=false] - the flag that specifies whether\r\n * to show the 'N selected' fixed filter\r\n * @param {Object} [options.filter.showChanged=false] - the flag that specifies whether\r\n * to show the 'N changed' fixed filter\r\n * @param {Boolean} [options.filter.disableSearch=false] - the flag that specifies whether\r\n * to disable the searchbox filter\r\n * @param {Object} options.i18n - the i18n provider. Will throw Error if not provided.\r\n * @param {Boolean} [options.showNoDataMessage=false] - the flag specifying whether to show\r\n * the 'no data' message if after initial load there are no records\r\n * @param {Boolean} [options.allowCheckAll=undefined] - flag specifying whether to show a header\r\n * above the data that allows the user to check all visible checkboxes.\r\n * @param {Object} [options.styles] - the styling options\r\n * @param {String[]} [options.styles.searchIcon=[]] - the classes to set on the table element\r\n * @param {String} [options.styles.searchBoxAriaLabel] - the aria-label to set on the search box\r\n * @param {String[]} [options.styles.list=[]] - the classes to set on the table element\r\n * @param {Object} [options.styles.listAttributes] - the attributes to set on the table element\r\n * @param {String[]} [options.styles.checkboxColumn=[]] - the classes to set on the checkbox cells\r\n * @param {Object} [options.styles.checkboxAttributes] - the attributes to set on the checkbox cells\r\n * @param {String[]} [options.styles.nameColumn=[]] - the classes to set on the name cells\r\n * @param {Object} [options.styles.nameAttributes] - the attributes to set on the name cells\r\n * @param {Object} [options.templates.nameTemplate]\r\n * - the optional custom template for overriding the Name column.\r\n * - The template should reference 'model' for the item data,\r\n * - and 'property' for a reference to the property name.\r\n * @fires Selector#load:data\r\n * @fires Selector#change:selection\r\n * @fires Selector#grid:*\r\n * @tutorial default\r\n */\r\nexport class Selector extends Backbone.View {\r\n /**\r\n * These can be overridden by passing the `className` option\r\n * to the view's constructor. The default classes are `\"selector dropdown-menu\"`.\r\n * The \"dropdown-menu\" class allows the control to be blended in with other items\r\n * in a drop down menu.\r\n * @summary Gets the default classes\r\n * @type {String}\r\n * @readonly\r\n */\r\n get className() {\r\n return 'selector-v2';\r\n }\r\n\r\n get events() {\r\n return {\r\n 'click .selector__main': stopEventPropogation,\r\n };\r\n }\r\n\r\n /**\r\n * Gets the current check map\r\n * @type {Selector~CheckMap}\r\n * @readonly\r\n */\r\n get checkMap() {\r\n return this.checkbox.get('row.check.map');\r\n }\r\n\r\n /**\r\n * Intializes the view based on the options specified.\r\n * @private\r\n * @param {Object} options - See {@link Selector#constructor} for more details\r\n * @return {void}\r\n */\r\n initialize(options = {}) {\r\n if (!options.i18n) {\r\n throw new Error('i18n object must be provided');\r\n }\r\n\r\n this.options = applyDefaults(options);\r\n const { busyIndicator } = this.options;\r\n const initialViewFilter = ViewFilter.all;\r\n\r\n this.filterModel = new Backbone.Model({\r\n viewFilter: initialViewFilter,\r\n });\r\n this.filterModel.on('change', (model, ...args) => {\r\n const { viewFilter, searchFilter } = model.attributes;\r\n window.console.log('filter', model, args);\r\n this.trigger('request:data', {\r\n viewFilter,\r\n searchFilter,\r\n stats: this.getStats(),\r\n });\r\n });\r\n\r\n if (this.options.filter.showChanged ||\r\n this.options.filter.showSelected) {\r\n this.filterPill = new PillControl(_.extend({\r\n selectedItem: initialViewFilter,\r\n shellClasses: ['pill-control'],\r\n topClasses: ['pill-control__list--links'],\r\n itemClasses: ['pill-control__list-item--links'],\r\n }, this.getFilterPillState()));\r\n\r\n this.filterPill.on('select', _.debounce((data) => {\r\n this.filterModel.set('viewFilter', data.item.id);\r\n }, inputDebounceWait));\r\n }\r\n\r\n if (!this.options.filter.disableSearch) {\r\n this.searchBox = new SearchBox({\r\n placeholder: this.options.i18n.getString('Selector_Filter_Placeholder'),\r\n realtime: true,\r\n iconClasses: this.options.styles.searchIcon,\r\n ariaLabel: this.options.styles.searchBoxAriaLabel,\r\n });\r\n this.searchBox.on('change:query search', _.debounce((filterVal) => {\r\n this.filterModel.set('searchFilter', filterVal);\r\n }, inputDebounceWait));\r\n }\r\n\r\n this.viewModel = new ViewModel({\r\n showNoDataMessage: this.options.showNoDataMessage,\r\n });\r\n this.withInlineProgress = busyIndicator.enabled ? deflickerPromise.bind(undefined, {\r\n onDelay: busyIndicator.showAfterMs,\r\n offDelay: busyIndicator.showForMs,\r\n on: () => {\r\n this.viewModel.inProgress(true);\r\n return () => {\r\n this.viewModel.inProgress(false);\r\n };\r\n },\r\n }) : Promise.resolve;\r\n this.initCheckboxes(options.checkboxTemplate);\r\n }\r\n\r\n /**\r\n * Sets the items' check map to the passed in check map.\r\n * It will also reset the preCheckMap to this check map,\r\n * so further selection statistics will be based on this\r\n * new check map.\r\n * @param {Selector~CheckMap} checkMap - the check map\r\n * @return {void}\r\n */\r\n setCheckMap(checkMap) {\r\n this.preCheckMap = checkMap;\r\n this.checkbox.set('row.check.map', _.clone(this.preCheckMap));\r\n // If the data has already been requested and arrived,\r\n // refresh the check state for 'check all' case.\r\n // Otherwise, the check state is going to be updated when\r\n // data arrives\r\n if (this.p$data && this.p$data.isFulfilled()) {\r\n this.checkAllIfRequested();\r\n }\r\n }\r\n\r\n /**\r\n * Sets the items for the control to render and work with\r\n * @param {Object[]|Promise} itemsOrPromise - the array or a promise\r\n * of the array of data items\r\n * @return {void}\r\n */\r\n setData(itemsOrPromise) {\r\n this.viewModel.loaded(false);\r\n this.p$data = this.withInlineProgress(this.loadData(itemsOrPromise))\r\n .then((items) => {\r\n this.items = items;\r\n if (this.viewModel.firstLoad()) {\r\n this.viewModel.noData(this.items.length === 0);\r\n }\r\n this.viewModel.firstLoad(false);\r\n this.checkAllIfRequested();\r\n this.viewModel.loaded(true);\r\n\r\n this.viewModel.moreThanLimit(items.length > this.options.data.itemsDisplayLimit);\r\n this.grid.projection.set('seed', takeTop(this.options.data.itemsDisplayLimit, items));\r\n\r\n const { searchFilter } = this.getFilters();\r\n const hasSearchFilter = searchFilter && searchFilter.length > 0;\r\n\r\n let searchResultAriaLabel = this.options.i18n.getString(_TL_('Input keywords to see search results'));\r\n if (hasSearchFilter) {\r\n searchResultAriaLabel = (items.length > 0) ?\r\n this.options.i18n.getString(\r\n 'Found {{totalCount}} Results for {{searchText}}',\r\n { totalCount: items.length, searchText: searchFilter }\r\n ) :\r\n this.options.i18n.getString('No results found for {{searchText}}', { searchText: searchFilter });\r\n }\r\n this.viewModel.searchResultAriaLabel(searchResultAriaLabel);\r\n\r\n _.defer(() => this.trigger('load:data', { hasData: this.items.length > 0, items: this.items }));\r\n });\r\n }\r\n\r\n /**\r\n * Does the memory clean-up\r\n * @return {void}\r\n */\r\n remove() {\r\n if (this.searchBox) {\r\n this.searchBox.remove();\r\n this.searchBox = null;\r\n }\r\n\r\n if (this.grid) {\r\n this.grid.remove();\r\n this.grid = null;\r\n }\r\n\r\n super.remove();\r\n }\r\n\r\n /**\r\n * Fetches the data items. The items can either be an array of data items\r\n * or a Promise resolving into an array of items\r\n * @private\r\n * @param {Object[]|Promise} itemsOrPromise - the array or a promise\r\n * of the array of data items\r\n * @return {Promise} a Promise resolving into an array of items\r\n */\r\n loadData(itemsOrPromise) {\r\n if (itemsOrPromise && _.isArray(itemsOrPromise)) {\r\n return Promise.resolve(itemsOrPromise);\r\n }\r\n\r\n return itemsOrPromise || Promise.resolve([]);\r\n }\r\n\r\n /**\r\n * Initializes the {@link https://github.com/Microsoft/projection-grid/blob/master/js/projection/row-tri-state-checkbox.js|checkbox projection}\r\n * with initial state based on the user supplied {@link Selector~CheckMap|check map}\r\n * @private\r\n * @param {template} checkboxTemplate - the checkbox template\r\n * @return {void}\r\n */\r\n initCheckboxes(checkboxTemplate) {\r\n // Check if checkboxTemplate is null or undefined\r\n const checkboxTemplatePair = !checkboxTemplate ? {} : { 'row.check.template': checkboxTemplate };\r\n this.checkbox = new CheckboxProjection({\r\n // eslint-disable-next-line max-len\r\n ...checkboxTemplatePair,\r\n 'row.check.click-anywhere': true,\r\n });\r\n this.checkbox.on('change:row.check.map', this.onSelectionChange, this);\r\n\r\n this.setCheckMap(this.options.data.checkMap);\r\n }\r\n\r\n /**\r\n * Generates and sets a check map with all items checked, if that was requested by the user\r\n * @private\r\n * @return {void}\r\n */\r\n checkAllIfRequested() {\r\n if (this.options.data.checkAll) {\r\n const checkAllMap =\r\n createCheckAllCheckMap(this.getStats(), this.options.data.checkAll, this.items);\r\n\r\n this.preCheckMap = _.extend({}, this.preCheckMap, checkAllMap);\r\n const newCheckMap = _.extend({}, this.checkMap, checkAllMap);\r\n\r\n this.checkbox.set('row.check.map', newCheckMap);\r\n }\r\n }\r\n\r\n /**\r\n * Configures columns and the source projection for the grid.\r\n * @return {SourceProjection} the source projection.\r\n */\r\n getProjection() {\r\n const items = _.isArray(this.items) ? this.items : [];\r\n\r\n // Without the Columns projection the grid will crash/not render\r\n const columns = new pgrid.projections.Columns({\r\n columns: {},\r\n });\r\n\r\n const colQuery = new ColumnQueryableProjection({\r\n 'column.in': ['checkbox', 'Name'],\r\n });\r\n\r\n let sourceProjection = new SourceProjection({ seed: items })\r\n .pipe(columns)\r\n .pipe(colQuery)\r\n .pipe(this.checkbox);\r\n\r\n if (this.options.templates && this.options.templates.nameTemplate) {\r\n const columnTemplates = new pgrid.projections.PropertyTemplate({\r\n 'property.template': {\r\n Name: this.options.templates.nameTemplate,\r\n },\r\n });\r\n\r\n sourceProjection = sourceProjection.pipe(columnTemplates);\r\n }\r\n\r\n return sourceProjection;\r\n }\r\n\r\n /**\r\n * Constructs, configures and renders the grid control,\r\n * used by the selector control to display the data items\r\n * @private\r\n * @param {HTMLElement} scrollContainer - the container element that the grid\r\n * is scrolling within\r\n * @param {Object} hostElement - the element the grid is appended to\r\n * @return {external:projection-grid.GridView} a new instance of the GridView class\r\n */\r\n renderGrid(scrollContainer, hostElement) {\r\n const $container = this.$(scrollContainer);\r\n const $hostElement = this.$(hostElement);\r\n\r\n this.grid = new GridView({\r\n container: $container,\r\n projection: this.getProjection(),\r\n Layout: TableLayout.partial({\r\n $metadata: {\r\n class: this.options.styles.list,\r\n ...this.options.styles.listAttributes,\r\n },\r\n template: GridTemplate,\r\n renderers: [\r\n Virtualization,\r\n ],\r\n columns: {\r\n checkbox: {\r\n $metadata: {\r\n 'attr.head': { class: this.options.styles.checkboxColumn, ...this.options.styles.checkboxAttributes },\r\n 'attr.body': { class: this.options.styles.checkboxColumn, ...this.options.styles.checkboxAttributes },\r\n },\r\n },\r\n Name: {\r\n $metadata: {\r\n 'attr.head': { class: this.options.styles.nameColumn, ...this.options.styles.nameAttributes },\r\n 'attr.body': { class: this.options.styles.nameColumn, ...this.options.styles.nameAttributes },\r\n },\r\n $text: this.options.i18n.getString('Selector_Check_All'),\r\n },\r\n },\r\n }),\r\n });\r\n\r\n // remove head after grid render finished\r\n // it is causing a bug when selector is on the same page as a legacy grid with sticky header\r\n this.grid.layout.on('render:finished', () => {\r\n if (this.options.allowCheckAll !== true) {\r\n this.grid.$el.find('thead tr').remove();\r\n }\r\n });\r\n\r\n // Publishing all grid events as 'grid:grid_event_name'.\r\n // These events are helpful in synchronizing with the control state's changes\r\n // eslint-disable-next-line max-len\r\n // TODO: Task 717192: Provide means to deterministically synchronize with the control's state changes\r\n this.grid.on('all', (...originalArgs) => {\r\n const key = `grid:${_.first(originalArgs)}`; // 1st arg in an 'all' handler is the event name\r\n const args = [key].concat(_.rest(originalArgs));\r\n\r\n this.trigger(...args);\r\n });\r\n\r\n $hostElement.append(this.grid.el);\r\n\r\n return this.grid.render({ fetch: true });\r\n }\r\n\r\n /**\r\n * Renders the selector view.\r\n * **Note:** The render method is supposed to be called once\r\n * @return {Selector} the current instance\r\n */\r\n render() {\r\n this.$el.html(template({\r\n i18n: this.options.i18n,\r\n itemsDisplayLimit: this.options.data.itemsDisplayLimit,\r\n showFilterPill: this.filterPill,\r\n }));\r\n\r\n ko.applyBindings(this.viewModel, this.el);\r\n\r\n if (this.searchBox) {\r\n this.searchBox.render();\r\n this.$el.find('.selector__filter').append(this.searchBox.$el);\r\n }\r\n\r\n if (this.filterPill) {\r\n this.filterPill.render();\r\n this.$el.find('.selector__filter-pill').append(this.filterPill.$el);\r\n }\r\n\r\n this.renderGrid(this.$el.find('.selector__data'), this.$el.find('.selector__grid-host'));\r\n\r\n this.trigger('request:data', this.getFilters());\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Gets the curent state of the filters.\r\n * @return {{viewFilter: String, searchFilter: String}} - the current state of the filter settings\r\n */\r\n getFilters() {\r\n return _.clone(this.filterModel.attributes);\r\n }\r\n\r\n /**\r\n * Returns the current statistics and state of the selection in the control\r\n * @return {Selector~FullStat} the current statistics and state of the selection in the control\r\n */\r\n getStats() {\r\n const checkMap = this.checkbox.get('row.check.map');\r\n const stats = CheckboxProjection.fullStatCheckMap(this.preCheckMap, checkMap);\r\n\r\n return stats;\r\n }\r\n\r\n /**\r\n * Causes the control to rerender.\r\n * This may be needed if construction and first rendering of the control happened,\r\n * when its parent or itself were hidden, preventing the grid view to properly estimate\r\n * the displayed size of the list\r\n * @return {void}\r\n */\r\n rerender() {\r\n if (this.grid) {\r\n this.grid.rerender();\r\n }\r\n }\r\n\r\n /**\r\n * Handles the selection change event from the grid. Generates {@link Selector~FullStat} and\r\n * emits a \"change:selection\" event with it.\r\n * @private\r\n * @param {external:projection-grid.BaseProjection} model - the checkbox projection\r\n * @param {Selector~CheckMap} checkMap - the current check map\r\n * @return {void}\r\n */\r\n onSelectionChange(model, checkMap) {\r\n const stats = CheckboxProjection.fullStatCheckMap(this.preCheckMap, checkMap);\r\n\r\n this.viewModel.hasChanges(stats.hasChanges());\r\n this.updateFilterPill(stats);\r\n this.trigger('change:selection', stats);\r\n }\r\n\r\n /**\r\n * Gets the state for the filter pill based on the passed in statisics.\r\n * @private\r\n * @param {Object} statistcs - the filter pill relevant statistics\r\n * @return {{items: Array, disabledItems: Array}} - the filter pill state\r\n */\r\n getFilterPillState({ changed = 0, selected = 0 } = {}) {\r\n const { showSelected, showChanged } = this.options.filter;\r\n const { i18n } = this.options;\r\n\r\n const items = (showSelected || showChanged ? [{\r\n id: ViewFilter.all,\r\n text: i18n.getString('Selector_Filter_All'),\r\n }] : []).concat(showSelected ? [{\r\n id: ViewFilter.selected,\r\n text: i18n.getString('Selector_Filter_Selected', { selected }),\r\n }] : []).concat(showChanged ? [{\r\n id: ViewFilter.changed,\r\n text: i18n.getString('Selector_Filter_Changed', { changed }),\r\n }] : []);\r\n\r\n const disabledItems = (!selected ? [\r\n ViewFilter.selected,\r\n ] : []).concat(!changed ? [\r\n ViewFilter.changed,\r\n ] : []);\r\n\r\n return {\r\n items,\r\n disabledItems,\r\n };\r\n }\r\n\r\n /**\r\n * Updates te filter pill based on the current selection stats\r\n * @private\r\n * @param {Selector~FullStat} stats - the current stats\r\n * @return {void}\r\n */\r\n updateFilterPill(stats) {\r\n if (!this.filterPill) {\r\n return;\r\n }\r\n\r\n const state = this.getFilterPillState({\r\n changed: _.keys(_.extend({}, stats.changed, stats.added)).length,\r\n selected: stats.checked.length + stats.indeterminate.length,\r\n });\r\n helpers.updateView(this.filterPill, state);\r\n }\r\n}\r\n\r\nSelector.ViewFilter = ViewFilter;\r\nSelector.CheckState = CheckState;\r\nSelector.CheckTransition = CheckTransition;\r\nSelector.statCheckMap = CheckboxProjection.statCheckMap;\r\n","module.exports = __WEBPACK_EXTERNAL_MODULE__505__;","module.exports = __WEBPACK_EXTERNAL_MODULE__506__;","module.exports = __WEBPACK_EXTERNAL_MODULE__507__;","import _ from 'underscore';\r\nimport { DeterministicView, helpers } from '@bingads-webui/deterministic-view';\r\nimport { keyCode } from '@bingads-webui/keycode';\r\nimport template from './template.pug';\r\n\r\n/** The DeterministicView class\r\n * @external DeterministicView\r\n * @see {@link http://bingadsinternal.azurewebsites.net/sharedcomponents/client/jsdoc/deterministic-view|DeterministicView view}\r\n * */\r\n\r\nconst debugLog = _.noop; // window.console.log.bind(window.console);\r\n\r\n/**\r\n * Applies defaults to the PillControl's options object\r\n * @private\r\n * @param {PillControl~Options} options - the PillControl's options to apply the defaults to\r\n * @returns {PillControl~Options} a shallow copy of the passed in options object, with\r\n * defaults applied to the properties that were undefined\r\n */\r\nfunction applyDefaults(options) {\r\n const propsDefaults = {\r\n autoSelect: true,\r\n };\r\n const stateDefaults = {\r\n items: [],\r\n selectedItem: undefined,\r\n disabledItems: [],\r\n topClasses: ['nav', 'nav-pills'],\r\n itemClasses: [],\r\n };\r\n\r\n const props = _.defaults(\r\n {},\r\n _.pick(options, _.keys(propsDefaults)),\r\n propsDefaults\r\n );\r\n const state = _.defaults(\r\n {},\r\n _.pick(options, _.keys(stateDefaults)),\r\n stateDefaults\r\n );\r\n\r\n // Smart logic to auto-select the first item in the list,\r\n // if no selectedItem was supplied. This can be disabled, by passing\r\n // the option autoSelect: false.\r\n if (props.autoSelect &&\r\n state.items.length > 0 && !state.selectedItem) {\r\n state.selectedItem = state.items[0].id;\r\n }\r\n\r\n return { props, state };\r\n}\r\n\r\n/**\r\n * Looks for the PillControl's item in the items list by the item's ID.\r\n * @private\r\n * @param {PillControl~Item[]} items - the items array to look for the item in\r\n * @param {any} id - the ID of the item to look for\r\n * @returns {(PillControl~Item|undefined)} - return the PillControl's item from the list, if found.\r\n * Otherwise, returns undefined.\r\n */\r\nfunction findItem(items, id) {\r\n return _.find(items, item => item.id === id);\r\n}\r\n\r\nconst idPredicate = id => item => item.id === id;\r\nconst findItemIndexById = (items, id) => _.findIndex(items, idPredicate(id));\r\n\r\n/**\r\n * Commands the browser to focus the item corresponding\r\n * to the supplied id.\r\n * @this PillControl\r\n * @private\r\n * @param {any} selectedItem - the event data\r\n * @returns {void}\r\n */\r\nfunction focusItem(selectedItem) {\r\n this.$(`a[data-id='${selectedItem}']`).focus();\r\n}\r\n\r\n/* eslint-disable max-len */\r\n/**\r\n * Finds the item next to the currently focused or selected item.\r\n * @this PillControl\r\n * @private\r\n * @returns {{newIndex: Number, newItem: PillControl~Item, currentIndex: Number, currentItem: PillControl~Item}} -\r\n * a record containing information about the next and the current items\r\n */\r\n/* eslint-enable max-len */\r\nfunction nextItem() {\r\n const { items, selectedItem, focusedItem } = this.model.attributes;\r\n const currentItem = focusedItem || selectedItem;\r\n const currentIndex = findItemIndexById(items, currentItem);\r\n const newIndex = Math.min(items.length - 1, currentIndex + 1);\r\n const newItem = items[newIndex];\r\n return {\r\n newIndex, newItem, currentIndex, currentItem,\r\n };\r\n}\r\n\r\n/* eslint-disable max-len */\r\n/**\r\n * Finds the item previous to the currently focused or selected item.\r\n * @this PillControl\r\n * @private\r\n * @returns {{newIndex: Number, newItem: PillControl~Item, currentIndex: Number, currentItem: PillControl~Item}} -\r\n * a record containing information about the previous and the current items\r\n */\r\n/* eslint-enable max-len */\r\nfunction previousItem() {\r\n const { items, selectedItem, focusedItem } = this.model.attributes;\r\n const currentItem = focusedItem || selectedItem;\r\n const currentIndex = findItemIndexById(items, currentItem);\r\n const newIndex = Math.max(0, currentIndex - 1);\r\n const newItem = items[newIndex];\r\n return {\r\n newIndex, newItem, currentIndex, currentItem,\r\n };\r\n}\r\n\r\n/**\r\n * Focuses the item next to the currently focused or selected item.\r\n * @this PillControl\r\n * @private\r\n * @returns {void}\r\n */\r\nfunction focusNextItem() {\r\n const {\r\n newIndex, newItem, currentIndex, currentItem,\r\n } = nextItem.call(this);\r\n debugLog('PillControl.focusNextItem', newItem.id, newIndex, currentItem, currentIndex);\r\n focusItem.call(this, newItem.id);\r\n}\r\n\r\n/**\r\n * Focuses the item previous to the currently focused or selected item.\r\n * @this PillControl\r\n * @private\r\n * @returns {void}\r\n */\r\nfunction focusPreviousItem() {\r\n const {\r\n newIndex, newItem, currentIndex, currentItem,\r\n } = previousItem.call(this);\r\n debugLog('PillControl.focusPreviousItem', newItem.id, newIndex, currentItem, currentIndex);\r\n focusItem.call(this, newItem.id);\r\n}\r\n\r\n/**\r\n * Handles click event for the pill-control items\r\n * Marks the item as selected if item is not disabled.\r\n * Changing selected item will indirectly trigger {@link PillControl#select}.\r\n * @this PillControl\r\n * @private\r\n * @param {MouseEvent} event - the event data\r\n * @returns {void}\r\n */\r\nfunction itemClicked(event) {\r\n debugLog('PillControl.itemClicked', event);\r\n if (event.altKey || event.ctrlKey || event.shiftKey) {\r\n // do nothing\r\n return true;\r\n }\r\n\r\n const selectedItem = event.currentTarget.dataset.id;\r\n if (this.isItemDisabled(selectedItem)) {\r\n // do nothing\r\n return true;\r\n }\r\n\r\n helpers.updateView(this, { selectedItem });\r\n return false;\r\n}\r\n\r\n/**\r\n * Handles keydown event for the pill-control items.\r\n * The Left- and Right-arrow keys move the focus to the neighboring item.\r\n * The Enter key selects the currently focused item, if it is not disabled.\r\n * Changing selected item will indirectly trigger {@link PillControl#select}.\r\n * @this PillControl\r\n * @private\r\n * @param {KeyboardEvent} event - the event data\r\n * @returns {void}\r\n */\r\nfunction itemPressed(event) {\r\n debugLog('PillControl.itemPressed', event);\r\n if (event.keyCode === keyCode.ArrowLeft) {\r\n focusPreviousItem.call(this);\r\n } else if (event.keyCode === keyCode.ArrowRight) {\r\n focusNextItem.call(this);\r\n } if (event.keyCode === keyCode.Enter) {\r\n const selectedItem = event.currentTarget.dataset.id;\r\n if (this.isItemDisabled(selectedItem)) {\r\n // do nothing\r\n return true;\r\n }\r\n helpers.updateView(this, { selectedItem });\r\n } else {\r\n // do nothing\r\n return true;\r\n }\r\n\r\n event.preventDefault();\r\n event.stopPropagation();\r\n\r\n return false;\r\n}\r\n\r\n/**\r\n * Handles focus event for the pill-control items.\r\n * Tracks the currently focused item, by updating the model.\r\n * @this PillControl\r\n * @private\r\n * @param {FocusEvent} event - the event data\r\n * @returns {void}\r\n */\r\nfunction itemFocused(event) {\r\n const focusedItem = event.currentTarget.dataset.id;\r\n const newState = { focusedItem };\r\n debugLog('PillControl.itemFocused', focusedItem, event);\r\n if (!this.isItemDisabled(focusedItem)) {\r\n _.extend(newState, { selectedItem: focusedItem });\r\n }\r\n helpers.updateView(this, newState);\r\n}\r\n\r\n/**\r\n * Handles blur event for the pill-control items.\r\n * Tracks the currently focused item, by updating the model.\r\n * Will reset the focusedItem to null if focus left the last\r\n * know focused item. This will lead to changes to items tabIndex\r\n * attribute and will set the active or first item with tabIndex=\"0\".\r\n * @this PillControl\r\n * @private\r\n * @param {FocusEvent} event - the event data\r\n * @returns {void}\r\n */\r\nfunction itemBlurred(event) {\r\n const blurredItem = event.currentTarget.dataset.id;\r\n const { focusedItem } = this.model.attributes;\r\n debugLog('PillControl.itemBlurred', blurredItem, focusedItem, event);\r\n if (focusedItem === blurredItem) {\r\n debugLog('PillControl.itemBlurred: reset focusedItem', event, blurredItem);\r\n // FIXME: With DeterministicView this creates infinit loop\r\n // helpers.updateView(this, { focusedItem: null });\r\n }\r\n}\r\n\r\n/**\r\n * Handles changes to the `selectedItem` attribute of the {@link PillControl#model}.\r\n * @this PillControl\r\n * @private\r\n * @param {Object} model - the model. See {@link PillControl#model}.\r\n * @param {any} newSelection - the id of the selected item.\r\n * @fires PillControl#select\r\n * @returns {void}\r\n */\r\nfunction onSelectionChange(model, newSelection) {\r\n /**\r\n * Select event.\r\n *\r\n * @event PillControl#select\r\n * @type {Object}\r\n * @property {PillControl~Item} item - the selected item.\r\n */\r\n this.trigger('select', {\r\n item: findItem(model.attributes.items, newSelection),\r\n });\r\n}\r\n\r\n/**\r\n * The interface of a PillControl's item object\r\n * @typedef {Object} PillControl~Item\r\n * @property {any} id - indicate the identifier of this item\r\n * @property {String} text - indicate the display text of this item\r\n */\r\n\r\n/**\r\n * The interface of a PillControl's options object\r\n * @typedef {Object} PillControl~Options\r\n * @property {Boolean} [autoSelect=true] - the flag specifying whether to pre-select\r\n * the first item in the list, if no selectedItem was supplied\r\n * @property {PillControl~Item[]} [items=[]] - items to show in the pill control\r\n * @property {any} [selectedItem] - the id of the selected item\r\n * @property {Array} [disabledItems=[]] - the list of ids of the disabled items\r\n * @property {Array} [topClasses=['nav', 'nav-pills']] - the list of classes to attach\r\n * to the `ul` element of the default template\r\n * @property {Array} [itemClasses=[]] - the list of classes to attach\r\n * to the `li` elements of the default template\r\n */\r\n\r\n/**\r\n * The Pill Control view\r\n * @extends external:DeterministicView\r\n * @param {PillControl~Options} [userOptions] - the user options\r\n * @fires PillControl#select\r\n * @tutorial default\r\n */\r\nexport class PillControl extends DeterministicView {\r\n get className() {\r\n return 'pill-control';\r\n }\r\n\r\n get events() {\r\n return {\r\n 'click a': itemClicked,\r\n 'keydown a': itemPressed,\r\n 'focus a': itemFocused,\r\n 'blur a': itemBlurred,\r\n };\r\n }\r\n\r\n get template() {\r\n return template;\r\n }\r\n\r\n /**\r\n * The Pill Control view initialize method\r\n * @private\r\n * @param {PillControl~Options} [userOptions] - the user options.\r\n * See {@link Selector#constructor} for more details\r\n * @returns {void} void\r\n */\r\n initialize(userOptions) {\r\n const { state, options } = applyDefaults(userOptions);\r\n\r\n this.options = options;\r\n\r\n this.setState(state);\r\n\r\n this.model.on('change:selectedItem', onSelectionChange, this);\r\n }\r\n\r\n isItemDisabled(id) {\r\n const { disabledItems } = this.model.attributes;\r\n return disabledItems.indexOf(id) !== -1;\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) {var items = model.items;\nvar selectedItem = model.selectedItem;\nvar focusedItem = model.focusedItem;\nvar topClasses = model.topClasses;\nvar itemClasses = model.itemClasses;\n\npug_mixins[\"buttons\"] = pug_interp = function(){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\n// iterate items\n;(function(){\n var $$obj = items;\n if ('number' == typeof $$obj.length) {\n for (var index = 0, $$l = $$obj.length; index < $$l; index++) {\n var val = $$obj[index];\nvar selected = val.id == selectedItem;\nvar focusedOrSelectedOrFirst = (focusedItem && val.id === focusedItem)\n || (!focusedItem && val.id === selectedItem)\n || (!focusedItem && !selectedItem && index === 0);\nvar disabled = view.isItemDisabled(val.id);\nvar mergedItemClasses = itemClasses\n .concat(selected ? ['active'] : [])\n .concat(disabled ? ['disabled'] : []);\nvar aAttributes = {\n tabIndex: focusedOrSelectedOrFirst ? '0' : '-1',\n 'data-focus-id': val.id,\n 'data-id': val.id\n};\nif (!disabled) {\n aAttributes.href = '#';\n}\n\npug_html = pug_html + \"\\u003Cli\" + (pug.attr(\"class\", pug.classes([mergedItemClasses], [true]), false, true)+pug.attr(\"aria-pressed\", selected, true, true)+\" role=\\\"presentation\\\"\"+pug.attr(\"aria-disabled\", disabled, true, true)) + \"\\u003E\\u003Ca\" + (pug.attrs(aAttributes, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = val.text) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fli\\u003E\";\n }\n } else {\n var $$l = 0;\n for (var index in $$obj) {\n $$l++;\n var val = $$obj[index];\nvar selected = val.id == selectedItem;\nvar focusedOrSelectedOrFirst = (focusedItem && val.id === focusedItem)\n || (!focusedItem && val.id === selectedItem)\n || (!focusedItem && !selectedItem && index === 0);\nvar disabled = view.isItemDisabled(val.id);\nvar mergedItemClasses = itemClasses\n .concat(selected ? ['active'] : [])\n .concat(disabled ? ['disabled'] : []);\nvar aAttributes = {\n tabIndex: focusedOrSelectedOrFirst ? '0' : '-1',\n 'data-focus-id': val.id,\n 'data-id': val.id\n};\nif (!disabled) {\n aAttributes.href = '#';\n}\n\npug_html = pug_html + \"\\u003Cli\" + (pug.attr(\"class\", pug.classes([mergedItemClasses], [true]), false, true)+pug.attr(\"aria-pressed\", selected, true, true)+\" role=\\\"presentation\\\"\"+pug.attr(\"aria-disabled\", disabled, true, true)) + \"\\u003E\\u003Ca\" + (pug.attrs(aAttributes, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = val.text) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Fli\\u003E\";\n }\n }\n}).call(this);\n\n};\npug_html = pug_html + \"\\u003Cul\" + (pug.attr(\"class\", pug.classes([\"pill-control\",topClasses], [false,true]), false, true)) + \"\\u003E\";\npug_mixins[\"buttons\"]();\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;","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, itemsDisplayLimit, showFilterPill) {pug_html = pug_html + \"\\u003Cdiv class=\\\"selector__main\\\" data-bind=\\\"visible: !firstLoad() && !noData()\\\"\\u003E\";\nif (showFilterPill) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"selector__filter-pill\\\"\\u003E\\u003Cspan class=\\\"selector__filter-pill-label\\\"\\u003EView:\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003Cdiv class=\\\"selector__filter form-horizontal\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"selector__data-host\\\"\\u003E\\u003Cdiv class=\\\"selector__data\\\" style=\\\"position: relative\\\"\\u003E\\u003Cdiv class=\\\"selector__grid-host\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"selector__data-truncated-alert\\\" data-bind=\\\"visible: moreThanLimit()\\\"\\u003E\\u003Cdiv class=\\\"alert alert-info\\\" data-bind=\\\"attr: {"aria-hidden": !moreThanLimit()}\\\" role=\\\"alert\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Selector_MoreThanLimit', { itemsDisplayLimit: itemsDisplayLimit })) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"selector__data-progress-backdrop\\\" data-bind=\\\"visible: !firstLoad() && inProgress()\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"selector__data-progress-overlay\\\" data-bind=\\\"visible: !firstLoad() && inProgress()\\\"\\u003E\\u003Cspan class=\\\"progress__icon\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Selector_LoadingText')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"selector__no-data-message\\\" data-bind=\\\"visible: loaded() && showNoDataMessage && noData()\\\"\\u003E\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Selector_NoDataMessage')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"selector__progress\\\" data-bind=\\\"visible: firstLoad() && !loaded()\\\"\\u003E\\u003Cspan class=\\\"progress__icon\\\" data-bind=\\\"visible: inProgress()\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cspan class=\\\"progress__text\\\" data-bind=\\\"visible: inProgress()\\\"\\u003E\" + (pug.escape(null == (pug_interp = i18n.getString('Selector_LoadingText')) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"search-result live-region\\\" data-bind=\\\"attr: { "aria-label": searchResultAriaLabel() }\\\" aria-live=\\\"assertive\\\" role=\\\"status\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"i18n\" in locals_for_with?locals_for_with.i18n:typeof i18n!==\"undefined\"?i18n:undefined,\"itemsDisplayLimit\" in locals_for_with?locals_for_with.itemsDisplayLimit:typeof itemsDisplayLimit!==\"undefined\"?itemsDisplayLimit:undefined,\"showFilterPill\" in locals_for_with?locals_for_with.showFilterPill:typeof showFilterPill!==\"undefined\"?showFilterPill:undefined));;return pug_html;};\nmodule.exports = template;","import ko from 'knockout';\r\n\r\nexport default class ViewModel {\r\n constructor(options) {\r\n this.firstLoad = ko.observable(true);\r\n this.loaded = ko.observable(false);\r\n this.inProgress = ko.observable(false);\r\n this.noData = ko.observable(true);\r\n this.showNoDataMessage = options.showNoDataMessage;\r\n this.moreThanLimit = ko.observable(false);\r\n this.hasChanges = ko.observable(false);\r\n this.searchResultAriaLabel = ko.observable('');\r\n }\r\n}\r\n","\r\n\r\nexport { ShadowTree } from './src/shadow-tree';\r\n","// TODO: Task 904718: refactor to use explicit dependency for es6 syntax rather than global variable\r\n/* global Map */\r\nfunction getMapKeys(map) {\r\n const keys = [];\r\n\r\n map.forEach((value, key) => keys.push(key));\r\n return keys;\r\n}\r\n\r\nfunction getMapValues(map) {\r\n const values = [];\r\n\r\n map.forEach(value => values.push(value));\r\n return values;\r\n}\r\n\r\nfunction getParentAndRef(tree, item) {\r\n const { parent, ref } = tree.nodes.get(item);\r\n return { parent, ref };\r\n}\r\n\r\nfunction getChildren(tree, item) {\r\n return tree.nodes.get(item).children;\r\n}\r\n\r\nfunction getChild(tree, item, ref) {\r\n return getChildren(tree, item).get(ref);\r\n}\r\n\r\nfunction createNode(tree, item, parent, ref) {\r\n tree.nodes.set(item, {\r\n parent,\r\n ref,\r\n children: new Map(),\r\n });\r\n\r\n getChildren(tree, parent).set(ref, item);\r\n}\r\n\r\nfunction removeNode(tree, item) {\r\n const { parent, ref } = tree.nodes.get(item);\r\n\r\n removeNodeChildren(tree, item); // eslint-disable-line no-use-before-define\r\n getChildren(tree, parent).delete(ref);\r\n tree.nodes.delete(item);\r\n}\r\n\r\nfunction removeNodeChildren(tree, item) {\r\n getChildren(tree, item).forEach(child => removeNode(tree, child));\r\n}\r\n\r\nfunction moveChild(tree, parentOld, refOld, parentNew, refNew) {\r\n const childrenOld = getChildren(tree, parentOld);\r\n const childrenNew = getChildren(tree, parentNew);\r\n const item = childrenOld.get(refOld);\r\n const node = tree.nodes.get(item);\r\n\r\n childrenOld.delete(refOld);\r\n childrenNew.set(refNew, item);\r\n node.parent = parentNew;\r\n node.ref = refNew;\r\n}\r\n\r\nfunction getPathOfItem(tree, item) {\r\n const refs = [];\r\n let itemIter = item;\r\n\r\n while (itemIter) {\r\n const { parent, ref } = getParentAndRef(tree, itemIter);\r\n\r\n refs.push(ref);\r\n itemIter = parent;\r\n }\r\n\r\n refs.reverse();\r\n\r\n return `/${refs.join('/')}`;\r\n}\r\n\r\nfunction getItemByPath(tree, path) {\r\n const refs = path.split('/');\r\n let item = null;\r\n\r\n for (let index = 0; index < refs.length; index += 1) {\r\n const ref = refs[index];\r\n\r\n if (ref) {\r\n item = getChild(tree, item, ref);\r\n\r\n if (!item) {\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return item;\r\n}\r\n\r\n/**\r\n * A nonintrusive tree model.\r\n * You may use this class to setup a hierarchical structure among a set of items\r\n * without injecting properties into them.\r\n * With this tree model, each edge has a name called 'ref'. For a given node,\r\n * the 'ref's to each child MUST be unique.\r\n * NOTE: The root element of the tree is always `null`.\r\n */\r\nexport class ShadowTree {\r\n constructor() {\r\n this.nodes = new Map();\r\n this.nodes.set(null, {\r\n parent: null,\r\n children: new Map(),\r\n ref: null,\r\n });\r\n }\r\n\r\n /**\r\n * Test if an item exists in the tree\r\n * @param {Object} item - The item to test\r\n * @returns {boolean} - True if the item exists in the tree\r\n */\r\n hasNode(item) {\r\n return this.nodes.has(item);\r\n }\r\n\r\n /**\r\n * Get the parent item and ref for the given item\r\n * @param {Object} item - The issued item\r\n * @returns {{parent: Object, ref: string}} - The parent item and the ref\r\n */\r\n getParentAndRef(item) {\r\n if (!this.hasNode(item)) {\r\n throw new Error('The item is not in the tree');\r\n }\r\n\r\n return getParentAndRef(this, item);\r\n }\r\n\r\n /**\r\n * Get refs for all children of the given item\r\n * @param {Object} item - The issued item\r\n * @returns {string[]} - An array of all refs\r\n */\r\n getChildrenRefs(item) {\r\n if (!this.hasNode(item)) {\r\n throw new Error('The item is not in the tree');\r\n }\r\n\r\n return getMapKeys(getChildren(this, item));\r\n }\r\n\r\n /**\r\n * Get all children of the given item\r\n * @param {Object} item - The issued item\r\n * @returns {Object[]} - An array of all children\r\n */\r\n getChildren(item) {\r\n if (!this.hasNode(item)) {\r\n throw new Error('The item is not in the tree');\r\n }\r\n\r\n return getMapValues(getChildren(this, item));\r\n }\r\n\r\n /**\r\n * Get the child of the given item with the specified ref\r\n * @param {Object} item - The issued item\r\n * @param {string} ref - The ref for the child\r\n * @returns {Object} - The child with the given ref. Returns `undefined` if\r\n * there's no child with the given ref\r\n */\r\n getChild(item, ref) {\r\n if (!this.hasNode(item)) {\r\n throw new Error('The item is not in the tree');\r\n }\r\n\r\n return getChild(this, item, ref);\r\n }\r\n\r\n /**\r\n * Add a new node in the tree with the given item\r\n * @param {Object} item - The item of the new node\r\n * @param {Object} parent - The item of the parent node\r\n * @param {string} ref - The ref to specified the new node from the parent\r\n * @returns {void}\r\n */\r\n createNode(item, parent, ref) {\r\n if (typeof item === 'undefined') {\r\n throw new Error('The item cannot be undefined');\r\n }\r\n\r\n if (this.hasNode(item)) {\r\n throw new Error('Duplicated node creation');\r\n }\r\n\r\n if (!this.hasNode(parent)) {\r\n throw new Error('The parent item is not in the tree');\r\n }\r\n\r\n if (getChild(this, parent, ref)) {\r\n throw new Error('Cannot override existing child');\r\n }\r\n\r\n return createNode(this, item, parent, ref);\r\n }\r\n\r\n /**\r\n * Remove all descendants of a given item\r\n * @param {Object} item - The issued item\r\n * @returns {void}\r\n */\r\n removeNodeChildren(item) {\r\n if (!this.hasNode(item)) {\r\n throw new Error('The item is not in the tree');\r\n }\r\n\r\n return removeNodeChildren(this, item);\r\n }\r\n\r\n /**\r\n * Remove an item from the tree\r\n * @param {Object} item - The item to remove\r\n * @returns {void}\r\n */\r\n removeNode(item) {\r\n if (!this.hasNode(item)) {\r\n throw new Error('The item is not in the tree');\r\n }\r\n\r\n if (item === null) {\r\n throw new Error('Cannot remove the virtual root node');\r\n }\r\n\r\n return removeNode(this, item);\r\n }\r\n\r\n /**\r\n * Move an item to a new place in the tree\r\n * @param {Object} parentOld - The old parent of the item\r\n * @param {string} refOld - The old ref of the item\r\n * @param {Object} parentNew - The new parent of the item\r\n * @param {string} refNew - The new ref of the item\r\n * @returns {void}\r\n */\r\n moveChild(parentOld, refOld, parentNew, refNew) {\r\n if (parentNew === parentOld && refOld === refNew) {\r\n return;\r\n }\r\n\r\n if (!this.hasNode(parentOld)) {\r\n throw new Error('The old parent is not in the tree');\r\n }\r\n\r\n if (!this.hasNode(parentNew)) {\r\n throw new Error('The new parent is not in the tree');\r\n }\r\n\r\n if (!getChild(this, parentOld, refOld)) {\r\n throw new Error('The child to move does not exist');\r\n }\r\n\r\n if (getChild(this, parentNew, refNew)) {\r\n throw new Error('Cannot override existing child');\r\n }\r\n\r\n moveChild(this, parentOld, refOld, parentNew, refNew);\r\n }\r\n\r\n /**\r\n * Get a '/' separated full path of a given item, which identifies an unique\r\n * node in the tree\r\n * @param {Object} item - The issued item\r\n * @returns {string} - The full path to direct to the item from root\r\n */\r\n getPathOfItem(item) {\r\n if (!this.hasNode(item)) {\r\n throw new Error('The item is not in the tree');\r\n }\r\n\r\n return getPathOfItem(this, item);\r\n }\r\n\r\n /**\r\n * Query an item from the tree with its path\r\n * @param {string} path - The '/' separated path\r\n * @returns {Object} - The item at the path or `undefined` if not found\r\n */\r\n getItemByPath(path) {\r\n if (!path[0] === '/') {\r\n throw new Error('Expect an absolute path');\r\n }\r\n\r\n return getItemByPath(this, path);\r\n }\r\n}\r\n","module.exports = __WEBPACK_EXTERNAL_MODULE__18__;","module.exports = __WEBPACK_EXTERNAL_MODULE__373__;","module.exports = __WEBPACK_EXTERNAL_MODULE__43__;","\r\n\r\nexport { SimpleForm } from './src/index';\r\n","export { SimpleForm } from './view/simple-form';\r\n","import _ from 'underscore';\r\nimport $ from 'jquery';\r\nimport Backbone from 'backbone';\r\nimport ko from 'knockout';\r\nimport { generateFieldOptions } from './field/generate';\r\nimport { generateSidebarsOptions } from './sidebar/generator';\r\nimport { isBackboneView, bindTo } from './util';\r\nimport tmplSidebarWrapper from '../template/sidebar/wrapper.pug';\r\nimport tmplHorizontal from '../template/simple-form/layout/horizontal.pug';\r\nimport tmplInline from '../template/simple-form/layout/inline.pug';\r\nimport tmplLabel from '../template/simple-form/control/label.pug';\r\nimport tmplButtons from '../template/simple-form/control/buttons.pug';\r\nimport tmplValidation from '../template/simple-form/control/validation.pug';\r\nimport { SimpleFormViewModel } from '../viewmodel/simple-form';\r\n\r\n/**\r\n * define Object Field\r\n * @typedef {String|Object} Field\r\n * it can be a string of property name\r\n * it also can be a object with property, control and other fileds options\r\n */\r\n\r\n/**\r\n * define Object S$I18n\r\n * @typedef {Object} S$I18n\r\n * @property {function} type - get i18n string by schema\r\n * @property {function} property - get i18n string by schema and property name\r\n * @property {function} value - get i18n string by schema, property and value\r\n */\r\n\r\n/**\r\n * define Object FieldOption\r\n * @typedef {Object} FieldOption\r\n * @property {boolean} showLabel - whether show lable\r\n * @property {Object} schema - property define in schema\r\n * @property {String} message - message under property input\r\n * @property {String} id - id of filed\r\n * @property {String|Object} label - property label\r\n * @property {boolean} visible - whether field visible\r\n * @property {boolean} required - whether property is required\r\n * @property {boolean} hasSubFields - whether field has subfields\r\n * @property {FieldOption[]} fields - subfields of field\r\n */\r\n\r\n\r\nexport class SimpleForm extends Backbone.View {\r\n /**\r\n * init simple form view, it will generate a view base on schema\r\n * and field, it will enter in edit mode if existing id in model,\r\n * you can customize validation in CustomValidators, when you have\r\n * some sidebar view for specific property, you can add it in sidebars,\r\n * about layout between properties, we provide two default template \"horizontal\"\r\n * and \"inline\", if you want to customzie your template you can pass a function\r\n * to template, at the same time, you can config whether have labels, buttons and buttons'\r\n * text as you need, if you have help icon in simple form for labels, please provide\r\n * a callback function clickHelpIcon to process click event of icon\r\n * @public\r\n * @event \"save\" event is triggered when click save button and pass current model as arg\r\n * @event \"cancel\" event is triggered when click cancel button and pass current model as arg\r\n * @event \"clickHelpIcon\" event is triggered when click .helpbutton in simple form\r\n * @param {JsonSchema} schema - entity define\r\n * @param {Field[]} fields - list of field\r\n * @param {Object} [model] - undefined\r\n * @param {CustomValidators} [customValidators] - {}\r\n * @param {SideBarOption[]} [sidebars] - []\r\n * @param {String|function} [template] - horizontal\r\n * @param {function} [labelTemplate] - src/template/simple-form/control/label.pug\r\n * @param {boolean} [showButtons] - true\r\n * @param {boolean} [hasLabels] - true\r\n * @param {String} [customLabel] - custom label\r\n * @param {String} [customHint] - custom hint\r\n * @param {String} [inputSuffix] - input suffix\r\n * @param {S$I18n} [s$i18n] - get i18n string of schema\r\n * @param {function} [s$i18n.type=identity] - get string with schema name\r\n * @param {function} [s$i18n.property=property] - get string of a property in schema\r\n * @param {function} [s$i18n.value=value] - get string of a value enumed in property of schema\r\n * @param {I18n} [i18n] - get i18n string in component\r\n * @param {function} [i18n.getString=identity] - get string with key\r\n * @param {function} [i18n.isValidDecimal] - whether a string is valid decimal\r\n * @param {function} [i18n.parseDecimal=parseFloat] - parse string to float\r\n * @param {function} [i18n.formatDecimal] - convert float to string\r\n * @returns {void}\r\n */\r\n initialize({\r\n schema,\r\n fields,\r\n model,\r\n customValidators = {},\r\n sidebars = [],\r\n template = 'horizontal',\r\n labelTemplate = tmplLabel,\r\n showButtons = true,\r\n hasLabels = true,\r\n customLabel = null,\r\n customHint = null,\r\n inputSuffix = null,\r\n s$i18n = {\r\n type(type) {\r\n return type;\r\n },\r\n property(type, property) {\r\n return property;\r\n },\r\n value(type, property, value) {\r\n return String(value);\r\n },\r\n },\r\n i18n = {\r\n getString: _.identity,\r\n isValidDecimal: value => !_.isNaN(parseFloat(value)),\r\n parseDecimal: str => parseFloat(str),\r\n formatDecimal: float => `${float}`,\r\n formatDecimalToFixed: float => `${float}`,\r\n },\r\n }) {\r\n this.i18n = i18n;\r\n\r\n if (_.isFunction(template)) {\r\n this.template = template;\r\n } else {\r\n this.template = {\r\n horizontal: tmplHorizontal,\r\n inline: tmplInline,\r\n }[template];\r\n }\r\n\r\n this.model = model;\r\n this.type = schema.name;\r\n this.id = `${_.uniqueId('Form-')}-${schema.name}`;\r\n\r\n this.fields = generateFieldOptions(schema, fields, this.id, s$i18n);\r\n\r\n this.flattedFields = this.getFlattedFields(this.fields);\r\n\r\n this.properties = _.chain(this.flattedFields)\r\n .filter(field => field.hasSubFields !== true)\r\n .pluck('property')\r\n .value();\r\n\r\n this.sidebars = generateSidebarsOptions({ schema, properties: this.properties, sidebars });\r\n\r\n this.fieldIndex = _.indexBy(this.flattedFields, field => field.property);\r\n\r\n this.viewModel = new SimpleFormViewModel({\r\n fields: this.flattedFields,\r\n schema,\r\n model: this.model,\r\n customValidators,\r\n i18n,\r\n });\r\n\r\n _.each(this.properties, (prop) => {\r\n this.viewModel[prop].subscribe((val) => {\r\n this.trigger(`change:${prop}`, val);\r\n this.trigger('change', this.currentModel());\r\n });\r\n });\r\n\r\n this.labelTemplate = labelTemplate;\r\n this.showButtons = showButtons;\r\n this.saveButtonText = i18n.getString('SimpleForm_Button_Save');\r\n this.cancelButtonText = i18n.getString('SimpleForm_Button_Cancel');\r\n this.hasLabels = hasLabels;\r\n this.customLabel = customLabel;\r\n this.customHint = customHint;\r\n this.inputSuffix = inputSuffix;\r\n }\r\n\r\n get events() {\r\n return {\r\n 'click .save': 'save',\r\n 'click .cancel': 'cancel',\r\n 'submit form': 'save',\r\n 'click .helpbutton': 'clickHelpIcon',\r\n };\r\n }\r\n\r\n /**\r\n * click help icon event handler\r\n * @private\r\n * @param {Event} e - click event on help icon\r\n * {@link https://developer.mozilla.org/en/docs/Web/API/Event Event}\r\n * @returns {void}\r\n */\r\n clickHelpIcon(e) {\r\n this.trigger('clickHelpIcon', e);\r\n }\r\n\r\n /**\r\n * render view\r\n * @public\r\n * @returns {View} - return view itself\r\n */\r\n render() {\r\n this.$el.html(this.template({\r\n i18n: this.i18n,\r\n properties: this.properties,\r\n fields: this.fields,\r\n indexedFields: this.fieldIndex,\r\n showButtons: this.showButtons,\r\n hasLabels: this.hasLabels,\r\n customHint: this.customHint,\r\n inputSuffix: this.inputSuffix,\r\n type: this.type,\r\n bindTo,\r\n }));\r\n\r\n this.renderBuiltInControls();\r\n this.renderTemplateControls();\r\n this.renderLabels();\r\n this.renderValidations();\r\n\r\n ko.applyBindings(this.viewModel, this.el);\r\n\r\n this.renderViewControls();\r\n this.renderSidebars();\r\n return this;\r\n }\r\n\r\n /**\r\n * remove this view and it's subview\r\n * @public\r\n * @returns {void}\r\n */\r\n remove() {\r\n _.each(this.viewControls, (viewControl) => {\r\n viewControl.remove();\r\n });\r\n\r\n _.each(this.sidebarViews, (sidebarView) => {\r\n sidebarView.remove();\r\n });\r\n\r\n super.remove();\r\n }\r\n\r\n /**\r\n * get flatted fields, we can define field in another field\r\n * @param {FieldOption[]} fields - field\r\n * @returns {FieldOption[]} - flatted field\r\n * @private\r\n */\r\n getFlattedFields(fields) {\r\n const ret = _.map(fields, (field) => {\r\n let subFields = [];\r\n\r\n if (field.hasSubFields === true) {\r\n subFields = this.getFlattedFields(field.fields);\r\n }\r\n\r\n subFields.push(field);\r\n return subFields;\r\n });\r\n\r\n return _.flatten(ret);\r\n }\r\n\r\n /**\r\n * render buildin controls for all properties input\r\n * @returns {void}\r\n * @private\r\n */\r\n renderBuiltInControls() {\r\n this.$('.form-input-container[data-property=\"$buttons\"]').html(tmplButtons(_.pick(this, ['saveButtonText', 'cancelButtonText'])));\r\n }\r\n\r\n /**\r\n * render customized template controal\r\n * @returns {void}\r\n * @private\r\n */\r\n renderTemplateControls() {\r\n this.$('.form-input-container').each((i, e) => {\r\n const $el = $(e);\r\n const property = $el.attr('data-property');\r\n const field = this.fieldIndex[property] || {};\r\n const { control } = field;\r\n\r\n if (!isBackboneView(control) && control) {\r\n if (this.inputSuffix) {\r\n control.html += `${this.inputSuffix}`;\r\n }\r\n $el.html(control.html);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * render customized view control\r\n * @returns {void}\r\n * @private\r\n */\r\n renderViewControls() {\r\n this.viewControls = {};\r\n\r\n this.$('.form-input-container').each((i, e) => {\r\n const $el = $(e);\r\n const property = $el.attr('data-property');\r\n const field = this.fieldIndex[property] || {};\r\n const Constructor = field.control;\r\n\r\n if (isBackboneView(Constructor)) {\r\n this.viewControls[property] = new Constructor({\r\n observable: this.viewModel[property],\r\n viewModel: this.viewModel,\r\n field,\r\n });\r\n\r\n $el.append(this.viewControls[property].render().el);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * render labels for all properties, used to show labels of property and help icon\r\n * @returns {void}\r\n * @private\r\n */\r\n renderLabels() {\r\n this.$('.form-label-container').each((i, e) => {\r\n const $el = $(e);\r\n const field = this.fieldIndex[$el.attr('data-property')];\r\n\r\n if (field.showLabel) {\r\n const learnMoreText = field.schema.helpId ? this.i18n.getString('SimpleForm_LearnMore', {\r\n item: field.label,\r\n }) : '';\r\n $el.html(this.labelTemplate({\r\n field,\r\n type: this.type,\r\n bindTo,\r\n learnMoreText,\r\n customLabel: this.customLabel,\r\n }));\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * render validation template for all properties, used to show validate results\r\n * @returns {void}\r\n * @private\r\n */\r\n renderValidations() {\r\n this.$('.form-validation-container').each((i, e) => {\r\n const $el = $(e);\r\n const property = $el.attr('data-property');\r\n const field = this.fieldIndex[property] || { property, id: `${this.id}-${property}` };\r\n const observable = this.viewModel[property];\r\n\r\n if (_.isFunction(observable.validate)) {\r\n $el.html(tmplValidation({\r\n field,\r\n bindTo,\r\n }));\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * render sidebars\r\n * @returns {void}\r\n * @private\r\n */\r\n renderSidebars() {\r\n this.sidebarViews = {};\r\n\r\n _.each(this.sidebars, ({ properties, view: Ctor = {} }, strProperties) => {\r\n const selector = _.map(properties, property => `.form-group[data-property=${property}]`).join(',');\r\n\r\n this.$(selector).wrapAll(tmplSidebarWrapper({ properties }));\r\n\r\n if (isBackboneView(Ctor)) {\r\n const sidebar = new Ctor({\r\n className: 'sidebar',\r\n id: `${this.id}-${strProperties}`,\r\n properties,\r\n viewModel: this.viewModel,\r\n i18n: this.i18n,\r\n });\r\n\r\n this.$(`.form-groups-with-sidebar[data-properties='${strProperties}']`).append(sidebar.render().el);\r\n\r\n this.sidebarViews[strProperties] = sidebar;\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * get current model of simple form\r\n * @public\r\n * @returns {Object} - return current value model of simple form\r\n */\r\n currentModel() {\r\n return _.defaults(this.viewModel.toObject(), this.model);\r\n }\r\n\r\n /**\r\n * convert and set error message to each property\r\n * @public\r\n * @param {Object[]} errors - each item has property and message\r\n * @param {Object} model - value model of simple form\r\n * @returns {void}\r\n */\r\n setErrors(errors, model) {\r\n const modelErr = model || this.currentModel();\r\n\r\n _.each(errors, (message, prop) => {\r\n const observable = this.viewModel[prop];\r\n\r\n if (_.isArray(message)) {\r\n const proxy = observable || this.viewModel.$overall;\r\n const uniqMessage = _.uniq(message, false, msg => msg.message);\r\n\r\n proxy.validate();\r\n proxy.errors.push(...uniqMessage);\r\n } else if (observable && observable.validators) {\r\n const validator = observable.validators.passive;\r\n\r\n if (validator && _.isFunction(validator.setError)) {\r\n validator.setError(message, modelErr[prop]);\r\n }\r\n\r\n observable.validate();\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * validate simple form forcely\r\n * @public\r\n * @returns {void}\r\n */\r\n validate() {\r\n return this.viewModel.validate();\r\n }\r\n\r\n /**\r\n * validate and trigger 'save' event when click save button in simple form\r\n * @private\r\n * @param {Event} e - event passed from backbone view\r\n * @returns {void}\r\n */\r\n save(e) {\r\n if (e && e.type === 'submit') {\r\n // Form submission will cause page redirection; stop it here\r\n e.preventDefault();\r\n }\r\n\r\n if (this.validate()) {\r\n this.trigger('save', this.currentModel());\r\n }\r\n }\r\n\r\n /**\r\n * trigger 'cancel' event when click cancel button in simple form\r\n * @private\r\n * @returns {void}\r\n */\r\n cancel() {\r\n this.trigger('cancel', this.currentModel());\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { typeField } from './type';\r\nimport { normalizeControl } from './control';\r\n\r\n/**\r\n * normalize value messages to array, since value could not be\r\n * nessasary string, object is not generic enough\r\n * @private\r\n * @param {String[]|Object|String} valueMessages - message of value\r\n * @param {String[]} values -list of value\r\n * @returns {String[]} - return message in string array\r\n */\r\nfunction normalizeValueMessages(valueMessages, values) {\r\n if (_.isArray(valueMessages)) {\r\n return valueMessages;\r\n } else if (_.isObject(valueMessages)) {\r\n return _.map(values, value => valueMessages[value]);\r\n } else if (_.isString(valueMessages)) {\r\n return [valueMessages];\r\n }\r\n\r\n return valueMessages;\r\n}\r\n\r\n/**\r\n * generate filed options for fields\r\n * @private\r\n * @param {JsonSchema} schema - entity define\r\n * @param {Field[]} fields - list of Field\r\n * @param {String} prefix - random string as id prefix\r\n * @param {S$I18n} s$i18n - provide callback property to get string\r\n * @returns {FieldOption[]} - return field option array for each field in fields\r\n */\r\nexport function generateFieldOptions(schema, fields, prefix, s$i18n) {\r\n return _.map(fields, (field) => {\r\n const fieldObject = _.isString(field) ? { property: field } : field;\r\n\r\n if (!_.isEmpty(fieldObject.fields)) { // has subfields\r\n const subFields = generateFieldOptions(schema, fieldObject.fields, prefix, s$i18n);\r\n const property = _.uniqueId(_.pluck(subFields, 'property').join('')); // if subfields has only one field, the name will be conflicted with property\r\n\r\n return _.extend({}, fieldObject, {\r\n control: { builtInControl: fieldObject.type },\r\n property,\r\n id: `${prefix}-${property}`,\r\n hasSubFields: true,\r\n fields: subFields,\r\n });\r\n }\r\n\r\n const type = schema.name;\r\n const {\r\n property,\r\n } = fieldObject;\r\n const propertySchema = schema.properties[property] || {};\r\n const typeOptions = typeField(propertySchema) || {};\r\n const values = fieldObject.values || typeOptions.values;\r\n const valueMessages = normalizeValueMessages(fieldObject.valueMessages, values) ||\r\n _.map(values, _.partial(s$i18n.value, type, property));\r\n\r\n // Common options for all fields\r\n const commonOptions = {\r\n showLabel: true,\r\n schema: propertySchema,\r\n message: valueMessages[0],\r\n id: `${prefix}-${property}`,\r\n label: s$i18n.property(type, property),\r\n visible: true,\r\n required: Boolean(propertySchema.required || _.contains(schema.required, property)),\r\n };\r\n\r\n const normalizedOptions = {\r\n valueMessages,\r\n };\r\n\r\n\r\n const finalField = _.extend(commonOptions, typeOptions, fieldObject, normalizedOptions);\r\n\r\n finalField.control = normalizeControl(finalField, type);\r\n\r\n return finalField;\r\n });\r\n}\r\n","import _ from 'underscore';\r\nimport { booleanField } from './boolean';\r\nimport { enumField } from './enum';\r\nimport { integerField } from './integer';\r\nimport { numberField } from './number';\r\nimport { stringField } from './string';\r\n\r\nconst mapping = {\r\n boolean: booleanField,\r\n enum: enumField,\r\n integer: integerField,\r\n number: numberField,\r\n string: stringField,\r\n};\r\n\r\n/**\r\n * get field define base on format or type\r\n * @private\r\n * @param {Object} attrs - property define\r\n * @returns {Object} - field define\r\n */\r\nexport function typeField(attrs = {}) {\r\n let key;\r\n\r\n if (attrs.format) {\r\n key = attrs.format;\r\n } else {\r\n key = _.isEmpty(attrs.enum) ? attrs.type : 'enum';\r\n }\r\n\r\n const field = mapping[key];\r\n\r\n if (_.isFunction(field)) {\r\n return field(attrs);\r\n }\r\n\r\n return field;\r\n}\r\n","export const booleanField = {\r\n control: 'checkbox',\r\n values: [true, false],\r\n};\r\n","/**\r\n * Get enum field\r\n * @private\r\n * @param {Object} attrs - enum property define\r\n * @returns {Object} - field define with property control and values\r\n */\r\nexport function enumField(attrs) {\r\n return {\r\n // for enum property, default view is select\r\n control: 'select',\r\n // options are all enum values\r\n values: attrs.enum,\r\n };\r\n}\r\n","export { numberField as integerField } from './number';\r\n","export const numberField = {\r\n control: 'text',\r\n valueUpdate: 'input',\r\n validators: {\r\n range: { blockInput: false /* , message */ },\r\n decimalLength: { blockInput: false /* , message */ },\r\n },\r\n};\r\n","export const stringField = {\r\n control: 'text',\r\n showHint: false,\r\n valueUpdate: 'input',\r\n validators: {\r\n maxLength: { blockInput: false /* , message */ },\r\n },\r\n};\r\n","import $ from 'jquery';\r\nimport _ from 'underscore';\r\nimport { get } from '@bingads-webui-universal/primitive-utilities';\r\nimport tmplTextInput from '../../template/simple-form/control/text-input.pug';\r\nimport tmplTextareaInput from '../../template/simple-form/control/textarea.pug';\r\nimport tmplSelectInput from '../../template/simple-form/control/select-input.pug';\r\nimport tmplCheckboxInput from '../../template/simple-form/control/checkbox-input.pug';\r\nimport tmplRadiosInput from '../../template/simple-form/control/radios-input.pug';\r\nimport tmplInlineRadiosInput from '../../template/simple-form/control/inline-radios-input.pug';\r\nimport tmplStatic from '../../template/simple-form/control/static.pug';\r\nimport { isBackboneView, bindTo } from '../util';\r\n\r\nfunction getBuiltInControlTemplate(control) {\r\n return get({\r\n checkbox: tmplCheckboxInput,\r\n collapse: _.constant(''),\r\n group: _.constant(''),\r\n 'inline-radios': tmplInlineRadiosInput,\r\n radios: tmplRadiosInput,\r\n select: tmplSelectInput,\r\n static: tmplStatic,\r\n text: tmplTextInput,\r\n textarea: tmplTextareaInput,\r\n }, control, null);\r\n}\r\n\r\nexport function normalizeControl(field, type) {\r\n const { control } = field;\r\n const callTemplate = template => template({\r\n field,\r\n type,\r\n bindTo,\r\n });\r\n const callBuiltInTemplate =\r\n builtInControl => callTemplate(getBuiltInControlTemplate(builtInControl));\r\n\r\n if (isBackboneView(control)) {\r\n return control;\r\n }\r\n\r\n if (_.isFunction(control)) {\r\n const $el = $(`
${callTemplate(control)}
`);\r\n let builtInControl = null;\r\n\r\n const $builtInControl = $el.find('.form-input[data-control]');\r\n\r\n if ($builtInControl.length) {\r\n builtInControl = $builtInControl[0].dataset.control;\r\n $builtInControl.append(callBuiltInTemplate(builtInControl));\r\n }\r\n\r\n return {\r\n builtInControl,\r\n html: $el.html(),\r\n };\r\n }\r\n\r\n if (_.isObject(control)) {\r\n return control;\r\n }\r\n\r\n return {\r\n builtInControl: control,\r\n html: callBuiltInTemplate(control),\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 (JSON, String, bindTo, field) {var id = field.id;\nvar property = field.property;\nvar bind = 'value:' + bindTo(property, 'text');\nif (field.valueUpdate) bind += ', valueUpdate:' + JSON.stringify(field.valueUpdate);\nvar hasMaxLength = field.schema.type === 'string'\nif (hasMaxLength && field.showHintInline) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"text-form-hint-inline\\\"\\u003E\\u003Cdiv class=\\\"input-group\\\"\\u003E\\u003Cinput\" + (\" class=\\\"form-control\\\"\"+\" type=\\\"text\\\"\"+pug.attr(\"id\", field.id, true, true)+pug.attr(\"required\", field.required, true, true)+pug.attr(\"aria-labelledby\", id + \"-Label\", true, true)+pug.attr(\"aria-required\", String(field.required), true, true)+pug.attr(\"data-bind\", bind + \", hasFocus: \" + bindTo(property, 'editing') + \", attr: { placeholder: \" + bindTo(property, 'placeholder') + \", title: \" + bindTo(property, 'label') + \", 'aria-describedby': \" + bindTo(property, 'strDescribedby') + \" }\", true, true)) + \"\\u003E\\u003Cspan\" + (\" class=\\\"input-group-addon\\\"\"+pug.attr(\"data-bind\", \"text: \" + bindTo(property, 'remaining'), true, true)) + \"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cinput\" + (\" class=\\\"form-control input\\\"\"+\" type=\\\"text\\\"\"+pug.attr(\"id\", field.id, true, true)+pug.attr(\"required\", field.required, true, true)+pug.attr(\"aria-labelledby\", id + \"-Label\", true, true)+pug.attr(\"aria-required\", String(field.required), true, true)+pug.attr(\"data-bind\", bind + \", hasFocus: \" + bindTo(property, 'editing') + \", attr: { placeholder: \" + bindTo(property, 'placeholder') + \", title: \" + bindTo(property, 'label') + \", 'aria-describedby': \" + bindTo(property, 'strDescribedby') + \" }\", true, true)) + \"\\u003E\";\nif (hasMaxLength && field.showHint) {\npug_html = pug_html + \"\\u003Cdiv\" + (\" class=\\\"remaining-hint help-block\\\"\"+pug.attr(\"data-bind\", \"text: \" + bindTo(property, 'char_rem'), true, true)+pug.attr(\"id\", id + \"-Remaining\", true, true)+\" role=\\\"status\\\" aria-live=\\\"polite\\\"\") + \"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\n}}.call(this,\"JSON\" in locals_for_with?locals_for_with.JSON:typeof JSON!==\"undefined\"?JSON:undefined,\"String\" in locals_for_with?locals_for_with.String:typeof String!==\"undefined\"?String:undefined,\"bindTo\" in locals_for_with?locals_for_with.bindTo:typeof bindTo!==\"undefined\"?bindTo:undefined,\"field\" in locals_for_with?locals_for_with.field:typeof field!==\"undefined\"?field: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 (JSON, String, bindTo, field) {var id = field.id;\nvar property = field.property;\nvar bind = 'value:' + bindTo(property, 'text');\nif (field.valueUpdate) bind += ', valueUpdate:' + JSON.stringify(field.valueUpdate);\npug_html = pug_html + \"\\u003Ctextarea\" + (\" class=\\\"form-control\\\"\"+pug.attr(\"id\", field.id, true, true)+pug.attr(\"required\", field.required, true, true)+pug.attr(\"aria-labelledby\", id + \"-Label\", true, true)+pug.attr(\"aria-required\", String(field.required), true, true)+pug.attr(\"rows\", String(field.rows), true, true)+pug.attr(\"data-bind\", bind + \", hasFocus: \" + bindTo(property, \"editing\") + \", attr: { placeholder: \" + bindTo(property, \"placeholder\") + \", title: \" + bindTo(property, \"label\") + \", 'aria-describedby': \" + bindTo(property, \"strDescribedby\") + \" }\", true, true)) + \"\\u003E\\u003C\\u002Ftextarea\\u003E\";}.call(this,\"JSON\" in locals_for_with?locals_for_with.JSON:typeof JSON!==\"undefined\"?JSON:undefined,\"String\" in locals_for_with?locals_for_with.String:typeof String!==\"undefined\"?String:undefined,\"bindTo\" in locals_for_with?locals_for_with.bindTo:typeof bindTo!==\"undefined\"?bindTo:undefined,\"field\" in locals_for_with?locals_for_with.field:typeof field!==\"undefined\"?field: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 (String, bindTo, field) {var id = field.id;\nvar property = field.property;\npug_html = pug_html + \"\\u003Cselect\" + (\" class=\\\"form-control input\\\"\"+\" role=\\\"listbox\\\"\"+pug.attr(\"id\", id, true, true)+pug.attr(\"aria-labelledby\", id + \"-Label\", true, true)+pug.attr(\"aria-describedby\", id + \"-Validation\", true, true)+pug.attr(\"data-bind\", \"value: \" + bindTo(property, \"select\"), true, true)) + \"\\u003E\";\n// iterate field.values\n;(function(){\n var $$obj = field.values;\n if ('number' == typeof $$obj.length) {\n for (var index = 0, $$l = $$obj.length; index < $$l; index++) {\n var option = $$obj[index];\npug_html = pug_html + \"\\u003Coption\" + (\" role=\\\"option\\\"\"+pug.attr(\"value\", String(option), true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = field.valueMessages[index]) ? \"\" : pug_interp)) + \"\\u003C\\u002Foption\\u003E\";\n }\n } else {\n var $$l = 0;\n for (var index in $$obj) {\n $$l++;\n var option = $$obj[index];\npug_html = pug_html + \"\\u003Coption\" + (\" role=\\\"option\\\"\"+pug.attr(\"value\", String(option), true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = field.valueMessages[index]) ? \"\" : pug_interp)) + \"\\u003C\\u002Foption\\u003E\";\n }\n }\n}).call(this);\n\npug_html = pug_html + \"\\u003C\\u002Fselect\\u003E\";}.call(this,\"String\" in locals_for_with?locals_for_with.String:typeof String!==\"undefined\"?String:undefined,\"bindTo\" in locals_for_with?locals_for_with.bindTo:typeof bindTo!==\"undefined\"?bindTo:undefined,\"field\" in locals_for_with?locals_for_with.field:typeof field!==\"undefined\"?field: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 (bindTo, field) {var id = field.id;\nvar property = field.property;\npug_html = pug_html + \"\\u003Cdiv class=\\\"checkbox\\\"\\u003E\\u003Clabel\" + (pug.attr(\"id\", id + \"-Checkbox-Label\", true, true)) + \"\\u003E\\u003Cinput\" + (\" type=\\\"checkbox\\\" role=\\\"checkbox\\\"\"+pug.attr(\"id\", id, true, true)+pug.attr(\"aria-labelledby\", id + \"-Label \" + id + \"-Checkbox-Label\", true, true)+pug.attr(\"aria-describedby\", id + \"-Validation\", true, true)+pug.attr(\"data-bind\", \"checked: \" + bindTo(property, 'checkbox') + \", attr: { 'aria-checked': \" + bindTo(property, 'checkbox') + \" }\", true, true)) + \"\\u003E\" + (null == (pug_interp = field.message) ? \"\" : pug_interp) + \"\\u003C\\u002Flabel\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"bindTo\" in locals_for_with?locals_for_with.bindTo:typeof bindTo!==\"undefined\"?bindTo:undefined,\"field\" in locals_for_with?locals_for_with.field:typeof field!==\"undefined\"?field: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 (String, bindTo, field) {var id = field.id;\nvar property = field.property;\npug_html = pug_html + \"\\u003Cdiv\" + (pug.attr(\"id\", id, true, true)+\" role=\\\"radiogroup\\\"\"+pug.attr(\"aria-labelledby\", id + '-Label', true, true)+pug.attr(\"aria-describedby\", id + '-Validation', true, true)) + \"\\u003E\";\n// iterate field.values\n;(function(){\n var $$obj = field.values;\n if ('number' == typeof $$obj.length) {\n for (var index = 0, $$l = $$obj.length; index < $$l; index++) {\n var value = $$obj[index];\npug_html = pug_html + \"\\u003Cdiv class=\\\"radio\\\"\\u003E\\u003Clabel\\u003E\\u003Cinput\" + (\" type=\\\"radio\\\" role=\\\"radio\\\"\"+pug.attr(\"name\", id, true, true)+pug.attr(\"value\", String(value), true, true)+pug.attr(\"data-bind\", 'checked: ' + bindTo(property, 'radios') + ', attr: { \"aria-checked\": ' + bindTo(property, 'radios') + ' }', true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = field.valueMessages[index]) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\\u003C\\u002Fdiv\\u003E\";\n }\n } else {\n var $$l = 0;\n for (var index in $$obj) {\n $$l++;\n var value = $$obj[index];\npug_html = pug_html + \"\\u003Cdiv class=\\\"radio\\\"\\u003E\\u003Clabel\\u003E\\u003Cinput\" + (\" type=\\\"radio\\\" role=\\\"radio\\\"\"+pug.attr(\"name\", id, true, true)+pug.attr(\"value\", String(value), true, true)+pug.attr(\"data-bind\", 'checked: ' + bindTo(property, 'radios') + ', attr: { \"aria-checked\": ' + bindTo(property, 'radios') + ' }', true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = field.valueMessages[index]) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\\u003C\\u002Fdiv\\u003E\";\n }\n }\n}).call(this);\n\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";}.call(this,\"String\" in locals_for_with?locals_for_with.String:typeof String!==\"undefined\"?String:undefined,\"bindTo\" in locals_for_with?locals_for_with.bindTo:typeof bindTo!==\"undefined\"?bindTo:undefined,\"field\" in locals_for_with?locals_for_with.field:typeof field!==\"undefined\"?field: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 (String, bindTo, field) {var id = field.id;\nvar property = field.property;\npug_html = pug_html + \"\\u003Cdiv\" + (pug.attr(\"id\", id, true, true)+\" role=\\\"radiogroup\\\"\"+pug.attr(\"aria-labelledby\", id + '-Label', true, true)+pug.attr(\"aria-describedby\", id + '-Validation', true, true)) + \"\\u003E\";\n// iterate field.values\n;(function(){\n var $$obj = field.values;\n if ('number' == typeof $$obj.length) {\n for (var index = 0, $$l = $$obj.length; index < $$l; index++) {\n var value = $$obj[index];\npug_html = pug_html + \"\\u003Clabel class=\\\"radio-inline\\\"\\u003E\\u003Cinput\" + (\" type=\\\"radio\\\" role=\\\"radio\\\"\"+pug.attr(\"name\", id, true, true)+pug.attr(\"value\", String(value), true, true)+pug.attr(\"data-bind\", 'checked: ' + bindTo(property, 'radios') + ', attr: { \"aria-checked\": ' + bindTo(property, 'radios') + ' }', true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = field.valueMessages[index]) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\";\n }\n } else {\n var $$l = 0;\n for (var index in $$obj) {\n $$l++;\n var value = $$obj[index];\npug_html = pug_html + \"\\u003Clabel class=\\\"radio-inline\\\"\\u003E\\u003Cinput\" + (\" type=\\\"radio\\\" role=\\\"radio\\\"\"+pug.attr(\"name\", id, true, true)+pug.attr(\"value\", String(value), true, true)+pug.attr(\"data-bind\", 'checked: ' + bindTo(property, 'radios') + ', attr: { \"aria-checked\": ' + bindTo(property, 'radios') + ' }', true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = field.valueMessages[index]) ? \"\" : pug_interp)) + \"\\u003C\\u002Flabel\\u003E\";\n }\n }\n}).call(this);\n\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";}.call(this,\"String\" in locals_for_with?locals_for_with.String:typeof String!==\"undefined\"?String:undefined,\"bindTo\" in locals_for_with?locals_for_with.bindTo:typeof bindTo!==\"undefined\"?bindTo:undefined,\"field\" in locals_for_with?locals_for_with.field:typeof field!==\"undefined\"?field: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 (bindTo, field) {pug_html = pug_html + \"\\u003Cp\" + (\" class=\\\"form-control-static\\\"\"+pug.attr(\"id\", field.id, true, true)+pug.attr(\"data-bind\", 'text: ' + bindTo(field.property, 'static'), true, true)) + \"\\u003E\\u003C\\u002Fp\\u003E\";}.call(this,\"bindTo\" in locals_for_with?locals_for_with.bindTo:typeof bindTo!==\"undefined\"?bindTo:undefined,\"field\" in locals_for_with?locals_for_with.field:typeof field!==\"undefined\"?field:undefined));;return pug_html;};\nmodule.exports = template;","import Backbone from 'backbone';\r\n\r\n/**\r\n * Check if func is backbone view\r\n * @param {function} func - passed function\r\n * @returns {boolean} - return true if is backbone view, otherwise, return false\r\n */\r\nexport function isBackboneView(func = {}) {\r\n return func.prototype instanceof Backbone.View;\r\n}\r\n\r\nexport function bindTo(property, extension) {\r\n return `$data[${JSON.stringify(property)}].${extension}`;\r\n}\r\n","import _ from 'underscore';\r\nimport { include } from 'underscore.string';\r\nimport { AggregateLength } from './aggregate-length';\r\n\r\n/**\r\n * define Object SideBarOption\r\n * @typedef {Object} SideBarOption\r\n * @property {String[]} properties - list of property for sidebar\r\n * @property {Backbone.View} view - the view of sidebar\r\n */\r\n\r\n/**\r\n * define Object SideBarOptionObject\r\n * @typedef {Object} SideBarOptionObject\r\n * key is properties joined by ','\r\n * value is SideBarOption\r\n */\r\n\r\n/**\r\n * generate a list of aggregate length options\r\n * @private\r\n * @param {JsonSchema} schema - entity define schema\r\n * @returns {SideBarOption[]} - return a list of SideBarOption,\r\n * each item correspond to a aggregate length constraint\r\n */\r\nfunction aggregateLengthGenerator(schema) {\r\n const aggregateLengthConstraints = _.filter(schema.constraints, { type: 'aggregateLength' });\r\n\r\n return _.map(aggregateLengthConstraints, constraint => ({\r\n properties: constraint.properties,\r\n view: AggregateLength,\r\n }));\r\n}\r\n\r\nconst generators = {\r\n aggregateLength: aggregateLengthGenerator,\r\n};\r\n\r\n/**\r\n * convert sidebar list to a object indexed by sidebar string properties\r\n * @private\r\n * @param {SideBarOption[]} arraySidebars - list of sidebar options\r\n * @param {String} strProperties - properties joined by ','\r\n * @returns {SideBarOptionObject} return SideBarOptionObject\r\n */\r\nfunction internalConvert(arraySidebars, strProperties) {\r\n return _.indexBy(arraySidebars, (sidebar) => {\r\n const strSidebarProperties = sidebar.properties.toString();\r\n\r\n if (!include(strProperties, strSidebarProperties)) {\r\n throw new Error(`Some of properties ${strSidebarProperties} passed in through sidebars are not in passed in properties ${strProperties}`);\r\n }\r\n\r\n return strSidebarProperties;\r\n });\r\n}\r\n\r\n/**\r\n * generate sidebar options by schema\r\n * @private\r\n * @param {JsonSchema} schema - entity schema define\r\n * @param {String[]} properties - list of property\r\n * @returns {SideBarOptionObject} - return SideBarOptionObject\r\n */\r\nfunction bySchema(schema, properties) {\r\n const arraySidebars = _.reduce(generators, (memo, generator) =>\r\n memo.concat(generator(schema)), []);\r\n\r\n return internalConvert(arraySidebars, properties.toString());\r\n}\r\n\r\n/**\r\n * generate sidebar option for properties\r\n * @private\r\n * @param {JsonSchema} schema - entity define schema\r\n * @param {String[]} properties - property list used in form\r\n * @param {SideBarOption[]} sidebars - customized sidebar option list\r\n * @returns {SideBarOptionObject} - return SideBarOptionObject\r\n */\r\nexport function generateSidebarsOptions({ schema, properties, sidebars }) {\r\n const strProperties = properties.toString();\r\n\r\n return _.defaults(\r\n internalConvert(sidebars, strProperties),\r\n bySchema(schema, properties)\r\n );\r\n}\r\n","module.exports = __WEBPACK_EXTERNAL_MODULE__532__;","import _ from 'underscore';\r\nimport Backbone from 'backbone';\r\nimport ko from 'knockout';\r\nimport tmpl from '../../template/sidebar/aggregate-length.pug';\r\n\r\n/**\r\n * Define view of aggregate length\r\n * @private\r\n * @param {String[]} properties - aggregate property list\r\n * @param {Object} viewModel - model of property\r\n * @param {String} id - unique string as id\r\n * @param {I18n} i18n - provide callback function getString\r\n */\r\nexport class AggregateLength extends Backbone.View {\r\n initialize({\r\n properties = [], viewModel = {}, id, i18n,\r\n } = {}) {\r\n const strProperties = properties.toString();\r\n\r\n this.srId = `${id}-TotalRemaining`;\r\n\r\n _.each(properties, (property) => {\r\n viewModel[property].describedby.push(this.srId);\r\n });\r\n\r\n this.viewModel = {\r\n remaining: viewModel[strProperties].remaining,\r\n remainingChar: ko.computed(() => {\r\n const remaining = viewModel[strProperties].remaining();\r\n const fields = _.reduce(properties, (initial, property) => {\r\n if (initial) {\r\n return i18n.getString('SimpleForm_TotalRemainingCharactersText_FieldsList', {\r\n initial,\r\n last: viewModel[property].label(),\r\n });\r\n }\r\n return viewModel[property].label();\r\n });\r\n\r\n return i18n.getString('SimpleForm_TotalRemainingCharactersText', {\r\n count: remaining,\r\n fields,\r\n });\r\n }),\r\n };\r\n }\r\n\r\n render() {\r\n this.$el.html(tmpl({ srId: this.srId }));\r\n\r\n ko.applyBindings(this.viewModel, this.el);\r\n\r\n return this;\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 (srId) {pug_html = pug_html + \"\\u003Cdiv class=\\\"sidebar__right-bracket\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"sidebar__content sidebar__content_aggregate-length\\\"\\u003E\\u003Cspan data-bind=\\\"text: remaining, css: {error: remaining() < 0}\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003Cspan\" + (\" class=\\\"sr-only\\\"\"+pug.attr(\"id\", srId, true, true)+\" data-bind=\\\"text: remainingChar\\\" role=\\\"status\\\" aria-live=\\\"polite\\\"\") + \"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"srId\" in locals_for_with?locals_for_with.srId:typeof srId!==\"undefined\"?srId: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 (properties) {pug_html = pug_html + \"\\u003Cdiv\" + (\" class=\\\"form-groups-with-sidebar\\\"\"+pug.attr(\"data-properties\", properties.toString(), true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"properties\" in locals_for_with?locals_for_with.properties:typeof properties!==\"undefined\"?properties: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 (bindTo, fields, hasLabels, showButtons) {pug_mixins[\"collapse\"] = pug_interp = function(field){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\nvar text = field.text;\nvar property = field.property;\nvar id = field.id;\nvar cls = field.className || 'scheduling-form';\npug_html = pug_html + \"\\u003Cdiv\" + (pug.attr(\"class\", pug.classes([\"form-group\",cls], [false,true]), false, true)) + \"\\u003E\\u003Clabel class=\\\"col-sm-4 control-label\\\"\\u003E\\u003Ca\" + (\" data-toggle=\\\"collapse\\\"\"+pug.attr(\"data-target\", '#' + id, true, true)+pug.attr(\"data-bind\", 'attr: {\"aria-expanded\": ' + bindTo(property, 'observable()') + ' ? \"true\" : \"false\"}, click: ' + property + '.click', true, true)+\" href=\\\"javascript:void(0)\\\"\") + \"\\u003E\\u003Cspan\" + (\" class=\\\"spritedimage spritedimagealign\\\"\"+pug.attr(\"data-bind\", 'css: ' + bindTo(property, 'observable()') + ' ? \"expandedImage\" : \"expanderImage\"', true, true)) + \"\\u003E\\u003C\\u002Fspan\\u003E\" + (pug.escape(null == (pug_interp = text) ? \"\" : pug_interp)) + \"\\u003C\\u002Fa\\u003E\\u003C\\u002Flabel\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv\" + (pug.attr(\"data-bind\", 'attr: {id: ' + bindTo(property, 'id') + '}, css: ' + bindTo(property, 'isExpanded') + ' ? \"in\" : \"collapse\"', true, true)) + \"\\u003E\";\nif (block) {\nblock && block();\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n};\npug_mixins[\"group\"] = pug_interp = function(field){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\nvar description = field.description;\nvar cls = field.className || 'scheduling-form';\npug_html = pug_html + \"\\u003Cdiv data-type=\\\"group\\\"\\u003E\";\nif (description) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"group-description\\\" data-type=\\\"description\\\"\\u003E\" + (pug.escape(null == (pug_interp = description) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n}\nif (block) {\nblock && block();\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n};\npug_mixins[\"single-group\"] = pug_interp = function(field){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\nvar property = field.property\nvar description = field.description\npug_html = pug_html + \"\\u003Cdiv\" + (\" class=\\\"form-group\\\"\"+pug.attr(\"data-property\", property, true, true)+pug.attr(\"data-bind\", \"visible: \" + bindTo(property, \"visible\") + \", css: { 'has-error': !\" + bindTo(property, \"isValid() }\"), true, true)) + \"\\u003E\";\nif (hasLabels) {\npug_html = pug_html + \"\\u003Cdiv\" + (\" class=\\\"form-label-container col-sm-4\\\"\"+pug.attr(\"data-property\", property, true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"col-sm-8\\\"\\u003E\\u003Cdiv\" + (\" class=\\\"form-input-container\\\"\"+pug.attr(\"data-property\", property, true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv\" + (\" class=\\\"form-validation-container\\\"\"+pug.attr(\"data-property\", property, true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\nif (description) {\npug_html = pug_html + \"\\u003Cdiv\" + (\" class=\\\"inline-description col-sm-8 col-sm-offset-4\\\"\"+pug.attr(\"data-property\", property, true, true)+\" data-type=\\\"description\\\"\") + \"\\u003E\" + (pug.escape(null == (pug_interp = description) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n}\n}\nelse {\npug_html = pug_html + \"\\u003Cdiv class=\\\"col-sm-12\\\"\\u003E\\u003Cdiv\" + (\" class=\\\"form-input-container\\\"\"+pug.attr(\"data-property\", property, true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv\" + (\" class=\\\"form-validation-container\\\"\"+pug.attr(\"data-property\", property, true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\nif (description) {\npug_html = pug_html + \"\\u003Cdiv\" + (\" class=\\\"inline-description col-sm-12\\\"\"+pug.attr(\"data-property\", property, true, true)+\" data-type=\\\"description\\\"\") + \"\\u003E\" + (pug.escape(null == (pug_interp = description) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";\n}\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";\n};\npug_mixins[\"render-fields\"] = pug_interp = function(fields){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\n// iterate fields\n;(function(){\n var $$obj = fields;\n if ('number' == typeof $$obj.length) {\n for (var pug_index0 = 0, $$l = $$obj.length; pug_index0 < $$l; pug_index0++) {\n var field = $$obj[pug_index0];\nif (field.hasSubFields) {\nif (field.type === 'collapse') {\npug_mixins[\"collapse\"].call({\nblock: function(){\npug_mixins[\"render-fields\"](field.fields);\n}\n}, field);\n}\nelse\nif (field.type === 'group') {\npug_mixins[\"group\"].call({\nblock: function(){\npug_mixins[\"render-fields\"].call({\nblock: function(){\npug_html = pug_html + \" \";\n}\n}, field.fields);\n}\n}, field);\n}\n}\nelse {\npug_mixins[\"single-group\"](field);\n}\n }\n } else {\n var $$l = 0;\n for (var pug_index0 in $$obj) {\n $$l++;\n var field = $$obj[pug_index0];\nif (field.hasSubFields) {\nif (field.type === 'collapse') {\npug_mixins[\"collapse\"].call({\nblock: function(){\npug_mixins[\"render-fields\"](field.fields);\n}\n}, field);\n}\nelse\nif (field.type === 'group') {\npug_mixins[\"group\"].call({\nblock: function(){\npug_mixins[\"render-fields\"].call({\nblock: function(){\npug_html = pug_html + \" \";\n}\n}, field.fields);\n}\n}, field);\n}\n}\nelse {\npug_mixins[\"single-group\"](field);\n}\n }\n }\n}).call(this);\n\n};\npug_html = pug_html + \"\\u003Cform class=\\\"form-horizontal\\\"\\u003E\\u003Cdiv class=\\\"form-group\\\"\\u003E\\u003Cdiv class=\\\"col-sm-offset-4 col-sm-8\\\"\\u003E\\u003Cdiv class=\\\"form-validation-container\\\" data-property=\\\"$overall\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\npug_mixins[\"render-fields\"](fields);\nif (showButtons) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-input-container\\\" data-property=\\\"$buttons\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fform\\u003E\";}.call(this,\"bindTo\" in locals_for_with?locals_for_with.bindTo:typeof bindTo!==\"undefined\"?bindTo:undefined,\"fields\" in locals_for_with?locals_for_with.fields:typeof fields!==\"undefined\"?fields:undefined,\"hasLabels\" in locals_for_with?locals_for_with.hasLabels:typeof hasLabels!==\"undefined\"?hasLabels:undefined,\"showButtons\" in locals_for_with?locals_for_with.showButtons:typeof showButtons!==\"undefined\"?showButtons: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 (bindTo, customHint, hasLabels, properties, showButtons, type) {pug_mixins[\"single-group\"] = pug_interp = function(property, type){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\npug_html = pug_html + \"\\u003Cdiv\" + (pug.attr(\"class\", pug.classes([\"form-group\",type + '-property-' + property + '-group'], [false,true]), false, true)+pug.attr(\"data-property\", property, true, true)+pug.attr(\"data-bind\", \"visible: \" + bindTo(property, \"visible\") + \", css: { 'has-error': !\" + bindTo(property, \"isValid()\") + \" }\", true, true)) + \"\\u003E\";\nif (hasLabels) {\npug_html = pug_html + \"\\u003Cdiv\" + (\" class=\\\"form-label-container\\\"\"+pug.attr(\"data-property\", property, true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003Cspan\" + (pug.attr(\"class\", pug.classes([\"form-input-container\",type + \"-property-\" + property + \"-container\"], [false,true]), false, true)+pug.attr(\"data-property\", property, true, true)) + \"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n};\npug_html = pug_html + \"\\u003Cform\\u003E\\u003Cdiv class=\\\"form-inline\\\"\\u003E\";\n// iterate properties\n;(function(){\n var $$obj = properties;\n if ('number' == typeof $$obj.length) {\n for (var pug_index0 = 0, $$l = $$obj.length; pug_index0 < $$l; pug_index0++) {\n var property = $$obj[pug_index0];\npug_mixins[\"single-group\"](property, type);\n }\n } else {\n var $$l = 0;\n for (var pug_index0 in $$obj) {\n $$l++;\n var property = $$obj[pug_index0];\npug_mixins[\"single-group\"](property, type);\n }\n }\n}).call(this);\n\nif (customHint) {\npug_html = pug_html + \"\\u003Cspan class=\\\"customHint\\\"\\u003E\" + (pug.escape(null == (pug_interp = customHint) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\nif (showButtons) {\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-group\\\"\\u003E\\u003Cspan class=\\\"form-input-container\\\" data-property=\\\"$buttons\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fdiv\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"form-inline\\\"\\u003E\";\n// iterate properties\n;(function(){\n var $$obj = properties;\n if ('number' == typeof $$obj.length) {\n for (var pug_index1 = 0, $$l = $$obj.length; pug_index1 < $$l; pug_index1++) {\n var property = $$obj[pug_index1];\npug_html = pug_html + \"\\u003Cdiv\" + (\" class=\\\"form-validation-container\\\"\"+pug.attr(\"data-property\", property, true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\";\n }\n } else {\n var $$l = 0;\n for (var pug_index1 in $$obj) {\n $$l++;\n var property = $$obj[pug_index1];\npug_html = pug_html + \"\\u003Cdiv\" + (\" class=\\\"form-validation-container\\\"\"+pug.attr(\"data-property\", property, true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\";\n }\n }\n}).call(this);\n\npug_html = pug_html + \"\\u003Cdiv class=\\\"form-validation-container\\\" data-property=\\\"$overall\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fform\\u003E\";}.call(this,\"bindTo\" in locals_for_with?locals_for_with.bindTo:typeof bindTo!==\"undefined\"?bindTo:undefined,\"customHint\" in locals_for_with?locals_for_with.customHint:typeof customHint!==\"undefined\"?customHint:undefined,\"hasLabels\" in locals_for_with?locals_for_with.hasLabels:typeof hasLabels!==\"undefined\"?hasLabels:undefined,\"properties\" in locals_for_with?locals_for_with.properties:typeof properties!==\"undefined\"?properties:undefined,\"showButtons\" in locals_for_with?locals_for_with.showButtons:typeof showButtons!==\"undefined\"?showButtons:undefined,\"type\" in locals_for_with?locals_for_with.type:typeof type!==\"undefined\"?type: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 (bindTo, customLabel, field, learnMoreText) {var id = field.id;\nvar property = field.property;\nif (field.showLabel) {\npug_html = pug_html + \"\\u003Clabel\" + (\" class=\\\"control-label\\\"\"+pug.attr(\"for\", field.id, true, true)+pug.attr(\"id\", id + '-Label', true, true)) + \"\\u003E\";\nif (customLabel) {\npug_html = pug_html + \"\\u003Cspan\\u003E\" + (pug.escape(null == (pug_interp = customLabel) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cspan\" + (pug.attr(\"data-bind\", 'text: ' + bindTo(property, 'label'), true, true)) + \"\\u003E\\u003C\\u002Fspan\\u003E\";\n}\nif (field.schema.helpId) {\npug_html = pug_html + \"\\u003Ca\" + (\" class=\\\"helpbutton\\\"\"+\" type=\\\"helppopup\\\"\"+pug.attr(\"topic\", field.schema.helpId, true, true)+\" href=\\\"javascript:void(0);\\\" role=\\\"button\\\"\"+pug.attr(\"aria-label\", learnMoreText, true, true)) + \"\\u003E\\u003C\\u002Fa\\u003E\";\n}\npug_html = pug_html + \"\\u003C\\u002Flabel\\u003E\";\n}}.call(this,\"bindTo\" in locals_for_with?locals_for_with.bindTo:typeof bindTo!==\"undefined\"?bindTo:undefined,\"customLabel\" in locals_for_with?locals_for_with.customLabel:typeof customLabel!==\"undefined\"?customLabel:undefined,\"field\" in locals_for_with?locals_for_with.field:typeof field!==\"undefined\"?field:undefined,\"learnMoreText\" in locals_for_with?locals_for_with.learnMoreText:typeof learnMoreText!==\"undefined\"?learnMoreText: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 (cancelButtonText, saveButtonText) {pug_html = pug_html + \"\\u003Cbutton class=\\\"btn btn-primary save\\\" type=\\\"button\\\"\\u003E\" + (pug.escape(null == (pug_interp = saveButtonText) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\\u003Cbutton class=\\\"btn btn-default cancel\\\" type=\\\"button\\\"\\u003E\" + (pug.escape(null == (pug_interp = cancelButtonText) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\";}.call(this,\"cancelButtonText\" in locals_for_with?locals_for_with.cancelButtonText:typeof cancelButtonText!==\"undefined\"?cancelButtonText:undefined,\"saveButtonText\" in locals_for_with?locals_for_with.saveButtonText:typeof saveButtonText!==\"undefined\"?saveButtonText: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 (bindTo, field) {var id = field.id;\nvar property = field.property;\npug_html = pug_html + \"\\u003Cul\" + (\" class=\\\"help-block error\\\"\"+pug.attr(\"id\", id + '-Validation', true, true)+\" role=\\\"group\\\"\"+pug.attr(\"data-bind\", \"visible:!\" + bindTo(property, \"isValid()\") + \", foreach: \" + bindTo(property, \"errors\"), true, true)) + \"\\u003E\\u003Cli data-bind=\\\"html: $data\\\" role=\\\"alert\\\"\\u003E\\u003C\\u002Fli\\u003E\\u003C\\u002Ful\\u003E\";}.call(this,\"bindTo\" in locals_for_with?locals_for_with.bindTo:typeof bindTo!==\"undefined\"?bindTo:undefined,\"field\" in locals_for_with?locals_for_with.field:typeof field!==\"undefined\"?field:undefined));;return pug_html;};\nmodule.exports = template;","import _ from 'underscore';\r\nimport ko from 'knockout';\r\nimport { KoSchema } from '@bingads-webui/ko-schema';\r\nimport { Validation } from '@bingads-webui/validation';\r\nimport { controlSpecified } from './control/index';\r\nimport { generate } from './control/readonly-computed';\r\nimport { isEditing } from '../service/status';\r\n\r\nexport class SimpleFormViewModel {\r\n /**\r\n * construct simple form view model\r\n * @param {FieldOpetion[]} fields - field options for properties\r\n * @param {JsonSchema} schema - entity define\r\n * @param {Object} model - value of entity\r\n * @param {customValidators} customValidators - customized validators\r\n * @param {I18n} i18n - provide i18n for KoSchema and Validation\r\n * @returns {void}\r\n */\r\n constructor({\r\n fields,\r\n schema,\r\n model,\r\n customValidators,\r\n i18n,\r\n }) {\r\n const properties = _.pluck(fields, 'property');\r\n\r\n KoSchema(this, schema, properties, model, customValidators, i18n);\r\n\r\n _.each(fields, (field) => {\r\n const {\r\n value, property, control, validators,\r\n } = field;\r\n\r\n if (value) {\r\n this[property] = generate(value, this).extend({\r\n validate: [Validation.passive(i18n)],\r\n });\r\n }\r\n\r\n if (_.isUndefined(this[property])) {\r\n this[property] = ko.observable();\r\n }\r\n\r\n const observable = this[property];\r\n const propertySchema = schema.properties[property];\r\n controlSpecified(control.builtInControl, observable, propertySchema, field, this);\r\n\r\n if (_.has(observable, 'validators')) {\r\n _.each(validators, (config, name) => {\r\n const validator = observable.validators[name];\r\n\r\n if (validator) {\r\n _.extend(validator, config);\r\n }\r\n });\r\n }\r\n });\r\n\r\n const validator = Validation.passive(i18n);\r\n\r\n this.$overall = ko.observable().extend({\r\n validate: [validator],\r\n });\r\n\r\n this.$overall.validators = { passive: validator };\r\n\r\n this.editing = isEditing(schema, model);\r\n }\r\n}\r\n","module.exports = __WEBPACK_EXTERNAL_MODULE__542__;","import _ from 'underscore';\r\nimport { checkbox } from './checkbox';\r\nimport { radios } from './radios';\r\nimport { select } from './select';\r\nimport { text } from './text';\r\nimport { textarea } from './textarea';\r\nimport { label } from './label';\r\nimport { visible } from './visible';\r\nimport { collapse } from './collapse';\r\nimport { staticControl } from './static';\r\nimport { group } from './group';\r\n\r\nconst specified = {\r\n checkbox,\r\n collapse,\r\n group,\r\n radios,\r\n 'inline-radios': radios,\r\n select,\r\n text,\r\n textarea,\r\n static: staticControl,\r\n};\r\n\r\n/**\r\n * specify observable define base on control\r\n * @param {String} control - control name\r\n * @param {Observable} local - observable define for property\r\n * @param {Object} attrs - property define\r\n * @param {FieldOption} fieldOption - field option generate before\r\n * @param {Object} viewModel - object with all property observable define\r\n * @returns {undefined} - no results\r\n */\r\nexport function controlSpecified(control, local, attrs, fieldOption, viewModel) {\r\n if (fieldOption.hasSubFields !== true) {\r\n label(local, attrs, fieldOption, viewModel);\r\n visible(local, attrs, fieldOption, viewModel);\r\n }\r\n\r\n if (_.isFunction(specified[control])) {\r\n specified[control](local, attrs, fieldOption, viewModel);\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport ko from 'knockout';\r\n\r\n/**\r\n * extend checkbox observable define\r\n * @param {Observable} local - observable define for property\r\n * @param {Object} attrs - property define\r\n * @param {FieldOption} fieldOption - field of property\r\n * @returns {undefined} - no returns\r\n */\r\nexport function checkbox(local, attrs, fieldOption) {\r\n if (!fieldOption.values) {\r\n throw new Error('pass custom values as [checked-value, not-checked-value] in!');\r\n }\r\n\r\n if (!_.contains(_.first(fieldOption.values, 2), local())) {\r\n local(fieldOption.values[1]);\r\n }\r\n\r\n _.extend(local, {\r\n checkbox: ko.computed({\r\n read: () => fieldOption.values[0] === local(),\r\n write: (value) => {\r\n local(fieldOption.values[value ? 0 : 1]);\r\n },\r\n }),\r\n });\r\n}\r\n","import _ from 'underscore';\r\n\r\n/**\r\n * extend the observable for radios\r\n * @param {Observable} local - observable define for property\r\n * @param {Object} attrs - property define\r\n * @returns {undefined} - the function extend passed local directly\r\n */\r\nexport function radios(local, attrs) {\r\n _.extend(local, {\r\n radios: attrs.type === 'string' ? local : local.string,\r\n });\r\n}\r\n","import _ from 'underscore';\r\n\r\n/**\r\n * extend the select observable\r\n * @param {Observable} local - observable define for property\r\n * @param {Object} attrs - property define\r\n * @param {FieldOption} fieldOption - field of property\r\n * @returns {undefined} - the function extend passed local directly\r\n */\r\nexport function select(local, attrs, fieldOption) {\r\n if (!_.contains(fieldOption.values, local())) {\r\n local(fieldOption.values[0]);\r\n }\r\n\r\n _.extend(local, {\r\n select: attrs.type === 'string' || !local.string ? local : local.string,\r\n });\r\n}\r\n","import ko from 'knockout';\r\nimport _ from 'underscore';\r\nimport { generate } from './readonly-computed';\r\n\r\n/**\r\n * extend the text observable\r\n * @param {Observable} local - observable define for property\r\n * @param {Object} attrs - property define\r\n * @param {FieldOption} fieldOption - field of property\r\n * @param {Object} viewModel - model value of entity\r\n * @returns {undefined} - the function extend passed local directly\r\n */\r\nexport function text(local, attrs, fieldOption, viewModel) {\r\n const { id } = fieldOption;\r\n\r\n _.extend(local, {\r\n text: local.string ? local.string : local,\r\n placeholder: generate(fieldOption.placeholder, viewModel),\r\n describedby: ko.observableArray([`${id}-Remaining`, `${id}-Validation`]),\r\n });\r\n\r\n\r\n _.extend(local, {\r\n strDescribedby: ko.computed(() => {\r\n const by = local.describedby() || [];\r\n\r\n return by.join(' ');\r\n }),\r\n });\r\n}\r\n","import _ from 'underscore';\r\nimport ko from 'knockout';\r\n\r\n/**\r\n * define read only computed observable\r\n * @param {Object|String} param - string or object with property depnds and computedBy\r\n * @param {Object} viewModel - model value of entity\r\n * @returns {Observable} - return observable with default value from param\r\n */\r\nexport function generate(param, viewModel) {\r\n if (_.isObject(param)) {\r\n const { depends, computedBy } = param;\r\n\r\n return ko.computed(() =>\r\n computedBy(..._.map(depends, dependency => viewModel[dependency]())));\r\n }\r\n return ko.observable(param);\r\n}\r\n","import { text } from './text';\r\n\r\n/**\r\n * extend the textarea observable\r\n * @param {Observable} local - observable define for property\r\n * @param {Object} attrs - property define\r\n * @param {FieldOption} fieldOption - field of property\r\n * @param {Object} viewModel - model value of entity\r\n * @returns {undefined} - the function extend passed local directly\r\n */\r\nexport function textarea(local, attrs, fieldOption, viewModel) {\r\n // Currently the same with text\r\n text(local, attrs, fieldOption, viewModel);\r\n}\r\n","import _ from 'underscore';\r\nimport { generate } from './readonly-computed';\r\n\r\n/**\r\n * extend the observable for label\r\n * @param {Observable} local - observable define for property\r\n * @param {Object} attrs - property define\r\n * @param {FieldOption} fieldOption - field of property\r\n * @param {Object} viewModel - model value of entity\r\n * @returns {undefined} - the function extend passed local directly\r\n */\r\nexport function label(local, attrs, fieldOption, viewModel) {\r\n _.extend(local, {\r\n label: generate(fieldOption.label, viewModel),\r\n });\r\n}\r\n","import _ from 'underscore';\r\nimport { generate } from './readonly-computed';\r\n\r\n/**\r\n * extend the observable for visible\r\n * @param {Observable} local - observable define for property\r\n * @param {Object} attrs - property define\r\n * @param {FieldOption} fieldOption - field of property\r\n * @param {Object} viewModel - model value of entity\r\n * @returns {undefined} - the function extend passed local directly\r\n */\r\nexport function visible(local, attrs, fieldOption, viewModel) {\r\n _.extend(local, {\r\n visible: generate(fieldOption.visible, viewModel),\r\n });\r\n}\r\n","import ko from 'knockout';\r\nimport _ from 'underscore';\r\nimport { isFieldEditing } from '../../service/status';\r\n\r\n/**\r\n * extend the observable for collapse\r\n * @param {Observable} local - observable define for property\r\n * @param {Object} attrs - property define\r\n * @param {FieldOption} fieldOption - field of property\r\n * @param {Object} viewModel - model value of entity\r\n * @returns {undefined} - the function extend passed local directly\r\n */\r\nexport function collapse(local, attrs, fieldOption, viewModel) {\r\n const isExpanded = _.isUndefined(fieldOption.isExpanded) ?\r\n isFieldEditing(fieldOption, viewModel) : fieldOption.isExpanded;\r\n _.extend(local, {\r\n isExpanded,\r\n });\r\n\r\n _.extend(local, {\r\n observable: ko.observable(local.isExpanded),\r\n });\r\n\r\n _.extend(local, {\r\n click: () => {\r\n const value = local.observable();\r\n\r\n local.observable(!value);\r\n return null;\r\n },\r\n });\r\n\r\n _.extend(local, fieldOption);\r\n}\r\n","import _ from 'underscore';\r\n\r\n/**\r\n * Check whether is edit status\r\n * @private\r\n * @param {JsonSchema} schema - Schema to Check\r\n * @param {Object} model - The value model passed in\r\n * @returns {boolean} - return true if is editing, otherwise, return false\r\n */\r\nexport function isEditing(schema, model) {\r\n let editing = !_.isEmpty(model);\r\n\r\n if (schema.key) {\r\n // more strict for schema with key\r\n editing = editing && model[schema.key];\r\n }\r\n\r\n return editing;\r\n}\r\n\r\n/**\r\n * Checke whether specified field is editing\r\n * @private\r\n * @param {Object|String} field - the field to check, it can be a key or a object\r\n * with property fields and hasSubFields\r\n * @param {Object} model - the value model passed in\r\n * @returns {boolean} - if the field is editing, return true, otherwise, return false\r\n */\r\nexport function isFieldEditing(field, model) {\r\n if (field.hasSubFields) {\r\n return _.some(field.fields, subField => isFieldEditing(subField, model));\r\n }\r\n\r\n return !_.chain(model)\r\n .result(field.property)\r\n .isEmpty()\r\n .value();\r\n}\r\n","import ko from 'knockout';\r\nimport _ from 'underscore';\r\n\r\nexport function staticControl(local, attrs, fieldOption) {\r\n const { valueMessages, values } = fieldOption;\r\n const stringValueObservable = local.string ? local.string : local;\r\n\r\n _.extend(local, {\r\n static: values ?\r\n ko.computed(() => valueMessages[_.indexOf(values, local())]) :\r\n stringValueObservable,\r\n });\r\n}\r\n","import _ from 'underscore';\r\n\r\n/**\r\n * extend the observable for collapse\r\n * @param {Observable} local - observable define for property\r\n * @param {Object} attrs - property define\r\n * @param {FieldOption} fieldOption - field of property\r\n * @returns {undefined} - the function extend passed local directly\r\n */\r\nexport function group(local, attrs, fieldOption) {\r\n _.extend(local, fieldOption);\r\n}\r\n","export { StateStore } from './src/state-store';\r\n","import {\r\n Observable,\r\n Observer,\r\n Subscription,\r\n SubscriptionObserver,\r\n} from '@bingads-webui-universal/observable';\r\nimport _ from 'underscore';\r\n\r\ninterface IStateType {\r\n [key: string]: any;\r\n}\r\n\r\nexport class StateStore {\r\n public state: T;\r\n\r\n protected subscriptions: Subscription[];\r\n\r\n protected observable: Observable;\r\n\r\n private isDefaultStateSet: boolean = false;\r\n\r\n protected set defaultState(dstate: T) {\r\n if (!this.isDefaultStateSet) {\r\n this.state = dstate;\r\n this.isDefaultStateSet = true;\r\n }\r\n }\r\n\r\n protected get defaultState() {\r\n return this.state;\r\n }\r\n\r\n constructor(initialState: T | undefined = undefined) {\r\n if (typeof initialState === 'object') {\r\n this.defaultState = initialState;\r\n }\r\n this.state = this.defaultState;\r\n this.subscriptions = [];\r\n this.observable = new Observable(this.subscriber);\r\n }\r\n\r\n setState = (stateChange: Partial) => {\r\n if (this.shallowDiff(this.state, stateChange)) {\r\n this.state = _.extend({}, this.state, stateChange);\r\n this.subscriptions.forEach((subscription) => {\r\n subscription.observer.next(this.state);\r\n });\r\n }\r\n };\r\n\r\n subscribe(observer: Observer | ((value: T) => void)): Subscription {\r\n const subscription = this.observable.subscribe(\r\n this.ensureObserverType(observer),\r\n );\r\n this.subscriptions.push(subscription);\r\n\r\n return subscription;\r\n }\r\n\r\n private shallowDiff(left: any, right: any) {\r\n // eslint-disable-next-line no-restricted-syntax\r\n for (const prop in right) {\r\n // eslint-disable-next-line no-prototype-builtins\r\n if (!left.hasOwnProperty(prop) || left[prop] !== right[prop]) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n private subscriber = (observer: SubscriptionObserver) => () => {\r\n this.subscriptions = this.subscriptions.filter((subscription) => subscription.observer !== observer);\r\n };\r\n\r\n private ensureObserverType(ob: Observer | ((value: any) => void)): Observer {\r\n if (typeof ob !== 'function') {\r\n return ob;\r\n }\r\n return {\r\n start: (_value: any) => {},\r\n next: ob,\r\n error: (_errValue: any) => {},\r\n complete: () => {},\r\n };\r\n }\r\n}\r\n","module.exports = __WEBPACK_EXTERNAL_MODULE__76__;","\r\n\r\nexport { StepsWizard } from './src/view/index';\r\nexport { BaseStepView } from './src/view/base-step-view';\r\nexport { StepsWizardBuilder } from './src/builder/index';\r\n","import Backbone from 'backbone';\r\nimport _ from 'underscore';\r\nimport Promise from 'bluebird';\r\n\r\nimport horizontalTemplate from '../template/layout-horizontal.pug';\r\nimport verticalTemplate from '../template/layout-vertical.pug';\r\nimport actionTemplate from '../template/action.pug';\r\nimport headerTemplate from '../template/header.pug';\r\n\r\n/** The View class of steps wizard */\r\nexport class StepsWizard extends Backbone.View {\r\n /**\r\n *\r\n * @param {object} option the option.\r\n * @param {object} option.config the configuration to construct the steps wizard.\r\n * @param {object[]} option.steps the steps.\r\n * @param {string} option.steps[].name the name of each step.(must be unique).\r\n * @param {object} option.steps[].view the view instance of each step.\r\n * (must be backbone view instance)\r\n * @param {hash} [option.events] algn with http://backbonejs.org/#View-events.\r\n * @param {function} [option.config.layout] the pug template if you wish to have a customized\r\n * layout.\r\n * @param {Boolean} [isHorizontal=false] if set to true, the wizard will use the default\r\n * horizontal layout. Otherwise it will use the customized layout or default vertical layout.\r\n * @param {function} [actionTemplate] By default steps wizard will draw buttons according to the\r\n * actions of each view and hook it up with the action.method. If you want to customize the ui\r\n * elements instead of buttons to reflect step actions, specify this parameter.\r\n * @param {string} [option.currentStep] the name of the step as the starting point of the flow.\r\n * If not given, start from the 1st step.\r\n * @param {function} [headerTemplate] the template of the title.\r\n * @return {Void} void\r\n * @throws Will throw an error if you forgot to define the steps.\r\n * @throws Will throw an error if 2 or more steps has the same name.\r\n * @throws Will throw an error if option.currentStep is not a valid name.\r\n * @throws Will throw an error if option.steps[].view is not a backbone view.\r\n * @throws Will throw an error if option.layout is not a function.\r\n * @throws Will throw an error if option.actionTemplate is not a funcion.\r\n * @throws Will throw an error if option.initialState is not a object.\r\n */\r\n initialize({\r\n config = {},\r\n currentStep,\r\n initialState = {},\r\n } = {}) {\r\n if (_.isEmpty(config.steps)) {\r\n throw new Error('At least 1 step is required.');\r\n }\r\n\r\n this.visitedMatrix = {};\r\n this.steps = config.steps;\r\n this.checkSteps();\r\n\r\n if (_.isString(currentStep)) {\r\n this.fromStepIndex = _.findIndex(this.steps, { name: currentStep });\r\n\r\n if (this.fromStepIndex < 0) {\r\n throw new Error('Invalid current step name in config.');\r\n }\r\n } else {\r\n this.fromStepIndex = 0;\r\n }\r\n\r\n this.customizedEvents = config.events;\r\n\r\n if (_.isFunction(config.layout)) {\r\n this.template = config.layout;\r\n } else if (_.has(config, 'layout')) {\r\n throw new Error('A function is expected for custom layout.');\r\n } else if (config.isHorizontal) {\r\n this.template = horizontalTemplate;\r\n } else {\r\n this.template = verticalTemplate;\r\n }\r\n\r\n if (_.isFunction(config.actionTemplate)) {\r\n this.actionTemplate = config.actionTemplate;\r\n } else if (_.has(config, 'actionTemplate')) {\r\n throw new Error('A function is expected for custom actionTemplate.');\r\n } else {\r\n this.actionTemplate = actionTemplate;\r\n }\r\n\r\n if (_.isObject(initialState)) {\r\n this.state = initialState;\r\n } else {\r\n throw new Error('Initial state should be an object');\r\n }\r\n\r\n if (_.isFunction(config.headerTemplate)) {\r\n this.headerTemplate = config.headerTemplate;\r\n } else {\r\n this.headerTemplate = headerTemplate;\r\n }\r\n }\r\n\r\n /**\r\n * Check the steps configuration is valid\r\n *\r\n * @private\r\n * @return {string[]} the steps name list\r\n * @throws Will throw an error if there are more than 1 step has the duplicated name.\r\n */\r\n checkSteps() {\r\n if (_.chain(this.steps)\r\n .map(_.property('name'))\r\n .uniq()\r\n .size()\r\n .value() !== _.size(this.steps)\r\n ) {\r\n throw new Error('More than 1 step has the duplicated name.');\r\n }\r\n\r\n return _.each(this.steps, (step) => {\r\n if (!(step.view instanceof Backbone.View)) {\r\n throw new Error('Step view should be a Backbone view.');\r\n }\r\n }, []);\r\n }\r\n\r\n render() {\r\n this.$el.html(this.template({\r\n steps: this.steps,\r\n actions: this.allActions,\r\n }));\r\n\r\n this.currentStepIndex = this.fromStepIndex;\r\n\r\n this.delegateEvents(this.customizedEvents);\r\n\r\n _.each(this.steps, (step) => {\r\n this.listenTo(step.view, 'change:title', () => {\r\n if (step.name === this.currentStepName) {\r\n this.drawHeader();\r\n }\r\n });\r\n\r\n this.listenTo(step.view, 'change:action', () => {\r\n if (step.name === this.currentStepName) {\r\n this.drawActionBar();\r\n }\r\n });\r\n });\r\n\r\n return this;\r\n }\r\n\r\n get predefinedActions() {\r\n const processActionMethod = (resultFromMethod, target) =>\r\n Promise.resolve(resultFromMethod)\r\n .then((result) => {\r\n if (result) {\r\n this.goTo(target);\r\n }\r\n\r\n // steps may have async methods.\r\n // see https://msasg.visualstudio.com/Bing_Ads/_git/AdsAppUISharedComponents/pullrequest/332105#_a=overview\r\n return null;\r\n });\r\n\r\n return [\r\n {\r\n name: 'next',\r\n displayText: 'Next',\r\n enabled: true,\r\n htmlAttributes: {\r\n class: 'btn btn-primary',\r\n },\r\n method() {\r\n this.trigger('step:next', {\r\n currentStepName: this.currentStepName,\r\n destStepName: this.nextStepName,\r\n });\r\n\r\n return processActionMethod(\r\n this.currentStepInstance.wizardShouldGoNext(),\r\n this.nextStepName\r\n );\r\n },\r\n },\r\n {\r\n name: 'back',\r\n displayText: 'Back',\r\n enabled: true,\r\n htmlAttributes: {\r\n class: 'btn btn-default',\r\n },\r\n method() {\r\n this.trigger('step:back', {\r\n currentStepName: this.currentStepName,\r\n destStepName: this.previousStepName,\r\n });\r\n\r\n return processActionMethod(\r\n this.currentStepInstance.wizardShouldGoBack(),\r\n this.previousStepName\r\n );\r\n },\r\n },\r\n {\r\n name: 'cancel',\r\n displayText: 'Cancel',\r\n enabled: true,\r\n htmlAttributes: {\r\n class: 'btn btn-default',\r\n },\r\n method: 'cancel',\r\n },\r\n {\r\n name: 'save',\r\n displayText: 'Save',\r\n enabled: true,\r\n htmlAttributes: {\r\n class: 'btn btn-default',\r\n },\r\n method: 'save',\r\n },\r\n ];\r\n }\r\n\r\n get stepsCount() {\r\n return _.size(this.steps);\r\n }\r\n\r\n get firstStep() {\r\n return _.first(this.steps);\r\n }\r\n\r\n get lastStep() {\r\n return _.last(this.steps);\r\n }\r\n\r\n get isOnFirstStep() {\r\n return this.stepIndex === 0;\r\n }\r\n\r\n get isOnLastStep() {\r\n return this.stepIndex === this.stepsCount - 1;\r\n }\r\n\r\n get currentStepIndex() {\r\n return this.stepIndex;\r\n }\r\n\r\n set currentStepIndex(index) {\r\n if (index < 0 || index >= this.stepsCount) {\r\n throw new Error('step index out of range.');\r\n }\r\n\r\n this.stepIndex = index;\r\n\r\n const stepPageTitle = this.$find(`.step-body[data-step-name=${this.currentStepName}] > .step-page-title`);\r\n const allStepsPageTitle = this.$find('.step-body .step-page-title');\r\n allStepsPageTitle.hide();\r\n stepPageTitle.show();\r\n\r\n const stepContainer = this.$find(`.step-body[data-step-name=${this.currentStepName}] > .step-content`);\r\n const allStepsContainer = this.$find('.step-body .step-content');\r\n\r\n if (!this.visitedMatrix[this.currentStepIndex]) {\r\n stepContainer.html(this.currentStepInstance.$el);\r\n this.currentStepInstance.render();\r\n }\r\n\r\n allStepsContainer.hide();\r\n\r\n if (_.isFunction(this.currentStepInstance.setState)) {\r\n this.currentStepInstance.setState(this.state);\r\n } else {\r\n throw new Error('Lack of method: setState.');\r\n }\r\n\r\n this.currentStepInstance.willShow();\r\n\r\n stepContainer.show();\r\n\r\n this.visitedMatrix[index] = true;\r\n this.$el.attr('data-current-step-name', this.currentStepName);\r\n if (this.currentStepObject.railviewId) {\r\n this.$el.attr('railviewid', this.currentStepObject.railviewId);\r\n }\r\n\r\n this.drawHeader();\r\n this.drawActionBar();\r\n\r\n this.decorateElementWithStepStatus('.step-container');\r\n }\r\n\r\n get currentStepObject() {\r\n return this.steps[this.currentStepIndex];\r\n }\r\n\r\n get previousStepObject() {\r\n if (this.isOnFirstStep) {\r\n throw new Error('The first step does not have a previous step.');\r\n }\r\n\r\n return this.steps[this.currentStepIndex - 1];\r\n }\r\n\r\n get nextStepObject() {\r\n if (this.isOnLastStep) {\r\n throw new Error('The last step does not have a next step.');\r\n }\r\n\r\n return this.steps[this.currentStepIndex + 1];\r\n }\r\n\r\n /**\r\n * @returns {string} the name of the current step\r\n */\r\n get currentStepName() {\r\n return this.currentStepObject.name;\r\n }\r\n\r\n /**\r\n * @returns {object} the view instance of the current step\r\n */\r\n get currentStepInstance() {\r\n return this.currentStepObject.view;\r\n }\r\n\r\n /**\r\n * @returns {string} the name of the previous step\r\n */\r\n get previousStepName() {\r\n return this.previousStepObject.name;\r\n }\r\n\r\n /**\r\n * @returns {object} the view instance of the previous step\r\n */\r\n get previousStepInstance() {\r\n return this.previousStepObject.view;\r\n }\r\n\r\n /**\r\n * @returns {string} the name of the next step\r\n */\r\n get nextStepName() {\r\n return this.nextStepObject.name;\r\n }\r\n\r\n /**\r\n * @returns {object} the view instance of the next step\r\n */\r\n get nextStepInstance() {\r\n return this.nextStepObject.view;\r\n }\r\n\r\n /**\r\n * Let wizard to navigate to the step according to the given name\r\n *\r\n * @param {string} stepName the name of the step\r\n * @returns {object} the wizard view instance\r\n * @fires StepsWizard#switch:begin\r\n * @fires StepsWizard#switch:finish\r\n * @throws Will throw an error if current step view does not have method setState/getState\r\n */\r\n goTo(stepName) {\r\n /**\r\n * Switch begin vent.\r\n *\r\n * @event StepsWizard#switch:begin\r\n * @type {object}\r\n * @property {string} currentStepName\r\n * @property {string} destStepName the destination step name\r\n */\r\n this.trigger('switch:begin', {\r\n currentStepName: this.currentStepName,\r\n destStepName: stepName,\r\n });\r\n\r\n this.currentStepInstance.willHide();\r\n\r\n if (_.isFunction(this.currentStepInstance.getState)) {\r\n this.state = _.defaults(\r\n {}, { $lastVisit: this.currentStepName },\r\n this.currentStepInstance.getState()\r\n );\r\n } else {\r\n throw new Error('Lack of method: getState.');\r\n }\r\n\r\n this.currentStepIndex = _.findIndex(this.steps, { name: stepName });\r\n /**\r\n * Switch finish event\r\n *\r\n * @event StepsWizard#switch:finish\r\n * @type {object}\r\n * @property {string} stepName\r\n */\r\n this.trigger('switch:finish', {\r\n stepName,\r\n });\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Draw the wizard header\r\n *\r\n * @private\r\n * @returns {object} the wizard view instance\r\n */\r\n drawHeader() {\r\n this.$find('.step-header').each((index, element) => {\r\n const $element = this.$(element);\r\n const thisStep = this.steps[index].view;\r\n const titleMap = [\r\n {\r\n condition: index < this.currentStepIndex && thisStep.title.done,\r\n titleObj: thisStep.title.done,\r\n },\r\n {\r\n condition: index === this.currentStepIndex && thisStep.title.active,\r\n titleObj: thisStep.title.active,\r\n },\r\n {\r\n condition: index > this.currentStepIndex && thisStep.title.pending,\r\n titleObj: thisStep.title.pending,\r\n },\r\n {\r\n condition: !_.isUndefined(thisStep.title.text) || !_.isUndefined(thisStep.title.html),\r\n titleObj: thisStep.title,\r\n },\r\n ];\r\n\r\n $element.html(this.headerTemplate(_.defaults(\r\n {},\r\n _.find(titleMap, _.property('condition'), this).titleObj,\r\n { showPencil: index < this.currentStepIndex }\r\n )));\r\n });\r\n\r\n this.decorateElementWithStepStatus('.step-header');\r\n }\r\n\r\n decorateElementWithStepStatus(cssClass) {\r\n this.$find(cssClass).each((index, element) => {\r\n const $element = this.$(element);\r\n\r\n if (index < this.currentStepIndex) {\r\n $element.attr('data-step-status', 'done');\r\n } else if (index === this.currentStepIndex) {\r\n $element.attr('data-step-status', 'active');\r\n } else {\r\n $element.attr('data-step-status', 'pending');\r\n }\r\n });\r\n }\r\n\r\n ensureActions(rawActions) {\r\n const firstStepFilter = (actions) => {\r\n if (this.isOnFirstStep) {\r\n return _.without(actions, 'back');\r\n }\r\n\r\n return actions;\r\n };\r\n\r\n const lastStepFilter = (actions) => {\r\n if (this.isOnLastStep) {\r\n return _.chain(actions).without('next').union(['save']).value();\r\n }\r\n\r\n return actions;\r\n };\r\n\r\n if (_.isEmpty(rawActions)) {\r\n const actionNames = lastStepFilter(firstStepFilter(['next', 'back', 'cancel']));\r\n\r\n return _.filter(\r\n this.predefinedActions,\r\n predefinedAction => _.indexOf(actionNames, predefinedAction.name) >= 0\r\n );\r\n }\r\n\r\n return rawActions;\r\n }\r\n\r\n ensureAction(rawAction) {\r\n return _.defaults(\r\n rawAction,\r\n _.first(_.where(this.predefinedActions, { name: rawAction.name }))\r\n );\r\n }\r\n\r\n /**\r\n * Draw the wizard header\r\n *\r\n * @private\r\n * @returns {object} the wizard view instance\r\n * @fires StepsWizard#action:begin\r\n * @fires StepsWizard#action:finish\r\n */\r\n drawActionBar() {\r\n this.$find('.step-action').hide();\r\n\r\n const actions = this.ensureActions(this.currentStepInstance.actions);\r\n const footer = this.$find(`.step-footer[data-step-name=\"${this.currentStepName}\"]`).empty();\r\n\r\n _.each(actions, (rawAction) => {\r\n const action = this.ensureAction(rawAction);\r\n\r\n footer.append(this.actionTemplate({\r\n actionName: action.name,\r\n displayText: _.isEmpty(action.displayText) ? action.name : action.displayText,\r\n }));\r\n\r\n const $actionElement = this.$find(`.step-footer[data-step-name=\"${this.currentStepName}\"] .step-action[data-action-name=\"${action.name}\"]`);\r\n\r\n if (!_.isUndefined(action.htmlAttributes)) {\r\n if (action.htmlAttributes.class) {\r\n $actionElement.addClass(action.htmlAttributes.class);\r\n }\r\n\r\n $actionElement.attr(_.omit(action.htmlAttributes, 'class'));\r\n }\r\n\r\n $actionElement.prop('disabled', !_.result(action, 'enabled'));\r\n $actionElement.text(action.displayText);\r\n $actionElement.unbind().click(() => {\r\n if (!_.isUndefined(action.method)) {\r\n /**\r\n * Action begin event\r\n *\r\n * @event StepsWizard#action:begin\r\n * @type {object}\r\n * @property {string} [name] the name of the action\r\n */\r\n this.trigger('action:begin', { name: action.name });\r\n\r\n const resultInPromise = Promise.resolve(_.isString(action.method)\r\n ? _.result(this.currentStepInstance, action.method)\r\n : action.method.apply(this));\r\n\r\n resultInPromise.then(() => {\r\n /**\r\n * Action finished event\r\n *\r\n * @event StepsWizard#action:finish\r\n * @type {object}\r\n * @property {string} [name] the name of the action\r\n */\r\n this.trigger('action:finish', { name: action.name });\r\n });\r\n }\r\n\r\n return null;\r\n });\r\n $actionElement.show();\r\n\r\n this.decorateElementWithStepStatus('.step-footer');\r\n });\r\n\r\n return this;\r\n }\r\n\r\n remove(...args) {\r\n _.each(this.steps, step => step.view.remove());\r\n super.remove(...args);\r\n }\r\n\r\n /**\r\n * Find the jquery element in the context of this steps wizard.\r\n * This will not return elements in nested steps wizards.\r\n *\r\n * @private\r\n * @param {string} selector jquery selector to match\r\n * @returns {object} jquery elements matching the selector\r\n */\r\n $find(selector) {\r\n return this.$(selector).not(this.$(`.steps-wizard .steps-wizard ${selector}`));\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 (steps) {pug_html = pug_html + \"\\u003Cdiv class=\\\"steps-wizard\\\"\\u003E\\u003Cdiv class=\\\"step-header-wrapper\\\" role=\\\"tablist\\\" style=\\\"display: -webkit-flex; display: flex\\\"\\u003E\";\n// iterate steps\n;(function(){\n var $$obj = steps;\n if ('number' == typeof $$obj.length) {\n for (var pug_index0 = 0, $$l = $$obj.length; pug_index0 < $$l; pug_index0++) {\n var step = $$obj[pug_index0];\npug_html = pug_html + \"\\u003Cdiv class=\\\"sub-step-header\\\" style=\\\"flex-grow: 1\\\"\\u003E\\u003Cdiv\" + (\" class=\\\"step-header\\\"\"+pug.attr(\"data-step-name\", step.name, true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n }\n } else {\n var $$l = 0;\n for (var pug_index0 in $$obj) {\n $$l++;\n var step = $$obj[pug_index0];\npug_html = pug_html + \"\\u003Cdiv class=\\\"sub-step-header\\\" style=\\\"flex-grow: 1\\\"\\u003E\\u003Cdiv\" + (\" class=\\\"step-header\\\"\"+pug.attr(\"data-step-name\", step.name, true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n }\n }\n}).call(this);\n\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"step-body-wrapper\\\"\\u003E\";\n// iterate steps\n;(function(){\n var $$obj = steps;\n if ('number' == typeof $$obj.length) {\n for (var pug_index1 = 0, $$l = $$obj.length; pug_index1 < $$l; pug_index1++) {\n var step = $$obj[pug_index1];\npug_html = pug_html + \"\\u003Cdiv\" + (\" class=\\\"step-body\\\"\"+pug.attr(\"data-step-name\", step.name, true, true)) + \"\\u003E\\u003Cdiv class=\\\"step-content\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n }\n } else {\n var $$l = 0;\n for (var pug_index1 in $$obj) {\n $$l++;\n var step = $$obj[pug_index1];\npug_html = pug_html + \"\\u003Cdiv\" + (\" class=\\\"step-body\\\"\"+pug.attr(\"data-step-name\", step.name, true, true)) + \"\\u003E\\u003Cdiv class=\\\"step-content\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n }\n }\n}).call(this);\n\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"step-footer-wrapper\\\"\\u003E\";\n// iterate steps\n;(function(){\n var $$obj = steps;\n if ('number' == typeof $$obj.length) {\n for (var pug_index2 = 0, $$l = $$obj.length; pug_index2 < $$l; pug_index2++) {\n var step = $$obj[pug_index2];\npug_html = pug_html + \"\\u003Cdiv\" + (\" class=\\\"step-footer\\\"\"+pug.attr(\"data-step-name\", step.name, true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\";\n }\n } else {\n var $$l = 0;\n for (var pug_index2 in $$obj) {\n $$l++;\n var step = $$obj[pug_index2];\npug_html = pug_html + \"\\u003Cdiv\" + (\" class=\\\"step-footer\\\"\"+pug.attr(\"data-step-name\", step.name, true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\";\n }\n }\n}).call(this);\n\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"steps\" in locals_for_with?locals_for_with.steps:typeof steps!==\"undefined\"?steps: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 (steps) {pug_html = pug_html + \"\\u003Cdiv class=\\\"steps-wizard\\\"\\u003E\";\n// iterate steps\n;(function(){\n var $$obj = steps;\n if ('number' == typeof $$obj.length) {\n for (var pug_index0 = 0, $$l = $$obj.length; pug_index0 < $$l; pug_index0++) {\n var step = $$obj[pug_index0];\npug_html = pug_html + \"\\u003Cdiv class=\\\"step-container\\\"\\u003E\\u003Cdiv\" + (\" class=\\\"step-header\\\"\"+pug.attr(\"data-step-name\", step.name, true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv\" + (\" class=\\\"step-body\\\"\"+pug.attr(\"data-step-name\", step.name, true, true)) + \"\\u003E\\u003Cdiv class=\\\"step-content\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv\" + (\" class=\\\"step-footer\\\"\"+pug.attr(\"data-step-name\", step.name, true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n }\n } else {\n var $$l = 0;\n for (var pug_index0 in $$obj) {\n $$l++;\n var step = $$obj[pug_index0];\npug_html = pug_html + \"\\u003Cdiv class=\\\"step-container\\\"\\u003E\\u003Cdiv\" + (\" class=\\\"step-header\\\"\"+pug.attr(\"data-step-name\", step.name, true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv\" + (\" class=\\\"step-body\\\"\"+pug.attr(\"data-step-name\", step.name, true, true)) + \"\\u003E\\u003Cdiv class=\\\"step-content\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv\" + (\" class=\\\"step-footer\\\"\"+pug.attr(\"data-step-name\", step.name, true, true)) + \"\\u003E\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";\n }\n }\n}).call(this);\n\npug_html = pug_html + \"\\u003C\\u002Fdiv\\u003E\";}.call(this,\"steps\" in locals_for_with?locals_for_with.steps:typeof steps!==\"undefined\"?steps: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 (actionName, displayText) {pug_html = pug_html + \"\\u003Cbutton\" + (\" class=\\\"step-action btn\\\"\"+pug.attr(\"data-action-name\", actionName, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = displayText) ? \"\" : pug_interp)) + \"\\u003C\\u002Fbutton\\u003E\";}.call(this,\"actionName\" in locals_for_with?locals_for_with.actionName:typeof actionName!==\"undefined\"?actionName:undefined,\"displayText\" in locals_for_with?locals_for_with.displayText:typeof displayText!==\"undefined\"?displayText: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 (html, text) {if (text) {\npug_html = pug_html + \"\\u003Ch3\\u003E\" + (pug.escape(null == (pug_interp = text) ? \"\" : pug_interp)) + \"\\u003C\\u002Fh3\\u003E\";\n}\nelse\nif (html) {\npug_html = pug_html + (null == (pug_interp = html) ? \"\" : pug_interp);\n}}.call(this,\"html\" in locals_for_with?locals_for_with.html:typeof html!==\"undefined\"?html:undefined,\"text\" in locals_for_with?locals_for_with.text:typeof text!==\"undefined\"?text:undefined));;return pug_html;};\nmodule.exports = template;","import Backbone from 'backbone';\r\nimport Promise from 'bluebird';\r\nimport _ from 'underscore';\r\n\r\n/**\r\n * Representing the base step view\r\n * - Empty title\r\n * - Hooked up with lifecycle classes doing nothing\r\n * - Empty body\r\n * - Default actions\r\n */\r\nexport class BaseStepView extends Backbone.View {\r\n get title() {\r\n return { text: '' };\r\n }\r\n\r\n /**\r\n * Do something before the step view is disappear from the viewport\r\n *\r\n * @returns {void}\r\n */\r\n willHide() {\r\n // do nothing\r\n }\r\n\r\n /**\r\n * Do something before the step view is displayed on the viewport\r\n *\r\n * @returns {void}\r\n */\r\n willShow() {\r\n // do nothing\r\n }\r\n\r\n /**\r\n * Hooked up with the \"save\" action.\r\n *\r\n * @returns {promise} resolve means saved successfully. Reject is the opposite.\r\n */\r\n save() {\r\n return Promise.resolve();\r\n }\r\n\r\n /**\r\n * Hooked up with the \"cancel\" action.\r\n *\r\n * @returns {promise} terminate the workflow by resolving the promise.\r\n */\r\n cancel() {\r\n return Promise.resolve();\r\n }\r\n\r\n /**\r\n * Handler of the \"next\" action\r\n *\r\n * @returns {promise|boolean}\r\n * A promise of true | true - Ok to go next\r\n * A promise of false | false - No validataion failed or other similar user errors.\r\n * A rejected promise | throws errors - Exceptions or failures.\r\n */\r\n wizardShouldGoNext() {\r\n return true;\r\n }\r\n\r\n /**\r\n * Handler of the \"next\" action\r\n *\r\n * @returns {promise|boolean}\r\n * A promise of true | true - Ok to go next\r\n * A promise of false | false - No validataion failed or other similar user errors.\r\n * A rejected promise | throws errors - Exceptions or failures.\r\n */\r\n wizardShouldGoBack() {\r\n return true;\r\n }\r\n\r\n /**\r\n *\r\n * @param {object} [state] override current state with this object.\r\n * @returns {void}\r\n */\r\n setState(state) {\r\n this.state = state;\r\n }\r\n\r\n /**\r\n *\r\n * @param {object|function} [patch] the state you want to patch or the function you want to apply\r\n * to patch current state\r\n * @returns {void}\r\n */\r\n patchState(patch) {\r\n const patchFunction = _.isFunction(patch) ? patch : state => _.defaults({}, patch, state);\r\n\r\n return this.setState(patchFunction(this.getState()));\r\n }\r\n\r\n /**\r\n * get current step's states\r\n *\r\n * @returns {object} the current state\r\n */\r\n getState() {\r\n return this.state;\r\n }\r\n}\r\n","import { keyName } from '@bingads-webui/keycode';\r\n\r\nimport _ from 'underscore';\r\nimport $ from 'jquery';\r\nimport { StepsWizard } from '../view/index';\r\nimport headerWithPencilTemplate from '../template/header-with-pencil.pug';\r\n\r\n/** Class representing a StepsWizard builder */\r\nexport class StepsWizardBuilder {\r\n /**\r\n * Create a steps wizard builder\r\n */\r\n constructor() {\r\n this.config = {\r\n steps: [],\r\n };\r\n }\r\n\r\n /**\r\n * Add one step for the steps wizard builder\r\n *\r\n * @param {String} name the name of the step\r\n * @param {Object} view the Backbone view instance of the step\r\n * @returns {Object} the builder instance\r\n */\r\n withStep(name, view) {\r\n this.config.steps.push({ name, view });\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Set the starting point for the steps flow\r\n *\r\n * @param {String} stepName the name of the step which you want to start with\r\n * @returns {Object} the builder instance\r\n */\r\n startsFrom(stepName) {\r\n this.currentStep = stepName;\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Set customized events.\r\n *\r\n * @param {Hash} events k-v pairs for the events .\r\n * @returns {Object} the builder intance\r\n */\r\n setEvents(events) {\r\n if (_.isEmpty(this.config.events)) {\r\n this.config.events = events;\r\n\r\n return this;\r\n }\r\n\r\n throw new Error('Cannot set events multiple times');\r\n }\r\n\r\n /**\r\n * Call this method to apply horizontal layout.\r\n *\r\n * @returns {Object} the builder intance\r\n */\r\n withHorizontalLayout() {\r\n this.config.isHorizontal = true;\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Set the custom layout\r\n *\r\n * @param {Function} layout template function of the layout .\r\n * @returns {Object} the builder intance\r\n */\r\n withLayout(layout) {\r\n this.config.layout = layout;\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Set the custom events.\r\n *\r\n * @param {Function} actionTemplate template function of the action item\r\n * @returns {Object} the builder intance\r\n */\r\n withActionTemplate(actionTemplate) {\r\n this.config.actionTemplate = actionTemplate;\r\n\r\n return this;\r\n }\r\n\r\n setInitialState(state) {\r\n this.initialState = state;\r\n\r\n return this;\r\n }\r\n\r\n withEditButton() {\r\n function editStep(e) {\r\n if (!e.key || e.key === keyName[13]) {\r\n const targetStepName = $(e.target).closest('.step-header')[0].dataset.stepName;\r\n\r\n this.stepsWizardInstance.goTo(targetStepName);\r\n }\r\n }\r\n\r\n this.config.headerTemplate = headerWithPencilTemplate;\r\n\r\n if (_.isEmpty(this.config.events)) {\r\n this.config.events = {\r\n 'click .edit-step': editStep.bind(this),\r\n 'keypress .edit-step': editStep.bind(this),\r\n };\r\n } else {\r\n this.config.events['click .edit-step'] = editStep.bind(this);\r\n this.config.events['keypress .edit-step'] = editStep.bind(this);\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Build a steps wizard instance.\r\n *\r\n * @returns {Object} the steps-wizard instance\r\n */\r\n build() {\r\n this.stepsWizardInstance = new StepsWizard(this);\r\n\r\n return this.stepsWizardInstance;\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 (html, showPencil, text) {pug_mixins[\"editButton\"] = pug_interp = function(){\nvar block = (this && this.block), attributes = (this && this.attributes) || {};\npug_html = pug_html + \"\\u003Cspan class=\\\"edit-step glyphicon glyphicon-pencil pull-right\\\" style=\\\"cursor: pointer;\\\" tabindex=\\\"0\\\"\\u003E\\u003C\\u002Fspan\\u003E\";\n};\nif (text) {\npug_html = pug_html + (\"\\u003Ch3\\u003E\" + (pug.escape(null == (pug_interp = text) ? \"\" : pug_interp)));\nif (showPencil) {\npug_mixins[\"editButton\"]();\n}\npug_html = pug_html + \"\\u003C\\u002Fh3\\u003E\";\n}\nelse\nif (html) {\npug_html = pug_html + (null == (pug_interp = html) ? \"\" : pug_interp);\nif (showPencil) {\npug_mixins[\"editButton\"]();\n}\n}}.call(this,\"html\" in locals_for_with?locals_for_with.html:typeof html!==\"undefined\"?html:undefined,\"showPencil\" in locals_for_with?locals_for_with.showPencil:typeof showPencil!==\"undefined\"?showPencil:undefined,\"text\" in locals_for_with?locals_for_with.text:typeof text!==\"undefined\"?text:undefined));;return pug_html;};\nmodule.exports = template;","import getLocalStorage from './src/local-storage';\r\nimport getMemoryStorage from './src/memory-storage';\r\nimport getSessionStorage from './src/session-storage';\r\n\r\nexport {\r\n getLocalStorage,\r\n getMemoryStorage,\r\n getSessionStorage\r\n};\r\n","export default function (instrumentation) {\r\n const logError = function (error) {\r\n if (instrumentation && instrumentation.logError) {\r\n instrumentation.logError(error.message);\r\n } else {\r\n console.error(error.message); // eslint-disable-line no-console\r\n }\r\n };\r\n\r\n const LocalStorage = {\r\n supportsStorage() {\r\n try {\r\n return window && 'localStorage' in window && window.localStorage != null;\r\n } catch (err) {\r\n logError(err);\r\n return false;\r\n }\r\n },\r\n set(key, data) {\r\n const str = JSON.stringify(data);\r\n try {\r\n window.localStorage.setItem(key, str);\r\n } catch (err) {\r\n try {\r\n window.localStorage.clear();\r\n window.localStorage.setItem(key, str);\r\n } catch (innerErr) {\r\n logError(innerErr);\r\n }\r\n }\r\n },\r\n get(key) {\r\n let result = null;\r\n try {\r\n const str = window.localStorage.getItem(key);\r\n if (str) {\r\n result = JSON.parse(str);\r\n }\r\n } catch (err) {\r\n logError(err);\r\n }\r\n return result;\r\n },\r\n invalidate(key) {\r\n try {\r\n window.localStorage.removeItem(key);\r\n } catch (err) {\r\n logError(err);\r\n }\r\n },\r\n clear() {\r\n try {\r\n window.localStorage.clear();\r\n } catch (err) {\r\n logError(err);\r\n }\r\n },\r\n keys() {\r\n return Object.getOwnPropertyNames(window.localStorage);\r\n },\r\n type: 'localStorage',\r\n };\r\n return LocalStorage;\r\n}\r\n","import { cloneDeep } from '@bingads-webui-universal/primitive-utilities';\r\n\r\nexport default function () {\r\n let dataset = {};\r\n const MemoryStorage = {\r\n supportsStorage() {\r\n return true;\r\n },\r\n set(key, data) {\r\n dataset[key] = data;\r\n },\r\n get(key, deepCopy) {\r\n let result = null;\r\n if (Object.prototype.hasOwnProperty.call(dataset, key)) {\r\n result = dataset[key];\r\n }\r\n\r\n if (result && deepCopy) {\r\n result = cloneDeep(result);\r\n }\r\n\r\n return result;\r\n },\r\n invalidate(key) {\r\n if (Object.prototype.hasOwnProperty.call(dataset, key)) {\r\n delete dataset[key];\r\n }\r\n },\r\n clear() {\r\n dataset = {};\r\n },\r\n keys() {\r\n return Object.getOwnPropertyNames(dataset);\r\n },\r\n type: 'memoryStorage',\r\n };\r\n\r\n return MemoryStorage;\r\n}\r\n","export default function (instrumentation) {\r\n const logError = function (error) {\r\n if (instrumentation && instrumentation.logError) {\r\n instrumentation.logError(error.message);\r\n } else {\r\n console.error(error.message); // eslint-disable-line no-console\r\n }\r\n };\r\n\r\n const SessionStorage = {\r\n supportsStorage() {\r\n return window && 'sessionStorage' in window && window.sessionStorage != null;\r\n },\r\n set(key, data) {\r\n const str = JSON.stringify(data);\r\n try {\r\n window.sessionStorage.setItem(key, str);\r\n } catch (err) {\r\n try {\r\n window.sessionStorage.clear();\r\n window.sessionStorage.setItem(key, str);\r\n } catch (innerErr) {\r\n logError(err);\r\n }\r\n }\r\n },\r\n get(key) {\r\n let result = null;\r\n try {\r\n const str = window.sessionStorage.getItem(key);\r\n if (str) {\r\n result = JSON.parse(str);\r\n }\r\n } catch (err) {\r\n logError(err);\r\n }\r\n return result;\r\n },\r\n clear() {\r\n try {\r\n window.sessionStorage.clear();\r\n } catch (err) {\r\n logError(err);\r\n }\r\n },\r\n invalidate(key) {\r\n try {\r\n window.sessionStorage.removeItem(key);\r\n } catch (err) {\r\n logError(err);\r\n }\r\n },\r\n type: 'sessionStorage',\r\n };\r\n\r\n return SessionStorage;\r\n}\r\n","\r\n\r\nexport { ToolbarView, OverridableToolbarView } from './src/index';\r\n","import { register } from 'backbone-toolbar';\r\nimport { renderSearchBox } from './search-box';\r\nimport { renderSelector } from './selector';\r\nimport { renderPillControl } from './pill-control';\r\nimport { renderTextView } from './text-view';\r\n\r\nregister('search-box', renderSearchBox);\r\nregister('selector', renderSelector);\r\nregister('pill-control', renderPillControl);\r\nregister('text-view', renderTextView);\r\n\r\nexport { ToolbarView, OverridableToolbarView } from './toolbar-view';\r\n","module.exports = __WEBPACK_EXTERNAL_MODULE__588__;","import _ from 'underscore';\r\nimport searchBoxTemplate from './template/search-box.pug';\r\n\r\nexport function renderSearchBox(searchBox) {\r\n const options = _.defaults({}, searchBox, {\r\n classes: [],\r\n id: _.uniqueId('search-box-'),\r\n placeholder: '',\r\n buttonLabel: 'Search',\r\n onChange: null,\r\n value: '',\r\n maxLength: null,\r\n });\r\n const html = searchBoxTemplate(options);\r\n const events = {};\r\n const { id, onChange } = options;\r\n const selector = `#${id}.search-box`;\r\n const selInput = `${selector} > input`;\r\n const selButton = `${selector} > button`;\r\n\r\n function onUserInput(e) {\r\n if (!e.keyCode || e.keyCode === 13) {\r\n const value = this.$(selInput).val();\r\n\r\n this.update({\r\n id: options.id,\r\n value,\r\n });\r\n\r\n if (_.isFunction(onChange)) {\r\n onChange(value);\r\n }\r\n }\r\n }\r\n\r\n events[`keyup ${selInput}`] = onUserInput;\r\n events[`click ${selButton}`] = onUserInput;\r\n\r\n return { html, events };\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 (buttonLabel, classes, id, maxLength, placeholder, value) {pug_html = pug_html + \"\\u003Cdiv\" + (pug.attr(\"class\", pug.classes([\"search-box\",classes], [false,true]), false, true)+pug.attr(\"id\", id, true, true)) + \"\\u003E\";\nif (maxLength) {\npug_html = pug_html + \"\\u003Cinput\" + (pug.attr(\"placeholder\", placeholder, true, true)+pug.attr(\"value\", value, true, true)+pug.attr(\"aria-label\", placeholder, true, true)+pug.attr(\"maxLength\", maxLength, true, true)) + \"\\u003E\";\n}\nelse {\npug_html = pug_html + \"\\u003Cinput\" + (pug.attr(\"placeholder\", placeholder, true, true)+pug.attr(\"value\", value, true, true)+pug.attr(\"aria-label\", placeholder, true, true)) + \"\\u003E\";\n}\npug_html = pug_html + \"\\u003Cbutton\" + (pug.attr(\"aria-label\", buttonLabel, true, true)) + \"\\u003E\\u003Cspan class=\\\"filter_search_icon_small\\\"\\u003E\\u003C\\u002Fspan\\u003E\\u003C\\u002Fbutton\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"buttonLabel\" in locals_for_with?locals_for_with.buttonLabel:typeof buttonLabel!==\"undefined\"?buttonLabel:undefined,\"classes\" in locals_for_with?locals_for_with.classes:typeof classes!==\"undefined\"?classes:undefined,\"id\" in locals_for_with?locals_for_with.id:typeof id!==\"undefined\"?id:undefined,\"maxLength\" in locals_for_with?locals_for_with.maxLength:typeof maxLength!==\"undefined\"?maxLength:undefined,\"placeholder\" in locals_for_with?locals_for_with.placeholder:typeof placeholder!==\"undefined\"?placeholder:undefined,\"value\" in locals_for_with?locals_for_with.value:typeof value!==\"undefined\"?value:undefined));;return pug_html;};\nmodule.exports = template;","import _ from 'underscore';\r\nimport selectorTemplate from './template/selector.pug';\r\n\r\nfunction normalizeClasses(classes) {\r\n if (_.isArray(classes)) {\r\n return classes;\r\n } else if (_.isString(classes)) {\r\n return classes.split(' ');\r\n }\r\n return [];\r\n}\r\n\r\n/**\r\n * Render a dropdown selector\r\n *\r\n * @this ToolbarView\r\n * @param {object} selector - selector configuration object.\r\n * @param {function} renderItem - callback to render a sub toolbar item.\r\n * @returns {RenderResult} - render result\r\n */\r\nexport function renderSelector(selector = {}, renderItem) {\r\n const {\r\n classes = [],\r\n id = _.uniqueId('selector-'),\r\n items = [],\r\n selectedKey = _.result(_.first(items), 'key'),\r\n onChange = _.noop,\r\n checkKeyDifferenceOnClick = true,\r\n button = {},\r\n tabindex,\r\n } = selector;\r\n const selectedItem = _.find(items, i => i.key === selectedKey) || _.first(items);\r\n\r\n const html = selectorTemplate({\r\n id,\r\n classes,\r\n dropdownHtml: renderItem({\r\n type: 'dropdown',\r\n button: _.extend(button, {\r\n text: _.result(selectedItem, 'text', 'N/A'),\r\n }),\r\n tabindex,\r\n menu: {\r\n items: _.map(items, item => ({\r\n text: item.text,\r\n id: item.id,\r\n classes: normalizeClasses(item.classes).concat(item.key === selectedKey ? ['selected'] : []),\r\n onClick() {\r\n if (!checkKeyDifferenceOnClick || item.key !== selectedKey) {\r\n this.update({ id, selectedKey: item.key, value: item.value });\r\n onChange(item);\r\n }\r\n },\r\n })),\r\n },\r\n }),\r\n });\r\n\r\n return { html };\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 (classes, dropdownHtml, id) {pug_html = pug_html + \"\\u003Cdiv\" + (pug.attr(\"class\", pug.classes([\"dropdown-selector\",classes], [false,true]), false, true)+pug.attr(\"id\", id, true, true)) + \"\\u003E\" + (null == (pug_interp = dropdownHtml) ? \"\" : pug_interp) + \"\\u003C\\u002Fdiv\\u003E\";}.call(this,\"classes\" in locals_for_with?locals_for_with.classes:typeof classes!==\"undefined\"?classes:undefined,\"dropdownHtml\" in locals_for_with?locals_for_with.dropdownHtml:typeof dropdownHtml!==\"undefined\"?dropdownHtml:undefined,\"id\" in locals_for_with?locals_for_with.id:typeof id!==\"undefined\"?id:undefined));;return pug_html;};\nmodule.exports = template;","import _ from 'underscore';\r\nimport pillControlTemplate from './template/pill-control.pug';\r\n\r\nexport function renderPillControl(pillControl) {\r\n const options = _.defaults({}, pillControl, {\r\n classes: [],\r\n id: _.uniqueId('pill-control-'),\r\n onClick: _.noop,\r\n selectedIndex: 0,\r\n items: [],\r\n });\r\n // set a default title to each item.\r\n options.items = options.items.map(item => _.defaults({}, item, {\r\n title: item.title || item.text || '',\r\n }));\r\n\r\n const html = pillControlTemplate(options);\r\n const events = {};\r\n\r\n _.each(options.items, (item, index) => {\r\n events[`click li a#${index}`] = () => {\r\n options.onClick(index);\r\n };\r\n });\r\n return { html, events };\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 (classes, id, items, selectedIndex) {pug_html = pug_html + \"\\u003Cul\" + (pug.attr(\"class\", pug.classes([\"pill-control\",\"nav\",\"nav-pills\",classes], [false,false,false,true]), false, true)+pug.attr(\"id\", id, true, true)) + \"\\u003E\";\n// iterate items\n;(function(){\n var $$obj = items;\n if ('number' == typeof $$obj.length) {\n for (var index = 0, $$l = $$obj.length; index < $$l; index++) {\n var item = $$obj[index];\nvar selected = index == selectedIndex\npug_html = pug_html + \"\\u003Cli\" + (pug.attr(\"class\", pug.classes([selected ? 'active' : ''], [true]), false, true)) + \"\\u003E\\u003Ca\" + (\" class=\\\"clickable\\\"\"+\" href=\\\"javascript:void(0);\\\"\"+pug.attr(\"id\", index, true, true)+pug.attr(\"title\", item.title, true, true)) + \"\\u003E\\u003Cspan\" + (pug.attr(\"class\", pug.classes([item.classes], [true]), false, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = item.text) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fa\\u003E\\u003C\\u002Fli\\u003E\";\n }\n } else {\n var $$l = 0;\n for (var index in $$obj) {\n $$l++;\n var item = $$obj[index];\nvar selected = index == selectedIndex\npug_html = pug_html + \"\\u003Cli\" + (pug.attr(\"class\", pug.classes([selected ? 'active' : ''], [true]), false, true)) + \"\\u003E\\u003Ca\" + (\" class=\\\"clickable\\\"\"+\" href=\\\"javascript:void(0);\\\"\"+pug.attr(\"id\", index, true, true)+pug.attr(\"title\", item.title, true, true)) + \"\\u003E\\u003Cspan\" + (pug.attr(\"class\", pug.classes([item.classes], [true]), false, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = item.text) ? \"\" : pug_interp)) + \"\\u003C\\u002Fspan\\u003E\\u003C\\u002Fa\\u003E\\u003C\\u002Fli\\u003E\";\n }\n }\n}).call(this);\n\npug_html = pug_html + \"\\u003C\\u002Ful\\u003E\";}.call(this,\"classes\" in locals_for_with?locals_for_with.classes:typeof classes!==\"undefined\"?classes:undefined,\"id\" in locals_for_with?locals_for_with.id:typeof id!==\"undefined\"?id:undefined,\"items\" in locals_for_with?locals_for_with.items:typeof items!==\"undefined\"?items:undefined,\"selectedIndex\" in locals_for_with?locals_for_with.selectedIndex:typeof selectedIndex!==\"undefined\"?selectedIndex:undefined));;return pug_html;};\nmodule.exports = template;","import _ from 'underscore';\r\nimport textViewTemplate from './template/text-view.pug';\r\n\r\nexport function renderTextView(textView) {\r\n const options = _.defaults({}, textView, {\r\n classes: [],\r\n id: _.uniqueId('text-view-'),\r\n });\r\n const html = textViewTemplate(options);\r\n const events = {};\r\n\r\n return { html, events };\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 (classes, id, text) {pug_html = pug_html + \"\\u003Cdiv\" + (pug.attr(\"class\", pug.classes([\"text-view\",classes], [false,true]), false, true)+pug.attr(\"id\", id, true, true)) + \"\\u003E\" + (pug.escape(null == (pug_interp = text) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\";}.call(this,\"classes\" in locals_for_with?locals_for_with.classes:typeof classes!==\"undefined\"?classes:undefined,\"id\" in locals_for_with?locals_for_with.id:typeof id!==\"undefined\"?id:undefined,\"text\" in locals_for_with?locals_for_with.text:typeof text!==\"undefined\"?text:undefined));;return pug_html;};\nmodule.exports = template;","import _ from 'underscore';\r\nimport Backbone from 'backbone';\r\nimport { ToolbarView as BaseToolbarView } from 'backbone-toolbar';\r\n\r\nconst isEdge = window && window.navigator.userAgent.indexOf('Edge') > -1;\r\n\r\nexport class ToolbarView extends BaseToolbarView {\r\n overrideWith({ view }) {\r\n this.el.parentNode.replaceChild(view.el, this.el);\r\n return () => {\r\n view.el.parentNode.replaceChild(this.el, view.el);\r\n };\r\n }\r\n\r\n /**\r\n * Make the toolbar visible\r\n * @returns {ToolbarView} - The toolbar itself\r\n * @fires ToolbarView#event:visibilityChanged\r\n */\r\n show() {\r\n if (isEdge) {\r\n // Work around for Edge bug that can crash browser when working with narrator:\r\n // hide with styles instead of calling this.$el.show(). same in hide()\r\n this.$el.css({\r\n height: 'auto',\r\n overflow: 'visible',\r\n });\r\n } else {\r\n this.$el.show();\r\n }\r\n this.$el.attr('aria-hidden', 'false');\r\n\r\n this.hidden = false;\r\n\r\n /**\r\n * The visibility of the toolbar is changed. Pass the new visibility.\r\n * @event ToolbarView#event:visibilityChanged\r\n * @type {boolean}\r\n */\r\n this.trigger('visibilityChanged', true);\r\n return this;\r\n }\r\n\r\n /**\r\n * Make the toolbar hidden\r\n * @returns {ToolbarView} - The toolbar itself\r\n * @fires ToolbarView#event:visibilityChanged\r\n */\r\n hide() {\r\n if (isEdge) {\r\n // Work around for Edge bug that can crash browser when working with narrator:\r\n // hide with styles instead of calling this.$el.hide(). same in show()\r\n this.$el.css({\r\n height: 0,\r\n overflow: 'hidden',\r\n });\r\n } else {\r\n this.$el.hide();\r\n }\r\n this.$el.attr('aria-hidden', 'true');\r\n\r\n this.hidden = true;\r\n\r\n /**\r\n * The visibility of the toolbar is changed. Pass the new visibility.\r\n * @event ToolbarView#event:visibilityChanged\r\n * @type {boolean}\r\n */\r\n this.trigger('visibilityChanged', false);\r\n return this;\r\n }\r\n\r\n /**\r\n * Check if the toolbar is hidden\r\n * @returns {boolean} - True if the toolbar is hidden\r\n */\r\n isHidden() {\r\n return this.hidden;\r\n }\r\n}\r\n\r\nexport class OverridableToolbarView extends Backbone.View {\r\n initialize(options) {\r\n const toolbarViewOptions = _.pick(options, 'toolbarId', 'classes', 'items');\r\n\r\n this.toolbarView = new ToolbarView(toolbarViewOptions);\r\n this.overriddenView = null;\r\n }\r\n\r\n render() {\r\n this.toolbarView.render();\r\n this.$el.html((this.overriddenView || this.toolbarView).el);\r\n return this;\r\n }\r\n\r\n overrideWith(view) {\r\n if (!this.overriddenView && view) {\r\n this.overriddenView = view;\r\n this.el.replaceChild(view.el, this.toolbarView.el);\r\n } else if (this.overriddenView) {\r\n throw new Error('Cannot override again before restoring toolbar.');\r\n } else {\r\n throw new Error('Need to provide backbone view to override toolbar.');\r\n }\r\n }\r\n\r\n restoreToolbar() {\r\n if (this.overriddenView) {\r\n this.el.replaceChild(this.toolbarView.el, this.overriddenView.el);\r\n this.overriddenView = null;\r\n }\r\n }\r\n\r\n isOverridden() {\r\n return Boolean(this.overriddenView);\r\n }\r\n\r\n remove() {\r\n this.toolbarView.remove();\r\n super.remove();\r\n }\r\n}\r\n\r\n_.each([\r\n 'get',\r\n 'set',\r\n 'update',\r\n 'show',\r\n 'hide',\r\n 'isHidden',\r\n], (name) => {\r\n if (_.isFunction(ToolbarView.prototype[name])) {\r\n OverridableToolbarView.prototype[name] = function func(...args) {\r\n return ToolbarView.prototype[name].apply(this.toolbarView, args);\r\n };\r\n }\r\n});\r\n","import { withUiBlock } from './src/index';\r\n\r\n\r\nexport { withUiBlock };\r\n","// TODO: Task 904718: refactor to use explicit dependency for es6 syntax rather than global variable\r\n/* global Map */\r\nimport _ from 'underscore';\r\nimport $ from 'jquery';\r\nimport UiBlockerView from './view/index';\r\nimport containerTemplate from './template/uiBlocker-container.pug';\r\n\r\nconst registry = new Map();\r\nlet timer = null;\r\n\r\nfunction checkTimer() {\r\n if (!registry.size && timer) {\r\n window.clearInterval(timer);\r\n timer = null;\r\n }\r\n}\r\n\r\nfunction cleanUp() {\r\n const invalidKey = [];\r\n registry.forEach((value, key) => {\r\n if (!value.view.isExisting()) {\r\n invalidKey.push(key);\r\n value.view.remove();\r\n }\r\n });\r\n _.each(invalidKey, key => registry.delete(key));\r\n checkTimer();\r\n}\r\n\r\nfunction handleWindowEvent() {\r\n cleanUp();\r\n registry.forEach(entry => entry.view.positionOverlay());\r\n}\r\n\r\nfunction updateText($target, text, callback) {\r\n const entry = registry.get($target);\r\n if (entry) {\r\n entry.view.loadingText = text;\r\n entry.view.render();\r\n if (callback) {\r\n callback();\r\n }\r\n }\r\n}\r\n\r\nfunction block($target, loadingText, shouldFocus, delayedLoading, overlayZIndex) {\r\n const entry = registry.get($target);\r\n if (entry) {\r\n entry.counter += 1;\r\n } else {\r\n const view = new UiBlockerView({\r\n $target, loadingText, shouldFocus, overlayZIndex,\r\n }).render();\r\n if ($('.blocker-container').length < 1) {\r\n $('body').append(containerTemplate());\r\n }\r\n\r\n $('.blocker-container').append(view.el);\r\n\r\n let delayedLoadingTimer = null;\r\n if (delayedLoading) {\r\n const {\r\n time = 10000,\r\n text = 'It\\'s taking a bit longer than expected, but be patient!',\r\n callback,\r\n } = delayedLoading;\r\n\r\n delayedLoadingTimer = _.delay(updateText, time, $target, text, callback);\r\n }\r\n\r\n registry.set($target, { counter: 1, view, delayedLoadingTimer });\r\n if (registry.size === 1) {\r\n /* istanbul ignore if */\r\n if (timer) {\r\n throw new Error('Should clear timer to prevent memory leak if no uiblocker exists.');\r\n }\r\n timer = window.setInterval(handleWindowEvent.bind(this), 100);\r\n }\r\n }\r\n}\r\n\r\nfunction unblock($target) {\r\n const entry = registry.get($target);\r\n if (entry) {\r\n entry.counter -= 1;\r\n if (entry.counter <= 0) {\r\n if (entry.delayedLoadingTimer != null) {\r\n window.clearTimeout(entry.delayedLoadingTimer);\r\n }\r\n entry.view.remove();\r\n registry.delete($target);\r\n }\r\n }\r\n checkTimer();\r\n}\r\n\r\n/**\r\n * Render an ui blocker\r\n *\r\n * @param {Object} target - element you want to block, should be DOM element or JQuery object.\r\n * @param {string} loadingText - the loading text string showing in uiblocker.\r\n * @param {boolean} shouldFocus - if the uiBlock should take focus on display\r\n * @param {Obejct} delayedLoading - the object to show the delayedLoading text\r\n * @param {string} overlayZIndex - the z-index for uiBlock to show on top of the target element.\r\n * @returns {function} - the unblock function, will be executed when promise resolved/rejected.\r\n */\r\nexport function withUiBlock(target = document.documentElement, loadingText = 'Loading...', shouldFocus = true, delayedLoading, overlayZIndex = 'auto') {\r\n if (_.isString(target)) {\r\n throw new Error('Target element should be DOM element or JQuery object.');\r\n }\r\n const $target = $(target)[0];\r\n if (!document.documentElement.contains($target)) {\r\n return _.noop;\r\n }\r\n block($target, loadingText, shouldFocus, delayedLoading, overlayZIndex);\r\n return () => _.defer(() => { unblock($target); });\r\n}\r\n","import _ from 'underscore';\r\nimport $ from 'jquery';\r\nimport Backbone from 'backbone';\r\nimport template from '../template/uiBlocker.pug';\r\n\r\nexport default class UiBlockerView extends Backbone.View {\r\n /**\r\n * Create uiblocker element to block target element.\r\n * @param {Object} options - render view options, contains:\r\n * @param {Object} options.$target - target element you want to block, DOM element.\r\n * @param {string} options.loadingText - loading text you want to show on ui blocker.\r\n * @param {boolean} options.shouldFocus - if the uiBlocker should take focus or not.\r\n * @param {string} options.overlayZIndex - z-index of uiBlocker to show on top of the element.\r\n * @returns {undefined} - no return.\r\n */\r\n initialize({\r\n $target, loadingText, shouldFocus, overlayZIndex,\r\n }) {\r\n this.$target = $target;\r\n this.loadingText = loadingText;\r\n this.shouldFocus = shouldFocus;\r\n this.overlayZIndex = overlayZIndex;\r\n }\r\n\r\n /**\r\n * Check whether the target is still in DOM tree.\r\n * @return {bool} - true if target element is still existing.\r\n */\r\n isExisting() {\r\n return document.documentElement.contains(this.$target);\r\n }\r\n\r\n /**\r\n * Set uiblocker element's css.\r\n * @return {undefined} - no return.\r\n */\r\n positionOverlay() {\r\n if (!this.$el.hasClass('blocker')) {\r\n this.$el.addClass('blocker');\r\n }\r\n\r\n if (this.$target === document.documentElement) {\r\n this.$el.css(_.extend({\r\n position: 'fixed',\r\n left: 0,\r\n top: 0,\r\n right: 0,\r\n bottom: 0,\r\n }));\r\n } else {\r\n const target = $(this.$target);\r\n // Do not show UI blocker when target element is not visible\r\n // Otherwise the UI blocker would be placed incorrectly on top left of the page\r\n // since target.offset() returns {top: 0, left: 0}\r\n if (target.is(':visible') && target.css('visibility') === 'visible') {\r\n this.$el.show();\r\n\r\n const updatedCss = _.extend({\r\n position: 'absolute',\r\n width: target.outerWidth(),\r\n height: target.outerHeight(),\r\n display: 'block',\r\n }, _.pick(target.offset(), 'left', 'top'), this.overlayZIndex === 'auto' ? null : { zIndex: this.overlayZIndex });\r\n\r\n if (JSON.stringify(this.currentCSS) !== JSON.stringify(updatedCss)) {\r\n this.currentCSS = updatedCss;\r\n\r\n this.$el.css(this.currentCSS);\r\n }\r\n } else {\r\n this.$el.hide();\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Render the blocker instance.\r\n * @return {Object} - blocker view object.\r\n */\r\n render() {\r\n this.$el.html(template({\r\n loadingText: this.loadingText,\r\n }));\r\n\r\n this.positionOverlay();\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Remove blocker view.\r\n * @return {undefined} - no return.\r\n */\r\n remove() {\r\n super.remove();\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 (loadingText) {pug_html = pug_html + \"\\u003Cdiv\" + (\" class=\\\"blocker-indicator\\\"\"+\" role=\\\"status\\\"\"+pug.attr(\"aria-label\", loadingText, true, true)) + \"\\u003E\\u003Cdiv class=\\\"blocker-image\\\"\\u003E\\u003C\\u002Fdiv\\u003E\\u003Cdiv class=\\\"blocker-text\\\"\\u003E\" + (pug.escape(null == (pug_interp = loadingText) ? \"\" : pug_interp)) + \"\\u003C\\u002Fdiv\\u003E\\u003C\\u002Fdiv\\u003E\";}.call(this,\"loadingText\" in locals_for_with?locals_for_with.loadingText:typeof loadingText!==\"undefined\"?loadingText: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;pug_html = pug_html + \"\\u003Cdiv class=\\\"blocker-container\\\" role=\\\"status\\\" aria-live=\\\"assertive\\\"\\u003E\\u003C\\u002Fdiv\\u003E\";;return pug_html;};\nmodule.exports = template;"],"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__118__","lastHash","specificDigitsParamsValues","_","values","accountId","customerId","id","userId","isDigits","test","mapSpecificsParams","params","mapObject","contains","isArray","find","back","window","history","forward","go","numberOrUrl","formatHash","state","isEmpty","levels","map","level","paramsString","compact","parameters","encodeURIComponent","join","properties","URI","buildQuery","parseHash","hash","exec","path","query","chain","split","reject","res","decodeURIComponent","param","trim","parseQuery","parsePathAndQuery","url","uri","segment","navigate","route","isObject","location","this","href","onNavigate","callback","navigationHandler","addEventListener","__WEBPACK_EXTERNAL_MODULE__8__","factory","self","__WEBPACK_EXTERNAL_MODULE__7__","json","cb","undefined","JSON","parse","err","obj","stringify","stackObj","stackKey","step","innerObj","result","stackIndex","indexOf","length","inner","tail","outer","head","str","each","val","push","pop","__WEBPACK_EXTERNAL_MODULE__10__","__WEBPACK_EXTERNAL_MODULE__13__","search","viewModel","trigger","onClick","event","preventDefault","onKeyPress","keyCode","Enter","SearchBox","Backbone","View","initialize","maxLength","placeholder","isDisabled","iconClasses","ariaLabel","ViewModel","subscribe","newValue","events","render","$el","html","ko","applyBindings","el","enable","disable","pug","require","locals","pug_html","locals_for_with","attr","classes","constructor","observable","__WEBPACK_EXTERNAL_MODULE__61__","__WEBPACK_EXTERNAL_MODULE__9__","i18n","troubleshootingList","defaultData","TROUBLESHOOTING_KEY","any","q","getString","translationKey","defaultI18n","isPageSearch","maxQuestionCount","data","defaultResultKey","isTroubleshootingEnabled","pageResult","questionList","slice","question","text","troubleshootingQuestion","first","splice","nonDefaultValues","entries","filter","flatMap","matchedQuestions","uniq","toLowerCase","includes","results","distance","fastLevenshtein","sort","a","b","item","getNMatchedQuestion","__WEBPACK_EXTERNAL_MODULE__483__","Campaigns","_TL_","category","AdDelivery","Import","MerchantCenter","AssetManagement","Reports","Conversions","Billing","Troubleshooting","default","siteMap","selectedNode","findSelectedNode","matchedPageGroupRegex","pageGroupRegexMap","pageGroupRegex","regexps","pageGroup","currentNode","node","children","selectedChild","__WEBPACK_EXTERNAL_MODULE__17__","__WEBPACK_EXTERNAL_MODULE__19__","CheckboxProjection","projections","RowTriStateCheckboxProjection","ColumnQueryableProjection","ColumnQueryable","SourceProjection","Sink","TableLayout","layout","GridTemplate","templates","table","Virtualization","renderers","ViewFilter","all","selected","changed","CheckState","checked","unchecked","indeterminate","CheckTransition","indeterminateToCheckedFullCycle","CheckTransitionRule","indeterminateToUncheckedFullCycle","indeterminateToCheckedShortCycle","indeterminateToUncheckedShortCycle","defaultCheckAllState","transition","stopEventPropogation","stopPropagation","options","isForVNext","Selector","className","checkMap","checkbox","Error","defaultOptions","busyIndicator","enabled","showAfterMs","showForMs","itemsDisplayLimit","disableSearch","showSelected","showChanged","showNoDataMessage","styles","searchIcon","list","checkboxColumn","nameColumn","mergedOptions","defaults","isFinite","applyDefaults","initialViewFilter","filterModel","Model","viewFilter","on","model","args","attributes","searchFilter","console","log","stats","getStats","filterPill","PillControl","extend","selectedItem","shellClasses","topClasses","itemClasses","getFilterPillState","debounce","set","searchBox","realtime","searchBoxAriaLabel","filterVal","withInlineProgress","deflickerPromise","onDelay","offDelay","inProgress","Promise","resolve","initCheckboxes","checkboxTemplate","setCheckMap","preCheckMap","clone","p$data","isFulfilled","checkAllIfRequested","setData","itemsOrPromise","loaded","loadData","then","items","firstLoad","noData","moreThanLimit","grid","projection","limit","takeTop","getFilters","hasSearchFilter","searchResultAriaLabel","totalCount","searchText","defer","hasData","remove","super","checkboxTemplatePair","onSelectionChange","checkAll","checkAllMap","targetCheckState","has","Id","createCheckAllCheckMap","newCheckMap","getProjection","columns","pgrid","Columns","colQuery","sourceProjection","seed","pipe","nameTemplate","columnTemplates","PropertyTemplate","Name","renderGrid","scrollContainer","hostElement","$container","$","$hostElement","GridView","container","Layout","partial","$metadata","class","listAttributes","template","checkboxAttributes","nameAttributes","$text","allowCheckAll","originalArgs","concat","rest","append","fetch","showFilterPill","fullStatCheckMap","rerender","hasChanges","updateFilterPill","disabledItems","keys","added","helpers","updateView","statCheckMap","__WEBPACK_EXTERNAL_MODULE__505__","__WEBPACK_EXTERNAL_MODULE__506__","__WEBPACK_EXTERNAL_MODULE__507__","debugLog","noop","findItem","findItemIndexById","findIndex","idPredicate","focusItem","focus","nextItem","currentItem","focusedItem","currentIndex","newIndex","Math","min","newItem","previousItem","max","focusNextItem","focusPreviousItem","itemClicked","altKey","ctrlKey","shiftKey","currentTarget","dataset","isItemDisabled","itemPressed","ArrowLeft","ArrowRight","itemFocused","newState","itemBlurred","blurredItem","newSelection","DeterministicView","userOptions","propsDefaults","autoSelect","stateDefaults","props","pick","setState","pug_interp","pug_mixins","view","block","$$obj","index","$$l","focusedOrSelectedOrFirst","disabled","mergedItemClasses","aAttributes","tabIndex","attrs","escape","getParentAndRef","tree","nodes","parent","ref","getChildren","getChild","removeNode","removeNodeChildren","delete","forEach","child","Map","hasNode","getChildrenRefs","getMapKeys","getMapValues","createNode","moveChild","parentOld","refOld","parentNew","refNew","childrenOld","childrenNew","getPathOfItem","refs","itemIter","reverse","getItemByPath","__WEBPACK_EXTERNAL_MODULE__18__","__WEBPACK_EXTERNAL_MODULE__373__","__WEBPACK_EXTERNAL_MODULE__43__","SimpleForm","schema","fields","customValidators","sidebars","labelTemplate","tmplLabel","showButtons","hasLabels","customLabel","customHint","inputSuffix","s$i18n","type","String","identity","isValidDecimal","isNaN","parseFloat","parseDecimal","formatDecimal","float","formatDecimalToFixed","isFunction","horizontal","tmplHorizontal","inline","tmplInline","uniqueId","generateFieldOptions","flattedFields","getFlattedFields","field","hasSubFields","pluck","generateSidebarsOptions","fieldIndex","indexBy","SimpleFormViewModel","prop","currentModel","saveButtonText","cancelButtonText","clickHelpIcon","e","indexedFields","bindTo","renderBuiltInControls","renderTemplateControls","renderLabels","renderValidations","renderViewControls","renderSidebars","viewControls","viewControl","sidebarViews","sidebarView","ret","subFields","flatten","control","isBackboneView","Constructor","showLabel","learnMoreText","helpId","label","validate","Ctor","strProperties","selector","wrapAll","sidebar","toObject","setErrors","errors","modelErr","message","proxy","$overall","uniqMessage","msg","validators","validator","passive","setError","save","cancel","prefix","fieldObject","isString","builtInControl","propertySchema","typeOptions","typeField","valueMessages","normalizeValueMessages","commonOptions","visible","required","Boolean","normalizedOptions","finalField","normalizeControl","format","enum","mapping","boolean","booleanField","enumField","integer","integerField","number","numberField","string","stringField","valueUpdate","range","blockInput","decimalLength","showHint","callTemplate","callBuiltInTemplate","tmplCheckboxInput","collapse","constant","group","tmplInlineRadiosInput","radios","tmplRadiosInput","select","tmplSelectInput","static","tmplStatic","tmplTextInput","textarea","tmplTextareaInput","getBuiltInControlTemplate","$builtInControl","hasMaxLength","showHintInline","rows","option","func","extension","toString","internalConvert","arraySidebars","reduce","generators","memo","generator","bySchema","aggregateLength","aggregateLengthConstraints","constraints","constraint","AggregateLength","strSidebarProperties","include","__WEBPACK_EXTERNAL_MODULE__532__","srId","describedby","remaining","remainingChar","computed","initial","last","count","cls","description","pug_index0","pug_index1","KoSchema","generate","Validation","isUndefined","controlSpecified","config","editing","isEditing","__WEBPACK_EXTERNAL_MODULE__542__","local","fieldOption","specified","staticControl","read","write","observableArray","strDescribedby","depends","computedBy","dependency","isExpanded","isFieldEditing","click","some","subField","stringValueObservable","defaultState","dstate","isDefaultStateSet","initialState","stateChange","shallowDiff","subscriptions","subscription","observer","next","subscriber","Observable","ensureObserverType","left","right","ob","start","_value","error","_errValue","complete","__WEBPACK_EXTERNAL_MODULE__76__","StepsWizard","currentStep","steps","visitedMatrix","checkSteps","fromStepIndex","customizedEvents","isHorizontal","horizontalTemplate","verticalTemplate","actionTemplate","headerTemplate","size","actions","allActions","currentStepIndex","delegateEvents","listenTo","currentStepName","drawHeader","drawActionBar","stepName","destStepName","currentStepInstance","willHide","getState","$lastVisit","$find","element","$element","thisStep","titleMap","condition","title","done","titleObj","active","pending","showPencil","decorateElementWithStepStatus","cssClass","rawActions","actionNames","isOnLastStep","without","union","lastStepFilter","isOnFirstStep","predefinedActions","predefinedAction","rawAction","where","hide","ensureActions","footer","empty","action","ensureAction","actionName","displayText","$actionElement","htmlAttributes","addClass","omit","unbind","method","apply","show","not","processActionMethod","resultFromMethod","target","goTo","nextStepName","wizardShouldGoNext","previousStepName","wizardShouldGoBack","stepIndex","stepsCount","stepPageTitle","stepContainer","allStepsContainer","willShow","currentStepObject","railviewId","previousStepObject","nextStepObject","pug_index2","BaseStepView","patch","patchFunction","StepsWizardBuilder","editStep","keyName","targetStepName","closest","stepsWizardInstance","headerWithPencilTemplate","instrumentation","logError","supportsStorage","localStorage","setItem","clear","innerErr","getItem","invalidate","removeItem","getOwnPropertyNames","deepCopy","cloneDeep","sessionStorage","register","renderSearchBox","renderSelector","renderPillControl","renderTextView","__WEBPACK_EXTERNAL_MODULE__588__","buttonLabel","onChange","selInput","selButton","onUserInput","update","renderItem","selectedKey","checkKeyDifferenceOnClick","button","tabindex","dropdownHtml","menu","normalizeClasses","pillControl","selectedIndex","textView","isEdge","navigator","userAgent","ToolbarView","BaseToolbarView","overrideWith","parentNode","replaceChild","css","height","overflow","hidden","isHidden","OverridableToolbarView","toolbarViewOptions","toolbarView","overriddenView","restoreToolbar","isOverridden","document","documentElement","loadingText","shouldFocus","delayedLoading","overlayZIndex","$target","entry","registry","counter","UiBlockerView","delayedLoadingTimer","time","delay","updateText","timer","setInterval","handleWindowEvent","clearTimeout","checkTimer","unblock","clearInterval","invalidKey","isExisting","cleanUp","positionOverlay","hasClass","position","top","bottom","is","updatedCss","width","outerWidth","outerHeight","display","offset","zIndex","currentCSS"],"sourceRoot":""}