survey-creator-core 2.5.0 → 2.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (151) hide show
  1. package/fesm/i18n/arabic.mjs +1 -1
  2. package/fesm/i18n/bulgarian.mjs +1 -1
  3. package/fesm/i18n/burmese.mjs +1 -1
  4. package/fesm/i18n/croatian.mjs +1 -1
  5. package/fesm/i18n/czech.mjs +1 -1
  6. package/fesm/i18n/danish.mjs +1 -1
  7. package/fesm/i18n/dutch.mjs +1 -1
  8. package/fesm/i18n/english.mjs +1 -1
  9. package/fesm/i18n/finnish.mjs +1 -1
  10. package/fesm/i18n/french.mjs +1 -1
  11. package/fesm/i18n/german.mjs +1 -1
  12. package/fesm/i18n/greek.mjs +1 -1
  13. package/fesm/i18n/haitian-creole.mjs +1 -1
  14. package/fesm/i18n/hebrew.mjs +1 -1
  15. package/fesm/i18n/hungarian.mjs +1 -1
  16. package/fesm/i18n/index.mjs +1 -1
  17. package/fesm/i18n/indonesian.mjs +1 -1
  18. package/fesm/i18n/italian.mjs +1 -1
  19. package/fesm/i18n/japanese.mjs +1 -1
  20. package/fesm/i18n/korean.mjs +1 -1
  21. package/fesm/i18n/malay.mjs +1 -1
  22. package/fesm/i18n/mongolian.mjs +1 -1
  23. package/fesm/i18n/norwegian.mjs +1 -1
  24. package/fesm/i18n/persian.mjs +1 -1
  25. package/fesm/i18n/polish.mjs +1 -1
  26. package/fesm/i18n/portuguese.mjs +1 -1
  27. package/fesm/i18n/romanian.mjs +1 -1
  28. package/fesm/i18n/russian.mjs +1 -1
  29. package/fesm/i18n/simplified-chinese.mjs +1 -1
  30. package/fesm/i18n/slovak.mjs +1 -1
  31. package/fesm/i18n/slovenian.mjs +1 -1
  32. package/fesm/i18n/spanish.mjs +1 -1
  33. package/fesm/i18n/swedish.mjs +1 -1
  34. package/fesm/i18n/tajik.mjs +1 -1
  35. package/fesm/i18n/thai.mjs +1 -1
  36. package/fesm/i18n/traditional-chinese.mjs +1 -1
  37. package/fesm/i18n/turkish.mjs +1 -1
  38. package/fesm/presets/index.mjs +32 -8
  39. package/fesm/presets/index.mjs.map +1 -1
  40. package/fesm/survey-creator-core.i18n.mjs +1 -1
  41. package/fesm/survey-creator-core.mjs +36 -6
  42. package/fesm/survey-creator-core.mjs.map +1 -1
  43. package/fesm/themes/index.mjs +1 -1
  44. package/fonts.fontless.css +1 -1
  45. package/fonts.fontless.min.css +1 -1
  46. package/i18n/arabic.js +1 -1
  47. package/i18n/arabic.min.js.LICENSE.txt +1 -1
  48. package/i18n/bulgarian.js +1 -1
  49. package/i18n/bulgarian.min.js.LICENSE.txt +1 -1
  50. package/i18n/burmese.js +1 -1
  51. package/i18n/burmese.min.js.LICENSE.txt +1 -1
  52. package/i18n/croatian.js +1 -1
  53. package/i18n/croatian.min.js.LICENSE.txt +1 -1
  54. package/i18n/czech.js +1 -1
  55. package/i18n/czech.min.js.LICENSE.txt +1 -1
  56. package/i18n/danish.js +1 -1
  57. package/i18n/danish.min.js.LICENSE.txt +1 -1
  58. package/i18n/dutch.js +1 -1
  59. package/i18n/dutch.min.js.LICENSE.txt +1 -1
  60. package/i18n/english.js +1 -1
  61. package/i18n/english.min.js.LICENSE.txt +1 -1
  62. package/i18n/finnish.js +1 -1
  63. package/i18n/finnish.min.js.LICENSE.txt +1 -1
  64. package/i18n/french.js +1 -1
  65. package/i18n/french.min.js.LICENSE.txt +1 -1
  66. package/i18n/german.js +1 -1
  67. package/i18n/german.min.js.LICENSE.txt +1 -1
  68. package/i18n/greek.js +1 -1
  69. package/i18n/greek.min.js.LICENSE.txt +1 -1
  70. package/i18n/haitian-creole.js +1 -1
  71. package/i18n/haitian-creole.min.js.LICENSE.txt +1 -1
  72. package/i18n/hebrew.js +1 -1
  73. package/i18n/hebrew.min.js.LICENSE.txt +1 -1
  74. package/i18n/hungarian.js +1 -1
  75. package/i18n/hungarian.min.js.LICENSE.txt +1 -1
  76. package/i18n/index.js +1 -1
  77. package/i18n/index.min.js.LICENSE.txt +1 -1
  78. package/i18n/indonesian.js +1 -1
  79. package/i18n/indonesian.min.js.LICENSE.txt +1 -1
  80. package/i18n/italian.js +1 -1
  81. package/i18n/italian.min.js.LICENSE.txt +1 -1
  82. package/i18n/japanese.js +1 -1
  83. package/i18n/japanese.min.js.LICENSE.txt +1 -1
  84. package/i18n/korean.js +1 -1
  85. package/i18n/korean.min.js.LICENSE.txt +1 -1
  86. package/i18n/malay.js +1 -1
  87. package/i18n/malay.min.js.LICENSE.txt +1 -1
  88. package/i18n/mongolian.js +1 -1
  89. package/i18n/mongolian.min.js.LICENSE.txt +1 -1
  90. package/i18n/norwegian.js +1 -1
  91. package/i18n/norwegian.min.js.LICENSE.txt +1 -1
  92. package/i18n/persian.js +1 -1
  93. package/i18n/persian.min.js.LICENSE.txt +1 -1
  94. package/i18n/polish.js +1 -1
  95. package/i18n/polish.min.js.LICENSE.txt +1 -1
  96. package/i18n/portuguese.js +1 -1
  97. package/i18n/portuguese.min.js.LICENSE.txt +1 -1
  98. package/i18n/romanian.js +1 -1
  99. package/i18n/romanian.min.js.LICENSE.txt +1 -1
  100. package/i18n/russian.js +1 -1
  101. package/i18n/russian.min.js.LICENSE.txt +1 -1
  102. package/i18n/simplified-chinese.js +1 -1
  103. package/i18n/simplified-chinese.min.js.LICENSE.txt +1 -1
  104. package/i18n/slovak.js +1 -1
  105. package/i18n/slovak.min.js.LICENSE.txt +1 -1
  106. package/i18n/slovenian.js +1 -1
  107. package/i18n/slovenian.min.js.LICENSE.txt +1 -1
  108. package/i18n/spanish.js +1 -1
  109. package/i18n/spanish.min.js.LICENSE.txt +1 -1
  110. package/i18n/swedish.js +1 -1
  111. package/i18n/swedish.min.js.LICENSE.txt +1 -1
  112. package/i18n/tajik.js +1 -1
  113. package/i18n/tajik.min.js.LICENSE.txt +1 -1
  114. package/i18n/thai.js +1 -1
  115. package/i18n/thai.min.js.LICENSE.txt +1 -1
  116. package/i18n/traditional-chinese.js +1 -1
  117. package/i18n/traditional-chinese.min.js.LICENSE.txt +1 -1
  118. package/i18n/turkish.js +1 -1
  119. package/i18n/turkish.min.js.LICENSE.txt +1 -1
  120. package/package.json +2 -2
  121. package/presets/index.js +6 -6
  122. package/presets/index.min.js +1 -1
  123. package/presets/index.min.js.map +1 -1
  124. package/presets/localization/english.d.ts +4 -0
  125. package/presets/presets-editable-categorized.d.ts +1 -0
  126. package/presets/presets-plugin.d.ts +1 -0
  127. package/survey-creator-core.css +3 -3
  128. package/survey-creator-core.fontless.css +2 -2
  129. package/survey-creator-core.fontless.css.map +1 -1
  130. package/survey-creator-core.fontless.min.css +2 -2
  131. package/survey-creator-core.i18n.js +1 -1
  132. package/survey-creator-core.i18n.min.js.LICENSE.txt +1 -1
  133. package/survey-creator-core.js +40 -6
  134. package/survey-creator-core.js.map +1 -1
  135. package/survey-creator-core.min.css +3 -3
  136. package/survey-creator-core.min.js +1 -1
  137. package/survey-creator-core.min.js.LICENSE.txt +1 -1
  138. package/themes/default-contrast.js +1 -1
  139. package/themes/default-contrast.min.js.LICENSE.txt +1 -1
  140. package/themes/default-dark.js +1 -1
  141. package/themes/default-dark.min.js.LICENSE.txt +1 -1
  142. package/themes/default-light.js +1 -1
  143. package/themes/default-light.min.js.LICENSE.txt +1 -1
  144. package/themes/index.js +1 -1
  145. package/themes/index.min.js.LICENSE.txt +1 -1
  146. package/themes/sc2020.js +1 -1
  147. package/themes/sc2020.min.js.LICENSE.txt +1 -1
  148. package/themes/test.js +1 -1
  149. package/themes/test.min.js.LICENSE.txt +1 -1
  150. package/typings/creator-base.d.ts +6 -1
  151. package/typings/creator-settings.d.ts +1 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.min.js","mappings":"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","sources":["webpack://SurveyCreatorCorePresets/webpack/universalModuleDefinition","webpack://SurveyCreatorCorePresets/external umd {\"root\":\"Survey\",\"commonjs2\":\"survey-core\",\"commonjs\":\"survey-core\",\"amd\":\"survey-core\"}","webpack://SurveyCreatorCorePresets/external umd {\"root\":\"SurveyCreatorCore\",\"commonjs2\":\"survey-creator-core\",\"commonjs\":\"survey-creator-core\",\"amd\":\"survey-creator-core\"}","webpack://SurveyCreatorCorePresets/webpack/bootstrap","webpack://SurveyCreatorCorePresets/webpack/runtime/define property getters","webpack://SurveyCreatorCorePresets/webpack/runtime/hasOwnProperty shorthand","webpack://SurveyCreatorCorePresets/webpack/runtime/make namespace object","webpack://SurveyCreatorCorePresets/./node_modules/tslib/tslib.es6.mjs","webpack://SurveyCreatorCorePresets/./src/presets/presets-editable-base.ts","webpack://SurveyCreatorCorePresets/./src/presets/presets-theme/presets.ts","webpack://SurveyCreatorCorePresets/./src/presets/presets-editable-list.ts","webpack://SurveyCreatorCorePresets/./src/presets/presets-theme/list-theme.ts","webpack://SurveyCreatorCorePresets/./src/presets/presets-editable-categorized.ts","webpack://SurveyCreatorCorePresets/./src/presets/presets-editable-toolbox.ts","webpack://SurveyCreatorCorePresets/./src/presets/presets-editable-properties.ts","webpack://SurveyCreatorCorePresets/./src/presets/presets-editable-tabs.ts","webpack://SurveyCreatorCorePresets/./src/presets/presets-editable-languages.ts","webpack://SurveyCreatorCorePresets/./src/presets/presets-editable-options.ts","webpack://SurveyCreatorCorePresets/./src/presets/localization/english.ts","webpack://SurveyCreatorCorePresets/./src/presets/presets-editor.ts","webpack://SurveyCreatorCorePresets/./src/presets/index.ts","webpack://SurveyCreatorCorePresets/./src/presets/default-settings/basic.ts","webpack://SurveyCreatorCorePresets/./src/presets/default-settings/advanced.ts","webpack://SurveyCreatorCorePresets/./src/presets/default-settings/expert.ts","webpack://SurveyCreatorCorePresets/./src/presets/presets-plugin.ts","webpack://SurveyCreatorCorePresets/./src/presets/preset-question-json.ts"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"survey-core\"), require(\"survey-creator-core\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"[dashedname]\", [\"survey-core\", \"survey-creator-core\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"[dashedname]\"] = factory(require(\"survey-core\"), require(\"survey-creator-core\"));\n\telse\n\t\troot[\"SurveyCreatorCorePresets\"] = factory(root[\"Survey\"], root[\"SurveyCreatorCore\"]);\n})(this, (__WEBPACK_EXTERNAL_MODULE__156__, __WEBPACK_EXTERNAL_MODULE__982__) => {\nreturn ","module.exports = __WEBPACK_EXTERNAL_MODULE__156__;","module.exports = __WEBPACK_EXTERNAL_MODULE__982__;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nvar ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n};\n","import { Helpers, Question, SurveyModel } from \"survey-core\";\nimport { SurveyCreatorModel, editorLocalization, CreatorPresetBase, ICreatorOptions, getLocString } from \"survey-creator-core\";\n\nexport interface ICreatorPresetEditorSetup {\n creator: SurveyCreatorModel;\n createCreator(options: ICreatorOptions): SurveyCreatorModel;\n}\n\nexport class CreatorPresetEditableBase {\n public parent: CreatorPresetEditableBase;\n protected get navigationPanelName(): string { return this.path + \"_navigation\"; }\n public children: Array<CreatorPresetEditableBase> = [];\n public constructor(public preset: CreatorPresetBase) {\n }\n public get path() { return this.preset.getPath(); }\n protected getJsonPath(model: SurveyModel): string { return this.path; }\n public get fullPath() {\n let prefix = this.parent ? this.parent.fullPath : \"\";\n if (this.path && prefix) {\n prefix += \"_\";\n }\n return prefix + this.path;\n }\n public get pageName(): string { return \"page_\" + this.fullPath; }\n public getPageTitle(model: SurveyModel): string { return model.getPageByName(this.pageName).title; }\n public getPageShortTitle(model: SurveyModel): string { return model.getPageByName(this.pageName).navigationTitle; }\n protected get mainPanelName() { return this.path + \"_mainPanel\"; }\n public getMainElementNames() : any { return [this.mainPanelName]; }\n public getMainPanelName() : any { return this.mainPanelName; }\n public getCustomQuestionCssSuffix(question: Question) { return \"\"; }\n public createPages(): Array<any> {\n const res = [];\n const mainPage = this.createMainPage();\n if (mainPage) {\n res.push(mainPage);\n }\n this.children.forEach(item => {\n const pages = item.createPages();\n if (Array.isArray(pages)) {\n pages.forEach(page => res.push(page));\n }\n });\n return res;\n }\n public get questionNames(): string[] { return []; }\n public notifyCallback = (message: string) => {};\n public validate(model: SurveyModel): boolean {\n if (!this.validateCore(model)) return false;\n for (let i = 0; i < this.children.length; i ++) {\n if (!this.children[i].validate(model)) return false;\n }\n return true;\n }\n protected validateCore(model: SurveyModel): boolean {\n return true;\n }\n protected createMainPage(): any {\n const res = this.createMainPageCore();\n if (res) {\n res.name = this.pageName;\n }\n return res;\n }\n protected getBoolVisibleIf(name: string, isTrue: boolean = true): string { return \"{\" + name + \"}=\" + (isTrue ? \"true\" : \"false\"); }\n protected getTextVisibleIf(name: string, val: string): string { return \"{\" + name + \"}='\" + val + \"'\"; }\n protected getNotEmptyVisibleIf(name: string): string { return \"{\" + name + \"} notempty\"; }\n protected createMainPageCore(): any { return undefined; }\n public getNavigationElementName() : any { return this.navigationPanelName; }\n public getJsonValue(model: SurveyModel, creator: SurveyCreatorModel, defaultJson?: any): any {\n const page = model.getPageByName(this.pageName);\n const core = page && page.isVisible ? this.getJsonValueCore(model, creator, defaultJson) : undefined;\n let hasValue = !!core;\n const res = hasValue ? core : {};\n this.children.forEach(item => {\n const val = item.getJsonValue(model, creator);\n if (!!val) {\n hasValue = true;\n res[item.getJsonPath(model)] = val;\n }\n });\n return hasValue ? res : undefined;\n }\n public getDefaultJsonValue(creator: SurveyCreatorModel) {\n const json = this.getDefaultJsonValueCore(creator);\n this.children.forEach(item => json[item.path] = item.getDefaultJsonValueCore(creator));\n return json;\n }\n public setJsonLocalizationStrings(model: SurveyModel, locStrs: any): void {\n this.setJsonLocalizationStringsCore(model, locStrs);\n this.children.forEach(item => item.setJsonLocalizationStrings(model, locStrs));\n }\n public updateJsonLocalizationStrings(locStrs: any): void {\n this.updateJsonLocalizationStringsCore(locStrs);\n this.children.forEach(item => item.updateJsonLocalizationStrings(locStrs));\n }\n public dispose(): void {\n this.disposeCore();\n this.children.forEach(item => item.dispose());\n }\n public setupQuestions(model: SurveyModel, creatorSetup: ICreatorPresetEditorSetup): void {\n this.setupQuestionsCore(model, creatorSetup);\n this.children.forEach(item => {\n item.setupQuestions(model, creatorSetup);\n });\n }\n public resetToDefaults(model: SurveyModel, notify = true): void {\n this.restoreValuesFromDefault(model);\n this.notifyCallback(this.getPageTitle(model) + \" \" + getLocString(\"presets.editor.resoredToDefault\"));\n this.children.forEach(item => {\n item.resetToDefaults(model, notify);\n });\n }\n public setupOnCurrentPage(model: SurveyModel, creator: SurveyCreatorModel, active: boolean): void {\n this.setupOnCurrentPageCore(model, creator, active);\n this.children.forEach(item => {\n item.setupOnCurrentPage(model, creator, active);\n });\n }\n public updateOnValueChanged(model: SurveyModel, name: string): void {\n this.updateOnValueChangedCore(model, name);\n this.children.forEach(item => {\n item.updateOnValueChanged(model, name);\n });\n }\n public updateOnMatrixDetailPanelVisibleChanged(model: SurveyModel, creator: SurveyCreatorModel, options: any): void {\n this.updateOnMatrixDetailPanelVisibleChangedCore(model, creator, options);\n this.children.forEach(item => {\n item.updateOnMatrixDetailPanelVisibleChanged(model, creator, options);\n });\n }\n public onGetMatrixRowActions(model: SurveyModel, creator: SurveyCreatorModel, options: any): void {\n this.onGetMatrixRowActionsCore(model, creator, options);\n this.children.forEach(item => {\n item.onGetMatrixRowActions(model, creator, options);\n });\n }\n public onGetPanelTitleActions(model: SurveyModel, creator: SurveyCreatorModel, options: any): void { }\n public onMatrixRowDragOver(model: SurveyModel, creator: SurveyCreatorModel, options: any): void { }\n public onMatrixRowRemoving(model: SurveyModel, creator: SurveyCreatorModel, options: any): void { }\n public onMatrixRowAdded(model: SurveyModel, creator: SurveyCreatorModel, options: any): void { }\n public onMatrixCellValueChanged(model: SurveyModel, creator: SurveyCreatorModel, options: any): void { }\n public setupQuestionsValue(model: SurveyModel, json: any, creator: SurveyCreatorModel): void {\n this.setupQuestionsValueCore(model, json, creator);\n this.saveValuesAsDefault(model);\n this.children.forEach(item => {\n item.setupQuestionsValue(model, !!json ? json[item.path] : undefined, creator);\n });\n }\n public onLocaleChanged(model: SurveyModel, json: any, creator: SurveyCreatorModel): void {\n this.onLocaleChangedCore(model, json, creator);\n this.children.forEach(item => {\n item.setupQuestionsValue(model, !!json ? json[item.path] : undefined, creator);\n });\n }\n\n private saveValuesAsDefault(model: SurveyModel) {\n this.questionNames.forEach(name => model.getQuestionByName(name).defaultValue = model.getValue(name) && JSON.parse(JSON.stringify(model.getValue(name))));\n }\n protected restoreValuesFromDefault(model: SurveyModel) {\n this.questionNames.forEach(name => model.getQuestionByName(name).value = model.getQuestionByName(name).defaultValue && JSON.parse(JSON.stringify(model.getQuestionByName(name).defaultValue)));\n }\n\n protected setupQuestionsCore(model: SurveyModel, creatorSetup: ICreatorPresetEditorSetup): void { }\n protected resetToDefaultsCore(model: SurveyModel): void { }\n protected setupQuestionsValueCore(model: SurveyModel, json: any, creator: SurveyCreatorModel): void {}\n protected onLocaleChangedCore(model: SurveyModel, json: any, creator: SurveyCreatorModel): void {}\n protected getJsonValueCore(model: SurveyModel, creator: SurveyCreatorModel, defaultJson: any): any { return undefined; }\n protected getDefaultJsonValueCore(creator: SurveyCreatorModel): any { return {}; }\n protected setJsonLocalizationStringsCore(model: SurveyModel, locStrs: any): void {}\n protected updateJsonLocalizationStringsCore(locStrs: any): void {}\n protected disposeCore(): void {}\n protected setupOnCurrentPageCore(model: SurveyModel, creator: SurveyCreatorModel, active: boolean): void {}\n protected updateOnValueChangedCore(model: SurveyModel, name: string): void {}\n protected updateOnMatrixDetailPanelVisibleChangedCore(model: SurveyModel, creator: SurveyCreatorModel, options: any): void {}\n protected onGetMatrixRowActionsCore(model: SurveyModel, creator: SurveyCreatorModel, options: any): void {}\n protected copyJson(json: any): any {\n return Helpers.getUnbindValue(json);\n }\n\n public static updateModifiedText(locStrs: any, text: string, localizationName: string): void {\n if (!localizationName) return undefined;\n if (!text) return;\n const presetStrs = editorLocalization.presetStrings;\n editorLocalization.presetStrings = undefined;\n if (text !== editorLocalization.getString(localizationName)) {\n CreatorPresetEditableBase.saveTextInLocStrs(locStrs, text, localizationName);\n }\n editorLocalization.presetStrings = presetStrs;\n }\n private static saveTextInLocStrs(locStrs: any, text: string, localizationName: string): void {\n const paths = localizationName.split(\".\");\n for (let i = 0; i < paths.length - 1; i ++) {\n const path = paths[i];\n if (!locStrs[path]) {\n locStrs[path] = {};\n }\n locStrs = locStrs[path];\n }\n locStrs[paths[paths.length - 1]] = text;\n }\n}","import { listComponentCss } from \"survey-creator-core\";\n\nexport var presetsCss = {\n root: \"sps-root-modern\",\n container: \"sps-container-modern\",\n header: \"sps-title sps-container-modern__title\",\n body: \"sps-body\",\n bodyEmpty: \"sps-body sps-body--empty\",\n footer: \"sps-footer sps-body__footer sps-clearfix\",\n title: \"\",\n description: \"\",\n logo: \"sps-logo\",\n logoImage: \"sps-logo__image\",\n headerText: \"sps-header__text\",\n navigationButton: \"\",\n bodyNavigationButton: \"\",\n completedPage: \"sps-completedpage\",\n navigation: {\n complete: \"sps-btn sps-btn--primary-brand sps-footer__complete-btn\",\n prev: \"sps-btn sps-btn--secondary-brand sps-footer__prev-btn\",\n next: \"sps-btn sps-btn--primary-brand sps-footer__next-btn\",\n start: \"sps-btn sps-footer__start-btn\",\n preview: \"sps-btn sps-footer__preview-btn\",\n edit: \"sps-btn sps-footer__edit-btn\"\n },\n list: JSON.parse(JSON.stringify(listComponentCss)),\n panel: {\n withFrame: \"sps-panel--with-frame\",\n nested: \"sps-panel--nested\",\n expandableAnimating: \"\",\n header: \"sps-panel__header\",\n title: \"sps-title sps-panel__title\",\n titleBar: \"sd-action-title-bar sps-action-title-bar\",\n contentEnter: \"sps-panel__content--enter\",\n contentLeave: \"sps-panel__content--leave\",\n titleExpandable: \"sps-panel__title--expandable\",\n titleExpanded: \"sps-panel__title--expanded\",\n titleCollapsed: \"sps-panel__title--collapsed\",\n titleOnError: \"sps-panel__title--error\",\n description: \"sps-description sps-panel__description\",\n container: \"sps-panel sps-row__panel\",\n content: \"sps-panel__content\",\n icon: \"sps-panel__icon\",\n iconExpanded: \"sps-panel__icon--expanded\",\n footer: \"sps-panel__footer\",\n requiredMark: \"sps-panel__required-text\",\n collapsed: \"sps-panel--collapsed\",\n expanded: \"sps-panel--expanded\",\n },\n paneldynamic: {\n nested: \"\",\n mainRoot: \"sps-question sps-row__question\",\n root: \"sps-paneldynamic\",\n navigation: \"sps-paneldynamic__navigation\",\n title: \"sps-title sps-question__title\",\n button: \"sps-action-button sps-action-button--text\",\n buttonRemove: \"sps-action-button--danger\",\n buttonAdd: \"sps-paneldynamic__add-btn\",\n panelsContainer: \"\",\n panelWrapper: \"sps-paneldynamic__panel-wrapper\",\n panelWrapperList: \"\",\n progressTop: \"sps-paneldynamic__progress sps-paneldynamic__progress--top\",\n progressBottom:\n \"sps-paneldynamic__progress sps-paneldynamic__progress--bottom\",\n buttonPrev: \"sps-paneldynamic__prev-btn\",\n buttonNext: \"sps-paneldynamic__next-btn\",\n progressContainer: \"sps-paneldynamic__progress-container\",\n progress: \"sps-progress\",\n progressBar: \"sps-progress__bar\",\n progressText: \"sps-paneldynamic__progress-text\",\n panelFooter: \"sps-panel__footer\",\n separator: \"sps-paneldynamic__separator\",\n footer: \"sps-paneldynamic__footer\",\n footerButtonsContainer: \"sps-paneldynamic__buttons-container\",\n },\n progress: \"sps-progress sps-body__progress\",\n progressBar: \"sps-progress__bar\",\n progressText: \"sps-progress__text\",\n progressTextInBar: \"sps-hidden\",\n page: {\n root: \"sps-page sps-body__page\",\n title: \"sps-title sps-page__title\",\n description: \"sps-description sps-page__description\"\n },\n pageTitle: \"sps-title sps-page__title\",\n pageDescription: \"sps-description sps-page__description\",\n row: \"sps-row sps-clearfix\",\n rowEnter: \"sps-row--enter\",\n rowLeave: \"sps-row--leave\",\n rowDelayedEnter: \"sps-row--delayed-fade-in\",\n rowMultiple: \"sps-row--multiple\",\n question: {\n withFrame: \"sps-question--with-frame\",\n nested: \"sps-question--nested\",\n mainRoot: \"sps-question sps-row__question\",\n flowRoot: \"sps-question sps-row__question sps-row__question--flow\",\n asCell: \"sps-table__cell\",\n header: \"sps-question__header\",\n headerLeft: \"sps-question__header--location--left\",\n headerTop: \"sps-question__header--location--top\",\n headerBottom: \"sps-question__header--location--bottom\",\n content: \"sps-question__content\",\n contentLeft: \"sps-question__content--left\",\n titleLeftRoot: \"sps-question--location--left\",\n titleOnAnswer: \"sps-question__title--answer\",\n titleOnError: \"sps-question__title--error\",\n title: \"sps-title sps-question__title\",\n titleBar: \"sd-action-title-bar sps-action-title-bar\",\n requiredMark: \"sps-question__required-text\",\n number: \"sps-question__num\",\n description: \"sps-description sps-question__description\",\n descriptionUnderInput: \"sps-question__description--under\",\n comment: \"sps-comment\",\n required: \"sps-question--required\",\n titleRequired: \"sps-question__title--required\",\n indent: 0,\n footer: \"sps-question__footer\",\n formGroup: \"sps-question__form-group\",\n hasError: \"\",\n readOnly: \"sd-question--readonly sps-question--disabled\",\n confirmDialog: \"sps-popup--confirm sv-popup--confirm svc-creator-popup\",\n errorsContainerBottom: \"sps-question__erbox--below-question\",\n },\n checkbox: {\n root: \"sps-selectbase\",\n item: \"sps-item sps-checkbox sps-selectbase__item\",\n itemSelectAll: \"sps-checkbox--selectall\",\n itemNone: \"sps-checkbox--none\",\n itemReadOnly: \"sps-item--disabled sps-checkbox--disabled\",\n itemChecked: \"sps-checkbox--checked\",\n itemHover: \"sps-checkbox--allowhover\",\n itemInline: \"sps-selectbase__item--inline\",\n label: \"sps-selectbase__label\",\n // label: \"sps-checkbox\",\n itemSvgIconId: \"#icon-check-16x16\",\n labelChecked: \"\",\n //itemControl: \"sps-visuallyhidden sps-item__control\",\n itemControl: \"sps-checkbox__control\",\n itemDecorator: \"sps-checkbox__svg\",\n //itemDecorator: \"sps-checkbox__hidden\",\n //controlLabel: \"sps-item__control-label\",\n controlLabel: \"sps-checkbox__caption\",\n materialDecorator: \"sps-checkbox__rectangle\",\n //materialDecorator: \"sps-item__decorator sps-checkbox__decorator\",\n other: \"sps-comment sps-question__other\",\n column: \"sps-selectbase__column\"\n },\n radiogroup: {\n root: \"sps-selectbase\",\n item: \"sps-item sps-radio sps-selectbase__item\",\n itemInline: \"sps-selectbase__item--inline\",\n label: \"sps-selectbase__label\",\n labelChecked: \"\",\n itemReadOnly: \"sps-item--disabled sps-radio--disabled\",\n itemChecked: \"sps-radio--checked\",\n itemHover: \"sps-radio--allowhover\",\n itemControl: \"sps-visuallyhidden sps-item__control\",\n itemDecorator: \"sps-item__svg sps-radio__svg\",\n controlLabel: \"sps-item__control-label\",\n materialDecorator: \"sps-item__decorator sps-radio__decorator\",\n other: \"sps-comment sps-question__other\",\n clearButton: \"sps-btn sps-selectbase__clear-btn\",\n column: \"sps-selectbase__column\"\n },\n boolean: {\n mainRoot: \"sps-question sps-row__question sps-question--boolean\",\n rootCheckbox: \"sps-selectbase\",\n checkboxItem: \"sps-checkbox\",\n checkboxItemChecked: \"sps-checkbox--checked\",\n checkboxitemIndeterminate: \"sps-checkbox--indeterminate\",\n checkboxItemReadOnly: \"sps-checkbox--disabled\",\n svgIconId: \"#icon-v2check\",\n checkboxLabel: \"sps-selectbase__label\",\n controlCheckbox: \"sps-checkbox__control\",\n checkboxControlLabel: \"sps-checkbox__caption\",\n checkboxItemDecorator: \"sps-checkbox__svg\",\n checkboxMaterialDecorator: \"sps-checkbox__rectangle\"\n },\n text: {\n root: \"sps-input sps-text\",\n controlReadOnly: \"sps-input--readonly\",\n small: \"sps-row__question--small\",\n content: \"sps-question__content sps-text__content\",\n remainingCharacterCounter: \"sps-remaining-character-counter\",\n onError: \"sps-input--error\"\n },\n comment: {\n root: \"sps-input sps-comment\",\n content: \"sps-question__content sps-comment__content\",\n remainingCharacterCounter: \"sps-remaining-character-counter\",\n small: \"sps-row__question--small\",\n onError: \"sps-input--error\"\n },\n dropdown: {\n root: \"sps-selectbase\",\n popup: \"sps-dropdown-popup svc-creator-popup\",\n small: \"sps-row__question--small sd-row__question--small\",\n control: \"sps-input sps-dropdown\",\n controlEmpty: \"sps-dropdown--empty sd-dropdown--empty\",\n controlValue: \"sps-dropdown__value\",\n filterStringInput: \"sd-dropdown__filter-string-input sps-dropdown__filter-string-input\",\n other: \"sps-comment sps-question__other\",\n onError: \"sps-input--error\",\n selectWrapper: \"sv-dropdown_select-wrapper sps-dropdown_select-wrapper\",\n chevronButtonIconId: \"icon-chevron\",\n cleanButton: \"sps-dropdown__clean-button sps-input__edit-button\",\n controlReadOnly: \"sps-input--readonly sd-input--disabled sd-input--readonly\",\n hintPrefix: \"sps-dropdown__hint-prefix sd-dropdown__hint-prefix\",\n hintSuffix: \"sps-dropdown__hint-suffix sd-dropdown__hint-suffix\"\n },\n matrix: {\n tableWrapper: \"sps-matrix sps-table-wrapper\",\n root: \"sps-table\",\n rowError: \"sps-matrix__row--error\",\n cell: \"sps-table__cell sps-matrix__cell\",\n headerCell: \"sps-table__cell sps-table__cell--header\",\n label: \"sps-item sps-radio sps-matrix__label\",\n itemValue: \"sps-visuallyhidden sps-item__control sps-radio__control\",\n itemChecked: \"sps-radio--checked\",\n itemReadOnly: \"sps-item--disabled sps-radio--disabled\",\n itemHover: \"sps-radio--allowhover\",\n materialDecorator: \"sps-item__decorator sps-radio__decorator\",\n itemDecorator: \"sps-item__svg sps-radio__svg\",\n cellText: \"sps-matrix__text\",\n cellTextSelected: \"sps-matrix__text--checked\",\n cellTextReadOnly: \"sps-matrix__text--disabled\",\n },\n matrixdropdown: {\n tableWrapper: \"sps-table-wrapper\",\n root: \"sps-table\",\n cell: \"sps-table__cell\",\n headerCell: \"sps-table__cell sps-table__cell--header\",\n emptyCell: \"sps-table__cell--empty\",\n rowEnter: \"sps-table__row--enter\",\n rowLeave: \"sps-table__row--leave\",\n },\n matrixdynamic: {\n mainRoot: \"sps-question sps-question--matrixdynamic sd-element sd-question sd-row__question sd-element--complex sd-question--complex sd-question--table\",\n tableWrapper: \"sps-table-wrapper\",\n root: \"sps-table sps-matrixdynamic\",\n content: \"sps-matrixdynamic__content sps-text__content\",\n cell: \"sps-table__cell\",\n row: \"sps-table__row\",\n rowDisabled: \"sps-table__row-disabled\",\n rowReadOnly: \"sps-table__row-readonly\",\n headerCell: \"sps-table__cell sps-table__cell--header\",\n button: \"sps-btn\",\n detailRow: \"sps-table__row sps-table__row--detail\",\n detailButton: \"sps-table__cell--detail-button sps-action-button\",\n detailButtonExpanded: \"sps-table__cell--detail-button--expanded\",\n detailIcon: \"sps-detail-panel__icon sps-action-button__icon\",\n detailIconExpanded: \"sps-detail-panel__icon--expanded\",\n detailIconExpandedId: \"icon-collapse-24x24\",\n detailIconId: \"icon-expand-24x24\",\n detailPanelCell: \"sps-table__cell sps-table__cell--detail-panel\",\n actionsCell: \"sps-table__cell sps-table__cell--actions\",\n buttonAdd: \"sps-matrixdynamic__add-btn sps-action-button sps-action-button--large\",\n buttonRemove: \"sps-matrixdynamic__remove-btn\",\n iconAdd: \"\",\n iconRemove: \"xxx\",\n dragElementDecorator: \"sps-drag-element__svg\",\n iconDragElement: \"#icon-drag-24x24\",\n iconDrag: \"sps-matrixdynamic__drag-element\",\n footer: \"sps-matrixdynamic__footer\",\n dragDropGhostPositionTop: \"sps-matrixdynamic__drag-drop-ghost-position-top\",\n dragDropGhostPositionBottom: \"sps-matrixdynamic__drag-drop-ghost-position-bottom\",\n noRowsSection: \"sps-matrixdynamic__placeholder\",\n noRowsText: \"sps-matrixdynamic__placeholder-text\",\n cellQuestionWrapper: \"sps-table__question-wrapper\",\n draggedRow: \"sps-matrixdynamic__dragged-row\",\n emptyCell: \"sps-table__cell--empty\",\n rowEmpty: \"sps-table__row--empty\",\n rowEnter: \"sps-table__row--enter\",\n rowLeave: \"sps-table__row--leave\",\n },\n\n actionBar: {\n root: \"sps-action-bar\",\n item: \"sps-action-button\",\n itemPressed: \"sps-action-button--pressed\",\n itemAsIcon: \"sps-action-button--icon\",\n itemIcon: \"sps-action-button__icon\",\n itemTitle: \"sps-action-button__title\",\n }\n};\n","import { Helpers, MatrixDynamicRowModel, QuestionMatrixDynamicModel, SurveyModel, Action, IAction, SvgRegistry, settings, ComputedUpdater, PanelModel, IDialogOptions } from \"survey-core\";\nimport { CreatorPresetEditableBase } from \"./presets-editable-base\";\nimport { SurveyCreatorModel, SurveyHelper, getLocString } from \"survey-creator-core\";\nimport { presetsCss } from \"./presets-theme/presets\";\nexport class CreatorPresetEditableList extends CreatorPresetEditableBase {\n //private replaceNonLettersWithDash(inputString) {\n // return inputString?.replace(/[^a-zA-Z0-9]/g, \"-\");\n //}\n private defaultIcon = \"square-dashed-24x24\";\n protected get nameItems() { return this.path + \"_items\"; }\n protected get nameMatrix() { return this.fullPath + \"_matrix\"; }\n protected hasIcon(_: string) { return false; }\n public getMainElementNames() : any { return [this.nameItems]; }\n protected get iconList() { return Object.keys(SvgRegistry.icons).map(name => \"icon-\" + name); }\n protected getMatrixKeyColumnName(question: QuestionMatrixDynamicModel) : any { return \"name\"; }\n protected getDefaultItems(question?: QuestionMatrixDynamicModel) {\n return this.defaultItems;\n }\n protected getDefaultItem(question: QuestionMatrixDynamicModel, key: string) {\n const keyColumn = this.getMatrixKeyColumnName(question);\n return this.getDefaultItems(question).filter(i => i[keyColumn] == key)[0];\n }\n\n protected defaultItems: any;\n //private fillAutoName(question: QuestionMatrixDynamicModel, propName: string) {\n // question.value?.filter(v =>v.isDefault === false && !v[propName]).forEach(v => v[propName] = this.replaceNonLettersWithDash(v.title));\n //}\n\n protected updateOnValueChangedCore(model: SurveyModel, name: string): void {\n if (this.needToSetActions(name)) {\n const matrix = model.getQuestionByName(name) as QuestionMatrixDynamicModel;\n this.updateMatrixRowActions(model, matrix);\n }\n }\n\n protected updateMatrixRowActions(model: SurveyModel, matrix: QuestionMatrixDynamicModel) {\n matrix.renderedTable.rows.forEach(r => {\n if (!r.row) return;\n const iconActions = r.cells[1]?.item?.value.actions;\n this.updateRowActions(matrix, r.row as MatrixDynamicRowModel, iconActions);\n const actions = r.cells[r.cells.length - 1].item?.value.actions;\n this.updateRowActions(matrix, r.row as MatrixDynamicRowModel, actions);\n });\n }\n\n protected updateRowActions(question: QuestionMatrixDynamicModel, row: MatrixDynamicRowModel, actions: IAction[]) {\n if (!actions) return;\n const keyColumn = this.getMatrixKeyColumnName(question);\n if (!question.value) return;\n const rowData = question.value.filter(r => row.value?.[keyColumn] == r?.[keyColumn])[0];\n if (!rowData) return;\n actions.forEach(a => this.updateRowAction(question, row, rowData, keyColumn, a));\n }\n\n protected updateRowAction(question: QuestionMatrixDynamicModel, row: MatrixDynamicRowModel, rowData: any, keyColumn: string, action: IAction) {\n if (action.id == \"icon-action\") {\n action.iconName = rowData.iconName || this.defaultIcon;\n }\n if (action.id == \"reset-to-default\") {\n const defaultItem = this.getDefaultItem(question, rowData[keyColumn]);\n if (!defaultItem) return;\n const defaultData = {};\n Object.keys(rowData).forEach(key => defaultData[key] = defaultItem[key]);\n action.enabled = !Helpers.isTwoValueEquals(rowData, defaultData);\n }\n }\n\n protected createResetAction(model: SurveyModel, row: MatrixDynamicRowModel, action: (action: Action) => void): IAction {\n return {\n id: \"reset-to-default\",\n iconName: \"icon-reset\",\n tooltip: getLocString(\"presets.items.restoreToDefault\"),\n location: \"end\",\n visibleIndex: 15,\n action: action\n };\n }\n\n protected createEditAction(model: SurveyModel, creator: SurveyCreatorModel, question: QuestionMatrixDynamicModel, row: MatrixDynamicRowModel): IAction {\n return {\n id: \"edit-item\",\n iconName: \"icon-edit\",\n tooltip: getLocString(\"presets.items.edit\"),\n location: \"end\",\n visibleIndex: 13,\n action: () => { this.editItem(model, creator, question, row); }\n };\n }\n\n protected createIconAction(iconName: string, cssClass: string = \"sps-matrixdynamic__row-icon\"): IAction {\n return {\n id: \"icon-action\",\n iconName: iconName,\n innerCss: cssClass,\n location: \"start\",\n enabled: false\n };\n }\n\n protected setupStandardActions(actions: IAction[], question: QuestionMatrixDynamicModel, row: MatrixDynamicRowModel, allowExpand: boolean, isItemsMatrix: boolean): void {\n actions.forEach(a => {\n if (a.id == \"show-detail\") {\n a.location = \"end\";\n a.iconName = \"icon-expand-24x24\";\n a.title = <any>new ComputedUpdater(() => row.isDetailPanelShowing ? getLocString(\"presets.items.collapse\") : getLocString(\"presets.items.expand\"));\n a.tooltip = getLocString(\"presets.items.expand\");\n a.visibleIndex = 10;\n a.visible = allowExpand;\n }\n if (a.id == \"remove-row\") {\n a.visibleIndex = 20;\n a.component = \"sv-action-bar-item\";\n a.action = () => question.removeRowUI(row);\n a.iconName = isItemsMatrix ? \"icon-add_24x24\" : \"icon-remove_24x24\";\n a.tooltip = isItemsMatrix ? getLocString(\"presets.items.add\") : getLocString(\"presets.items.delete\");\n }\n });\n }\n\n protected editItem(model: SurveyModel, creator: SurveyCreatorModel, question: QuestionMatrixDynamicModel, row: MatrixDynamicRowModel, options?: {description: string, isNew: boolean}) {\n let survey: SurveyModel;\n let resetAction;\n const itemKey = this.getMatrixKeyColumnName(question);\n const resetActionParams = {\n id: \"reset-to-default\",\n title: getLocString(\"presets.editor.resetToDefault\"),\n css: \"sps-action--grow\",\n innerCss: \"sps-btn sps-btn--secondary-alert\",\n visibleIndex: 15,\n action: (a) => {\n const defaultItem = this.getDefaultItem(question, survey.getValue(itemKey));\n survey.data = defaultItem;\n resetAction.enabled = false;\n this.notifyCallback(getLocString(\"presets.editor.itemRestoredToDefault\"));\n }\n };\n resetAction = new Action(resetActionParams);\n survey = this.showDetailPanelInPopup(question, row, model.rootElement, { actions: [resetAction], title: options?.description, removeOnCancel: options?.isNew });\n resetAction.enabled = !Helpers.isTwoValueEquals(survey.data, this.getDefaultItem(question, survey.getValue(itemKey)));\n survey.onValueChanged.add(()=>resetAction.enabled = true);\n const keyQuestion = survey.getQuestionByName(itemKey);\n if (this.getDefaultItem(question, keyQuestion.value)) {\n keyQuestion.readOnly = true;\n }\n }\n\n private resetItem(model: SurveyModel, question: QuestionMatrixDynamicModel, row: MatrixDynamicRowModel) {\n const name = row.getValue(\"name\");\n const defaultItems = this.getDefaultItem(question, name);\n if (defaultItems) {\n const value = question.value;\n const itemRow = value.filter(v => v.name == name)[0];\n Object.keys(itemRow).forEach((key) => {\n itemRow[key] = defaultItems[key];\n });\n question.value = value;\n }\n this.notifyCallback(getLocString(\"presets.editor.itemRestoredToDefault\"));\n }\n protected restoreItems(questionItems: QuestionMatrixDynamicModel, questionHiddenItems: QuestionMatrixDynamicModel, rowIndex: number) {\n const rowData = questionHiddenItems.value[rowIndex];\n const value = questionItems.value ? [...questionItems.value] : [];\n value.push(rowData);\n questionItems.value = value;\n }\n\n protected getMatrix(model: SurveyModel): QuestionMatrixDynamicModel {\n return <QuestionMatrixDynamicModel>model.getQuestionByName(this.nameMatrix);\n }\n\n protected isItemsMatrix(name: string): boolean {\n return name === this.nameMatrix;\n }\n protected needToSetActions(name: string) {\n return this.isItemsMatrix(name);\n }\n protected onGetMatrixRowActionsCore(model: SurveyModel, creator: SurveyCreatorModel, options: any): void {\n if (this.needToSetActions(options.question.name)) {\n const question = options.question as QuestionMatrixDynamicModel;\n const allowExpand = question.detailElements.filter(e => e.visible).length > 0;\n if (this.hasIcon(options.question.name)) {\n const keyColumn = this.getMatrixKeyColumnName(options.question);\n const iconName = question.value?.filter(v => v[keyColumn] == options.row.getValue(keyColumn))[0]?.iconName || this.defaultIcon;\n options.actions.push(this.createIconAction(iconName));\n }\n const resetAction = this.createResetAction(model, options.row, (action: Action) => {\n this.resetItem(model, question, options.row);\n action.enabled = false;\n });\n options.actions.push(resetAction);\n options.actions.push(this.createEditAction(model, creator, question, options.row));\n\n this.setupStandardActions(options.actions, question, options.row, allowExpand, question.name == this.nameMatrix);\n this.updateRowActions(question, options.row, options.actions);\n }\n }\n public onMatrixRowDragOver(model: SurveyModel, creator: SurveyCreatorModel, options: any) {\n if (this.isItemsMatrix(options.fromMatrix.name) && this.isItemsMatrix(options.toMatrix.name)) {\n options.allow = true;\n }\n }\n public onMatrixRowRemoving(model: SurveyModel, creator: SurveyCreatorModel, options: any) {\n if (this.isItemsMatrix(options.question.name) && options.question.name != this.nameMatrix) {\n const rowData = options.question.value[options.rowIndex];\n const hiddenItems = this.getMatrix(model);\n const value = hiddenItems.value ? [...hiddenItems.value] : [];\n value.push(rowData);\n hiddenItems.value = value;\n }\n }\n\n protected getExistingKeys(model: SurveyModel, key: string) {\n const items = model.getQuestionByName(this.nameItems).value || [];\n const unsorted = model.getQuestionByName(this.nameMatrix).value || [];\n return [...items, ...unsorted];\n }\n\n protected getDefaultValueForRow(model: SurveyModel, question: QuestionMatrixDynamicModel, key: string) {\n return SurveyHelper.getNewName(this.getExistingKeys(model, key).map(i => i[key]).filter(v => !!v).map(r => ({ name: r })), key);\n }\n\n protected setDefaultValueForRow(model: SurveyModel, question: QuestionMatrixDynamicModel, row: MatrixDynamicRowModel) {\n const key = this.getMatrixKeyColumnName(question);\n const value = this.getDefaultValueForRow(model, question, key);\n row.getQuestionByName(key).value = value;\n row.getQuestionByName(\"title\").value = value;\n }\n public onMatrixRowAdded(model: SurveyModel, creator: SurveyCreatorModel, options: any) {\n if (this.isItemsMatrix(options.question.name)) {\n this.setDefaultValueForRow(model, options.question, options.row);\n this.editItem(model, creator, options.question, options.row, {\n description: getLocString(\"presets.items.newItem\") + \" \" + (options.question.data?.value?.title || this.getPageShortTitle(model)),\n isNew: true\n });\n }\n }\n public onMatrixCellValueChanged(model: SurveyModel, creator: SurveyCreatorModel, options: any) {\n if (this.needToSetActions(options.question.name)) {\n const renderedRow = options.question.renderedTable.rows.find(r => r.row == options.row);\n if (!renderedRow) return;\n const actions = renderedRow.cells[renderedRow.cells.length - 1].item.value.actions;\n if (!actions) return;\n this.updateRowActions(options.question, options.row, actions);\n }\n }\n protected showDetailPanelInPopup(matrix: QuestionMatrixDynamicModel, row: MatrixDynamicRowModel, rootElement: HTMLElement, options: {actions?: IAction[], title?: string, removeOnCancel?: boolean}) {\n const index = (matrix.visibleRows as any).findIndex(r => r === row);\n const data = matrix.value[index];\n const survey = new SurveyModel({ elements: matrix.toJSON().detailElements });\n survey.fitToContainer = false;\n survey.showNavigationButtons = false;\n survey.data = data;\n survey.css = presetsCss;\n survey.enterKeyAction = \"loseFocus\";\n survey.questionErrorLocation = \"bottom\";\n\n if (settings.showDialog) {\n const popupModel = settings.showDialog?.(<IDialogOptions>{\n componentName: \"survey\",\n data: { survey: survey, model: survey },\n onApply: () => {\n if (survey.validate()) {\n const newValue = [...matrix.value];\n const newData: any = { };\n survey.getAllQuestions().forEach(q => {\n if (q.visible) {\n newData[q.name] = survey.data[q.name];\n }\n });\n const newRowValue = { ...matrix.value[index], ...newData };\n newValue[index] = newRowValue;\n matrix.value = newValue;\n this.updateMatrixRowActions(matrix.survey as any, matrix);\n return true;\n } else {\n return false;\n }\n },\n onCancel: () => {\n if (options.removeOnCancel) {\n matrix.removeRowUI(row);\n }\n return true;\n },\n cssClass: \"sps-popup svc-property-editor svc-creator-popup\",\n title: options.title || getLocString(\"presets.editor.edit\"),\n displayMode: \"popup\"\n }, rootElement);\n if (survey.getAllQuestions().filter(q => !q.startWithNewLine).length > 0) {\n popupModel.width = \"100%\";\n }\n\n if (popupModel.footerToolbar) {\n const defaultActionBarCss = popupModel.footerToolbar.cssClasses;\n defaultActionBarCss.item = \"sps-btn\";\n popupModel.footerToolbar.cssClasses = defaultActionBarCss;\n popupModel.footerToolbar.getActionById(\"apply\").innerCss = \"sps-btn--primary-brand\";\n popupModel.footerToolbar.getActionById(\"cancel\").innerCss = \"sps-btn--secondary-brand\";\n\n if (options.actions) {\n popupModel.footerToolbar.actions.unshift(...options.actions);\n }\n }\n survey.getAllPanels().forEach(q => (q as PanelModel).visible = !(q as PanelModel).visible);\n survey.getAllQuestions().forEach(q => {\n q.visible = !q.visible;\n if (q.isRequired) {\n q.requiredErrorText = getLocString(\"presets.editor.required\");\n }\n });\n }\n return survey;\n }\n}\n","export var listComponentCss = {\n root: \"sps-list__container\",\n itemsContainer: \"sps-list\",\n itemsContainerFiltering: \"sps-list--filtering\",\n emptyContainer: \"sps-list__empty-container\",\n emptyText: \"sps-list__empty-text\",\n\n filter: \"sps-list__filter\",\n filterIcon: \"sps-list__filter-icon\",\n filterInput: \"sps-list__input\",\n searchClearButtonIcon: \"sps-list__filter-clear-button\",\n\n loadingIndicator: \"sps-list__loading-indicator\",\n item: \"sps-list__item\",\n itemSelected: \"sps-list__item--selected\",\n itemGroup: \"sps-list__item--group\",\n itemGroupSelected: \"sps-list__item--group-selected\",\n itemWithIcon: \"sps-list__item--with-icon\",\n itemDisabled: \"sps-list__item--disabled\",\n itemFocused: \"sps-list__item--focused\",\n itemHovered: \"sps-list__item--hovered\",\n itemTextWrap: \"sps-list__item-text--wrap\",\n itemIcon: \"sps-list__item-icon\",\n itemMarkerIcon: \"sps-list-item__marker-icon\",\n itemSeparator: \"sps-list__item-separator\",\n itemBody: \"sps-list__item-body\",\n};\n","import { Action, createDropdownActionModel, IAction, MatrixDynamicRowModel, PopupModel, QuestionMatrixDynamicModel, SurveyModel } from \"survey-core\";\nimport { SurveyCreatorModel, SurveyHelper, getLocString } from \"survey-creator-core\";\nimport { CreatorPresetEditableList } from \"./presets-editable-list\";\nimport { listComponentCss } from \"./presets-theme/list-theme\";\nexport class CreatorPresetEditableCaregorizedListConfigurator extends CreatorPresetEditableList {\n //private replaceNonLettersWithDash(inputString) {\n // return inputString?.replace(/[^a-zA-Z0-9]/g, \"-\");\n //}\n protected defaultCategories: any;\n protected getDefaultItems(question?: QuestionMatrixDynamicModel) {\n return question?.name === this.nameCategories ? this.defaultCategories : this.defaultItems;\n }\n protected get nameInnerMatrix() { return \"items\"; }\n protected get nameCategories() { return this.fullPath + \"_categories\"; }\n public getMainElementNames() : any { return [this.nameCategories]; }\n protected getMatrixKeyColumnName(question: QuestionMatrixDynamicModel) : any {\n return question.name === this.nameCategories ? \"category\" : \"name\";\n }\n public get questionNames() {\n return [this.nameCategories];\n }\n\n protected setupCategoryActions(model: SurveyModel, creator: SurveyCreatorModel, question: QuestionMatrixDynamicModel, row: MatrixDynamicRowModel, actions: IAction[]): void {\n actions.forEach(a => {\n if (a.id == \"remove-row\") {\n a.iconName = \"icon-delete_24x24\";\n a.tooltip = getLocString(\"presets.items.delete\");\n a.innerCss = \"sps-action-button sps-action-button--icon sps-action-button--danger\";\n }\n if (a.id == \"reset-to-default\") {\n a.action = () => { this.resetCategory(model, row); };\n }\n });\n }\n\n protected ejectRowData(question: QuestionMatrixDynamicModel, row: MatrixDynamicRowModel, remove: boolean) {\n const value = question.value;\n const rowDataIndex = question.visibleRows.indexOf(row);\n const rowData = value[rowDataIndex];\n if (remove) {\n value.splice(rowDataIndex, 1);\n question.value = value;\n }\n return rowData;\n }\n\n private moveToCategory(model: SurveyModel, question: QuestionMatrixDynamicModel, row: MatrixDynamicRowModel, categoryName: string, remove = false) {\n const rowData = this.ejectRowData(question, row, remove);\n const categories = this.getQuestionCategories(model);\n const catValue = categories.value;\n const general = this.findOrCreateCategory(catValue, categoryName);\n general[this.nameInnerMatrix].push(rowData);\n categories.value = catValue;\n return (categories.visibleRows as any).find(r => r.getValue(\"category\") == categoryName) as MatrixDynamicRowModel;\n }\n\n protected itemMenuCategoriesEnabled(model: SurveyModel) {\n return true;\n }\n\n protected setSubitemsToAction(action: Action, items: Action[]) {\n action.setSubItems({ items: items, cssClasses: listComponentCss });\n action.markerIconName = \"icon-chevronright-24x24\";\n }\n\n protected getItemMenuActionsCore(model: SurveyModel, question: QuestionMatrixDynamicModel, row: MatrixDynamicRowModel) {\n const categoriesQuestion = this.getQuestionCategories(model);\n const categories = categoriesQuestion.value;\n const actions = [] as IAction[];\n const isUnsorted = question.name == this.nameMatrix;\n const hasCategories = this.itemMenuCategoriesEnabled(model);\n if (!isUnsorted) {\n actions.push(\n new Action({\n id: \"remove-from\",\n title: getLocString(\"presets.items.removeFrom\").replace(\"{0}\", question.title),\n action: () => {\n const rowDataIndex = question.visibleRows.indexOf(row);\n question.removeRow(rowDataIndex);\n }\n })\n );\n } else {\n if (hasCategories) {\n actions.push(new Action({\n id: \"move-to\",\n title: getLocString(\"presets.items.moveTo\"),\n css: \"sps-list__item--label\",\n enabled: false\n }));\n } else {\n actions.push(new Action({\n id: \"restore-item\",\n title: getLocString(\"presets.toolbox.addToToolbox\"),\n action: () => {\n const rowDataIndex = question.visibleRows.indexOf(row);\n question.removeRow(rowDataIndex);\n }\n }));\n }\n }\n\n if (!hasCategories) return actions;\n const currentCategory = categories.filter(c => c[this.nameInnerMatrix].filter(i => i.name == row.value?.name).length > 0)[0];\n const moveToCategories = categories.filter((i: any) => i.category != currentCategory?.category).map((i: any) => new Action({\n id: \"to-\" + i.category,\n title: i.title,\n action: () => {\n this.moveToCategory(model, question, row, i.category, true);\n }\n }));\n if (!isUnsorted) {\n actions.push(new Action({\n id: \"categories\",\n title: getLocString(\"presets.items.categoriesLabel\"),\n css: \"sps-list__item--label\",\n enabled: false,\n needSeparator: true\n }));\n const catGroup = new Action({\n id: \"move-to-categories\",\n title: getLocString(\"presets.items.moveToCategory\")\n });\n this.setSubitemsToAction(catGroup, moveToCategories);\n actions.push(catGroup);\n } else {\n actions.push(...moveToCategories);\n }\n\n actions.push(\n new Action({\n id: \"move-to-new-category\",\n title: getLocString(\"presets.items.moveToNewCategory\"),\n needSeparator: isUnsorted,\n action: () => {\n const newCatRow = this.moveToCategory(model, question, row, this.getDefaultValueForRow(model, question, \"category\"), true);\n this.editItem(model, null, categoriesQuestion, newCatRow, {\n description: getLocString(\"presets.items.newCategory\") + \" \" + this.getPageShortTitle(model),\n isNew: true\n });\n }\n }));\n\n return actions;\n }\n\n protected getItemMenuActions(model: SurveyModel, question: QuestionMatrixDynamicModel, row: MatrixDynamicRowModel) {\n const actions = this.getItemMenuActionsCore(model, question, row);\n if (!this.getDefaultItem(question, row.value.name)) {\n actions.push(\n new Action({\n id: \"remove-custom-item\",\n title: getLocString(\"presets.toolbox.deleteCustomItem\"),\n css: \"sps-list__item--alert\",\n needSeparator: true,\n action: () => {\n this.ejectRowData(question, row, true);\n }\n })\n );\n }\n return actions;\n }\n\n protected replaceRemoveAction(model: SurveyModel, question: QuestionMatrixDynamicModel, row: MatrixDynamicRowModel, actions: IAction[]): void {\n const originalAction = actions.filter(a => a.id == \"remove-row\")[0];\n if (originalAction) {\n originalAction.visible = false;\n\n const addAction = createDropdownActionModel({\n id: \"context-menu\",\n iconName: \"more-circle-24x24\",\n tooltip: getLocString(\"presets.items.more\"),\n location: \"end\",\n visibleIndex: 20\n }, {\n items: [],\n showPointer: false,\n verticalPosition: \"bottom\",\n horizontalPosition: \"center\",\n cssClass: \"sps-popup-menu sps-popup-menu--context\",\n cssClasses: listComponentCss,\n searchEnabled: false\n });\n addAction.popupModel.onVisibilityChanged.add((_: PopupModel, opt: { model: PopupModel, isVisible: boolean }) => {\n if (opt.isVisible) {\n const listModel = opt.model.contentComponentData.model;\n listModel.actions = this.getItemMenuActions(model, question, row);\n listModel.flushUpdates();\n }\n });\n actions.push(addAction);\n }\n }\n\n protected getQuestionCategories(model: SurveyModel): QuestionMatrixDynamicModel { return <QuestionMatrixDynamicModel>model.getQuestionByName(this.nameCategories); }\n\n protected isItemsMatrix(name: string): boolean {\n return super.isItemsMatrix(name) || name === this.nameInnerMatrix;\n }\n private resetCategory(model: SurveyModel, row: MatrixDynamicRowModel) {\n const category = row.getValue(\"category\");\n const defaultItems = this.defaultCategories.filter(i => i.category == category)[0]?.[this.nameInnerMatrix];\n if (!defaultItems) return;\n const categoriesQuestion = this.getQuestionCategories(model);\n const hiddenItemsQuestion = this.getMatrix(model);\n const hiddenValue = hiddenItemsQuestion.value || [];\n const value = categoriesQuestion.value;\n const categoryRow = value.filter(v => v.category == category)[0];\n categoryRow[this.nameInnerMatrix].forEach(i => {\n if (!defaultItems.some(di => di.name == i.name)) {\n hiddenValue.push(i);\n }\n });\n categoryRow[this.nameInnerMatrix] = defaultItems;\n function clearItemFromDefault(items: any) {\n if (!items) return;\n defaultItems.forEach(di => {\n const index = items.findIndex(i => i.name == di.name);\n if (index >= 0) items.splice(index, 1);\n });\n }\n value.filter(v => v.category != category).forEach(v => {\n defaultItems.forEach(di => {\n clearItemFromDefault(v[this.nameInnerMatrix]);\n });\n });\n clearItemFromDefault(hiddenValue);\n\n hiddenItemsQuestion.value = hiddenValue;\n categoriesQuestion.value = value;\n this.notifyCallback(getLocString(\"presets.editor.categoryRestoredToDefault\"));\n }\n protected findOrCreateCategory(categories: any, category?: string) {\n let generalCategory = categories.filter(c => c.category == category)[0];\n if (!generalCategory) {\n generalCategory = { category: category || \"general\", title: category || \"General\", [this.nameInnerMatrix]: [] };\n categories.push(generalCategory);\n }\n return generalCategory;\n }\n protected needToSetActions(name: string) {\n return this.isItemsMatrix(name) || name === this.nameCategories;\n }\n protected onGetMatrixRowActionsCore(model: SurveyModel, creator: SurveyCreatorModel, options: any): void {\n super.onGetMatrixRowActionsCore(model, creator, options);\n if (options.question.name === this.nameCategories) {\n this.setupCategoryActions(model, creator, options.question, options.row, options.actions);\n }\n if (this.isItemsMatrix(options.question.name)) {\n this.replaceRemoveAction(model, options.question, options.row, options.actions);\n }\n }\n\n protected getExistingKeys(model: SurveyModel, key: string) {\n const cats = model.getQuestionByName(this.nameCategories).value || [];\n const unsorted = model.getQuestionByName(this.nameMatrix).value || [];\n return [...cats, ...cats.map(c => c.items).flat().filter(key => !!key), ...unsorted];\n }\n\n public onMatrixRowRemoving(model: SurveyModel, creator: SurveyCreatorModel, options: any) {\n super.onMatrixRowRemoving(model, creator, options);\n if (options.question.name == this.nameCategories) {\n const items = options.question.value[options.rowIndex][this.nameInnerMatrix];\n if (items) {\n const hiddenItems = this.getMatrix(model);\n const value = hiddenItems.value ? hiddenItems.value.concat(items) : items;\n hiddenItems.value = value;\n }\n }\n if (options.question.name == this.nameMatrix) {\n const rowData = options.question.value[options.rowIndex];\n const defaultCategory = this.defaultCategories.filter(c => c[this.nameInnerMatrix].filter(i => i.name == rowData.name).length > 0)[0];\n this.moveToCategory(model, options.question, options.row, defaultCategory?.category);\n }\n }\n public onMatrixRowAdded(model: SurveyModel, creator: SurveyCreatorModel, options: any) {\n super.onMatrixRowAdded(model, creator, options);\n if (options.question.name == this.nameCategories) {\n this.setDefaultValueForRow(model, options.question, options.row);\n this.editItem(model, creator, options.question, options.row, {\n description: getLocString(\"presets.items.newCategory\") + \" \" + this.getPageShortTitle(model),\n isNew: true\n });\n }\n }\n}\n\n","import { Action, FunctionFactory, Helpers, IAction, MatrixDynamicRowModel, QuestionMatrixDynamicModel, Serializer, SurveyModel } from \"survey-core\";\nimport { CreatorPresetEditableBase, ICreatorPresetEditorSetup } from \"./presets-editable-base\";\nimport { QuestionToolboxCategory, QuestionToolboxItem, SurveyCreatorModel, editorLocalization, getLocString } from \"survey-creator-core\";\nimport { ICreatorPresetToolboxItem } from \"survey-creator-core\";\nimport { CreatorPresetEditableCaregorizedListConfigurator } from \"./presets-editable-categorized\";\nimport { listComponentCss } from \"./presets-theme/list-theme\";\n\nconst LocCategoriesName = \"toolboxCategories\";\n\nfunction validateToolboxJson (params) {\n const value = params[0];\n if (!value || !value.type) return true;\n const obj = Serializer.createClass(value.type, value);\n return !!obj;\n}\nFunctionFactory.Instance.register(\"validateToolboxJson\", validateToolboxJson);\nexport class CreatorPresetEditableToolboxConfigurator extends CreatorPresetEditableCaregorizedListConfigurator {\n private allItems: ICreatorPresetToolboxItem[];\n protected defaultSubitems: any;\n private createItemsMatrixJSON(props: any, addSubitems: boolean): any {\n const defaultJSON = {\n type: \"matrixdynamic\",\n name: \"items\",\n title: \"Toolbox\",\n allowRowReorder: true,\n cellType: \"text\",\n showHeader: false,\n rowCount: 0,\n allowAddRows: false,\n addRowButtonLocation: \"top\",\n columns: [\n {\n \"name\": \"name\",\n visible: false\n },\n {\n \"name\": \"title\"\n }\n ],\n detailPanelMode: \"underRow\",\n detailElements: [\n {\n \"type\": \"panel\",\n \"name\": \"details\",\n \"maxWidth\": \"30%\",\n \"elements\": [\n { type: \"text\", name: \"name\", title: getLocString(\"presets.toolbox.categoryName\"), isUnique: true, visible: false, isRequired: true },\n { type: \"text\", name: \"title\", title: getLocString(\"presets.toolbox.categoryTitle\"), visible: false },\n { type: \"dropdown\", name: \"iconName\", title: getLocString(\"presets.toolbox.iconName\"), itemComponent: \"svc-presets-icon-item\", \"allowCustomChoices\": true, choices: this.iconList, visible: false },\n { type: \"text\", name: \"tooltip\", title: getLocString(\"presets.toolbox.tooltip\"), visible: false },\n ],\n visible: false\n },\n {\n type: \"presetjson\",\n name: \"json\",\n startWithNewLine: false,\n renderAs: \"default-comment\",\n title: getLocString(\"presets.toolbox.jsonObject\"),\n validators: [{\n type: \"expression\",\n text: \"JSON should be correct\",\n expression: \"validateToolboxJson({json})\"\n }],\n visible: false\n }\n ]\n };\n const newJson = { ...defaultJSON, ...props };\n if (addSubitems) {\n newJson.detailElements.push(this.createItemsMatrixJSON({\n allowAddRows: true,\n addRowText: getLocString(\"presets.toolbox.addNewSubitem\"),\n addRowButtonLocation: \"bottom\",\n name: this.nameSubitems,\n valueName: \"subitems\",\n titleLocation: \"hidden\",\n startWithNewLine: false\n }, false));\n }\n return newJson;\n }\n\n public createMainPageCore(): any {\n return {\n title: getLocString(\"presets.toolbox.title\"),\n description: getLocString(\"presets.toolbox.description\"),\n navigationTitle: getLocString(\"presets.toolbox.navigationTitle\"),\n elements: [\n {\n type: \"panel\",\n name: this.mainPanelName,\n elements: [\n {\n type: \"matrixdynamic\",\n name: this.nameCategories,\n title: getLocString(\"presets.toolbox.toolbox\"),\n visibleIf: this.getTextVisibleIf(this.nameCategoriesMode, \"categories\"),\n allowRowReorder: true,\n allowAddRows: true,\n addRowButtonLocation: \"top\",\n noRowsText: getLocString(\"presets.toolbox.noCategoriesText\"),\n addRowText: getLocString(\"presets.toolbox.addCustomCategory\"),\n showHeader: false,\n columns: [\n { cellType: \"text\", name: \"category\", isUnique: true, isRequired: true, visible: false },\n { cellType: \"text\", name: \"title\" }\n ],\n detailPanelMode: \"underRow\",\n detailElements: [\n { type: \"text\", name: \"category\", title: getLocString(\"presets.toolbox.categoryName\"), isRequired: true, visible: false },\n { type: \"text\", name: \"title\", title: getLocString(\"presets.toolbox.categoryTitle\"), visible: false },\n { type: \"text\", name: \"tooltip\", title: getLocString(\"presets.toolbox.tooltip\"), visible: false },\n this.createItemsMatrixJSON({\n name: this.nameInnerMatrix,\n titleLocation: \"hidden\",\n allowAddRows: true,\n addRowButtonLocation: \"bottom\",\n noRowsText: getLocString(\"presets.toolbox.noItemsText\"),\n addRowText: getLocString(\"presets.toolbox.addNewItem\"),\n valueName: \"items\"\n }, true)\n ]\n },\n this.createItemsMatrixJSON({\n name: this.nameItems,\n title: getLocString(\"presets.toolbox.toolbox\"),\n addRowButtonLocation: \"top\",\n noRowsText: getLocString(\"presets.toolbox.noItemsText\"),\n addRowText: getLocString(\"presets.toolbox.addCustomItem\"),\n startWithNewLine: false,\n visibleIf: this.getTextVisibleIf(this.nameCategoriesMode, \"items\"),\n }, true),\n this.createItemsMatrixJSON({\n allowAddRows: true,\n title: getLocString(\"presets.toolbox.hiddenItems\"),\n noRowsText: getLocString(\"presets.toolbox.noHiddenItemsText\"),\n descriptionLocation: \"underInput\",\n addRowButtonLocation: \"bottom\",\n addRowText: getLocString(\"presets.toolbox.addNewItem\"),\n startWithNewLine: false,\n name: this.nameMatrix\n }, true)]\n },\n {\n type: \"panel\",\n title: \" \",\n name: this.navigationPanelName,\n elements: [\n {\n type: \"boolean\",\n name: this.nameCategoriesMode,\n title: getLocString(\"presets.toolbox.enableGrouping\"),\n titleLocation: \"hidden\",\n defaultValue: \"categories\",\n valueTrue: \"categories\",\n valueFalse: \"items\",\n clearIfInvisible: \"onHidden\",\n renderAs: \"switch\"\n },\n {\n type: \"boolean\",\n name: this.nameShowCategoryTitles,\n title: getLocString(\"presets.toolbox.showCategoryTitles\"),\n defaultValue: false,\n useTitleAsLabel: true,\n visibleIf: this.getTextVisibleIf(this.nameCategoriesMode, \"categories\"),\n clearIfInvisible: \"onHidden\",\n renderAs: \"switch\"\n }\n ]\n }\n ]\n };\n }\n public get nameCategoriesMode() { return this.fullPath + \"_mode\"; }\n protected get nameItems() { return this.fullPath + \"_items\"; }\n protected get nameSubitems() { return \"subitems\"; }\n protected get nameShowCategoryTitles() { return this.fullPath + \"_showCategoryTitles\"; }\n public get questionNames() {\n return [this.nameCategories, this.nameItems, this.nameMatrix, this.nameShowCategoryTitles, this.nameCategoriesMode];\n }\n protected hasIcon(name: string) { return name !== this.nameCategories && name !== this.nameSubitems; }\n\n protected getDefaultItems(question?: QuestionMatrixDynamicModel) {\n return question?.name === this.nameCategories ? this.defaultCategories : [...this.defaultItems, ...this.defaultSubitems];\n }\n\n protected updateRowAction(question: QuestionMatrixDynamicModel, row: MatrixDynamicRowModel, rowData: any, keyColumn: string, action: IAction) {\n super.updateRowAction(question, row, rowData, keyColumn, action);\n if (action.id == \"show-detail\" && question.name != this.nameCategories) {\n action.visible = row.isDetailPanelShowing || !!rowData.subitems;\n }\n }\n\n private findItem(value: any, itemName: string, hasCategories: boolean) {\n return hasCategories ?\n value.map(c => c.items.filter(i => i.name == itemName)[0]).filter(i => !!i)[0] :\n value.filter(i => i.name == itemName)[0];\n }\n\n private moveToSubitems(model: SurveyModel, question: QuestionMatrixDynamicModel, row: MatrixDynamicRowModel, itemName: string, remove = false) {\n const rowData = this.ejectRowData(question, row, remove);\n const hasCategories = this.itemMenuCategoriesEnabled(model);\n const destination = hasCategories ? this.getQuestionCategories(model) : this.getQuestionItems(model);\n const destValue = JSON.parse(JSON.stringify(destination.value));\n const item = this.findItem(destValue, itemName, hasCategories);\n if (item) {\n if (!item.subitems) item.subitems = [];\n item.subitems.push(rowData);\n }\n destination.value = destValue;\n }\n\n protected getExistingKeys(model: SurveyModel, key: string) {\n const superItems = super.getExistingKeys(model, key);\n const items = model.getQuestionByName(this.nameItems).value || [];\n const rows = [...superItems, ...items];\n const subitems = (rows.map(r => r.subitems || []) as any).flat();\n return [...rows, ...subitems];\n }\n\n protected itemMenuCategoriesEnabled(model: SurveyModel) {\n return model.getValue(this.nameCategoriesMode) !== \"items\";\n }\n\n protected getItemMenuActionsCore(model: SurveyModel, question: QuestionMatrixDynamicModel, row: MatrixDynamicRowModel) {\n const categories = this.getQuestionCategories(model).value;\n const actions = super.getItemMenuActionsCore(model, question, row);\n const hasCategories = this.itemMenuCategoriesEnabled(model);\n const catActions = categories.map((c: any) => {\n const catAction = new Action({\n id: \"tosubitemcategory-\" + c.category,\n title: c.title\n });\n if (c.items) {\n const itemsActions = c.items.filter((i: any) => i.name != row.value?.name).map((i: any) => new Action({\n id: \"tosubitem-\" + i.name,\n title: i.title,\n action: () => {\n this.moveToSubitems(model, question, row, i.name, true);\n }\n }));\n this.setSubitemsToAction(catAction, itemsActions);\n }\n return catAction;\n }\n );\n const subItems = hasCategories ? catActions : catActions.map(a => a.items).flat();\n const rowDataIndex = question.visibleRows.indexOf(row);\n const rowData = question.value[rowDataIndex];\n if (!rowData[\"subitems\"]) {\n if (question.name == this.nameItems || question.name == this.nameInnerMatrix) {\n actions.push(new Action({\n id: \"subcategories\",\n title: getLocString(\"presets.toolbox.subitems\"),\n css: \"sps-list__item--label\",\n enabled: false,\n needSeparator: true\n }));\n actions.push(new Action({\n id: \"convert-to-subcategory\",\n title: getLocString(\"presets.toolbox.enableSubitems\"),\n action: () => {\n const destination = hasCategories ? this.getQuestionCategories(model) : this.getQuestionItems(model);\n const destValue = JSON.parse(JSON.stringify(destination.value));\n const item = this.findItem(destValue, rowData.name, hasCategories);\n if (item) {\n item.subitems = [];\n }\n destination.value = destValue;\n this.updateMatrixRowActions(model, question);\n row.showDetailPanel();\n }\n }));\n }\n const subitemsAction = new Action({\n id: \"move-as-subitem\",\n title: getLocString(\"presets.toolbox.moveAsSubitem\"),\n needSeparator: true\n });\n this.setSubitemsToAction(subitemsAction, subItems);\n actions.push(subitemsAction);\n }\n\n return actions;\n }\n\n public getJsonValueCore(model: SurveyModel, creator: SurveyCreatorModel, defaultJson: any): any {\n const res: any = {};\n const definition = this.getJsonItemsDefinition(model);\n if (definition) {\n res.definition = definition;\n }\n const mode = model.getValue(this.nameCategoriesMode);\n const toolbox = creator.toolbox;\n const toolboxCategories = defaultJson?.categories;\n if (mode === \"categories\") {\n const categories = this.getCategoriesJson(model);\n if (Array.isArray(categories) && categories.length > 0 && (!this.isCategoriesSame(categories, toolboxCategories))) {\n res.categories = this.getCategoriesJson(model);\n }\n } else {\n res.categories = [];\n }\n if (model.getValue(this.nameShowCategoryTitles)) {\n res.showCategoryTitles = true;\n }\n return Object.keys(res).length > 0 ? res : undefined;\n }\n protected getDefaultJsonValueCore(creator: SurveyCreatorModel): any {\n return {\n categories: creator.toolbox.categories.map(c => ({ category: c.name, title: c.title, items: c.items.map(i => i.name) }))\n };\n }\n private isCategoriesSame(categories: any, toolboxCategories: any): boolean {\n if (categories.length !== toolboxCategories.length) return false;\n for (let i = 0; i < categories.length; i++) {\n if (categories[i].category !== toolboxCategories[i].category) return false;\n //if (categories[i].title !== toolboxCategories[i].title) return false;\n const toolboxItems = toolboxCategories[i].items;\n const categoryItems = categories[i].items;\n if (!Helpers.isTwoValueEquals(categoryItems, toolboxItems)) return false;\n }\n return true;\n }\n\n private getCategoriesJson(model: SurveyModel): any {\n const categories = model.getValue(this.nameCategories);\n if (!Array.isArray(categories)) return undefined;\n return categories.map(c => ({ category: c.category, items: c.items?.map(i => i.name) }));\n }\n private cleanIfNotDiffers(item, defaultItem) {\n if (!defaultItem) return true;\n let differs = false;\n Object.keys({ ...item, ...defaultItem }).forEach(key => {\n if (!Helpers.isTwoValueEquals(item[key], defaultItem[key])) {\n differs = true;\n return;\n }\n if (key !== \"name\") delete item[key];\n });\n return differs;\n }\n private getJsonItemsDefinition(model: SurveyModel): any {\n const mode = model.getValue(this.nameCategoriesMode);\n const itemsRaw = (mode === \"items\") ? model.getValue(this.nameItems) : (model.getValue(this.nameCategories) || []).map(c => c.items).flat();\n const items = (itemsRaw || []).map(i => ({ ...i }));\n let differs = false;\n items.forEach(item => {\n const defaultItem = this.defaultItems.filter(i => i.name == item.name)[0];\n if (!item.subitems && defaultItem?.subitems) item.subitems = [];\n if (this.cleanIfNotDiffers(item, defaultItem)) differs = true;\n });\n if (!differs && !Helpers.isTwoValueEquals(items.map(i=>i.name), this.defaultItems.map(i=>i.name))) differs = true;\n return differs ? items : undefined;\n }\n protected isItemsMatrix(name: string): boolean {\n return name === this.nameItems || name === this.nameSubitems || super.isItemsMatrix(name);\n }\n public onMatrixRowRemoving(model: SurveyModel, creator: SurveyCreatorModel, options: any) {\n if (options.question.name == this.nameMatrix) {\n const mode = model.getValue(this.nameCategoriesMode);\n if (mode === \"items\") {\n this.restoreItems(this.getQuestionItems(model), options.question, options.rowIndex);\n }\n }\n super.onMatrixRowRemoving(model, creator, options);\n }\n\n protected setupOnCurrentPageCore(model: SurveyModel, creator: SurveyCreatorModel, active: boolean): void {\n creator.toolbox.forceCompact = !active;\n creator.toolbox.isCompact = !active;\n if (creator.readOnly != active) {\n creator.setPropertyValue(\"readOnly\", active);\n }\n creator.toolbox.items.forEach(i => i.enabled = active);\n creator.toolbox.enabled = active;\n }\n\n protected setupQuestionsCore(model: SurveyModel, creatorSetup: ICreatorPresetEditorSetup): void {\n super.setupQuestionsCore(model, creatorSetup);\n this.setupDefaults(model, creatorSetup.creator);\n }\n private setupDefaults(model: SurveyModel, creator: SurveyCreatorModel): void {\n const toolboxDefaultItems = creator.toolbox.getDefaultItems([], true, true, true);\n const toolboxDefaultCategories = creator.toolbox.getDefaultCategories();\n this.defaultItems = toolboxDefaultItems.map(i => this.createToolboxItemRow(i));\n this.defaultSubitems = [];\n toolboxDefaultItems.forEach(i => {\n if (i.items) {\n this.defaultSubitems.push(...i.items.map(si => this.createToolboxItemRow(si)));\n }\n });\n this.defaultCategories = toolboxDefaultCategories.map(i => this.createToolboxCategoryRow(i));\n }\n // private isItemValuesEqual(a: Array<ICreatorPresetToolboxItem>, b: Array<ICreatorPresetToolboxItem>): boolean {\n // if (!a || !b || a.length !== b.length) return false;\n // for (let i = 0; i < a.length; i++) {\n // if (a[i].name !== b[i].name || a[i].title !== b[i].title) return false;\n // }\n // return true;\n // }\n // private updateRankingLocalizationName(question: QuestionMatrixDynamicModel): void {\n // question.choices.forEach(item => {\n // item.locText.localizationName = \"qt.\" + item.value;\n // });\n // }\n protected setupQuestionsValueCore(model: SurveyModel, json: any, creator: SurveyCreatorModel): void {\n //this.setupQuestionsValueDefinition(model, json);\n const defaultItemsMap = this.defaultItems.reduce((acc: any, i: any) => { acc[i.name] = i; return acc; }, {});\n const defaultCategoriesMap = this.defaultCategories.reduce((acc: any, i: any) => { acc[i.category] = i; return acc; }, {});\n\n this.defaultItems.filter(i => i.subitems).map(i => i.subitems.forEach(si => defaultItemsMap[si.name] = si));\n\n json = json || {};\n let itemsDefinition = (json[\"definition\"] || []).map(i => typeof i === \"string\" ? { name: i } : i);\n let categoriesDefinition = json[\"categories\"] || [];\n if (itemsDefinition.length === 0) {\n itemsDefinition = this.defaultItems;\n } else {\n itemsDefinition = itemsDefinition.map(i => ({ ...(defaultItemsMap[i.name] || {}), ...i }));\n }\n const itemsMap: any = {};\n itemsDefinition.forEach((i: any) => itemsMap[i.name] = { ...i, subitems: i.subitems && i.subitems.map(si => ({ ...(defaultItemsMap[si.name] || {}), ...si })) });\n if (categoriesDefinition.length === 0) {\n categoriesDefinition = this.defaultCategories;\n } else {\n categoriesDefinition = categoriesDefinition.map(c => ({\n ...defaultCategoriesMap[c.category],\n ...c,\n ...{ items: c.items.map(i => itemsMap[i]).filter(i => !!i) } }));\n }\n\n //categories.filter((c: any) => c.properties).forEach((c: any) => c.properties.forEach((p: any) => delete itemsMap[p.name]));\n //Object.keys(itemsMap).map(key => itemsMap[key]);\n categoriesDefinition.filter((c: any) => c.items).forEach((c: any) => c.items.forEach((p: any) => delete defaultItemsMap[p.name]));\n const hiddenItems = this.defaultItems.filter(t => defaultItemsMap[t.name]);\n\n model.setValue(this.nameMatrix, hiddenItems);\n model.setValue(this.nameCategories, categoriesDefinition);\n this.updateItemsFromCategories(model);\n this.updateShowCategoriesTitlesElements(model);\n }\n protected onLocaleChangedCore(model: SurveyModel, json: any, creator: SurveyCreatorModel): void {\n this.setupDefaults(model, creator);\n this.setupQuestionsValueCore(model, json, creator);\n }\n // private setupQuestionsValueDefinition(model: SurveyModel, json: any): void {\n // json = json || {};\n // const question = this.getMatrix(model);\n // const value = [];\n // const definition = json.definition || [];\n // definition.forEach(item => {\n // const val = {};\n // for (let key in item) {\n // val[key] = key === \"json\" ? JSON.stringify(item[key], null, 2) : item[key];\n // }\n // value.push(val);\n // });\n // question.value = value;\n // }\n private updateItemsFromCategories(model: SurveyModel) {\n this.getQuestionItems(model).value = this.getQuestionCategories(model).value.map(r => [...(r.items || [])]).flat();\n }\n\n private updateCategoriesFromItems(model: SurveyModel) {\n const categories = this.getQuestionCategories(model).value;\n const items = [...this.getQuestionItems(model).value];\n const itemsObject = items.reduce((acc, item) => {\n acc[item.name] = item;\n return acc;\n }, {});\n categories.forEach(category => {\n category.items = category.items.map(item => {\n const res = itemsObject[item.name];\n delete itemsObject[item.name];\n return res;\n }).filter(i => !!i);\n });\n const unsortedNames = Object.keys(itemsObject);\n if (unsortedNames.length > 0) {\n let generalCategory = this.findOrCreateCategory(categories, \"general\");\n generalCategory.items = generalCategory.items.concat(unsortedNames.map(name => this.createToolboxItemRow(itemsObject[name])));\n }\n this.getQuestionCategories(model).value = categories;\n }\n protected updateOnValueChangedCore(model: SurveyModel, name: string): void {\n super.updateOnValueChangedCore(model, name);\n if (name === this.nameCategoriesMode) {\n if (model.getValue(this.nameCategoriesMode) == \"items\") {\n this.updateItemsFromCategories(model);\n } else {\n this.updateCategoriesFromItems(model);\n }\n }\n if (name === this.nameShowCategoryTitles) {\n this.updateShowCategoriesTitlesElements(model);\n }\n }\n private updateShowCategoriesTitlesElements(model: SurveyModel): void {\n const val = model.getValue(this.nameShowCategoryTitles) === true;\n const matrix = this.getQuestionCategories(model);\n matrix.visibleRows.forEach(row => {\n const category = row.getValue(\"category\");\n const defaultTitle = this.getCategoryTitle(category);\n if (!!defaultTitle) {\n row.getQuestionByName(\"category\").readOnly = true;\n }\n const titleQuestion = row.getQuestionByName(\"title\");\n if (titleQuestion.isEmpty()) {\n titleQuestion.value = defaultTitle;\n }\n });\n }\n private getCategoryTitle(name: string): string {\n return editorLocalization.getString(LocCategoriesName + \".\" + name);\n }\n protected setJsonLocalizationStringsCore(model: SurveyModel, locStrs: any): void {\n function updateTextFromQuestion(matrix: QuestionMatrixDynamicModel, locStrs: any) {\n if (!matrix) return;\n const rows = matrix.visibleRows;\n rows.forEach(r => {\n CreatorPresetEditableBase.updateModifiedText(locStrs, r.getValue(\"title\"), \"qt.\" + r.getValue(\"name\"));\n });\n\n }\n updateTextFromQuestion(this.getQuestionItems(model), locStrs);\n\n const matrix = this.getQuestionCategories(model);\n if (matrix.isVisible) {\n matrix.visibleRows.forEach(row => {\n const category = row.getValue(\"category\");\n if (row.getValue(\"title\") !== this.getCategoryTitle(category)) {\n if (!locStrs[LocCategoriesName]) {\n locStrs[LocCategoriesName] = {};\n }\n locStrs[LocCategoriesName][category] = row.getValue(\"title\");\n }\n updateTextFromQuestion(<QuestionMatrixDynamicModel>row.getQuestionByName(\"items\"), locStrs);\n });\n }\n }\n private getQuestionItems(model: SurveyModel): QuestionMatrixDynamicModel {\n return <QuestionMatrixDynamicModel>model.getQuestionByName(this.nameItems);\n }\n private createToolboxItemRow(item: QuestionToolboxItem): ICreatorPresetToolboxItem {\n const obj:ICreatorPresetToolboxItem = {\n name: item.name,\n title: item.title,\n iconName: item.iconName,\n tooltip: item.tooltip,\n json: item.json,\n subitems: item.items?.map(i => this.createToolboxItemRow(i))\n };\n\n for (const key in obj) {\n if (obj[key] === undefined) {\n delete obj[key];\n }\n }\n return obj;\n }\n private createToolboxCategoryRow(item: QuestionToolboxCategory) {\n const obj = {\n category: item.name,\n title: item.title,\n items: item.items?.map(i => this.createToolboxItemRow(i))\n };\n\n for (const key in obj) {\n if (obj[key] === undefined) {\n delete obj[key];\n }\n }\n return obj;\n }\n}","import {\n JsonObjectProperty, ItemValue, QuestionDropdownModel,\n Base, Serializer, SurveyModel, matrixDropdownColumnTypes\n} from \"survey-core\";\nimport { ICreatorPresetEditorSetup } from \"./presets-editable-base\";\nimport {\n SurveyCreatorModel, defaultPropertyGridDefinition, ISurveyPropertyGridDefinition, ISurveyPropertiesDefinition,\n SurveyQuestionProperties, editorLocalization, PropertyGridModel, getLocString,\n settings } from \"survey-creator-core\";\n\nimport { CreatorPresetEditableCaregorizedListConfigurator } from \"./presets-editable-categorized\";\n\n// private allTypes: string[];\n// protected setupQuestionsCore(model: SurveyModel, creatorSetup: ICreatorPresetEditorSetup): void {\n// this.allTypes = ElementFactory.Instance.getAllToolboxTypes();\n// model.onGetDynamicPanelTabTitle.add(this.onGetDynamicPanelTabTitle);\n// this.getPanel(model).panelCount = this.allTypes.length;\n// }\n// private get nameSelector() { return this.fullPath + \"_selector\"; }\n// private getSelector(model: SurveyModel): QuestionDropdownModel { return <QuestionDropdownModel>model.getQuestionByName(this.nameSelector); }\n\n// protected setupQuestionsValueCore(model: SurveyModel, json: any, creator: SurveyCreatorModel): void {\n// //this.setupQuestionsValueDefinition(model, json);\n// //this.isModified = !!json;\n// if (!json) {\n// json = this.copyJson(defaultPropertyGridDefinition);\n// }\n// const currentJson = json;\n// currentJson.autoGenerateProperties = false;\n// this.currentProperties = new SurveyQuestionPresetPropertiesDetail(this.currentClassName, this.currentJson);\n// this.propCreator.JSON = this.updateCreatorJSON(this.currentProperties.propertyGrid.survey.toJSON());\n// const categories = creator.toolbox.categories.map(c => ({ category: c.name, items: c.items.map(i => this.createPropertyGridItemRow(i)) }));\n// model.setValue(this.nameCategories, categories);\n// }\n// }\nconst LocCategoriesName = \"tabs\";\nexport class SurveyQuestionPresetProperties extends SurveyQuestionProperties {\n constructor(obj: any, className: string, propertyGridDefinition: ISurveyPropertyGridDefinition) {\n super(obj, null, className, null, null, null, propertyGridDefinition);\n }\n protected getIsPropertyVisible(prop: JsonObjectProperty): boolean {\n return prop.visible !== false;\n }\n}\n\nconst presetPropertiesBaseClasses = [\"question\", \"matrixdropdownbase\", \"selectbase\", \"panelbase\", \"matrixdropdowncolumn@default\", \"matrixdropdowncolumn@selectbase\"];\n\nexport class SurveyQuestionPresetPropertiesDetail {\n private propertiesHash = {};\n public classes = new Array<string>();\n private properties: SurveyQuestionPresetProperties;\n private propertyGridValue: PropertyGridModel;\n private propertyGridDefaultValue: PropertyGridModel;\n private obj;\n constructor(private className: string, private currentJson: ISurveyPropertyGridDefinition) {\n const cls = {};\n const obj = this.createObj();\n this.obj = obj;\n this.properties = new SurveyQuestionPresetProperties(obj, className, currentJson);\n const allPropertiesNames = this.properties.getAllVisiblePropertiesNames(true);\n const objProps = {};\n Serializer.getPropertiesByObj(obj).forEach(prop => objProps[prop.name] = prop);\n allPropertiesNames.forEach(name => {\n const prop = objProps[name];\n if (prop) {\n const propClassName = this.getPropClassName(prop);\n this.propertiesHash[name] = propClassName;\n cls[propClassName] = true;\n }\n });\n for (let i = 0; i < presetPropertiesBaseClasses.length; i++) {\n const cl = presetPropertiesBaseClasses[i];\n if (cls[cl]) {\n this.classes.push(cl);\n }\n }\n if (this.classes.indexOf(className) < 0) {\n this.classes.push(className);\n }\n this.propertyGridValue = this.createPropertyGrid(obj, this.currentJson);\n this.propertyGridDefaultValue = this.createPropertyGrid(obj);\n }\n public getObj() {\n return this.obj;\n }\n private createPropertyGrid(obj: Base, json?: ISurveyPropertyGridDefinition): PropertyGridModel {\n const res = new PropertyGridModel(undefined, undefined, json);\n res.showOneCategoryInPropertyGrid = true;\n res.obj = obj;\n return res;\n }\n private createObj(): Base {\n if (this.className === \"survey\") return new SurveyModel();\n const ind = this.className.indexOf(\"@\");\n if (ind < 0) return Serializer.createClass(this.className);\n const clName = this.className.substring(0, ind);\n const postFix = this.className.substring(ind + 1);\n const res = Serializer.createClass(clName);\n if (res.cellType) {\n res.cellType = postFix;\n }\n return res;\n }\n public getInitialJson(useDefaults: boolean) {\n const propertyGrid = useDefaults ? this.propertyGridDefaultValue : this.propertyGridValue;\n const pgJSON = propertyGrid.survey.toJSON();\n return pgJSON.pages.filter(p => p.name != propertyGrid.placeholderPageName).map(p => {\n return {\n category: p.name,\n title: p.title,\n iconName: p.iconName,\n properties: p.elements?.filter(e => e.name && e.name.indexOf(\"overridingProperty\") == -1).map(e => {\n const property: any = {\n name: e.name,\n title: e.title\n };\n\n if (e.description !== undefined) {\n property.description = e.description;\n }\n\n return property;\n })\n };\n });\n }\n public get propertyGridDefault(): PropertyGridModel { return this.propertyGridDefaultValue; }\n public getPropertyClassName(propName: string): string {\n return this.propertiesHash[propName];\n }\n public updateCurrentJson(val: Array<any>): void {\n this.updateCurrentJsonCore(this.currentJson.classes, val);\n }\n private updateCurrentJsonCore(curJsonClasses: ISurveyPropertiesDefinition, val: Array<any>): void {\n if (!Array.isArray(val)) val = [];\n const tabNames = [];\n this.classes.forEach(cl => {\n this.updateCurrentJsonClass(curJsonClasses, val, cl, tabNames);\n });\n }\n private updateCurrentJsonClass(curJsonClasses: ISurveyPropertiesDefinition, val: Array<any>, clName: string, tabNames: Array<string>): void {\n const properties = [];\n const tabs: any = [];\n const tabStep = 100;\n\n val.forEach(tab => {\n const clVal = tab.items;\n if (Array.isArray(clVal)) {\n const classesIndeces: any = [];\n this.classes.forEach(cl => classesIndeces.push(0));\n const propertiesIndeces = {};\n for (let i = 0; i < clVal.length; i++) {\n const clName = this.propertiesHash[clVal[i]];\n let clIndex = this.classes.indexOf(clName);\n if (clIndex < 0) continue;\n const nextStep = 10000 / Math.pow(10, clIndex);\n let max = 0;\n for (let j = 0; j <= clIndex; j++) {\n if (classesIndeces[j] > max) max = classesIndeces[j];\n }\n const visIndex = max + nextStep;\n propertiesIndeces[clVal[i]] = visIndex;\n classesIndeces[clIndex] = visIndex;\n }\n clVal.forEach(propName => {\n if (this.propertiesHash[propName] === clName) {\n const tabName = tab.name;\n if (!!tabName && tabNames.indexOf(tab.name) < 0) {\n tabNames.push(tab.name);\n tabs.push({ name: tab.name, index: tabNames.length * tabStep, iconName: tab.iconName });\n }\n const item: any = { name: propName, index: propertiesIndeces[propName] };\n if (!!tabName) {\n item.tab = tabName;\n }\n properties.push(item);\n }\n });\n }\n });\n curJsonClasses[clName] = { properties: properties, tabs: tabs };\n }\n private getPropClassName(prop: JsonObjectProperty): string {\n const clName = prop.classInfo.name;\n for (let i = 1; i < presetPropertiesBaseClasses.length; i++) {\n const cl = presetPropertiesBaseClasses[i];\n if (clName === cl || Serializer.isDescendantOf(clName, cl)) return this.getClassName(cl);\n }\n if (clName === this.className) return this.className;\n return this.getClassName(\"question\");\n }\n private getClassName(className: string): string {\n const ind = this.className.indexOf(\"@\");\n if (ind < 0) return className;\n const clName = this.className.substring(0, ind);\n if (clName === className || className === \"question\") {\n className = \"default\";\n }\n return clName + \"@\" + className;\n }\n}\n\nexport class CreatorPresetEditablePropertyGrid extends CreatorPresetEditableCaregorizedListConfigurator {\n private currentJson: ISurveyPropertyGridDefinition;\n private localeStrings: any;\n private currentProperties?: SurveyQuestionPresetPropertiesDetail;\n private currentClassName: string;\n // private propCreatorValue: SurveyCreatorModel;\n private isModified: boolean;\n // public get propCreator(): SurveyCreatorModel { return this.propCreatorValue; }\n // public disposeCore(): void {\n // if (this.propCreator) {\n // this.propCreator.dispose();\n // this.propCreatorValue = undefined;\n // }\n // }\n protected get nameInnerMatrix() { return \"properties\"; }\n protected createItemsMatrixJSON(props: any): any {\n const defaultJSON = {\n type: \"matrixdynamic\",\n allowRowReorder: true,\n cellType: \"text\",\n showHeader: false,\n rowCount: 0,\n allowAddRows: false,\n addRowButtonLocation: \"top\",\n addRowText: \"Add Custom Item\",\n \"noRowsText\": \"There are no items\",\n columns: [\n {\n \"name\": \"name\",\n visible: false\n },\n {\n \"name\": \"title\"\n }\n ],\n detailPanelMode: \"underRow\",\n detailElements: [\n { type: \"text\", name: \"name\", title: getLocString(\"presets.propertyGrid.name\"), isUnique: true, isRequired: true, visible: false },\n { type: \"text\", name: \"title\", title: getLocString(\"presets.propertyGrid.titleField\"), isUnique: true, isRequired: true, visible: false },\n { type: \"comment\", name: \"description\", title: getLocString(\"presets.propertyGrid.descriptionField\"), visible: false }\n ]\n };\n return { ...defaultJSON, ...props };\n }\n\n public createMainPageCore(): any {\n return {\n title: getLocString(\"presets.propertyGrid.title\"),\n navigationTitle: getLocString(\"presets.propertyGrid.navigationTitle\"),\n description: getLocString(\"presets.propertyGrid.description\"),\n elements: [\n {\n type: \"dropdown\",\n name: this.nameSelector,\n allowClear: false,\n clearIfInvisible: \"onHidden\",\n title: getLocString(\"presets.propertyGrid.selectElement\")\n },\n {\n type: \"panel\",\n name: this.mainPanelName,\n visibleIf: this.getNotEmptyVisibleIf(this.nameSelector),\n elements: [\n {\n type: \"matrixdynamic\",\n name: this.nameCategories,\n title: getLocString(\"presets.propertyGrid.propertyGrid\"),\n allowRowReorder: true,\n addRowButtonLocation: \"top\",\n rowCount: 0,\n allowAddRows: true,\n noRowsText: getLocString(\"presets.propertyGrid.noCategoriesText\"),\n addRowText: getLocString(\"presets.propertyGrid.addCustomCategory\"),\n showHeader: false,\n columns: [\n { cellType: \"text\", name: \"category\", isUnique: true, isRequired: true, visible: false },\n { type: \"boolean\", name: \"isDefault\", visible: false },\n { cellType: \"text\", name: \"title\" },\n ],\n detailPanelMode: \"underRow\",\n detailElements: [\n { type: \"text\", name: \"category\", title: getLocString(\"presets.propertyGrid.categoryName\"), isRequired: true, visible: false },\n { type: \"text\", name: \"title\", title: getLocString(\"presets.propertyGrid.categoryTitle\"), visible: false },\n { type: \"dropdown\", name: \"iconName\", title: getLocString(\"presets.propertyGrid.iconName\"), itemComponent: \"svc-presets-icon-item\", \"allowCustomChoices\": true, choices: this.iconList, visible: false },\n this.createItemsMatrixJSON({\n name: this.nameInnerMatrix,\n noRowsText: getLocString(\"presets.propertyGrid.noItemsText\"),\n titleLocation: \"hidden\",\n })\n ]\n },\n this.createItemsMatrixJSON({\n title: getLocString(\"presets.propertyGrid.hiddenItems\"),\n name: this.nameMatrix,\n noRowsText: getLocString(\"presets.propertyGrid.noHiddenItemsText\"),\n descriptionLocation: \"underInput\",\n startWithNewLine: false,\n })\n ]\n },\n {\n type: \"panel\",\n title: \" \",\n name: this.navigationPanelName,\n elements: [\n {\n type: \"html\",\n html: \"&nbsp\"\n }\n ]\n }\n ]\n\n };\n }\n private propertyGrid: PropertyGridModel;\n protected propertyGridSetObj(obj: any) {\n const pageName = this.propertyGrid.survey.currentPage?.name;\n this.propertyGrid[\"setObj\"](obj);\n this.propertyGrid.survey.currentPage = this.propertyGrid.survey.getPageByName(pageName);\n }\n protected hasIcon(name: string) { return name == this.nameCategories; }\n\n protected restoreValuesFromDefault(model: SurveyModel) {\n this.isModified = false;\n this.currentJson = this.copyJson(defaultPropertyGridDefinition);\n this.updateMatrices(model);\n }\n\n public getJsonValueCore(model: SurveyModel, creator: SurveyCreatorModel, defaultJson: any): any {\n if (!this.isModified) return undefined;\n return { definition: this.currentJson };\n }\n protected setupPageQuestions(model: SurveyModel, creator: SurveyCreatorModel): void {\n this.getSelector(model).choices = this.getSelectorChoices(creator);\n const oldSearchValue = settings.propertyGrid.enableSearch;\n settings.propertyGrid.enableSearch = false;\n // this.propCreatorValue = creatorSetup.createCreator(options);\n // this.setupPropertyCreator();\n // this.getPropertyCreatorQuestion(model).embeddedCreator = this.propCreator;\n settings.propertyGrid.enableSearch = oldSearchValue;\n }\n protected setupQuestionsCore(model: SurveyModel, creatorSetup: ICreatorPresetEditorSetup): void {\n this.propertyGrid = creatorSetup.creator[\"designerPropertyGrid\"];\n super.setupQuestionsCore(model, creatorSetup);\n this.setupPageQuestions(model, creatorSetup.creator);\n }\n private setJSONForTitlesAndDescriptions(locStrs: any, name: string): void {\n const strs = this.localeStrings[name];\n if (Object.keys(strs).length > 0) {\n locStrs[name] = strs;\n }\n }\n protected onLocaleChangedCore(model: SurveyModel, json: any, creator: SurveyCreatorModel): void {\n this.setupPageQuestions(model, creator);\n this.setupQuestionsValueCore(model, json, creator);\n }\n protected setJsonLocalizationStringsCore(model: SurveyModel, locStrs: any): void {\n this.setJSONForTitlesAndDescriptions(locStrs, \"pe\");\n this.setJSONForTitlesAndDescriptions(locStrs, \"pehelp\");\n }\n protected updateJsonLocalizationStringsCore(locStrs: any): void {\n this.localeStrings = { pe: locStrs.pe || {}, pehelp: locStrs.pehelp || {} };\n }\n protected setupOnCurrentPageCore(model: SurveyModel, creator: SurveyCreatorModel, active: boolean): void {\n creator.setSidebarEnabled(active);\n this.propertyGridSetObj(active ? this.currentProperties?.getObj() : null);\n }\n\n // private isPropCreatorChanged: boolean;\n private firstTimeLoading = false;\n protected updateOnValueChangedCore(model: SurveyModel, name: string): void {\n super.updateOnValueChangedCore(model, name);\n if (name == this.nameCategories) {\n if (!this.firstTimeLoading)this.isModified = true;\n const matrix = this.getQuestionCategories(model);\n if (matrix.isVisible) {\n matrix.value?.forEach(row => {\n const category = row.category;\n const title = row.title;\n if (row.title !== editorLocalization.getString(\"pe.tabs.\" + category)) {\n this.ensureLocalizationPath(\"pe.tabs\");\n this.localeStrings.pe.tabs[category] = title;\n }\n row.properties?.forEach(p => {\n if (p.title !== editorLocalization.getString(\"pe.\" + p.name)) {\n this.changePropTitleAndDescription(\"pe\", p.name, p.title);\n }\n if (p.description !== editorLocalization.getString(\"pehelp.\" + p.name)) {\n this.changePropTitleAndDescription(\"pehelp\", p.name, p.description);\n }\n });\n });\n }\n if (!this.firstTimeLoading)this.updateCurrentJson(model);\n }\n // if ((<any>options.target)?.isQuestion) {\n // if (options.name === \"title\") {\n // this.changePropTitleAndDescription(\"pe\", name, options.newValue);\n // }\n // if (options.name === \"description\") {\n // this.changePropTitleAndDescription(\"pehelp\", name, options.newValue);\n // }\n // }\n // if ((<any>options.target)?.isPage) {\n // if (options.name === \"title\") {\n // this.ensureLocalizationPath(\"pe.tabs\");\n // this.localeStrings.pe.tabs[name] = options.newValue;\n // }\n // }\n\n if (name !== this.nameSelector) return;\n this.firstTimeLoading = true;\n if (this.currentProperties) {\n this.currentProperties = undefined;\n }\n const selQuestion = this.getSelector(model);\n this.currentClassName = selQuestion.value;\n this.updateMatrices(model);\n this.firstTimeLoading = false;\n //this.propCreator.JSON = this.updateCreatorJSON(this.currentProperties.propertyGrid.survey.toJSON());\n //this.setupCreatorToolbox(this.propCreator);\n }\n\n private updateMatrices(model: SurveyModel) {\n if (this.currentClassName) {\n this.currentProperties = new SurveyQuestionPresetPropertiesDetail(this.currentClassName, this.currentJson);\n this.setupDefaults(model);\n const categories = this.currentProperties.getInitialJson(false);\n model.setValue(this.nameCategories, categories);\n const items = this.getCurrentlyHiddenItems(categories);\n model.setValue(this.nameMatrix, items);\n this.propertyGridSetObj(this.currentProperties.getObj());\n }\n }\n\n private getCurrentlyHiddenItems(categories: any) {\n const hiddenProperties = [\"progressBarInheritWidthFrom\"];\n const itemsMap: any = {};\n this.defaultItems.forEach((i: any) => itemsMap[i.name] = i);\n categories.filter((c: any) => c.properties).forEach((c: any) => c.properties.forEach((p: any) => delete itemsMap[p.name]));\n return Object.keys(itemsMap).map(key => itemsMap[key]).filter(i => hiddenProperties.indexOf(i.name) == -1);\n }\n\n private setupDefaults(model: SurveyModel): void {\n const categories = this.currentProperties?.getInitialJson(true) || [];\n this.defaultCategories = [...categories];\n this.defaultItems = [];\n categories.forEach(c => this.defaultItems.push(...c.properties));\n }\n\n protected setupQuestionsValueCore(model: SurveyModel, json: any, creator: SurveyCreatorModel): void {\n this.getSelector(model).value = \"survey\";\n const defaultJson = creator.getPropertyGridDefinition();\n this.isModified = !!json?.definition || (defaultJson && (JSON.stringify(defaultJson) !== JSON.stringify(defaultPropertyGridDefinition)));\n this.currentJson = json?.definition || this.copyJson(defaultJson || defaultPropertyGridDefinition);\n this.currentJson.autoGenerateProperties = false;\n this.updateOnValueChangedCore(model, this.nameSelector);\n }\n private getSelector(model: SurveyModel): QuestionDropdownModel { return <QuestionDropdownModel>model.getQuestionByName(this.nameSelector); }\n // private getPropertyCreatorQuestion(model: SurveyModel): QuestionEmbeddedCreatorModel { return <QuestionEmbeddedCreatorModel>model.getQuestionByName(this.namePropertyCreator); }\n private get nameSelector() { return this.fullPath + \"_selector\"; }\n // private get namePropertyCreator() { return this.fullPath + \"_propcreator\"; }\n private getSelectorChoices(creator: SurveyCreatorModel): Array<ItemValue> {\n const classes = [\"survey\", \"page\"];\n creator.toolbox.getDefaultItems([], false, true, true).forEach(item => {\n classes.push(item.id);\n });\n\n const res: any[] = [];\n classes.forEach(str => res.push(new ItemValue(str, this.getSelectorItemTitle(str))));\n const columnPrefix = \"matrixdropdowncolumn@\";\n res.push(new ItemValue(columnPrefix + \"default\", this.getColumnItemTitle(\"\")));\n for (let key in matrixDropdownColumnTypes) {\n res.push(new ItemValue(columnPrefix + key, this.getColumnItemTitle(key)));\n }\n return res;\n }\n private getSelectorItemTitle(name: string): string {\n if (name === \"survey\") return editorLocalization.getString(\"ed.surveyTypeName\");\n if (name === \"page\") return editorLocalization.getString(\"ed.pageTypeName\");\n return editorLocalization.getString(\"qt.\" + name);\n }\n private getColumnItemTitle(name: string): string {\n const columnTitle = editorLocalization.getString(\"ed.columnTypeName\");\n const postFix = !name ? \"default\" : this.getSelectorItemTitle(name);\n return columnTitle + \": \" + postFix;\n }\n private updateCurrentJson(model: SurveyModel): void {\n //if (!this.isPropCreatorChanged) return;\n //this.isPropCreatorChanged = false;\n if (this.currentProperties) {\n this.currentProperties.updateCurrentJson(this.getPropertiesArray(model));\n }\n }\n private getPropertiesArray(model: SurveyModel): Array<any> {\n const categories = this.getQuestionCategories(model).value;\n return categories?.map(c => ({ name: c.category, items: c.properties?.map(p => p.name), iconName: c.iconName }));\n }\n private changePropTitleAndDescription(path: string, propName: string, val: string): void {\n this.ensureLocalizationPath(path);\n const strs = this.localeStrings[path];\n const className = this.currentProperties.getPropertyClassName(propName);\n if (!!className) {\n if (!strs[className]) {\n strs[className] = {};\n }\n strs[className][propName] = val;\n }\n }\n private ensureLocalizationPath(path: string): void {\n if (!this.localeStrings) {\n this.localeStrings = {};\n }\n const names = path.split(\".\");\n let strs = this.localeStrings;\n for (let i = 0; i < names.length; i++) {\n const name = names[i];\n if (!strs[name]) strs[name] = {};\n strs = strs[name];\n }\n }\n // private setupPropertyCreator(): void {\n // const creator = this.propCreator;\n // creator.maxNestedPanels = 0;\n // creator.showSaveButton = false;\n // creator.onModified.add((sender, options) => {\n // this.isPropCreatorChanged = true;\n // this.isModified = true;\n // if (options.type === \"PROPERTY_CHANGED\") {\n // const name = (<any>options.target).name;\n // if ((<any>options.target)?.isQuestion) {\n // if (options.name === \"title\") {\n // this.changePropTitleAndDescription(\"pe\", name, options.newValue);\n // }\n // if (options.name === \"description\") {\n // this.changePropTitleAndDescription(\"pehelp\", name, options.newValue);\n // }\n // }\n // if ((<any>options.target)?.isPage) {\n // if (options.name === \"title\") {\n // this.ensureLocalizationPath(\"pe.tabs\");\n // this.localeStrings.pe.tabs[name] = options.newValue;\n // }\n // }\n // }\n // });\n // creator.autoSaveEnabled = false;\n // creator.showTabsDefault = false;\n // creator.showToolbarDefault = false;\n // creator.allowCollapseSidebar = false;\n // creator.toolbar.setItems([]);\n // creator.showAddQuestionButton = false;\n // creator.toolbox.forceCompact = false;\n // creator.showSidebar = false;\n // creator.onSurveyInstanceSetupHandlers.add((sender, options) => {\n // if (options.area === \"designer-tab\") {\n // const model = options.survey;\n // model.onPageAdded.add((sender, options) => {\n // this.addCategoryNamePropIntoPage(options.page, creator);\n // });\n // }\n // });\n // creator.onSurveyInstanceCreated.add((sender, options) => {\n // if (options.area === \"designer-tab\") {\n // const model = options.survey;\n // model.onElementWrapperComponentName.add((sender, options) => {\n // const el = options.element;\n // if (this.isCategoryElement(el)) {\n // options.componentName = el.getType();\n // } else {\n // const compName = options.componentName;\n // if (el.isQuestion && (compName === \"svc-dropdown-question\" || compName === \"svc-question\")) {\n // options.componentName = \"svc-preset-question\";\n // }\n // if (el.isPage) {\n // options.componentName = \"svc-preset-page\";\n // }\n // }\n // });\n // const prev_getRendererContextForString = model.getRendererContextForString;\n // const prev_getRendererForString = model.getRendererForString;\n // model.getRendererForString = (element: Base, name: string): string => {\n // if (this.isCategoryElement(element)) return undefined;\n // return prev_getRendererForString.call(model, element, name);\n // };\n // model.getRendererContextForString = (element: Base, locStr: LocalizableString): any => {\n // if (this.isCategoryElement(element)) return locStr;\n // return prev_getRendererContextForString.call(model, element, locStr);\n // };\n // }\n // });\n // creator.onElementAllowOperations.add((sender, options) => {\n // options.allowChangeInputType = false;\n // options.allowChangeRequired = false;\n // options.allowChangeType = false;\n // options.allowCopy = false;\n // options.allowShowSettings = false;\n // options.allowDelete = true;\n // options.allowEdit = true;\n // });\n // creator.onCollectionItemAllowOperations.add((sender, options) => {\n // options.allowEdit = false;\n // options.allowAdd = false;\n // options.allowDelete = false;\n // });\n // creator.onModified.add((sender, options) => {\n // if (options.type === \"OBJECT_DELETED\") {\n // this.setupCreatorToolbox(sender);\n // }\n // });\n // creator.getElementAddornerCssCallback = (obj: Base, className: string): string => { return className + \" preset_pg_question\"; };\n // creator.onPageAdded.add((sender, options) => {\n // const page = options.page;\n // page.name = SurveyHelper.getNewName(creator.survey.pages, \"category\");\n // if (!page.title) {\n // page.title = \"New Category\";\n // }\n // page.updateRows();\n // });\n // creator.onQuestionAdded.add((sender, options) => {\n // this.setupCreatorToolbox(sender);\n // });\n // creator.onDragDropAllow.add((sender, options) => {\n // options.allowDropNextToAnother = false;\n // });\n // creator.onCanShowProperty.add((sender, options) => {\n // if (options.obj.isPage && options.propertyName === \"description\") {\n // options.canShow = false;\n // }\n // });\n // }\n // private isCategoryElement(el: any): boolean {\n // return el.isCategoryElement === true;\n // }\n // private updateCreatorJSON(json: any): any {\n // if (!json || !json.pages) return;\n // json.widthMode = \"static\";\n // json.width = \"800px\";\n // json.pages.forEach((page: any) => {\n // this.updateCreatorJSONElements(page.elements);\n // });\n // return json;\n // }\n // private updateCreatorJSONElements(elements: Array<any>): void {\n // if (!Array.isArray(elements)) return;\n // for (let i = elements.length - 1; i >= 0; i--) {\n // const el = elements[i];\n // if (!!el.name && el.name.indexOf(\"overridingProperty\") > -1) {\n // elements.splice(i, 1);\n // } else {\n // this.updateJSONElement(el);\n // }\n // }\n // }\n // private updateJSONElement(el: any): void {\n // if (Array.isArray(el.elements)) {\n // this.updateCreatorJSONElements(el.elements);\n // }\n // if (el.titleLocation === \"hidden\") {\n // delete el.titleLocation;\n // }\n // if (el.descriptionLocation === \"hidden\") {\n // delete el.descriptionLocation;\n // }\n // if (!!el.state) {\n // delete el.state;\n // }\n // const type = el.type;\n // if (type === \"textwithreset\") {\n // el.type = \"text\";\n // }\n // if (type === \"commentwithreset\") {\n // el.type = \"comment\";\n // }\n // }\n // private setupCreatorToolbox(creator: SurveyCreatorModel): void {\n // const elements: IQuestionToolboxItem[] = [];\n // const hiddenProperties = [\"progressBarInheritWidthFrom\"]; //TODO\n // const propGrid = this.currentProperties.propertyGridDefault.survey;\n // const survey = this.propCreator.survey;\n // const allProps = this.currentProperties.getAllPropertiesNames();\n // allProps.forEach(propName => {\n // if (!survey.getQuestionByName(propName) && propGrid.getQuestionByName(propName)\n // && hiddenProperties.indexOf(propName) < 0) {\n // const q = propGrid.getQuestionByName(propName);\n // const json = q.toJSON();\n // this.updateJSONElement(json);\n // json.name = propName;\n // json.type = q.getType();\n // elements.push({\n // name: propName,\n // title: q.title,\n // className: q.getType(),\n // iconName: \"icon-text\", //TODO\n // json: json\n // });\n // }\n // });\n\n// creator.toolbox.addItems(elements, true);\n// }\n// private addCategoryNamePropIntoPage(page: PageModel, creator: SurveyCreatorModel): void {\n// page.showDescription = false;\n// (<any>page).isPropertyGridCategory = true;\n// const qCategoryName: Question = Serializer.createClass(\"text\");\n// qCategoryName.name = \"page_categoryName\";\n// qCategoryName.value = page.name;\n// qCategoryName.valueChangedCallback = () => {\n// page.name = qCategoryName.value;\n// };\n// qCategoryName.title = \"Category Name\"; //TODO\n// qCategoryName.titleLocation = \"left\";\n// qCategoryName.readOnly = this.isDefaultCategoryName(page.name);\n// const qCatetoryIcon = Serializer.createClass(\"text\");\n// qCategoryName.name = \"page_categoryIcon\";\n// qCatetoryIcon.title = \"Category Icon\"; //TODO\n// qCatetoryIcon.titleLocation = \"left\";\n// qCatetoryIcon.startWithNewLine = false;\n// [qCategoryName, qCatetoryIcon].forEach(el => {\n// el.getSurvey = () => { return page.survey; };\n// Object.defineProperty(el, \"isDesignMode\", { get() { return false; } });\n// el.isCategoryElement = true;\n// el.onFirstRendering();\n// });\n// (<any>page)[\"getElementsForRows\"] = () => {\n// const res = [].concat(page.elements);\n// res.unshift(qCatetoryIcon);\n// res.unshift(qCategoryName);\n// return res;\n// };\n// }\n// private isDefaultCategoryName(name: string): boolean {\n// if (!name) return true;\n// return !!this.currentProperties.propertyGridDefault.survey.getPageByName(name);\n// }\n}\n","import { Helpers, ItemValue, QuestionMatrixDynamicModel, SurveyModel } from \"survey-core\";\nimport { CreatorPresetEditableBase, ICreatorPresetEditorSetup } from \"./presets-editable-base\";\nimport { SurveyCreatorModel, editorLocalization, getLocString } from \"survey-creator-core\";\nimport { CreatorPresetEditableList } from \"./presets-editable-list\";\n\nexport class CreatorPresetEditableTabs extends CreatorPresetEditableList {\n private createItemsMatrixJSON(props: any): any {\n const defaultJSON = {\n type: \"matrixdynamic\",\n name: \"items\",\n allowRowReorder: true,\n cellType: \"text\",\n showHeader: false,\n rowCount: 0,\n allowAddRows: false,\n addRowButtonLocation: \"top\",\n addRowText: \"Add Custom Item\",\n \"noRowsText\": \"There are no items\",\n columns: [\n {\n \"name\": \"name\",\n visible: false\n },\n {\n \"name\": \"title\"\n }\n ],\n detailPanelMode: \"underRow\",\n detailElements: [\n { type: \"text\", name: \"name\", title: getLocString(\"presets.tabs.name\"), isUnique: true, isRequired: true, readOnly: true, visible: false },\n { type: \"text\", name: \"title\", title: getLocString(\"presets.tabs.titleField\"), visible: false },\n { type: \"dropdown\", name: \"iconName\", title: getLocString(\"presets.tabs.iconName\"), itemComponent: \"svc-presets-icon-item\", \"allowCustomChoices\": true, choices: this.iconList, visible: false }\n ]\n };\n return { ...defaultJSON, ...props };\n }\n public createMainPageCore(): any {\n return {\n title: getLocString(\"presets.tabs.title\"),\n description: getLocString(\"presets.tabs.description\"),\n navigationTitle: getLocString(\"presets.tabs.navigationTitle\"),\n elements: [\n {\n type: \"panel\",\n name: this.mainPanelName,\n elements: [\n this.createItemsMatrixJSON({\n title: getLocString(\"presets.tabs.items\"),\n noRowsText: getLocString(\"presets.tabs.noItemsText\"),\n name: this.nameItems\n }),\n this.createItemsMatrixJSON({\n startWithNewLine: false,\n title: getLocString(\"presets.tabs.hiddenItems\"),\n noRowsText: getLocString(\"presets.tabs.noHiddenItemsText\"),\n name: this.nameMatrix,\n descriptionLocation: \"underInput\",\n }),\n ]\n },\n {\n type: \"panel\",\n name: \"panel_tabs_controls\",\n elements: [\n {\n type: \"dropdown\",\n name: this.nameActiveTab,\n allowClear: false,\n title: getLocString(\"presets.tabs.defaultTab\")\n }\n ]\n },\n {\n type: \"panel\",\n title: \" \",\n name: this.navigationPanelName,\n elements: [\n {\n type: \"html\",\n html: \"&nbsp\"\n }\n ]\n }\n ]\n };\n }\n\n public get questionNames() {\n return [this.nameItems, this.nameActiveTab];\n }\n\n private filterTabs(tabs: any) {\n return tabs.filter(t => t.name != \"presets\");\n }\n protected hasIcon(name: string) { return true; }\n protected getJsonValueCore(model: SurveyModel, creator: SurveyCreatorModel, defaultJson: any): any {\n let items = model.getQuestionByName(this.nameItems).value;\n if (!Array.isArray(items)) return undefined;\n const creatorDefaultTabs = this.filterTabs(defaultJson?.items || creator.getTabs());\n const creatorAvailableTabs = this.filterTabs(creator.getAvailableTabs());\n let activeTabChoices = items.map(i => ({ name: i.name, iconName: i.iconName }));\n activeTabChoices.forEach(i => {\n if (!i.iconName || i.iconName == creatorAvailableTabs.filter(t => t.name == i.name)[0]?.iconName) {\n delete i.iconName;\n }\n });\n if (Helpers.isArraysEqual(activeTabChoices, creatorDefaultTabs, false)) {\n activeTabChoices = undefined;\n }\n let activeTab = model.getValue(this.nameActiveTab);\n if (!activeTabChoices && activeTab === (defaultJson?.activeTab || creator.activeTab)) {\n activeTab = undefined;\n }\n if (!activeTabChoices && !activeTab) return undefined;\n const val: any = { };\n if (!!activeTabChoices) {\n val.items = activeTabChoices;\n }\n if (!!activeTab) {\n val.activeTab = activeTab;\n }\n return val;\n }\n\n protected getDefaultJsonValueCore(creator: SurveyCreatorModel): any {\n return {\n activeTab: creator.activeTab,\n items: this.filterTabs(creator.getTabs()).map(i => ({ name: i.name })),\n };\n }\n\n private getQuestionItems(model: SurveyModel): QuestionMatrixDynamicModel {\n return <QuestionMatrixDynamicModel>model.getQuestionByName(this.nameItems);\n }\n\n public onMatrixRowRemoving(model: SurveyModel, creator: SurveyCreatorModel, options: any) {\n if (options.question.name === this.nameMatrix) {\n this.restoreItems(this.getQuestionItems(model), options.question, options.rowIndex);\n }\n super.onMatrixRowRemoving(model, creator, options);\n }\n\n protected isItemsMatrix(name: string): boolean {\n return name === this.nameItems || super.isItemsMatrix(name);\n }\n protected setJsonLocalizationStringsCore(model: SurveyModel, locStrs: any): void {\n const rows = this.getQuestionItems(model).visibleRows;\n rows.forEach(r => {\n CreatorPresetEditableBase.updateModifiedText(locStrs, r.getValue(\"title\"), \"tabs.\" + r.getValue(\"name\"));\n });\n }\n protected setupQuestionsCore(model: SurveyModel, creatorSetup: ICreatorPresetEditorSetup): void {\n this.setupPageQuestions(model, creatorSetup.creator);\n }\n\n private getAllTabs(creator: SurveyCreatorModel) {\n return this.filterTabs(creator.getAvailableTabs().map(t => ({ name: t.name, title: editorLocalization.getString(\"tabs.\" + t.name), iconName: t.iconName })));\n }\n\n protected setupOnCurrentPageCore(model: SurveyModel, creator: SurveyCreatorModel, active: boolean): void {\n creator.tabs.forEach(i => i.enabled = active);\n }\n\n protected setupQuestionsValueCore(model: SurveyModel, json: any, creator: SurveyCreatorModel): void {\n json = json || {};\n let items = (json[\"items\"] || []).map(i => typeof i === \"string\" ? { name: i } : i);\n const tabNames = creator.initialTabs();\n const allTabs = this.getAllTabs(creator);\n const defaultItems = allTabs.filter(t => tabNames.indexOf(t.name) >= 0);\n if (items.length === 0) {\n items = defaultItems;\n } else {\n for (let i = 0; i < items.length; i++) {\n const defaultItem = defaultItems.filter(di => di.name == items[i].name)[0];\n if (defaultItem) {\n items[i] = { ...defaultItem, ...items[i] };\n }\n }\n }\n const itemNames = items.map(i => i.name);\n const hiddenItems = allTabs.filter(t => itemNames.indexOf(t.name) < 0);\n model.setValue(this.nameItems, items);\n model.setValue(this.nameMatrix, hiddenItems);\n model.setValue(this.nameActiveTab, json[\"activeTab\"] || creator.activeTab);\n model.getQuestionByName(this.nameActiveTab).choices = items.map(v => new ItemValue(v.name, v.title));\n }\n protected onLocaleChangedCore(model: SurveyModel, json: any, creator: SurveyCreatorModel): void {\n this.setupPageQuestions(model, creator);\n this.setupQuestionsValueCore(model, json, creator);\n }\n protected setupPageQuestions(model: SurveyModel, creator: SurveyCreatorModel): void {\n this.defaultItems = this.getAllTabs(creator);\n const activeQ = model.getQuestionByName(this.nameActiveTab);\n activeQ.choices = this.defaultItems.map(t => new ItemValue(t.name, t.title));\n }\n protected updateOnValueChangedCore(model: SurveyModel, name: string): void {\n super.updateOnValueChangedCore(model, name);\n if (name === this.nameItems) {\n const val = model.getValue(name) || [];\n const activeTabQuestion = model.getQuestionByName(this.nameActiveTab);\n activeTabQuestion.choices = val.map(v => new ItemValue(v.name, v.title));\n if (!activeTabQuestion.selectedItem) {\n activeTabQuestion.selectItem(activeTabQuestion.choices[0]);\n }\n }\n }\n private get nameActiveTab() { return this.path + \"_activeTab\"; }\n}","import { Serializer, ItemValue, QuestionCheckboxModel, surveyLocalization, SurveyModel, Question } from \"survey-core\";\nimport { CreatorPresetEditableBase } from \"./presets-editable-base\";\nimport { getLocString, editorLocalization, SurveyCreatorModel } from \"survey-creator-core\";\nfunction searchItem(params) {\n const questionInstance = this.survey.getQuestionByName(params[0]);\n let itemvalue = params[1];\n let text = params[2];\n if (!text) return true;\n const item = questionInstance.choices.filter(c => c.value == itemvalue)[0];\n if (!item) return true;\n return item.text.toUpperCase().indexOf(text.toUpperCase()) != -1;\n}\nimport { FunctionFactory } from \"survey-core\";\nFunctionFactory.Instance.register(\"searchItem\", searchItem);\nexport class CreatorPresetEditableLanguages extends CreatorPresetEditableBase {\n public createMainPageCore(): any {\n return {\n title: getLocString(\"presets.languages.title\"),\n description: getLocString(\"presets.languages.description\"),\n navigationTitle: getLocString(\"presets.languages.navigationTitle\"),\n elements: [\n {\n type: \"dropdown\",\n title: getLocString(\"presets.languages.creatorUI\"),\n placeholder: editorLocalization.getLocaleName(\"\"),\n name: this.creatorLocaleName,\n searchEnabled: true,\n choices: this.getCreatorLocales()\n },\n {\n type: \"panel\",\n title: getLocString(\"presets.languages.surveyLanguages\"),\n elements: [\n {\n type: \"text\",\n name: this.searchLocalesName,\n placeholder: getLocString(\"presets.languages.searchPlaceholder\"),\n titleLocation: \"hidden\",\n textUpdateMode: \"onTyping\"\n }, {\n type: \"checkbox\",\n name: this.surveyLocalesName,\n titleLocation: \"hidden\",\n minSelectedChoices: 1,\n colCount: 3,\n showSelectAllItem: true,\n choices: this.getSurveyLocales(),\n choicesVisibleIf: \"searchItem('\" + this.surveyLocalesName + \"', {item}, {\" + this.searchLocalesName + \"}\"\n }]\n },\n {\n type: \"panel\",\n title: \" \",\n name: this.navigationPanelName,\n elements: [\n {\n type: \"boolean\",\n name: this.surveyUseEnglishNames,\n title: getLocString(\"presets.languages.translateToEnglish\"),\n titleLocation: \"hidden\",\n renderAs: \"switch\"\n }] }\n ] };\n }\n public getMainElementNames() : any { return [this.surveyLocalesName]; }\n public getCustomQuestionCssSuffix(question: Question) {\n return question.name === this.searchLocalesName ? \"search\" : \"\";\n }\n protected getJsonValueCore(model: SurveyModel, creator: SurveyCreatorModel, defaultJson: any): any {\n const creatorLocale = model.getValue(this.creatorLocaleName);\n const useEnglishNames = model.getValue(this.surveyUseEnglishNames) === true;\n const question = <QuestionCheckboxModel>model.getQuestionByName(this.surveyLocalesName);\n if (!creatorLocale && question.isAllSelected && !useEnglishNames) return undefined;\n const res: any = {};\n if (creatorLocale) {\n res.creator = creatorLocale;\n }\n if (useEnglishNames) {\n res.useEnglishNames = true;\n }\n if (!question.isAllSelected && Array.isArray(question.value)) {\n res.surveyLocales = [];\n question.value.forEach(val => res.surveyLocales.push(val));\n }\n return res;\n }\n protected setupQuestionsValueCore(model: SurveyModel, json: any, creator: SurveyCreatorModel): void {\n json = json || {};\n model.setValue(this.creatorLocaleName, json.creator);\n model.setValue(this.surveyUseEnglishNames, json.showInEnglish === true);\n this.updateLocaleNames(model);\n const question = <QuestionCheckboxModel>model.getQuestionByName(this.surveyLocalesName);\n const locales = json.surveyLocales;\n if (Array.isArray(locales) && locales.length > 0) {\n question.valule = locales; // TODO: sheck spell\n } else {\n question.selectAll();\n }\n }\n protected updateOnValueChangedCore(model: SurveyModel, name: string): void {\n if (name === this.surveyUseEnglishNames) {\n this.updateLocaleNames(model);\n }\n }\n private get creatorLocaleName() : string { return this.path + \"_creator\"; }\n private get surveyLocalesName(): string { return this.path + \"_surveyLocales\"; }\n private get searchLocalesName(): string { return this.path + \"_searchLocales\"; }\n private get surveyUseEnglishNames(): string { return this.path + \"_surveyUseEnglishNames\"; }\n\n public get questionNames() {\n return [this.creatorLocaleName, this.surveyLocalesName, this.surveyUseEnglishNames];\n }\n private getIsShowInEnglishSelected(model: SurveyModel): boolean { return model.getValue(this.surveyUseEnglishNames) === true; }\n private getCreatorLocales(): Array<ItemValue> {\n return this.getLocaleItemValues(editorLocalization.getLocales(), false);\n }\n private getSurveyLocales(): Array<ItemValue> {\n return this.getLocaleItemValues(surveyLocalization.getLocales(true), true);\n }\n private getLocaleItemValues(locales: Array<string>, addEnLocale: boolean): Array<ItemValue> {\n const res = [];\n locales.forEach(locale => {\n if (!locale || locale === \"en\") return;\n const name = editorLocalization.getLocaleName(locale);\n if (!!name && name !== locale) {\n res.push(new ItemValue(locale, name));\n }\n });\n if (addEnLocale) {\n res.unshift(new ItemValue(\"en\", editorLocalization.getLocaleName(\"en\")));\n }\n return res;\n }\n private updateLocaleNames(model: SurveyModel): void {\n const isShowInEnglish = this.getIsShowInEnglishSelected(model);\n const question = <QuestionCheckboxModel>model.getQuestionByName(this.surveyLocalesName);\n question.choices.forEach(item => {\n item.text = editorLocalization.getLocaleName(item.value, null, isShowInEnglish);\n });\n question.choicesOrder = \"none\";\n question.choicesOrder = \"asc\";\n }\n}","import { Serializer, ItemValue, QuestionCheckboxModel, surveyLocalization, SurveyModel, ComputedUpdater, Helpers } from \"survey-core\";\nimport { CreatorPresetEditableBase } from \"./presets-editable-base\";\nimport { getLocString, editorLocalization, SurveyCreatorModel } from \"survey-creator-core\";\n\nexport class CreatorPresetEditableOptions extends CreatorPresetEditableBase {\n private createElements() {\n return [\n { type: \"panel\", name: \"designer\", state: \"expanded\", elements: [\n { name: \"pageEditMode\", type: \"dropdown\", choices: [\n { value: \"standard\", text: \"Standard\" },\n { value: \"single\", text: \"Single\" },\n { value: \"bypage\", text: \"By Page\" }\n ] },\n { type: \"panel\", name: \"designerHeader\", elements: [\n { name: \"showSurveyHeader\", type: \"boolean\" },\n { name: \"showHeaderInEmptySurvey\", type: \"boolean\" },\n ] },\n { type: \"panel\", name: \"designerTitles\", elements: [\n { name: \"useElementTitles\", type: \"boolean\" },\n ] },\n { type: \"panel\", name: \"designerZoomDrag\", elements: [\n { name: \"allowDragPages\", type: \"boolean\" },\n { name: \"collapseOnDrag\", type: \"boolean\" },\n { name: \"allowZoom\", type: \"boolean\" },\n ] },\n { name: \"expandCollapseButtonVisibility\", type: \"dropdown\", choices: [\n { value: \"never\", text: \"Never\" },\n { value: \"onhover\", text: \"On Hover\" },\n { value: \"always\", text: \"Always\" }\n ] },\n { type: \"panel\", name: \"designerExpandCollapse\", elements: [\n { name: \"collapseQuestions\", type: \"boolean\" },\n { name: \"collapsePanels\", type: \"boolean\" },\n { name: \"collapsePages\", type: \"boolean\" },\n ] },\n { name: \"maxRows\", type: \"text\", inputType: \"number\" },\n { name: \"maxColumns\", type: \"text\", inputType: \"number\" },\n { type: \"panel\", name: \"designerChoices\", elements: [\n { name: \"inplaceEditChoiceValues\", type: \"boolean\" },\n ] },\n { name: \"minChoices\", type: \"text\", inputType: \"number\" },\n { name: \"maxChoices\", type: \"text\", inputType: \"number\" },\n { name: \"maxVisibleChoices\", type: \"text\", inputType: \"number\" },\n { name: \"maxRateValues\", type: \"text\", inputType: \"number\" },\n { name: \"forbiddenNestedElements\", type: \"text\" },\n { name: \"maxPanelNestingLevel\", type: \"text\", inputType: \"number\" }\n ] },\n { type: \"panel\", name: \"preview\", state: \"expanded\", elements: [\n { type: \"panel\", name: \"previewSimulateDevice\", elements: [\n { name: \"previewAllowSimulateDevice\", type: \"boolean\" },\n ] },\n\n { name: \"previewDevice\", type: \"dropdown\", choices: [\n { value: \"desktop\", text: \"Desktop\" },\n { value: \"iPhoneSE\", text: \"iPhone SE\" },\n { value: \"iPhone15\", text: \"iPhone 15\" },\n { value: \"iPhone15Plus\", text: \"iPhone 15 Plus\" },\n { value: \"iPad\", text: \"iPad\" },\n { value: \"iPadMini\", text: \"iPad Mini\" },\n { value: \"androidPhone\", text: \"Android Phone\" },\n { value: \"androidTablet\", text: \"Android Tablet\" },\n { value: \"microsoftSurface\", text: \"Microsoft Surface\" }\n ] },\n { name: \"previewOrientation\", type: \"dropdown\", choices: [\n { value: \"landscape\", text: \"Landscape\" },\n { value: \"portrait\", text: \"Portrait\" }\n ] },\n { type: \"panel\", name: \"previewAllowSelect\", elements: [\n { name: \"previewAllowSelectLanguage\", type: \"boolean\" },\n { name: \"previewAllowSelectPage\", type: \"boolean\" },\n ] },\n { name: \"previewAllowHiddenElements\", type: \"boolean\" },\n ] },\n { type: \"panel\", name: \"logic\", state: \"expanded\", elements: [\n { name: \"logicAllowTextEditExpressions\", type: \"boolean\" },\n { name: \"logicMaxItemsInCondition\", type: \"text\", inputType: \"number\" }\n ]\n },\n { type: \"panel\", name: \"translation\", state: \"expanded\", elements: [\n { name: \"clearTranslationsOnSourceTextChange\", type: \"boolean\" },\n ]\n }\n\n ];\n }\n\n private optionsList: string[] = [];\n private addPathToName(optionName: string): string {\n return this.fullPath + \"_\" + optionName;\n }\n private patchElements(elements: any[]): any[] {\n return elements.map(element => {\n if (element.type === \"panel\") {\n if (element.state == \"expanded\") {\n element.title = editorLocalization.getString(\"tabs.\" + element.name);\n }\n this.patchElements(element.elements);\n } else {\n this.optionsList.push(element.name);\n element.title = element.name;\n }\n if (element.type === \"boolean\") {\n element.renderAs = \"checkbox\";\n element.useTitleAsLabel = true;\n }\n if (element.type === \"dropdown\") {\n element.searchEnabled = false;\n }\n element.name = this.addPathToName(element.name);\n return element;\n });\n }\n public createMainPageCore(): any {\n this.optionsList = [];\n return {\n title: getLocString(\"presets.options.title\"),\n description: getLocString(\"presets.options.description\"),\n navigationTitle: getLocString(\"presets.options.navigationTitle\"),\n elements: this.patchElements(this.createElements())\n };\n }\n protected getDefaultJsonValueCore(creator: SurveyCreatorModel): any {\n return this.optionsList.reduce((acc: any, option) => { acc[option] = creator[option]; return acc; }, {});\n }\n protected getJsonValueCore(model: SurveyModel, creator: SurveyCreatorModel, defaultJson: any): any {\n const json: any = {};\n this.optionsList.forEach(option => {\n const question = model.getQuestionByName(this.addPathToName(option));\n if (!!question) {\n json[option] = question.value;\n }\n });\n if (Helpers.isTwoValueEquals(json, defaultJson)) return undefined;\n\n return json;\n }\n\n protected setupQuestionsValueCore(model: SurveyModel, json: any, creator: SurveyCreatorModel): void {\n this.optionsList.forEach(option => model.getQuestionByName(this.addPathToName(option)).value =\n (json ? json[option] : creator[option]));\n }\n\n public get questionNames() {\n return this.optionsList.map(option => this.addPathToName(option));\n }\n\n public onGetPanelTitleActions(model: SurveyModel, creator: SurveyCreatorModel, options: any): void {\n const prefix = this.fullPath + \"_\";\n if (options.panel.name.substring(0, prefix.length) !== prefix) return;\n const collapseIcon = \"icon-collapsepanel-16x16\";\n const expandIcon = \"icon-expandpanel-16x16\";\n options.actions = [{\n id: \"collapse\",\n css: \"sv-action-bar-item--collapse\",\n locTooltipName: new ComputedUpdater<string>(() => options.panel.isCollapsed ? \"ed.expandTooltip\" : \"ed.collapseTooltip\") as any,\n iconName: new ComputedUpdater<string>(() => options.panel.isCollapsed ? expandIcon : collapseIcon) as any,\n iconSize: \"auto\",\n action: () => {\n if (options.panel.isCollapsed) {\n options.panel.expand();\n } else {\n options.panel.collapse();\n }\n }\n }];\n }\n}","import { getLocaleStrings } from \"survey-creator-core\";\nexport const enStrings = {\n languages: {\n title: \"Languages\",\n navigationTitle: \"Languages\",\n description: \"Select the language of the Survey Creator UI and target\\nlanguages for the survey being configured.\",\n creatorUI: \"Survey Creator UI language\",\n surveyLanguages: \"Survey languages\",\n searchPlaceholder: \"Type to search...\",\n translateToEnglish: \"Translate language names to English\"\n },\n tabs: {\n title: \"Configure tabs\",\n navigationTitle: \"Tabs\",\n description: \"Select the tabs you want to show, reorder them, change their titles,\\nand choose the tab that will be active by default.\",\n items: \"Visible tabs\",\n hiddenItems: \"Hidden tabs\",\n defaultTab: \"Default tab\",\n noItemsText: \"Drag tabs here to show them\",\n noHiddenItemsText: \"Drag tabs here to hide them\",\n name: \"Name\",\n titleField: \"Title\",\n iconName: \"Icon name\"\n },\n toolbox: {\n title: \"Set up the Toolbox\",\n navigationTitle: \"Toolbox\",\n description: \"Select the toolbox items you want to show, group them into categories, \\nrename them, and change their order if required.\",\n toolbox: \"Toolbox\",\n categories: \"Categories\",\n noCategoriesText: \"No categories\",\n noItemsText: \"Drag items here to show them\",\n noHiddenItemsText: \"Drag items here to hide them\",\n hiddenItems: \"Hidden toolbox items\",\n enableGrouping: \"Enable grouping\",\n showCategoryTitles: \"Show category titles\",\n categoryName: \"Name\",\n categoryTitle: \"Title\",\n tooltip: \"Tooltip\",\n iconName: \"Icon name\",\n jsonObject: \"JSON object to apply when users select this toolbox item\",\n subitems: \"Subitems\",\n enableSubitems: \"Enable subitems for this question\",\n moveAsSubitem: \"Move as a subitem to...\",\n addToToolbox: \"Add to Toolbox\",\n deleteCustomItem: \"Delete Custom Item\",\n addCustomCategory: \"New Category\",\n addCustomItem: \"New Item\",\n addNewItem: \"Add a new item\",\n addNewSubitem: \"Add a new subitem\",\n noRowsText: \"There are no items\",\n newItem: \"New item in\",\n },\n propertyGrid: {\n title: \"Customize the Property Grid\",\n navigationTitle: \"Property Grid\",\n description: \"Hide, rename, reorder, or change property grouping in the Property Grid.\",\n selectElement: \"Select a survey element to customize\",\n propertyGrid: \"Property Grid\",\n noCategoriesText: \"No categories\",\n noItemsText: \"Drag properties here to show them\",\n noHiddenItemsText: \"Drag properties here to hide them\",\n hiddenItems: \"Hidden properties\",\n categoryName: \"Name\",\n categoryTitle: \"Title\",\n iconName: \"Icon name\",\n name: \"Name\",\n titleField: \"Title\",\n descriptionField: \"Helper text\",\n addCustomCategory: \"New Category\"\n },\n options: {\n title: \"Options\",\n navigationTitle: \"Options\",\n description: \"Detailed configuration settings for Survey Creator.\",\n },\n items: {\n addNewItem: \"Add a new item\",\n addNewSubitem: \"Add a new subitem\",\n newItem: \"New item in\",\n addCustomCategory: \"New Category\",\n newCategory: \"New category in\",\n moveToCategory: \"Move to category...\",\n moveToNewCategory: \"Move to new category\",\n categoriesLabel: \"Categories\",\n moveTo: \"Move To...\",\n removeFrom: \"Remove from {0}\",\n more: \"More\",\n restoreToDefault: \"Restore\",\n edit: \"Edit\",\n expand: \"Expand\",\n collapse: \"Collapse\",\n remove: \"Remove\",\n add: \"Add\",\n delete: \"Delete\"\n },\n editor: {\n title: \"Creator Presets\",\n presetJson: \"Preset JSON:\",\n copy: \"Copy\",\n download: \"Download\",\n load: \"Load\",\n saveExit: \"Save & Exit\",\n back: \"Back\",\n resetToDefault: \"Reset\",\n resetToDefaults: \"All settings restored to default\",\n resoredToDefault: \"resored to default\",\n itemRestoredToDefault: \"Item restored to default\",\n categoryRestoredToDefault: \"Category restored to default\",\n edit: \"Edit\",\n completeText: \"Save & Exit\",\n pagePrevText: \"Back\",\n required: \"Please enter a value.\",\n },\n plugin: {\n buttonTitle: \"UI Configuration Manager\",\n buttonDescription: \"Configure the Toolbox, Tabs, Property Grid, and other UI elements, and save the setup as a reusable preset.\",\n presetsTab: \"Presets\",\n creatorPresets: \"Creator Presets\",\n save: \"Save & Exit\",\n file: \"File\",\n import: \"Import\",\n export: \"Export\",\n edit: \"Edit\",\n resetLanguages: \"Reset Languages\",\n resetAll: \"Reset all changes\",\n resetConfirmation: \"Do you really want to reset the settings?\",\n resetConfirmationOk: \"Yes, reset the settings\",\n\n resetToDefaults: \"Reset {0}\",\n defaultSettings: \"Default Settings\",\n basic: \"Basic\",\n advanced: \"Advanced\",\n expert: \"Expert\"\n }\n};\nconst locale = getLocaleStrings(\"en\");\nlocale.presets = enStrings;","import { SurveyCreatorModel, editorLocalization, ICreatorOptions, getLocString } from \"survey-creator-core\";\nimport { CreatorPreset, ICreatorPresetData } from \"survey-creator-core\";\nimport { Action, ActionContainer, Base, LocalizableString, Question, QuestionMatrixDropdownRenderedRow, QuestionMatrixDynamicModel, SurveyModel } from \"survey-core\";\nimport { CreatorPresetEditableBase, ICreatorPresetEditorSetup } from \"./presets-editable-base\";\nimport { CreatorPresetEditableToolboxConfigurator } from \"./presets-editable-toolbox\";\nimport { CreatorPresetEditablePropertyGrid } from \"./presets-editable-properties\";\nimport { CreatorPresetEditableTabs } from \"./presets-editable-tabs\";\nimport { CreatorPresetEditableLanguages } from \"./presets-editable-languages\";\nimport { CreatorPresetEditableOptions } from \"./presets-editable-options\";\nimport { presetsCss } from \"./presets-theme/presets\";\nexport { enStrings } from \"./localization/english\";\n\nexport class NavigationBar extends ActionContainer {\n constructor() {\n super();\n this.cssClasses = {\n root: \"presets-navigation-bar\",\n defaultSizeMode: \"\",\n smallSizeMode: \"\",\n item: \"presets-navigation-bar__item presets-navigation-bar-item\",\n itemWithTitle: \"\",\n itemAsIcon: \"\",\n itemActive: \"presets-navigation-bar-item--active\",\n itemPressed: \"presets-navigation-bar-item--pressed\",\n itemIcon: \"\",\n itemTitle: \"\",\n itemTitleWithIcon: \"\",\n };\n }\n}\n\nexport class CreatorPresetEditorModel extends Base implements ICreatorPresetEditorSetup {\n private presetValue: CreatorPreset;\n private modelValue: SurveyModel;\n private resultModelValue: SurveyModel;\n private navigationBarValue: NavigationBar;\n public locTitle: LocalizableString;\n private applying = false;\n constructor(json?: ICreatorPresetData, private creatorValue?: SurveyCreatorModel, private defaultJsonValue?: ICreatorPresetData) {\n super();\n editorLocalization.presetStrings = undefined;\n this.presetValue = new CreatorPreset(json);\n if (!this.creatorValue)this.creatorValue = this.createCreator({});\n this.modelValue = this.createModel();\n this.resultModelValue = this.createResultModel();\n this.locTitle = new LocalizableString(undefined, false);\n this.locTitle.text = getLocString(\"presets.editor.title\");\n this.navigationBarValue = new NavigationBar();\n const firstTabName = \"preset\";\n this.preset.setJson(this.getJsonFromSurveyModel());\n }\n public dispose(): void {\n super.dispose();\n //this.creator.dispose();\n this.disposeModel();\n }\n private disposeModel(): void {\n this.resetAllPages();\n this.model.editablePresets.forEach(preset => preset.dispose());\n this.model.dispose();\n }\n public get preset(): CreatorPreset { return this.presetValue; }\n public get creator(): SurveyCreatorModel { return this.creatorValue; }\n public get model(): SurveyModel { return this.modelValue; }\n public get resultModel(): SurveyModel {\n this.upldateResultJson();\n return this.resultModelValue;\n }\n public getLocale(): string { return editorLocalization.currentLocale || \"en\"; }\n public get json(): ICreatorPresetData {\n return this.preset.getJson();\n }\n public set json(val: ICreatorPresetData) {\n this.preset.setJson(val);\n this.updateDataFromJson(this.modelValue);\n this.upldateResultJson();\n }\n public get jsonText(): string {\n return JSON.stringify(this.json, null, 2);\n }\n public get defaultJson(): ICreatorPresetData {\n return this.defaultJsonValue;\n }\n public createCreator(options: ICreatorOptions): SurveyCreatorModel {\n return new SurveyCreatorModel(options);\n }\n\n private resetAllPages() {\n this.model.editablePresets.forEach(item => item.setupOnCurrentPage(this.model, this.creator, true));\n this.creator.readOnly = false;\n }\n\n public resetToDefaults(page?: string) {\n if (!page) {\n this.notify(getLocString(\"presets.editor.resetToDefaults\"));\n }\n this.model.editablePresets.forEach(item => {\n if (!page || item.pageName == page) item.resetToDefaults(this.model, !!page);\n });\n }\n\n private activatePage (model: SurveyModel, creator: SurveyCreatorModel, editablePresets: CreatorPresetEditableBase[]) {\n const inactivePresets = editablePresets.filter(item => model.currentPage.name !== item.pageName);\n const activePreset = editablePresets.filter(item => model.currentPage.name === item.pageName)[0];\n inactivePresets.forEach(item => item.setupOnCurrentPage(model, this.creator, false));\n activePreset.setupOnCurrentPage(model, this.creator, true);\n }\n\n private notify(message: string) {\n this.creator.notify(message);\n }\n\n protected updateDataFromJson(model: SurveyModel) {\n const json = this.preset.getJson() || {};\n editorLocalization.presetStrings = json.localization;\n model.editablePresets.forEach(item => item.setupQuestions(model, this));\n model.editablePresets.forEach(item => item.setupQuestionsValue(model, json[item.path], this.creator));\n this.updateJsonLocalizationStrings(model.editablePresets);\n return json;\n }\n\n public onLocaleChanged() {\n const json = this.preset.getJson();\n this.model.editablePresets.forEach(item => item.onLocaleChanged(this.model, json[item.path], this.creator));\n }\n\n protected createModel(): SurveyModel {\n const editablePresets = this.createEditablePresets();\n const model = new SurveyModel(this.getEditModelJson(editablePresets));\n model.css = presetsCss;\n model.editablePresets = editablePresets;\n model.keepIncorrectValues = true;\n model.showNavigationButtons = false;\n model.completeText = getLocString(\"presets.editor.completeText\");\n model.pagePrevText = getLocString(\"presets.editor.pagePrevText\");\n model.enterKeyAction = \"loseFocus\";\n\n editablePresets.forEach(item => item.notifyCallback = (message: string) => this.notify(message));\n if (!this.defaultJsonValue) {\n this.defaultJsonValue = {};\n editablePresets.forEach(item => this.defaultJsonValue[item.path] = item.getDefaultJsonValue(this.creator));\n }\n const json = this.updateDataFromJson(model);\n\n this.activatePage(model, this.creator, editablePresets);\n model.onCurrentPageChanged.add((sender, options) => {\n this.activatePage(model, this.creator, editablePresets);\n });\n const questionNames = editablePresets.map(preset => preset.questionNames).reduce((acc, current) => acc.concat(current), []);\n model.onValueChanged.add((sender, options) => {\n editablePresets.forEach(item => item.updateOnValueChanged(model, options.name));\n if (questionNames.indexOf(options.name) != -1 && !this.applying) {\n this.applyFromSurveyModel(false);\n this.activatePage(model, this.creator, editablePresets);\n }\n });\n model.onGetQuestionTitleActions.add((_, options) => {\n editablePresets.forEach(item => {\n if (options.question.name == item.getNavigationElementName()) {\n options.question.getTitleToolbar().isResponsivenessDisabled = true;\n options.actions = model.navigationBar.actions;\n }\n });\n });\n model.onGetPanelTitleActions.add((_, options) => {\n editablePresets.forEach(item => {\n if (options.panel.name == item.getNavigationElementName()) {\n options.panel.getTitleToolbar().isResponsivenessDisabled = true;\n options.actions = model.navigationBar.actions;\n }\n item.onGetPanelTitleActions(model, this.creator, options);\n });\n });\n function adjustMatrixAlignment(question: Question) {\n if (question.isDescendantOf(\"matrixdynamic\")) {\n question.onCreateDetailPanelRenderedRowCallback = (\n renderedRow: QuestionMatrixDropdownRenderedRow\n ) => {\n renderedRow.cells = [renderedRow.cells[1]];\n renderedRow.cells[0].colSpans += 2;\n };\n }\n }\n model.getAllQuestions().forEach(question => adjustMatrixAlignment(question));\n model.onQuestionCreated.add((_, options) => { adjustMatrixAlignment(options.question); });\n\n model.onMatrixDetailPanelVisibleChanged.add((sender, options) => {\n editablePresets.forEach(item => item.updateOnMatrixDetailPanelVisibleChanged(model, this.creator, options));\n });\n model.onGetMatrixRowActions.add((sender, options) => {\n editablePresets.forEach(item => item.onGetMatrixRowActions(model, this.creator, options));\n });\n model.onMatrixRowDragOver.add((sender, options) => {\n editablePresets.forEach(item => item.onMatrixRowDragOver(model, this.creator, options));\n });\n model.onMatrixRowRemoving.add((sender, options) => {\n editablePresets.forEach(item => item.onMatrixRowRemoving(model, this.creator, options));\n });\n model.onMatrixRowAdded.add((sender, options) => {\n editablePresets.forEach(item => item.onMatrixRowAdded(model, this.creator, options));\n });\n model.onMatrixCellValueChanged.add((sender, options) => {\n editablePresets.forEach(item => item.onMatrixCellValueChanged(model, this.creator, options));\n });\n model.onUpdateQuestionCssClasses.add(function(_, options) {\n editablePresets.forEach(item => {\n const suffix = item.getCustomQuestionCssSuffix(options.question);\n if (suffix) {\n options.cssClasses.mainRoot += \" sps-question--\" + suffix;\n }\n if (item.getMainElementNames().indexOf(options.question.name) >= 0) {\n options.cssClasses.mainRoot += \" sps-question--main\";\n options.cssClasses.row += \" sps-table__row--main\";\n options.cssClasses.buttonAdd += \" sps-matrixdynamic__add-btn--icon\";\n options.cssClasses.iconAdd = \"sps-matrixdynamic__add-btn-icon\";\n options.cssClasses.iconAddId = \"#icon-add-24x24\";\n }\n });\n });\n model.onUpdatePanelCssClasses.add(function(_, options) {\n editablePresets.forEach(item => {\n if (options.panel.name === item.getNavigationElementName()) {\n options.cssClasses.panel.container += \" sps-panel--navigation \";\n }\n });\n });\n model.onUpdatePageCssClasses.add(function(_, options) {\n editablePresets.forEach(item => {\n if (item.pageName === options.page.name) {\n options.cssClasses.page.root += \" sps-page--\" + item.fullPath;\n }\n });\n });\n\n return model;\n }\n protected createResultModel(): SurveyModel {\n const model = new SurveyModel({\n elements: [\n { type: \"html\", name: \"q1\", html: this.getResultHtml() },\n { type: \"comment\", name: \"json\", title: getLocString(\"presets.editor.presetJson\"), rows: 60, cols: 120, readOnly: true }\n ]\n });\n model.showPrevButton = false;\n model.showCompleteButton = false;\n model.showQuestionNumbers = false;\n model.width = \"900px\";\n model.onGetQuestionTitleActions.add((sender, options) => {\n if (options.question.name === \"json\") {\n const question = options.question;\n options.actions.push({\n id: \"json_copy\",\n iconName: \"icon-copy\",\n title: getLocString(\"presets.editor.copy\"),\n action: () => {\n navigator.clipboard.writeText(question.value);\n }\n });\n options.actions.push({\n id: \"json_download\",\n iconName: \"icon-download\",\n title: getLocString(\"presets.editor.download\"),\n action: () => {\n this.downloadJsonFile(question.value);\n }\n });\n options.actions.push({\n id: \"icon-load\",\n iconName: \"icon-load\",\n title: getLocString(\"presets.editor.load\"),\n action: () => {\n this.loadJsonFile();\n }\n });\n }\n });\n return model;\n }\n private getResultHtml(): string {\n return `<div>${getLocString(\"presets.editor.usageExample\")}</div>`;\n }\n public downloadJsonFile(text?: string): void {\n if (!text) text = this.jsonText;\n const jsonBlob = new Blob([text], { type: \"application/json\" });\n const elem = window.document.createElement(\"a\");\n elem.href = window.URL.createObjectURL(jsonBlob);\n elem.download = \"preset.json\";\n document.body.appendChild(elem);\n elem.click();\n document.body.removeChild(elem);\n }\n inputFileElement: HTMLInputElement;\n public loadJsonFile(): void {\n if (!this.inputFileElement) {\n this.inputFileElement = document.createElement(\"input\");\n this.inputFileElement.type = \"file\";\n this.inputFileElement.accept = \".json\";\n this.inputFileElement.style.display = \"none\";\n this.inputFileElement.onchange = () => {\n if (this.inputFileElement.files.length < 1) return;\n this.importFromFile(this.inputFileElement.files[0]);\n this.inputFileElement.value = \"\";\n };\n }\n this.inputFileElement.click();\n }\n private importFromFile(file: File) {\n let fileReader = new FileReader();\n fileReader.onload = (e) => {\n const surveyJSONText = fileReader.result as string;\n this.json = JSON.parse(surveyJSONText);\n };\n fileReader.readAsText(file);\n }\n private upldateResultJson(): void {\n this.resultModelValue.getQuestionByName(\"json\").value = this.jsonText;\n }\n public applyFromSurveyModel(validate = true): boolean {\n this.applying = true;\n if (validate && !this.validateEditableModel(this.model)) {\n this.applying = false;\n return false;\n }\n // if (reCreateCretor) {\n // const json = this.creator?.JSON || {};\n // this.creatorValue = this.createCreator({});\n // this.creator.JSON = json;\n // }\n this.preset.setJson(this.getJsonFromSurveyModel());\n this.model.setValue(\"json_result\", JSON.stringify(this.preset.getJson(), null, 2));\n this.preset.apply(this.creator, true);\n this.applying = false;\n return true;\n }\n public getJsonFromSurveyModel(): any {\n const res: ICreatorPresetData = {};\n this.model.editablePresets.forEach(preset => {\n const val = preset.getJsonValue(this.model, this.creator, this.defaultJsonValue?.[preset.path]);\n if (!!val) {\n res[preset.path] = val;\n }\n });\n this.getJsonLocalizationStrings(res);\n return res;\n }\n private getJsonLocalizationStrings(res: ICreatorPresetData): void {\n const locStrs: any = {};\n this.model.editablePresets.forEach(preset => {\n preset.setJsonLocalizationStrings(this.model, locStrs);\n });\n if (this.json && !!this.json.localization) {\n res.localization = JSON.parse(JSON.stringify(this.json.localization));\n }\n const locale = this.getLocale();\n if (Object.keys(locStrs).length > 0) {\n if (!res.localization) {\n res.localization = {};\n }\n res.localization[locale] = locStrs;\n } else {\n if (res.localization) {\n if (res.localization[locale]) {\n delete res.localization[locale];\n }\n if (Object.keys(res.localization).length === 0) {\n delete res.localization;\n }\n }\n }\n }\n private updateJsonLocalizationStrings(editablePresets: Array<CreatorPresetEditableBase>): void {\n const strs = this.json && !!this.json.localization ? JSON.parse(JSON.stringify(this.json.localization)) : {};\n const locale = this.getLocale();\n const locs = strs[locale] || {};\n editablePresets.forEach(preset => {\n preset.updateJsonLocalizationStrings(locs);\n });\n }\n private validateEditableModel(model: SurveyModel): boolean {\n if (!model.validate(true, true)) return false;\n const editablePresets = model.editablePresets;\n for (let i = 0; i < editablePresets.length; i ++) {\n if (!editablePresets[i].validate(model)) return false;\n }\n return true;\n }\n private createEditableCore(preset: CreatorPreset, fullPath: string): CreatorPresetEditableBase {\n if (fullPath === \"languages\") return new CreatorPresetEditableLanguages(preset);\n if (fullPath === \"tabs\") return new CreatorPresetEditableTabs(preset);\n if (fullPath === \"toolbox\") return new CreatorPresetEditableToolboxConfigurator(preset);\n if (fullPath === \"propertyGrid\") return new CreatorPresetEditablePropertyGrid(preset);\n if (fullPath === \"options\") return new CreatorPresetEditableOptions(preset);\n return undefined;\n }\n private createEditable(preset: CreatorPreset, parent: CreatorPresetEditableBase, fullPath: string): CreatorPresetEditableBase {\n const editable = this.createEditableCore(preset, fullPath);\n if (editable) {\n preset.children.forEach(item => {\n const child = this.createEditable(<CreatorPreset>item, editable, fullPath + \"_\" + item.getPath());\n if (child) {\n editable.children.push(child);\n child.parent = editable;\n }\n });\n }\n return editable;\n }\n private createEditablePresets(): Array<CreatorPresetEditableBase> {\n const res = [];\n this.preset.children.forEach(preset => {\n const editable = this.createEditable(<CreatorPreset>preset, undefined, preset.getPath());\n if (editable) {\n res.push(editable);\n }\n });\n return res;\n }\n private getEditModelJson(editablePresets: Array<CreatorPresetEditableBase>): any {\n const modelJson = { pages: [], showQuestionNumbers: false };\n editablePresets.forEach(preset => {\n const pages = preset.createPages();\n if (Array.isArray(pages)) {\n pages.forEach(page => modelJson.pages.push(page));\n }\n });\n return modelJson;\n }\n}","export * from \"./presets-editable-toolbox\";\nexport * from \"./presets-editor\";\nexport * from \"./presets-plugin\";\nexport * from \"./presets-editable-languages\";\nexport * from \"./presets-editable-tabs\";\nexport * from \"./presets-editable-options\";\nexport * from \"./presets-editable-base\";\nexport * from \"./preset-question-json\";\nimport { checkLibraryVersion } from \"survey-core\";\nimport \"../presets/presets-theme/presets.scss\";\nexport let Version: string;\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n//@ts-ignore\nVersion = `${process.env.VERSION}`;\ncheckLibraryVersion(Version, \"survey-creator-core-presets\");","export const basic = {\n \"tabs\": {\n \"items\": [\n {\n \"name\": \"designer\",\n \"iconName\": \"icon-config\"\n },\n {\n \"name\": \"preview\",\n \"iconName\": \"icon-preview\"\n },\n {\n \"name\": \"json\",\n \"iconName\": \"icon-codeeditor-24x24\"\n }\n ],\n \"activeTab\": \"designer\"\n },\n};\n","export const advanced = {\n \"tabs\": {\n \"items\": [\n {\n \"name\": \"designer\",\n \"iconName\": \"icon-config\"\n },\n {\n \"name\": \"preview\",\n \"iconName\": \"icon-preview\"\n },\n {\n \"name\": \"logic\",\n \"iconName\": \"icon-logic-24x24\"\n },\n {\n \"name\": \"json\",\n \"iconName\": \"icon-codeeditor-24x24\"\n }\n ],\n \"activeTab\": \"designer\"\n },\n};\n","export const expert = {\n};\n","import { createDropdownActionModel, IAction, ListModel, settings as libSettings, EventBase, LocalizableString } from \"survey-core\";\nimport { ICreatorPlugin, SurveyCreatorModel, saveToFileHandler, getLocString } from \"survey-creator-core\";\nimport { CreatorPresetEditorModel } from \"./presets-editor\";\nimport { listComponentCss } from \"./presets-theme/list-theme\";\nimport { basic, advanced, expert } from \"./default-settings\";\nexport class TabPresetsPlugin implements ICreatorPlugin {\n public model: CreatorPresetEditorModel;\n public static iconName = \"icon-settings\";\n private activeTab;\n private currentPresetIndex = 0;\n private currentValue;\n private designerPlugin;\n private toolboxCompact;\n private defaultJson;\n\n private presetsList: ListModel;\n\n private showPresets() {\n this.activeTab = this.creator.activeTab;\n this.creator.activeTab = \"presets\";\n }\n\n private hidePresets() {\n this.creator.onActiveTabChanging.remove(this.preventTabSwitch);\n this.creator.activeTab = this.activeTab;\n }\n\n private confirmReset(onApply: ()=>void) {\n libSettings.confirmActionAsync(getLocString(\"presets.plugin.resetConfirmation\"),\n (confirm) => {\n if (confirm) {\n onApply();\n }\n },\n {\n applyTitle: getLocString(\"presets.plugin.resetConfirmationOk\"),\n locale: this.creator.locale,\n cssClass: \"sv-popup--confirm svc-creator-popup\"\n }\n );\n\n }\n\n constructor(private creator: SurveyCreatorModel) {\n creator.addTab({ name: \"presets\", title: getLocString(\"presets.plugin.presetsTab\"), plugin: this, iconName: TabPresetsPlugin.iconName });\n creator.tabs.filter(t => t.id == \"presets\")[0].css = \"svc-tabbed-menu-item-container--presets\";\n this.designerPlugin = creator.getPlugin(\"designer\");\n const settingsPage = this.creator.sidebar.getPageById(\"creatorTheme\");\n settingsPage.componentData.showPresets = () => this.showPresets();\n settingsPage.componentName = \"svc-presets-property-grid\";\n this.toolboxCompact = creator.toolbox.forceCompact;\n }\n\n public saveToFileHandler = saveToFileHandler;\n\n private preventTabSwitch = (_, options) => {\n options.allow = false;\n };\n\n public activate(): void {\n this.creator.onActiveTabChanging.add(this.preventTabSwitch);\n this.model = new CreatorPresetEditorModel({}, this.creator, this.defaultJson);\n this.defaultJson = { ...this.model.defaultJson };\n if (this.currentValue) {\n this.model.model.data = this.currentValue;\n }\n this.designerPlugin.activateSidebar();\n this.model.model.onComplete.add(() => this.hidePresets());\n\n //const presets = this.model?.model.editablePresets.map(p => <IAction>{ id: p.pageName, locTitleName: \"presets.\" + p.fullPath + \".navigationTitle\" });\n const presets = this.model?.model.pages.map(p => <IAction>{ id: p.name, title: p.navigationTitle });\n let settingsAction: IAction;\n\n const keep = (item: IAction) => {\n settingsAction.popupModel.show();\n };\n const tools = [\n { id: \"save\", title: getLocString(\"presets.plugin.save\"), markerIconName: \"check-24x24\", needSeparator: true, action: () => this.hidePresets() }, //locTitleName: \"presets.plugin.save\"\n { id: \"defaultSettings\", title: getLocString(\"presets.plugin.defaultSettings\"), needSeparator: true, css: \"sps-list__item--label\", enabled: false },\n { id: \"basic\", title: getLocString(\"presets.plugin.basic\"), action: (item: IAction) => { keep(item); this.model.json = basic; } },\n { id: \"advanced\", title: getLocString(\"presets.plugin.advanced\"), action: (item: IAction) => { keep(item); this.model.json = advanced; } },\n { id: \"expert\", title: getLocString(\"presets.plugin.expert\"), action: (item: IAction) => { keep(item); this.model.json = expert; } },\n { id: \"file\", title: getLocString(\"presets.plugin.file\"), needSeparator: true, css: \"sps-list__item--label\", enabled: false },\n { id: \"import\", title: getLocString(\"presets.plugin.import\"), markerIconName: \"import-24x24\", action: (item: IAction) => { keep(item); this.model?.loadJsonFile(); } },\n { id: \"export\", title: getLocString(\"presets.plugin.export\"), markerIconName: \"download-24x24\", action: (item: IAction) => { keep(item); this.model?.downloadJsonFile(); } },\n { id: \"edit\", title: getLocString(\"presets.plugin.edit\"), needSeparator: true, css: \"sps-list__item--label\", enabled: false },\n { id: \"reset-current\", title: getLocString(\"presets.plugin.resetLanguages\"), action: () => { this.confirmReset(()=>this.model?.resetToDefaults(\"page_languages\")); } },\n { id: \"reset\", title: getLocString(\"presets.plugin.resetAll\"), css: \"sps-list__item--alert\", action: () => { this.confirmReset(() => this.model?.resetToDefaults()); } },\n ];\n\n presets.forEach(p => {\n p.action = (item)=>{\n this.presetsList.selectedItem = item;\n keep(item);\n this.model.model.currentPage = this.model.model.getPageByName(item.id);\n };\n });\n settingsAction = createDropdownActionModel({\n id: \"presets-menu\",\n tooltip: getLocString(\"presets.plugin.creatorPresets\"),\n iconName: \"navmenu-24x24\",\n css: \"sps-menu-floating-action\",\n action: () => {\n if (settingsAction.popupModel.isVisible) {\n setTimeout(() => settingsAction.popupModel.hide(), 1);\n }\n }\n }, {\n items: [\n { id: \"creator-presets\", title: getLocString(\"presets.plugin.creatorPresets\"), css: \"sps-list__item--label\", enabled: false },\n ...presets,\n ...tools],\n showPointer: false,\n verticalPosition: \"top\",\n horizontalPosition: \"center\",\n searchEnabled: false,\n cssClass: \"sps-popup-menu sps-popup-menu--always-on-top\",\n cssClasses: listComponentCss,\n onHide: () => { settingsAction.iconName = \"navmenu-24x24\"; },\n onShow: () => { settingsAction.iconName = \"close-24x24\"; }\n }, this.model.model);\n const bottomActions = this.designerPlugin.tabControlModel.bottomToolbar.actions;\n bottomActions.forEach(a => a.visible = false);\n bottomActions.unshift(settingsAction);\n this.presetsList = settingsAction.popupModel.contentComponentData.model;\n const resetCurrentAction = this.presetsList.getActionById(\"reset-current\");\n this.presetsList.selectedItem = this.presetsList.actions[0];\n this.model.model.onCurrentPageChanged.add((_, options) => {\n this.presetsList.selectedItem = this.presetsList.actions[this.model.model.currentPageNo + 1];\n resetCurrentAction.title = getLocString(\"presets.plugin.resetToDefaults\").replace(\"{0}\", this.model.model.currentPage.navigationTitle);\n resetCurrentAction.action = () => { this.model?.resetToDefaults(this.presetsList.selectedItem.id); };\n });\n\n setTimeout(() => {\n presets[this.currentPresetIndex].action(presets[this.currentPresetIndex]);\n }, 100);\n }\n\n public deactivate(): boolean {\n this.creator.toolbox.forceCompact = this.toolboxCompact;\n this.currentValue = this.model?.model.data;\n const bottomActions = this.designerPlugin.tabControlModel.bottomToolbar.actions;\n bottomActions.forEach(a => a.visible = true);\n bottomActions.splice(0, 1);\n this.currentPresetIndex = this.model?.model.currentPageNo || 0;\n if (this.model) {\n this.model.dispose();\n }\n this.model = undefined;\n return true;\n }\n\n public onLocaleChanged() {\n //this.presetsList.actions.forEach(a => a.locStrsChanged());\n if (this.model) {\n this.model.onLocaleChanged();\n }\n }\n}","import { QuestionCommentModel, Serializer, ElementFactory, Helpers, RendererFactory, TextAreaModel, CustomError, SurveyError, JsonObject, Base, SurveyModel } from \"survey-core\";\nimport { SurveyJSON5 } from \"survey-creator-core\";\n\nexport class QuestionPresetJsonModel extends QuestionCommentModel {\n private jsonAreaModelValue: TextAreaModel;\n private jsonErrors: string[] = [];\n constructor(name: string) {\n super(name);\n }\n public getType(): string {\n return \"presetjson\";\n }\n protected getCssType(): string {\n return \"comment\";\n }\n public getTemplate(): string {\n return \"comment\";\n }\n public get textAreaModel(): TextAreaModel {\n if (!this.jsonAreaModelValue) {\n const options = this.getTextAreaOptions();\n const _this = this;\n const updateQuestionValue = (newValue: any) => {\n if (!Helpers.isTwoValueEquals(JSON.stringify(_this.value, null, 2), newValue, false, true, false)) {\n try {\n const value = new SurveyJSON5().parse(newValue);\n const valueToCheck = { ...value, name: \"temp\" };\n\n const jsonConverter = new JsonObject();\n jsonConverter.toObject({ elements: [valueToCheck] }, new SurveyModel());\n this.jsonErrors = jsonConverter.errors.map((err) => err.message);\n if (this.jsonErrors.length > 0) return;\n _this.value = value;\n } catch(error) {\n this.jsonErrors = [error.message];\n }\n } else {\n this.jsonErrors = [];\n }\n };\n options.getTextValue = () => JSON.stringify(this.value, null, 2);\n options.onTextAreaChange = (e) => { updateQuestionValue(e.target.value); };\n this.jsonAreaModelValue = new TextAreaModel(options);\n }\n return this.jsonAreaModelValue;\n }\n\n protected onCheckForErrors(errors: Array<SurveyError>, isOnValueChanged: boolean, fireCallback: boolean): void {\n super.onCheckForErrors(errors, isOnValueChanged, fireCallback);\n this.jsonErrors.forEach(errorMessage => {\n errors.push(new CustomError(errorMessage, this));\n });\n }\n\n}\nElementFactory.Instance.registerElement(\"presetjson\", (name) => {\n return new QuestionPresetJsonModel(name);\n}, false);\n\nSerializer.addClass(\"presetjson\",\n [],\n function () { return new QuestionPresetJsonModel(\"\"); },\n \"comment\"\n);\n\n"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE__156__","__WEBPACK_EXTERNAL_MODULE__982__","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","d","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","r","Symbol","toStringTag","value","extendStatics","b","setPrototypeOf","__proto__","Array","p","__extends","TypeError","String","__","constructor","create","__assign","assign","t","s","i","n","arguments","length","apply","__spreadArray","to","from","pack","ar","l","slice","concat","SuppressedError","preset","children","notifyCallback","message","path","getPath","getJsonPath","model","prefix","parent","fullPath","getPageTitle","getPageByName","pageName","title","getPageShortTitle","navigationTitle","getMainElementNames","mainPanelName","getMainPanelName","getCustomQuestionCssSuffix","question","createPages","res","mainPage","createMainPage","push","forEach","item","pages","isArray","page","validate","validateCore","createMainPageCore","name","getBoolVisibleIf","isTrue","getTextVisibleIf","val","getNotEmptyVisibleIf","getNavigationElementName","navigationPanelName","getJsonValue","creator","defaultJson","core","isVisible","getJsonValueCore","hasValue","getDefaultJsonValue","json","getDefaultJsonValueCore","setJsonLocalizationStrings","locStrs","setJsonLocalizationStringsCore","updateJsonLocalizationStrings","updateJsonLocalizationStringsCore","dispose","disposeCore","setupQuestions","creatorSetup","setupQuestionsCore","resetToDefaults","notify","restoreValuesFromDefault","getLocString","setupOnCurrentPage","active","setupOnCurrentPageCore","updateOnValueChanged","updateOnValueChangedCore","updateOnMatrixDetailPanelVisibleChanged","options","updateOnMatrixDetailPanelVisibleChangedCore","onGetMatrixRowActions","onGetMatrixRowActionsCore","onGetPanelTitleActions","onMatrixRowDragOver","onMatrixRowRemoving","onMatrixRowAdded","onMatrixCellValueChanged","setupQuestionsValue","setupQuestionsValueCore","saveValuesAsDefault","onLocaleChanged","onLocaleChangedCore","questionNames","getQuestionByName","defaultValue","getValue","JSON","parse","stringify","resetToDefaultsCore","copyJson","Helpers","getUnbindValue","updateModifiedText","text","localizationName","presetStrs","editorLocalization","presetStrings","getString","CreatorPresetEditableBase","saveTextInLocStrs","paths","split","presetsCss","container","header","body","bodyEmpty","footer","description","logo","logoImage","headerText","navigationButton","bodyNavigationButton","completedPage","navigation","complete","prev","next","start","preview","edit","list","listComponentCss","panel","withFrame","nested","expandableAnimating","titleBar","contentEnter","contentLeave","titleExpandable","titleExpanded","titleCollapsed","titleOnError","content","icon","iconExpanded","requiredMark","collapsed","expanded","paneldynamic","mainRoot","button","buttonRemove","buttonAdd","panelsContainer","panelWrapper","panelWrapperList","progressTop","progressBottom","buttonPrev","buttonNext","progressContainer","progress","progressBar","progressText","panelFooter","separator","footerButtonsContainer","progressTextInBar","pageTitle","pageDescription","row","rowEnter","rowLeave","rowDelayedEnter","rowMultiple","flowRoot","asCell","headerLeft","headerTop","headerBottom","contentLeft","titleLeftRoot","titleOnAnswer","number","descriptionUnderInput","comment","required","titleRequired","indent","formGroup","hasError","readOnly","confirmDialog","errorsContainerBottom","checkbox","itemSelectAll","itemNone","itemReadOnly","itemChecked","itemHover","itemInline","label","itemSvgIconId","labelChecked","itemControl","itemDecorator","controlLabel","materialDecorator","other","column","radiogroup","clearButton","boolean","rootCheckbox","checkboxItem","checkboxItemChecked","checkboxitemIndeterminate","checkboxItemReadOnly","svgIconId","checkboxLabel","controlCheckbox","checkboxControlLabel","checkboxItemDecorator","checkboxMaterialDecorator","controlReadOnly","small","remainingCharacterCounter","onError","dropdown","popup","control","controlEmpty","controlValue","filterStringInput","selectWrapper","chevronButtonIconId","cleanButton","hintPrefix","hintSuffix","matrix","tableWrapper","rowError","cell","headerCell","itemValue","cellText","cellTextSelected","cellTextReadOnly","matrixdropdown","emptyCell","matrixdynamic","rowDisabled","rowReadOnly","detailRow","detailButton","detailButtonExpanded","detailIcon","detailIconExpanded","detailIconExpandedId","detailIconId","detailPanelCell","actionsCell","iconAdd","iconRemove","dragElementDecorator","iconDragElement","iconDrag","dragDropGhostPositionTop","dragDropGhostPositionBottom","noRowsSection","noRowsText","cellQuestionWrapper","draggedRow","rowEmpty","actionBar","itemPressed","itemAsIcon","itemIcon","itemTitle","defaultIcon","hasIcon","_","nameItems","keys","SvgRegistry","icons","map","getMatrixKeyColumnName","getDefaultItems","defaultItems","getDefaultItem","keyColumn","filter","needToSetActions","updateMatrixRowActions","renderedTable","rows","iconActions","cells","actions","updateRowActions","rowData","a","updateRowAction","action","id","iconName","enabled","isTwoValueEquals","createResetAction","tooltip","location","visibleIndex","createEditAction","editItem","createIconAction","cssClass","innerCss","setupStandardActions","allowExpand","isItemsMatrix","ComputedUpdater","isDetailPanelShowing","visible","component","removeRowUI","survey","resetAction","itemKey","resetActionParams","css","defaultItem","data","Action","showDetailPanelInPopup","rootElement","removeOnCancel","isNew","onValueChanged","add","keyQuestion","resetItem","v","restoreItems","questionItems","questionHiddenItems","rowIndex","getMatrix","nameMatrix","detailElements","e","fromMatrix","toMatrix","allow","hiddenItems","getExistingKeys","items","unsorted","getDefaultValueForRow","SurveyHelper","getNewName","setDefaultValueForRow","renderedRow","find","index","visibleRows","findIndex","SurveyModel","elements","toJSON","fitToContainer","showNavigationButtons","enterKeyAction","questionErrorLocation","settings","showDialog","popupModel","componentName","onApply","newValue","getAllQuestions","q","newRowValue","onCancel","displayMode","startWithNewLine","width","footerToolbar","defaultActionBarCss","cssClasses","getActionById","unshift","getAllPanels","isRequired","requiredErrorText","itemsContainer","itemsContainerFiltering","emptyContainer","emptyText","filterIcon","filterInput","searchClearButtonIcon","loadingIndicator","itemSelected","itemGroup","itemGroupSelected","itemWithIcon","itemDisabled","itemFocused","itemHovered","itemTextWrap","itemMarkerIcon","itemSeparator","itemBody","nameCategories","defaultCategories","setupCategoryActions","resetCategory","ejectRowData","remove","rowDataIndex","indexOf","splice","moveToCategory","categoryName","categories","getQuestionCategories","catValue","findOrCreateCategory","nameInnerMatrix","itemMenuCategoriesEnabled","setSubitemsToAction","setSubItems","markerIconName","getItemMenuActionsCore","categoriesQuestion","isUnsorted","hasCategories","removeRow","replace","currentCategory","c","moveToCategories","category","needSeparator","catGroup","newCatRow","getItemMenuActions","replaceRemoveAction","originalAction","addAction","createDropdownActionModel","showPointer","verticalPosition","horizontalPosition","searchEnabled","onVisibilityChanged","opt","listModel","contentComponentData","flushUpdates","hiddenItemsQuestion","hiddenValue","categoryRow","some","di","clearItemFromDefault","generalCategory","cats","flat","defaultCategory","CreatorPresetEditableList","LocCategoriesName","FunctionFactory","Instance","register","params","type","Serializer","createClass","createItemsMatrixJSON","props","addSubitems","defaultJSON","allowRowReorder","cellType","showHeader","rowCount","allowAddRows","addRowButtonLocation","columns","detailPanelMode","isUnique","itemComponent","choices","iconList","renderAs","validators","expression","newJson","addRowText","nameSubitems","valueName","titleLocation","visibleIf","nameCategoriesMode","descriptionLocation","valueTrue","valueFalse","clearIfInvisible","nameShowCategoryTitles","useTitleAsLabel","defaultSubitems","subitems","findItem","itemName","moveToSubitems","destination","getQuestionItems","destValue","superItems","catActions","catAction","itemsActions","subItems","showDetailPanel","subitemsAction","getJsonItemsDefinition","mode","toolboxCategories","toolbox","getCategoriesJson","isCategoriesSame","showCategoryTitles","toolboxItems","categoryItems","cleanIfNotDiffers","differs","forceCompact","isCompact","setPropertyValue","setupDefaults","toolboxDefaultItems","toolboxDefaultCategories","getDefaultCategories","createToolboxItemRow","si","createToolboxCategoryRow","defaultItemsMap","reduce","acc","defaultCategoriesMap","itemsDefinition","categoriesDefinition","itemsMap","setValue","updateItemsFromCategories","updateShowCategoriesTitlesElements","updateCategoriesFromItems","itemsObject","unsortedNames","defaultTitle","getCategoryTitle","titleQuestion","isEmpty","updateTextFromQuestion","CreatorPresetEditableCaregorizedListConfigurator","className","propertyGridDefinition","getIsPropertyVisible","SurveyQuestionProperties","presetPropertiesBaseClasses","currentJson","propertiesHash","classes","cls","createObj","properties","SurveyQuestionPresetProperties","allPropertiesNames","getAllVisiblePropertiesNames","objProps","getPropertiesByObj","propClassName","getPropClassName","cl","propertyGridValue","createPropertyGrid","propertyGridDefaultValue","getObj","PropertyGridModel","showOneCategoryInPropertyGrid","ind","clName","substring","postFix","getInitialJson","useDefaults","propertyGrid","placeholderPageName","property","getPropertyClassName","propName","updateCurrentJson","updateCurrentJsonCore","curJsonClasses","tabNames","updateCurrentJsonClass","tabs","tab","clVal","clIndex","nextStep","Math","pow","max","j","visIndex","tabName","classInfo","isDescendantOf","getClassName","firstTimeLoading","nameSelector","allowClear","html","propertyGridSetObj","currentPage","isModified","defaultPropertyGridDefinition","updateMatrices","setupPageQuestions","getSelector","getSelectorChoices","oldSearchValue","enableSearch","setJSONForTitlesAndDescriptions","strs","localeStrings","pe","pehelp","setSidebarEnabled","currentProperties","ensureLocalizationPath","changePropTitleAndDescription","selQuestion","currentClassName","SurveyQuestionPresetPropertiesDetail","getCurrentlyHiddenItems","hiddenProperties","getPropertyGridDefinition","autoGenerateProperties","str","ItemValue","getSelectorItemTitle","columnPrefix","getColumnItemTitle","matrixDropdownColumnTypes","getPropertiesArray","names","nameActiveTab","filterTabs","creatorDefaultTabs","getTabs","creatorAvailableTabs","getAvailableTabs","activeTabChoices","isArraysEqual","activeTab","getAllTabs","initialTabs","allTabs","itemNames","activeTabQuestion","selectedItem","selectItem","questionInstance","itemvalue","toUpperCase","placeholder","getLocaleName","creatorLocaleName","getCreatorLocales","searchLocalesName","textUpdateMode","surveyLocalesName","minSelectedChoices","colCount","showSelectAllItem","getSurveyLocales","choicesVisibleIf","surveyUseEnglishNames","creatorLocale","useEnglishNames","isAllSelected","surveyLocales","showInEnglish","updateLocaleNames","locales","valule","selectAll","getIsShowInEnglishSelected","getLocaleItemValues","getLocales","surveyLocalization","addEnLocale","locale","isShowInEnglish","choicesOrder","optionsList","createElements","state","inputType","addPathToName","optionName","patchElements","element","option","locTooltipName","isCollapsed","iconSize","expand","collapse","enStrings","languages","creatorUI","surveyLanguages","searchPlaceholder","translateToEnglish","defaultTab","noItemsText","noHiddenItemsText","titleField","noCategoriesText","enableGrouping","categoryTitle","jsonObject","enableSubitems","moveAsSubitem","addToToolbox","deleteCustomItem","addCustomCategory","addCustomItem","addNewItem","addNewSubitem","newItem","selectElement","descriptionField","newCategory","moveToNewCategory","categoriesLabel","moveTo","removeFrom","more","restoreToDefault","delete","editor","presetJson","copy","download","load","saveExit","back","resetToDefault","resoredToDefault","itemRestoredToDefault","categoryRestoredToDefault","completeText","pagePrevText","plugin","buttonTitle","buttonDescription","presetsTab","creatorPresets","save","file","import","export","resetLanguages","resetAll","resetConfirmation","resetConfirmationOk","defaultSettings","basic","advanced","expert","getLocaleStrings","presets","Version","defaultSizeMode","smallSizeMode","itemWithTitle","itemActive","itemTitleWithIcon","ActionContainer","creatorValue","defaultJsonValue","applying","presetValue","CreatorPreset","createCreator","modelValue","createModel","resultModelValue","createResultModel","locTitle","LocalizableString","navigationBarValue","NavigationBar","setJson","getJsonFromSurveyModel","disposeModel","resetAllPages","editablePresets","upldateResultJson","getLocale","currentLocale","getJson","updateDataFromJson","SurveyCreatorModel","activatePage","inactivePresets","activePreset","localization","createEditablePresets","getEditModelJson","keepIncorrectValues","onCurrentPageChanged","sender","current","adjustMatrixAlignment","onCreateDetailPanelRenderedRowCallback","colSpans","applyFromSurveyModel","onGetQuestionTitleActions","getTitleToolbar","isResponsivenessDisabled","navigationBar","onQuestionCreated","onMatrixDetailPanelVisibleChanged","onUpdateQuestionCssClasses","suffix","iconAddId","onUpdatePanelCssClasses","onUpdatePageCssClasses","getResultHtml","cols","showPrevButton","showCompleteButton","showQuestionNumbers","navigator","clipboard","writeText","downloadJsonFile","loadJsonFile","jsonText","jsonBlob","Blob","elem","window","document","createElement","href","URL","createObjectURL","appendChild","click","removeChild","inputFileElement","accept","style","display","onchange","files","importFromFile","fileReader","FileReader","onload","surveyJSONText","result","readAsText","validateEditableModel","getJsonLocalizationStrings","locs","createEditableCore","CreatorPresetEditableLanguages","CreatorPresetEditableTabs","CreatorPresetEditableToolboxConfigurator","CreatorPresetEditablePropertyGrid","CreatorPresetEditableOptions","createEditable","editable","child","modelJson","Base","currentPresetIndex","saveToFileHandler","preventTabSwitch","addTab","TabPresetsPlugin","designerPlugin","getPlugin","settingsPage","sidebar","getPageById","componentData","showPresets","toolboxCompact","hidePresets","onActiveTabChanging","confirmReset","confirmActionAsync","confirm","applyTitle","activate","CreatorPresetEditorModel","currentValue","activateSidebar","onComplete","settingsAction","keep","show","tools","presetsList","setTimeout","hide","onHide","onShow","bottomActions","tabControlModel","bottomToolbar","resetCurrentAction","currentPageNo","deactivate","jsonErrors","getType","getCssType","getTemplate","jsonAreaModelValue","getTextAreaOptions","getTextValue","onTextAreaChange","SurveyJSON5","valueToCheck","jsonConverter","JsonObject","toObject","errors","err","error","target","TextAreaModel","onCheckForErrors","isOnValueChanged","fireCallback","errorMessage","CustomError","QuestionCommentModel","ElementFactory","registerElement","QuestionPresetJsonModel","addClass","checkLibraryVersion"],"sourceRoot":""}
1
+ {"version":3,"file":"index.min.js","mappings":"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","sources":["webpack://SurveyCreatorCorePresets/webpack/universalModuleDefinition","webpack://SurveyCreatorCorePresets/external umd {\"root\":\"Survey\",\"commonjs2\":\"survey-core\",\"commonjs\":\"survey-core\",\"amd\":\"survey-core\"}","webpack://SurveyCreatorCorePresets/external umd {\"root\":\"SurveyCreatorCore\",\"commonjs2\":\"survey-creator-core\",\"commonjs\":\"survey-creator-core\",\"amd\":\"survey-creator-core\"}","webpack://SurveyCreatorCorePresets/webpack/bootstrap","webpack://SurveyCreatorCorePresets/webpack/runtime/define property getters","webpack://SurveyCreatorCorePresets/webpack/runtime/hasOwnProperty shorthand","webpack://SurveyCreatorCorePresets/webpack/runtime/make namespace object","webpack://SurveyCreatorCorePresets/./node_modules/tslib/tslib.es6.mjs","webpack://SurveyCreatorCorePresets/./src/presets/presets-editable-base.ts","webpack://SurveyCreatorCorePresets/./src/presets/presets-theme/presets.ts","webpack://SurveyCreatorCorePresets/./src/presets/presets-editable-list.ts","webpack://SurveyCreatorCorePresets/./src/presets/presets-theme/list-theme.ts","webpack://SurveyCreatorCorePresets/./src/presets/presets-editable-categorized.ts","webpack://SurveyCreatorCorePresets/./src/presets/presets-editable-toolbox.ts","webpack://SurveyCreatorCorePresets/./src/presets/presets-editable-properties.ts","webpack://SurveyCreatorCorePresets/./src/presets/presets-editable-tabs.ts","webpack://SurveyCreatorCorePresets/./src/presets/presets-editable-languages.ts","webpack://SurveyCreatorCorePresets/./src/presets/presets-editable-options.ts","webpack://SurveyCreatorCorePresets/./src/presets/localization/english.ts","webpack://SurveyCreatorCorePresets/./src/presets/presets-editor.ts","webpack://SurveyCreatorCorePresets/./src/presets/index.ts","webpack://SurveyCreatorCorePresets/./src/presets/default-settings/basic.ts","webpack://SurveyCreatorCorePresets/./src/presets/default-settings/advanced.ts","webpack://SurveyCreatorCorePresets/./src/presets/default-settings/expert.ts","webpack://SurveyCreatorCorePresets/./src/presets/presets-plugin.ts","webpack://SurveyCreatorCorePresets/./src/presets/preset-question-json.ts"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"survey-core\"), require(\"survey-creator-core\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"[dashedname]\", [\"survey-core\", \"survey-creator-core\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"[dashedname]\"] = factory(require(\"survey-core\"), require(\"survey-creator-core\"));\n\telse\n\t\troot[\"SurveyCreatorCorePresets\"] = factory(root[\"Survey\"], root[\"SurveyCreatorCore\"]);\n})(this, (__WEBPACK_EXTERNAL_MODULE__156__, __WEBPACK_EXTERNAL_MODULE__982__) => {\nreturn ","module.exports = __WEBPACK_EXTERNAL_MODULE__156__;","module.exports = __WEBPACK_EXTERNAL_MODULE__982__;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nvar ownKeys = function(o) {\n ownKeys = Object.getOwnPropertyNames || function (o) {\n var ar = [];\n for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n return ar;\n };\n return ownKeys(o);\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n });\n }\n return path;\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __esDecorate,\n __runInitializers,\n __propKey,\n __setFunctionName,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n __rewriteRelativeImportExtension,\n};\n","import { Helpers, Question, SurveyModel } from \"survey-core\";\nimport { SurveyCreatorModel, editorLocalization, CreatorPresetBase, ICreatorOptions, getLocString } from \"survey-creator-core\";\n\nexport interface ICreatorPresetEditorSetup {\n creator: SurveyCreatorModel;\n createCreator(options: ICreatorOptions): SurveyCreatorModel;\n}\n\nexport class CreatorPresetEditableBase {\n public parent: CreatorPresetEditableBase;\n protected get navigationPanelName(): string { return this.path + \"_navigation\"; }\n public children: Array<CreatorPresetEditableBase> = [];\n public constructor(public preset: CreatorPresetBase) {\n }\n public get path() { return this.preset.getPath(); }\n protected getJsonPath(model: SurveyModel): string { return this.path; }\n public get fullPath() {\n let prefix = this.parent ? this.parent.fullPath : \"\";\n if (this.path && prefix) {\n prefix += \"_\";\n }\n return prefix + this.path;\n }\n public get pageName(): string { return \"page_\" + this.fullPath; }\n public getPageTitle(model: SurveyModel): string { return model.getPageByName(this.pageName).title; }\n public getPageShortTitle(model: SurveyModel): string { return model.getPageByName(this.pageName).navigationTitle; }\n protected get mainPanelName() { return this.path + \"_mainPanel\"; }\n public getMainElementNames() : any { return [this.mainPanelName]; }\n public getMainPanelName() : any { return this.mainPanelName; }\n public getCustomQuestionCssSuffix(question: Question) { return \"\"; }\n public createPages(): Array<any> {\n const res = [];\n const mainPage = this.createMainPage();\n if (mainPage) {\n res.push(mainPage);\n }\n this.children.forEach(item => {\n const pages = item.createPages();\n if (Array.isArray(pages)) {\n pages.forEach(page => res.push(page));\n }\n });\n return res;\n }\n public get questionNames(): string[] { return []; }\n public notifyCallback = (message: string) => {};\n public validate(model: SurveyModel): boolean {\n if (!this.validateCore(model)) return false;\n for (let i = 0; i < this.children.length; i ++) {\n if (!this.children[i].validate(model)) return false;\n }\n return true;\n }\n protected validateCore(model: SurveyModel): boolean {\n return true;\n }\n protected createMainPage(): any {\n const res = this.createMainPageCore();\n if (res) {\n res.name = this.pageName;\n }\n return res;\n }\n protected getBoolVisibleIf(name: string, isTrue: boolean = true): string { return \"{\" + name + \"}=\" + (isTrue ? \"true\" : \"false\"); }\n protected getTextVisibleIf(name: string, val: string): string { return \"{\" + name + \"}='\" + val + \"'\"; }\n protected getNotEmptyVisibleIf(name: string): string { return \"{\" + name + \"} notempty\"; }\n protected createMainPageCore(): any { return undefined; }\n public getNavigationElementName() : any { return this.navigationPanelName; }\n public getJsonValue(model: SurveyModel, creator: SurveyCreatorModel, defaultJson?: any): any {\n const page = model.getPageByName(this.pageName);\n const core = page && page.isVisible ? this.getJsonValueCore(model, creator, defaultJson) : undefined;\n let hasValue = !!core;\n const res = hasValue ? core : {};\n this.children.forEach(item => {\n const val = item.getJsonValue(model, creator);\n if (!!val) {\n hasValue = true;\n res[item.getJsonPath(model)] = val;\n }\n });\n return hasValue ? res : undefined;\n }\n public getDefaultJsonValue(creator: SurveyCreatorModel) {\n const json = this.getDefaultJsonValueCore(creator);\n this.children.forEach(item => json[item.path] = item.getDefaultJsonValueCore(creator));\n return json;\n }\n public setJsonLocalizationStrings(model: SurveyModel, locStrs: any): void {\n this.setJsonLocalizationStringsCore(model, locStrs);\n this.children.forEach(item => item.setJsonLocalizationStrings(model, locStrs));\n }\n public updateJsonLocalizationStrings(locStrs: any): void {\n this.updateJsonLocalizationStringsCore(locStrs);\n this.children.forEach(item => item.updateJsonLocalizationStrings(locStrs));\n }\n public dispose(): void {\n this.disposeCore();\n this.children.forEach(item => item.dispose());\n }\n public setupQuestions(model: SurveyModel, creatorSetup: ICreatorPresetEditorSetup): void {\n this.setupQuestionsCore(model, creatorSetup);\n this.children.forEach(item => {\n item.setupQuestions(model, creatorSetup);\n });\n }\n public resetToDefaults(model: SurveyModel, notify = true): void {\n this.restoreValuesFromDefault(model);\n this.notifyCallback(this.getPageTitle(model) + \" \" + getLocString(\"presets.editor.resoredToDefault\"));\n this.children.forEach(item => {\n item.resetToDefaults(model, notify);\n });\n }\n public setupOnCurrentPage(model: SurveyModel, creator: SurveyCreatorModel, active: boolean): void {\n this.setupOnCurrentPageCore(model, creator, active);\n this.children.forEach(item => {\n item.setupOnCurrentPage(model, creator, active);\n });\n }\n public updateOnValueChanged(model: SurveyModel, name: string): void {\n this.updateOnValueChangedCore(model, name);\n this.children.forEach(item => {\n item.updateOnValueChanged(model, name);\n });\n }\n public updateOnMatrixDetailPanelVisibleChanged(model: SurveyModel, creator: SurveyCreatorModel, options: any): void {\n this.updateOnMatrixDetailPanelVisibleChangedCore(model, creator, options);\n this.children.forEach(item => {\n item.updateOnMatrixDetailPanelVisibleChanged(model, creator, options);\n });\n }\n public onGetMatrixRowActions(model: SurveyModel, creator: SurveyCreatorModel, options: any): void {\n this.onGetMatrixRowActionsCore(model, creator, options);\n this.children.forEach(item => {\n item.onGetMatrixRowActions(model, creator, options);\n });\n }\n public onGetPanelTitleActions(model: SurveyModel, creator: SurveyCreatorModel, options: any): void { }\n public onMatrixRowDragOver(model: SurveyModel, creator: SurveyCreatorModel, options: any): void { }\n public onMatrixRowRemoving(model: SurveyModel, creator: SurveyCreatorModel, options: any): void { }\n public onMatrixRowAdded(model: SurveyModel, creator: SurveyCreatorModel, options: any): void { }\n public onMatrixCellValueChanged(model: SurveyModel, creator: SurveyCreatorModel, options: any): void { }\n public setupQuestionsValue(model: SurveyModel, json: any, creator: SurveyCreatorModel): void {\n this.setupQuestionsValueCore(model, json, creator);\n this.saveValuesAsDefault(model);\n this.children.forEach(item => {\n item.setupQuestionsValue(model, !!json ? json[item.path] : undefined, creator);\n });\n }\n public onLocaleChanged(model: SurveyModel, json: any, creator: SurveyCreatorModel): void {\n this.onLocaleChangedCore(model, json, creator);\n this.children.forEach(item => {\n item.setupQuestionsValue(model, !!json ? json[item.path] : undefined, creator);\n });\n }\n\n private saveValuesAsDefault(model: SurveyModel) {\n this.questionNames.forEach(name => model.getQuestionByName(name).defaultValue = model.getValue(name) && JSON.parse(JSON.stringify(model.getValue(name))));\n }\n protected restoreValuesFromDefault(model: SurveyModel) {\n this.questionNames.forEach(name => model.getQuestionByName(name).value = model.getQuestionByName(name).defaultValue && JSON.parse(JSON.stringify(model.getQuestionByName(name).defaultValue)));\n }\n\n protected setupQuestionsCore(model: SurveyModel, creatorSetup: ICreatorPresetEditorSetup): void { }\n protected resetToDefaultsCore(model: SurveyModel): void { }\n protected setupQuestionsValueCore(model: SurveyModel, json: any, creator: SurveyCreatorModel): void {}\n protected onLocaleChangedCore(model: SurveyModel, json: any, creator: SurveyCreatorModel): void {}\n protected getJsonValueCore(model: SurveyModel, creator: SurveyCreatorModel, defaultJson: any): any { return undefined; }\n protected getDefaultJsonValueCore(creator: SurveyCreatorModel): any { return {}; }\n protected setJsonLocalizationStringsCore(model: SurveyModel, locStrs: any): void {}\n protected updateJsonLocalizationStringsCore(locStrs: any): void {}\n protected disposeCore(): void {}\n protected setupOnCurrentPageCore(model: SurveyModel, creator: SurveyCreatorModel, active: boolean): void {}\n protected updateOnValueChangedCore(model: SurveyModel, name: string): void {}\n protected updateOnMatrixDetailPanelVisibleChangedCore(model: SurveyModel, creator: SurveyCreatorModel, options: any): void {}\n protected onGetMatrixRowActionsCore(model: SurveyModel, creator: SurveyCreatorModel, options: any): void {}\n protected copyJson(json: any): any {\n return Helpers.getUnbindValue(json);\n }\n\n public static updateModifiedText(locStrs: any, text: string, localizationName: string): void {\n if (!localizationName) return undefined;\n if (!text) return;\n const presetStrs = editorLocalization.presetStrings;\n editorLocalization.presetStrings = undefined;\n if (text !== editorLocalization.getString(localizationName)) {\n CreatorPresetEditableBase.saveTextInLocStrs(locStrs, text, localizationName);\n }\n editorLocalization.presetStrings = presetStrs;\n }\n private static saveTextInLocStrs(locStrs: any, text: string, localizationName: string): void {\n const paths = localizationName.split(\".\");\n for (let i = 0; i < paths.length - 1; i ++) {\n const path = paths[i];\n if (!locStrs[path]) {\n locStrs[path] = {};\n }\n locStrs = locStrs[path];\n }\n locStrs[paths[paths.length - 1]] = text;\n }\n}","import { listComponentCss } from \"survey-creator-core\";\n\nexport var presetsCss = {\n root: \"sps-root-modern\",\n container: \"sps-container-modern\",\n header: \"sps-title sps-container-modern__title\",\n body: \"sps-body\",\n bodyEmpty: \"sps-body sps-body--empty\",\n footer: \"sps-footer sps-body__footer sps-clearfix\",\n title: \"\",\n description: \"\",\n logo: \"sps-logo\",\n logoImage: \"sps-logo__image\",\n headerText: \"sps-header__text\",\n navigationButton: \"\",\n bodyNavigationButton: \"\",\n completedPage: \"sps-completedpage\",\n navigation: {\n complete: \"sps-btn sps-btn--primary-brand sps-footer__complete-btn\",\n prev: \"sps-btn sps-btn--secondary-brand sps-footer__prev-btn\",\n next: \"sps-btn sps-btn--primary-brand sps-footer__next-btn\",\n start: \"sps-btn sps-footer__start-btn\",\n preview: \"sps-btn sps-footer__preview-btn\",\n edit: \"sps-btn sps-footer__edit-btn\"\n },\n list: JSON.parse(JSON.stringify(listComponentCss)),\n panel: {\n withFrame: \"sps-panel--with-frame\",\n nested: \"sps-panel--nested\",\n expandableAnimating: \"\",\n header: \"sps-panel__header\",\n title: \"sps-title sps-panel__title\",\n titleBar: \"sd-action-title-bar sps-action-title-bar\",\n contentEnter: \"sps-panel__content--enter\",\n contentLeave: \"sps-panel__content--leave\",\n titleExpandable: \"sps-panel__title--expandable\",\n titleExpanded: \"sps-panel__title--expanded\",\n titleCollapsed: \"sps-panel__title--collapsed\",\n titleOnError: \"sps-panel__title--error\",\n description: \"sps-description sps-panel__description\",\n container: \"sps-panel sps-row__panel\",\n content: \"sps-panel__content\",\n icon: \"sps-panel__icon\",\n iconExpanded: \"sps-panel__icon--expanded\",\n footer: \"sps-panel__footer\",\n requiredMark: \"sps-panel__required-text\",\n collapsed: \"sps-panel--collapsed\",\n expanded: \"sps-panel--expanded\",\n },\n paneldynamic: {\n nested: \"\",\n mainRoot: \"sps-question sps-row__question\",\n root: \"sps-paneldynamic\",\n navigation: \"sps-paneldynamic__navigation\",\n title: \"sps-title sps-question__title\",\n button: \"sps-action-button sps-action-button--text\",\n buttonRemove: \"sps-action-button--danger\",\n buttonAdd: \"sps-paneldynamic__add-btn\",\n panelsContainer: \"\",\n panelWrapper: \"sps-paneldynamic__panel-wrapper\",\n panelWrapperList: \"\",\n progressTop: \"sps-paneldynamic__progress sps-paneldynamic__progress--top\",\n progressBottom:\n \"sps-paneldynamic__progress sps-paneldynamic__progress--bottom\",\n buttonPrev: \"sps-paneldynamic__prev-btn\",\n buttonNext: \"sps-paneldynamic__next-btn\",\n progressContainer: \"sps-paneldynamic__progress-container\",\n progress: \"sps-progress\",\n progressBar: \"sps-progress__bar\",\n progressText: \"sps-paneldynamic__progress-text\",\n panelFooter: \"sps-panel__footer\",\n separator: \"sps-paneldynamic__separator\",\n footer: \"sps-paneldynamic__footer\",\n footerButtonsContainer: \"sps-paneldynamic__buttons-container\",\n },\n progress: \"sps-progress sps-body__progress\",\n progressBar: \"sps-progress__bar\",\n progressText: \"sps-progress__text\",\n progressTextInBar: \"sps-hidden\",\n page: {\n root: \"sps-page sps-body__page\",\n title: \"sps-title sps-page__title\",\n description: \"sps-description sps-page__description\"\n },\n pageTitle: \"sps-title sps-page__title\",\n pageDescription: \"sps-description sps-page__description\",\n row: \"sps-row sps-clearfix\",\n rowEnter: \"sps-row--enter\",\n rowLeave: \"sps-row--leave\",\n rowDelayedEnter: \"sps-row--delayed-fade-in\",\n rowMultiple: \"sps-row--multiple\",\n question: {\n withFrame: \"sps-question--with-frame\",\n nested: \"sps-question--nested\",\n mainRoot: \"sps-question sps-row__question\",\n flowRoot: \"sps-question sps-row__question sps-row__question--flow\",\n asCell: \"sps-table__cell\",\n header: \"sps-question__header\",\n headerLeft: \"sps-question__header--location--left\",\n headerTop: \"sps-question__header--location--top\",\n headerBottom: \"sps-question__header--location--bottom\",\n content: \"sps-question__content\",\n contentLeft: \"sps-question__content--left\",\n titleLeftRoot: \"sps-question--location--left\",\n titleOnAnswer: \"sps-question__title--answer\",\n titleOnError: \"sps-question__title--error\",\n title: \"sps-title sps-question__title\",\n titleBar: \"sd-action-title-bar sps-action-title-bar\",\n requiredMark: \"sps-question__required-text\",\n number: \"sps-question__num\",\n description: \"sps-description sps-question__description\",\n descriptionUnderInput: \"sps-question__description--under\",\n comment: \"sps-comment\",\n required: \"sps-question--required\",\n titleRequired: \"sps-question__title--required\",\n indent: 0,\n footer: \"sps-question__footer\",\n formGroup: \"sps-question__form-group\",\n hasError: \"\",\n readOnly: \"sd-question--readonly sps-question--disabled\",\n confirmDialog: \"sps-popup--confirm sv-popup--confirm svc-creator-popup\",\n errorsContainerBottom: \"sps-question__erbox--below-question\",\n },\n checkbox: {\n root: \"sps-selectbase\",\n item: \"sps-item sps-checkbox sps-selectbase__item\",\n itemSelectAll: \"sps-checkbox--selectall\",\n itemNone: \"sps-checkbox--none\",\n itemReadOnly: \"sps-item--disabled sps-checkbox--disabled\",\n itemChecked: \"sps-checkbox--checked\",\n itemHover: \"sps-checkbox--allowhover\",\n itemInline: \"sps-selectbase__item--inline\",\n label: \"sps-selectbase__label\",\n // label: \"sps-checkbox\",\n itemSvgIconId: \"#icon-check-16x16\",\n labelChecked: \"\",\n //itemControl: \"sps-visuallyhidden sps-item__control\",\n itemControl: \"sps-checkbox__control\",\n itemDecorator: \"sps-checkbox__svg\",\n //itemDecorator: \"sps-checkbox__hidden\",\n //controlLabel: \"sps-item__control-label\",\n controlLabel: \"sps-checkbox__caption\",\n materialDecorator: \"sps-checkbox__rectangle\",\n //materialDecorator: \"sps-item__decorator sps-checkbox__decorator\",\n other: \"sps-comment sps-question__other\",\n column: \"sps-selectbase__column\"\n },\n radiogroup: {\n root: \"sps-selectbase\",\n item: \"sps-item sps-radio sps-selectbase__item\",\n itemInline: \"sps-selectbase__item--inline\",\n label: \"sps-selectbase__label\",\n labelChecked: \"\",\n itemReadOnly: \"sps-item--disabled sps-radio--disabled\",\n itemChecked: \"sps-radio--checked\",\n itemHover: \"sps-radio--allowhover\",\n itemControl: \"sps-visuallyhidden sps-item__control\",\n itemDecorator: \"sps-item__svg sps-radio__svg\",\n controlLabel: \"sps-item__control-label\",\n materialDecorator: \"sps-item__decorator sps-radio__decorator\",\n other: \"sps-comment sps-question__other\",\n clearButton: \"sps-btn sps-selectbase__clear-btn\",\n column: \"sps-selectbase__column\"\n },\n boolean: {\n mainRoot: \"sps-question sps-row__question sps-question--boolean\",\n rootCheckbox: \"sps-selectbase\",\n checkboxItem: \"sps-checkbox\",\n checkboxItemChecked: \"sps-checkbox--checked\",\n checkboxitemIndeterminate: \"sps-checkbox--indeterminate\",\n checkboxItemReadOnly: \"sps-checkbox--disabled\",\n svgIconId: \"#icon-v2check\",\n checkboxLabel: \"sps-selectbase__label\",\n controlCheckbox: \"sps-checkbox__control\",\n checkboxControlLabel: \"sps-checkbox__caption\",\n checkboxItemDecorator: \"sps-checkbox__svg\",\n checkboxMaterialDecorator: \"sps-checkbox__rectangle\"\n },\n text: {\n root: \"sps-input sps-text\",\n controlReadOnly: \"sps-input--readonly\",\n small: \"sps-row__question--small\",\n content: \"sps-question__content sps-text__content\",\n remainingCharacterCounter: \"sps-remaining-character-counter\",\n onError: \"sps-input--error\"\n },\n comment: {\n root: \"sps-input sps-comment\",\n content: \"sps-question__content sps-comment__content\",\n remainingCharacterCounter: \"sps-remaining-character-counter\",\n small: \"sps-row__question--small\",\n onError: \"sps-input--error\"\n },\n dropdown: {\n root: \"sps-selectbase\",\n popup: \"sps-dropdown-popup svc-creator-popup\",\n small: \"sps-row__question--small sd-row__question--small\",\n control: \"sps-input sps-dropdown\",\n controlEmpty: \"sps-dropdown--empty sd-dropdown--empty\",\n controlValue: \"sps-dropdown__value\",\n filterStringInput: \"sd-dropdown__filter-string-input sps-dropdown__filter-string-input\",\n other: \"sps-comment sps-question__other\",\n onError: \"sps-input--error\",\n selectWrapper: \"sv-dropdown_select-wrapper sps-dropdown_select-wrapper\",\n chevronButtonIconId: \"icon-chevron\",\n cleanButton: \"sps-dropdown__clean-button sps-input__edit-button\",\n controlReadOnly: \"sps-input--readonly sd-input--disabled sd-input--readonly\",\n hintPrefix: \"sps-dropdown__hint-prefix sd-dropdown__hint-prefix\",\n hintSuffix: \"sps-dropdown__hint-suffix sd-dropdown__hint-suffix\"\n },\n matrix: {\n tableWrapper: \"sps-matrix sps-table-wrapper\",\n root: \"sps-table\",\n rowError: \"sps-matrix__row--error\",\n cell: \"sps-table__cell sps-matrix__cell\",\n headerCell: \"sps-table__cell sps-table__cell--header\",\n label: \"sps-item sps-radio sps-matrix__label\",\n itemValue: \"sps-visuallyhidden sps-item__control sps-radio__control\",\n itemChecked: \"sps-radio--checked\",\n itemReadOnly: \"sps-item--disabled sps-radio--disabled\",\n itemHover: \"sps-radio--allowhover\",\n materialDecorator: \"sps-item__decorator sps-radio__decorator\",\n itemDecorator: \"sps-item__svg sps-radio__svg\",\n cellText: \"sps-matrix__text\",\n cellTextSelected: \"sps-matrix__text--checked\",\n cellTextReadOnly: \"sps-matrix__text--disabled\",\n },\n matrixdropdown: {\n tableWrapper: \"sps-table-wrapper\",\n root: \"sps-table\",\n cell: \"sps-table__cell\",\n headerCell: \"sps-table__cell sps-table__cell--header\",\n emptyCell: \"sps-table__cell--empty\",\n rowEnter: \"sps-table__row--enter\",\n rowLeave: \"sps-table__row--leave\",\n },\n matrixdynamic: {\n mainRoot: \"sps-question sps-question--matrixdynamic sd-element sd-question sd-row__question sd-element--complex sd-question--complex sd-question--table\",\n tableWrapper: \"sps-table-wrapper\",\n root: \"sps-table sps-matrixdynamic\",\n content: \"sps-matrixdynamic__content sps-text__content\",\n cell: \"sps-table__cell\",\n row: \"sps-table__row\",\n rowDisabled: \"sps-table__row-disabled\",\n rowReadOnly: \"sps-table__row-readonly\",\n headerCell: \"sps-table__cell sps-table__cell--header\",\n button: \"sps-btn\",\n detailRow: \"sps-table__row sps-table__row--detail\",\n detailButton: \"sps-table__cell--detail-button sps-action-button\",\n detailButtonExpanded: \"sps-table__cell--detail-button--expanded\",\n detailIcon: \"sps-detail-panel__icon sps-action-button__icon\",\n detailIconExpanded: \"sps-detail-panel__icon--expanded\",\n detailIconExpandedId: \"icon-collapse-24x24\",\n detailIconId: \"icon-expand-24x24\",\n detailPanelCell: \"sps-table__cell sps-table__cell--detail-panel\",\n actionsCell: \"sps-table__cell sps-table__cell--actions\",\n buttonAdd: \"sps-matrixdynamic__add-btn sps-action-button sps-action-button--large\",\n buttonRemove: \"sps-matrixdynamic__remove-btn\",\n iconAdd: \"\",\n iconRemove: \"xxx\",\n dragElementDecorator: \"sps-drag-element__svg\",\n iconDragElement: \"#icon-drag-24x24\",\n iconDrag: \"sps-matrixdynamic__drag-element\",\n footer: \"sps-matrixdynamic__footer\",\n dragDropGhostPositionTop: \"sps-matrixdynamic__drag-drop-ghost-position-top\",\n dragDropGhostPositionBottom: \"sps-matrixdynamic__drag-drop-ghost-position-bottom\",\n noRowsSection: \"sps-matrixdynamic__placeholder\",\n noRowsText: \"sps-matrixdynamic__placeholder-text\",\n cellQuestionWrapper: \"sps-table__question-wrapper\",\n draggedRow: \"sps-matrixdynamic__dragged-row\",\n emptyCell: \"sps-table__cell--empty\",\n rowEmpty: \"sps-table__row--empty\",\n rowEnter: \"sps-table__row--enter\",\n rowLeave: \"sps-table__row--leave\",\n },\n\n actionBar: {\n root: \"sps-action-bar\",\n item: \"sps-action-button\",\n itemPressed: \"sps-action-button--pressed\",\n itemAsIcon: \"sps-action-button--icon\",\n itemIcon: \"sps-action-button__icon\",\n itemTitle: \"sps-action-button__title\",\n }\n};\n","import { Helpers, MatrixDynamicRowModel, QuestionMatrixDynamicModel, SurveyModel, Action, IAction, SvgRegistry, settings, ComputedUpdater, PanelModel, IDialogOptions } from \"survey-core\";\nimport { CreatorPresetEditableBase } from \"./presets-editable-base\";\nimport { SurveyCreatorModel, SurveyHelper, getLocString } from \"survey-creator-core\";\nimport { presetsCss } from \"./presets-theme/presets\";\nexport class CreatorPresetEditableList extends CreatorPresetEditableBase {\n //private replaceNonLettersWithDash(inputString) {\n // return inputString?.replace(/[^a-zA-Z0-9]/g, \"-\");\n //}\n private defaultIcon = \"square-dashed-24x24\";\n protected get nameItems() { return this.path + \"_items\"; }\n protected get nameMatrix() { return this.fullPath + \"_matrix\"; }\n protected hasIcon(_: string) { return false; }\n public getMainElementNames() : any { return [this.nameItems]; }\n protected get iconList() { return Object.keys(SvgRegistry.icons).map(name => \"icon-\" + name); }\n protected getMatrixKeyColumnName(question: QuestionMatrixDynamicModel) : any { return \"name\"; }\n protected getDefaultItems(question?: QuestionMatrixDynamicModel) {\n return this.defaultItems;\n }\n protected getDefaultItem(question: QuestionMatrixDynamicModel, key: string) {\n const keyColumn = this.getMatrixKeyColumnName(question);\n return this.getDefaultItems(question).filter(i => i[keyColumn] == key)[0];\n }\n\n protected defaultItems: any;\n //private fillAutoName(question: QuestionMatrixDynamicModel, propName: string) {\n // question.value?.filter(v =>v.isDefault === false && !v[propName]).forEach(v => v[propName] = this.replaceNonLettersWithDash(v.title));\n //}\n\n protected updateOnValueChangedCore(model: SurveyModel, name: string): void {\n if (this.needToSetActions(name)) {\n const matrix = model.getQuestionByName(name) as QuestionMatrixDynamicModel;\n this.updateMatrixRowActions(model, matrix);\n }\n }\n\n protected updateMatrixRowActions(model: SurveyModel, matrix: QuestionMatrixDynamicModel) {\n matrix.renderedTable.rows.forEach(r => {\n if (!r.row) return;\n const iconActions = r.cells[1]?.item?.value.actions;\n this.updateRowActions(matrix, r.row as MatrixDynamicRowModel, iconActions);\n const actions = r.cells[r.cells.length - 1].item?.value.actions;\n this.updateRowActions(matrix, r.row as MatrixDynamicRowModel, actions);\n });\n }\n\n protected updateRowActions(question: QuestionMatrixDynamicModel, row: MatrixDynamicRowModel, actions: IAction[]) {\n if (!actions) return;\n const keyColumn = this.getMatrixKeyColumnName(question);\n if (!question.value) return;\n const rowData = question.value.filter(r => row.value?.[keyColumn] == r?.[keyColumn])[0];\n if (!rowData) return;\n actions.forEach(a => this.updateRowAction(question, row, rowData, keyColumn, a));\n }\n\n protected updateRowAction(question: QuestionMatrixDynamicModel, row: MatrixDynamicRowModel, rowData: any, keyColumn: string, action: IAction) {\n if (action.id == \"icon-action\") {\n action.iconName = rowData.iconName || this.defaultIcon;\n }\n if (action.id == \"reset-to-default\") {\n const defaultItem = this.getDefaultItem(question, rowData[keyColumn]);\n if (!defaultItem) return;\n const defaultData = {};\n Object.keys(rowData).forEach(key => defaultData[key] = defaultItem[key]);\n action.enabled = !Helpers.isTwoValueEquals(rowData, defaultData);\n }\n }\n\n protected createResetAction(model: SurveyModel, row: MatrixDynamicRowModel, action: (action: Action) => void): IAction {\n return {\n id: \"reset-to-default\",\n iconName: \"icon-reset\",\n tooltip: getLocString(\"presets.items.restoreToDefault\"),\n location: \"end\",\n visibleIndex: 15,\n action: action\n };\n }\n\n protected createEditAction(model: SurveyModel, creator: SurveyCreatorModel, question: QuestionMatrixDynamicModel, row: MatrixDynamicRowModel): IAction {\n return {\n id: \"edit-item\",\n iconName: \"icon-edit\",\n tooltip: getLocString(\"presets.items.edit\"),\n location: \"end\",\n visibleIndex: 13,\n action: () => { this.editItem(model, creator, question, row); }\n };\n }\n\n protected createIconAction(iconName: string, cssClass: string = \"sps-matrixdynamic__row-icon\"): IAction {\n return {\n id: \"icon-action\",\n iconName: iconName,\n innerCss: cssClass,\n location: \"start\",\n enabled: false\n };\n }\n\n protected setupStandardActions(actions: IAction[], question: QuestionMatrixDynamicModel, row: MatrixDynamicRowModel, allowExpand: boolean, isItemsMatrix: boolean): void {\n actions.forEach(a => {\n if (a.id == \"show-detail\") {\n a.location = \"end\";\n a.iconName = \"icon-expand-24x24\";\n a.title = <any>new ComputedUpdater(() => row.isDetailPanelShowing ? getLocString(\"presets.items.collapse\") : getLocString(\"presets.items.expand\"));\n a.tooltip = getLocString(\"presets.items.expand\");\n a.visibleIndex = 10;\n a.visible = allowExpand;\n }\n if (a.id == \"remove-row\") {\n a.visibleIndex = 20;\n a.component = \"sv-action-bar-item\";\n a.action = () => question.removeRowUI(row);\n a.iconName = isItemsMatrix ? \"icon-add_24x24\" : \"icon-remove_24x24\";\n a.tooltip = isItemsMatrix ? getLocString(\"presets.items.add\") : getLocString(\"presets.items.delete\");\n }\n });\n }\n\n protected editItem(model: SurveyModel, creator: SurveyCreatorModel, question: QuestionMatrixDynamicModel, row: MatrixDynamicRowModel, options?: {description: string, isNew: boolean}) {\n let survey: SurveyModel;\n let resetAction;\n const itemKey = this.getMatrixKeyColumnName(question);\n const resetActionParams = {\n id: \"reset-to-default\",\n title: getLocString(\"presets.editor.resetToDefault\"),\n css: \"sps-action--grow\",\n innerCss: \"sps-btn sps-btn--secondary-alert\",\n visibleIndex: 15,\n action: (a) => {\n const defaultItem = this.getDefaultItem(question, survey.getValue(itemKey));\n survey.data = defaultItem;\n resetAction.enabled = false;\n this.notifyCallback(getLocString(\"presets.editor.itemRestoredToDefault\"));\n }\n };\n resetAction = new Action(resetActionParams);\n survey = this.showDetailPanelInPopup(question, row, model.rootElement, { actions: [resetAction], title: options?.description, removeOnCancel: options?.isNew });\n resetAction.enabled = !Helpers.isTwoValueEquals(survey.data, this.getDefaultItem(question, survey.getValue(itemKey)));\n survey.onValueChanged.add(()=>resetAction.enabled = true);\n const keyQuestion = survey.getQuestionByName(itemKey);\n if (this.getDefaultItem(question, keyQuestion.value)) {\n keyQuestion.readOnly = true;\n }\n }\n\n private resetItem(model: SurveyModel, question: QuestionMatrixDynamicModel, row: MatrixDynamicRowModel) {\n const name = row.getValue(\"name\");\n const defaultItems = this.getDefaultItem(question, name);\n if (defaultItems) {\n const value = question.value;\n const itemRow = value.filter(v => v.name == name)[0];\n Object.keys(itemRow).forEach((key) => {\n itemRow[key] = defaultItems[key];\n });\n question.value = value;\n }\n this.notifyCallback(getLocString(\"presets.editor.itemRestoredToDefault\"));\n }\n protected restoreItems(questionItems: QuestionMatrixDynamicModel, questionHiddenItems: QuestionMatrixDynamicModel, rowIndex: number) {\n const rowData = questionHiddenItems.value[rowIndex];\n const value = questionItems.value ? [...questionItems.value] : [];\n value.push(rowData);\n questionItems.value = value;\n }\n\n protected getMatrix(model: SurveyModel): QuestionMatrixDynamicModel {\n return <QuestionMatrixDynamicModel>model.getQuestionByName(this.nameMatrix);\n }\n\n protected isItemsMatrix(name: string): boolean {\n return name === this.nameMatrix;\n }\n protected needToSetActions(name: string) {\n return this.isItemsMatrix(name);\n }\n protected onGetMatrixRowActionsCore(model: SurveyModel, creator: SurveyCreatorModel, options: any): void {\n if (this.needToSetActions(options.question.name)) {\n const question = options.question as QuestionMatrixDynamicModel;\n const allowExpand = question.detailElements.filter(e => e.visible).length > 0;\n if (this.hasIcon(options.question.name)) {\n const keyColumn = this.getMatrixKeyColumnName(options.question);\n const iconName = question.value?.filter(v => v[keyColumn] == options.row.getValue(keyColumn))[0]?.iconName || this.defaultIcon;\n options.actions.push(this.createIconAction(iconName));\n }\n const resetAction = this.createResetAction(model, options.row, (action: Action) => {\n this.resetItem(model, question, options.row);\n action.enabled = false;\n });\n options.actions.push(resetAction);\n options.actions.push(this.createEditAction(model, creator, question, options.row));\n\n this.setupStandardActions(options.actions, question, options.row, allowExpand, question.name == this.nameMatrix);\n this.updateRowActions(question, options.row, options.actions);\n }\n }\n public onMatrixRowDragOver(model: SurveyModel, creator: SurveyCreatorModel, options: any) {\n if (this.isItemsMatrix(options.fromMatrix.name) && this.isItemsMatrix(options.toMatrix.name)) {\n options.allow = true;\n }\n }\n public onMatrixRowRemoving(model: SurveyModel, creator: SurveyCreatorModel, options: any) {\n if (this.isItemsMatrix(options.question.name) && options.question.name != this.nameMatrix) {\n const rowData = options.question.value[options.rowIndex];\n const hiddenItems = this.getMatrix(model);\n const value = hiddenItems.value ? [...hiddenItems.value] : [];\n value.push(rowData);\n hiddenItems.value = value;\n }\n }\n\n protected getExistingKeys(model: SurveyModel, key: string) {\n const items = model.getQuestionByName(this.nameItems).value || [];\n const unsorted = model.getQuestionByName(this.nameMatrix).value || [];\n return [...items, ...unsorted];\n }\n\n protected getDefaultValueForRow(model: SurveyModel, question: QuestionMatrixDynamicModel, key: string) {\n return SurveyHelper.getNewName(this.getExistingKeys(model, key).map(i => i[key]).filter(v => !!v).map(r => ({ name: r })), key);\n }\n\n protected setDefaultValueForRow(model: SurveyModel, question: QuestionMatrixDynamicModel, row: MatrixDynamicRowModel) {\n const key = this.getMatrixKeyColumnName(question);\n const value = this.getDefaultValueForRow(model, question, key);\n row.getQuestionByName(key).value = value;\n row.getQuestionByName(\"title\").value = value;\n }\n public onMatrixRowAdded(model: SurveyModel, creator: SurveyCreatorModel, options: any) {\n if (this.isItemsMatrix(options.question.name)) {\n this.setDefaultValueForRow(model, options.question, options.row);\n this.editItem(model, creator, options.question, options.row, {\n description: getLocString(\"presets.items.newItem\") + \" \" + (options.question.data?.value?.title || this.getPageShortTitle(model)),\n isNew: true\n });\n }\n }\n public onMatrixCellValueChanged(model: SurveyModel, creator: SurveyCreatorModel, options: any) {\n if (this.needToSetActions(options.question.name)) {\n const renderedRow = options.question.renderedTable.rows.find(r => r.row == options.row);\n if (!renderedRow) return;\n const actions = renderedRow.cells[renderedRow.cells.length - 1].item.value.actions;\n if (!actions) return;\n this.updateRowActions(options.question, options.row, actions);\n }\n }\n protected showDetailPanelInPopup(matrix: QuestionMatrixDynamicModel, row: MatrixDynamicRowModel, rootElement: HTMLElement, options: {actions?: IAction[], title?: string, removeOnCancel?: boolean}) {\n const index = (matrix.visibleRows as any).findIndex(r => r === row);\n const data = matrix.value[index];\n const survey = new SurveyModel({ elements: matrix.toJSON().detailElements });\n survey.fitToContainer = false;\n survey.showNavigationButtons = false;\n survey.data = data;\n survey.css = presetsCss;\n survey.enterKeyAction = \"loseFocus\";\n survey.questionErrorLocation = \"bottom\";\n\n if (settings.showDialog) {\n const popupModel = settings.showDialog?.(<IDialogOptions>{\n componentName: \"survey\",\n data: { survey: survey, model: survey },\n onApply: () => {\n if (survey.validate()) {\n const newValue = [...matrix.value];\n const newData: any = { };\n survey.getAllQuestions().forEach(q => {\n if (q.visible) {\n newData[q.name] = survey.data[q.name];\n }\n });\n const newRowValue = { ...matrix.value[index], ...newData };\n newValue[index] = newRowValue;\n matrix.value = newValue;\n this.updateMatrixRowActions(matrix.survey as any, matrix);\n return true;\n } else {\n return false;\n }\n },\n onCancel: () => {\n if (options.removeOnCancel) {\n matrix.removeRowUI(row);\n }\n return true;\n },\n cssClass: \"sps-popup svc-property-editor svc-creator-popup\",\n title: options.title || getLocString(\"presets.editor.edit\"),\n displayMode: \"popup\"\n }, rootElement);\n if (survey.getAllQuestions().filter(q => !q.startWithNewLine).length > 0) {\n popupModel.width = \"100%\";\n }\n\n if (popupModel.footerToolbar) {\n const defaultActionBarCss = popupModel.footerToolbar.cssClasses;\n defaultActionBarCss.item = \"sps-btn\";\n popupModel.footerToolbar.cssClasses = defaultActionBarCss;\n popupModel.footerToolbar.getActionById(\"apply\").innerCss = \"sps-btn--primary-brand\";\n popupModel.footerToolbar.getActionById(\"cancel\").innerCss = \"sps-btn--secondary-brand\";\n\n if (options.actions) {\n popupModel.footerToolbar.actions.unshift(...options.actions);\n }\n }\n survey.getAllPanels().forEach(q => (q as PanelModel).visible = !(q as PanelModel).visible);\n survey.getAllQuestions().forEach(q => {\n q.visible = !q.visible;\n if (q.isRequired) {\n q.requiredErrorText = getLocString(\"presets.editor.required\");\n }\n });\n }\n return survey;\n }\n}\n","export var listComponentCss = {\n root: \"sps-list__container\",\n itemsContainer: \"sps-list\",\n itemsContainerFiltering: \"sps-list--filtering\",\n emptyContainer: \"sps-list__empty-container\",\n emptyText: \"sps-list__empty-text\",\n\n filter: \"sps-list__filter\",\n filterIcon: \"sps-list__filter-icon\",\n filterInput: \"sps-list__input\",\n searchClearButtonIcon: \"sps-list__filter-clear-button\",\n\n loadingIndicator: \"sps-list__loading-indicator\",\n item: \"sps-list__item\",\n itemSelected: \"sps-list__item--selected\",\n itemGroup: \"sps-list__item--group\",\n itemGroupSelected: \"sps-list__item--group-selected\",\n itemWithIcon: \"sps-list__item--with-icon\",\n itemDisabled: \"sps-list__item--disabled\",\n itemFocused: \"sps-list__item--focused\",\n itemHovered: \"sps-list__item--hovered\",\n itemTextWrap: \"sps-list__item-text--wrap\",\n itemIcon: \"sps-list__item-icon\",\n itemMarkerIcon: \"sps-list-item__marker-icon\",\n itemSeparator: \"sps-list__item-separator\",\n itemBody: \"sps-list__item-body\",\n};\n","import { Action, createDropdownActionModel, IAction, MatrixDynamicRowModel, PopupModel, QuestionMatrixDynamicModel, SurveyModel } from \"survey-core\";\nimport { SurveyCreatorModel, SurveyHelper, getLocString } from \"survey-creator-core\";\nimport { CreatorPresetEditableList } from \"./presets-editable-list\";\nimport { listComponentCss } from \"./presets-theme/list-theme\";\nexport class CreatorPresetEditableCaregorizedListConfigurator extends CreatorPresetEditableList {\n //private replaceNonLettersWithDash(inputString) {\n // return inputString?.replace(/[^a-zA-Z0-9]/g, \"-\");\n //}\n protected defaultCategories: any;\n protected get defaultCategoriesMap() {\n return this.defaultCategories.reduce((acc: any, i: any) => { acc[i.category] = i; return acc; }, {});\n }\n protected getDefaultItems(question?: QuestionMatrixDynamicModel) {\n return question?.name === this.nameCategories ? this.defaultCategories : this.defaultItems;\n }\n protected get nameInnerMatrix() { return \"items\"; }\n protected get nameCategories() { return this.fullPath + \"_categories\"; }\n public getMainElementNames() : any { return [this.nameCategories]; }\n protected getMatrixKeyColumnName(question: QuestionMatrixDynamicModel) : any {\n return question.name === this.nameCategories ? \"category\" : \"name\";\n }\n public get questionNames() {\n return [this.nameCategories];\n }\n\n protected setupCategoryActions(model: SurveyModel, creator: SurveyCreatorModel, question: QuestionMatrixDynamicModel, row: MatrixDynamicRowModel, actions: IAction[]): void {\n actions.forEach(a => {\n if (a.id == \"remove-row\") {\n a.iconName = \"icon-delete_24x24\";\n a.tooltip = getLocString(\"presets.items.delete\");\n a.innerCss = \"sps-action-button sps-action-button--icon sps-action-button--danger\";\n }\n if (a.id == \"reset-to-default\") {\n a.action = () => { this.resetCategory(model, row); };\n }\n });\n }\n\n protected ejectRowData(question: QuestionMatrixDynamicModel, row: MatrixDynamicRowModel, remove: boolean) {\n const value = question.value;\n const rowDataIndex = question.visibleRows.indexOf(row);\n const rowData = value[rowDataIndex];\n if (remove) {\n value.splice(rowDataIndex, 1);\n question.value = value;\n }\n return rowData;\n }\n\n private moveToCategory(model: SurveyModel, question: QuestionMatrixDynamicModel, row: MatrixDynamicRowModel, categoryName: string, remove = false) {\n const rowData = this.ejectRowData(question, row, remove);\n const categories = this.getQuestionCategories(model);\n const catValue = categories.value;\n const general = this.findOrCreateCategory(catValue, categoryName);\n general[this.nameInnerMatrix].push(rowData);\n categories.value = catValue;\n return (categories.visibleRows as any).find(r => r.getValue(\"category\") == categoryName) as MatrixDynamicRowModel;\n }\n\n protected itemMenuCategoriesEnabled(model: SurveyModel) {\n return true;\n }\n\n protected setSubitemsToAction(action: Action, items: Action[]) {\n action.setSubItems({ items: items, cssClasses: listComponentCss });\n action.markerIconName = \"icon-chevronright-24x24\";\n }\n\n protected getItemMenuActionsCore(model: SurveyModel, question: QuestionMatrixDynamicModel, row: MatrixDynamicRowModel) {\n const categoriesQuestion = this.getQuestionCategories(model);\n const categories = categoriesQuestion.value;\n const actions = [] as IAction[];\n const isUnsorted = question.name == this.nameMatrix;\n const hasCategories = this.itemMenuCategoriesEnabled(model);\n if (!isUnsorted) {\n actions.push(\n new Action({\n id: \"remove-from\",\n title: getLocString(\"presets.items.removeFrom\").replace(\"{0}\", question.title),\n action: () => {\n const rowDataIndex = question.visibleRows.indexOf(row);\n question.removeRow(rowDataIndex);\n }\n })\n );\n } else {\n if (hasCategories) {\n actions.push(new Action({\n id: \"move-to\",\n title: getLocString(\"presets.items.moveTo\"),\n css: \"sps-list__item--label\",\n enabled: false\n }));\n } else {\n actions.push(new Action({\n id: \"restore-item\",\n title: getLocString(\"presets.toolbox.addToToolbox\"),\n action: () => {\n const rowDataIndex = question.visibleRows.indexOf(row);\n question.removeRow(rowDataIndex);\n }\n }));\n }\n }\n\n if (!hasCategories) return actions;\n const currentCategory = categories.filter(c => c[this.nameInnerMatrix].filter(i => i.name == row.value?.name).length > 0)[0];\n const moveToCategories = categories.filter((i: any) => i.category != currentCategory?.category).map((i: any) => new Action({\n id: \"to-\" + i.category,\n title: i.title,\n action: () => {\n this.moveToCategory(model, question, row, i.category, true);\n }\n }));\n if (!isUnsorted) {\n actions.push(new Action({\n id: \"categories\",\n title: getLocString(\"presets.items.categoriesLabel\"),\n css: \"sps-list__item--label\",\n enabled: false,\n needSeparator: true\n }));\n const catGroup = new Action({\n id: \"move-to-categories\",\n title: getLocString(\"presets.items.moveToCategory\")\n });\n this.setSubitemsToAction(catGroup, moveToCategories);\n actions.push(catGroup);\n } else {\n actions.push(...moveToCategories);\n }\n\n actions.push(\n new Action({\n id: \"move-to-new-category\",\n title: getLocString(\"presets.items.moveToNewCategory\"),\n needSeparator: isUnsorted,\n action: () => {\n const newCatRow = this.moveToCategory(model, question, row, this.getDefaultValueForRow(model, question, \"category\"), true);\n this.editItem(model, null, categoriesQuestion, newCatRow, {\n description: getLocString(\"presets.items.newCategory\") + \" \" + this.getPageShortTitle(model),\n isNew: true\n });\n }\n }));\n\n return actions;\n }\n\n protected getItemMenuActions(model: SurveyModel, question: QuestionMatrixDynamicModel, row: MatrixDynamicRowModel) {\n const actions = this.getItemMenuActionsCore(model, question, row);\n if (!this.getDefaultItem(question, row.value.name)) {\n actions.push(\n new Action({\n id: \"remove-custom-item\",\n title: getLocString(\"presets.toolbox.deleteCustomItem\"),\n css: \"sps-list__item--alert\",\n needSeparator: true,\n action: () => {\n this.ejectRowData(question, row, true);\n }\n })\n );\n }\n return actions;\n }\n\n protected replaceRemoveAction(model: SurveyModel, question: QuestionMatrixDynamicModel, row: MatrixDynamicRowModel, actions: IAction[]): void {\n const originalAction = actions.filter(a => a.id == \"remove-row\")[0];\n if (originalAction) {\n originalAction.visible = false;\n\n const addAction = createDropdownActionModel({\n id: \"context-menu\",\n iconName: \"more-circle-24x24\",\n tooltip: getLocString(\"presets.items.more\"),\n location: \"end\",\n visibleIndex: 20\n }, {\n items: [],\n showPointer: false,\n verticalPosition: \"bottom\",\n horizontalPosition: \"center\",\n cssClass: \"sps-popup-menu sps-popup-menu--context\",\n cssClasses: listComponentCss,\n searchEnabled: false\n });\n addAction.popupModel.onVisibilityChanged.add((_: PopupModel, opt: { model: PopupModel, isVisible: boolean }) => {\n if (opt.isVisible) {\n const listModel = opt.model.contentComponentData.model;\n listModel.actions = this.getItemMenuActions(model, question, row);\n listModel.flushUpdates();\n }\n });\n actions.push(addAction);\n }\n }\n\n protected getQuestionCategories(model: SurveyModel): QuestionMatrixDynamicModel { return <QuestionMatrixDynamicModel>model.getQuestionByName(this.nameCategories); }\n\n protected isItemsMatrix(name: string): boolean {\n return super.isItemsMatrix(name) || name === this.nameInnerMatrix;\n }\n private resetCategory(model: SurveyModel, row: MatrixDynamicRowModel) {\n const category = row.getValue(\"category\");\n const defaultItems = this.defaultCategories.filter(i => i.category == category)[0]?.[this.nameInnerMatrix];\n if (!defaultItems) return;\n const categoriesQuestion = this.getQuestionCategories(model);\n const hiddenItemsQuestion = this.getMatrix(model);\n const hiddenValue = hiddenItemsQuestion.value || [];\n const value = categoriesQuestion.value;\n const categoryRow = value.filter(v => v.category == category)[0];\n categoryRow[this.nameInnerMatrix].forEach(i => {\n if (!defaultItems.some(di => di.name == i.name)) {\n hiddenValue.push(i);\n }\n });\n categoryRow[this.nameInnerMatrix] = defaultItems;\n function clearItemFromDefault(items: any) {\n if (!items) return;\n defaultItems.forEach(di => {\n const index = items.findIndex(i => i.name == di.name);\n if (index >= 0) items.splice(index, 1);\n });\n }\n value.filter(v => v.category != category).forEach(v => {\n defaultItems.forEach(di => {\n clearItemFromDefault(v[this.nameInnerMatrix]);\n });\n });\n clearItemFromDefault(hiddenValue);\n\n hiddenItemsQuestion.value = hiddenValue;\n categoriesQuestion.value = value;\n this.notifyCallback(getLocString(\"presets.editor.categoryRestoredToDefault\"));\n }\n protected findOrCreateCategory(categories: any, category?: string) {\n let generalCategory = categories.filter(c => c.category == category)[0];\n if (!generalCategory) {\n generalCategory = { category: category || \"general\", title: category || \"General\", [this.nameInnerMatrix]: [] };\n categories.push(generalCategory);\n }\n return generalCategory;\n }\n protected needToSetActions(name: string) {\n return this.isItemsMatrix(name) || name === this.nameCategories;\n }\n protected onGetMatrixRowActionsCore(model: SurveyModel, creator: SurveyCreatorModel, options: any): void {\n super.onGetMatrixRowActionsCore(model, creator, options);\n if (options.question.name === this.nameCategories) {\n this.setupCategoryActions(model, creator, options.question, options.row, options.actions);\n }\n if (this.isItemsMatrix(options.question.name)) {\n this.replaceRemoveAction(model, options.question, options.row, options.actions);\n }\n }\n\n protected getExistingKeys(model: SurveyModel, key: string) {\n const cats = model.getQuestionByName(this.nameCategories).value || [];\n const unsorted = model.getQuestionByName(this.nameMatrix).value || [];\n return [...cats, ...cats.map(c => c.items).flat().filter(key => !!key), ...unsorted];\n }\n\n public onMatrixRowRemoving(model: SurveyModel, creator: SurveyCreatorModel, options: any) {\n super.onMatrixRowRemoving(model, creator, options);\n if (options.question.name == this.nameCategories) {\n const items = options.question.value[options.rowIndex][this.nameInnerMatrix];\n if (items) {\n const hiddenItems = this.getMatrix(model);\n const value = hiddenItems.value ? hiddenItems.value.concat(items) : items;\n hiddenItems.value = value;\n }\n }\n if (options.question.name == this.nameMatrix) {\n const rowData = options.question.value[options.rowIndex];\n const defaultCategory = this.defaultCategories.filter(c => c[this.nameInnerMatrix].filter(i => i.name == rowData.name).length > 0)[0];\n this.moveToCategory(model, options.question, options.row, defaultCategory?.category);\n }\n }\n public onMatrixRowAdded(model: SurveyModel, creator: SurveyCreatorModel, options: any) {\n super.onMatrixRowAdded(model, creator, options);\n if (options.question.name == this.nameCategories) {\n this.setDefaultValueForRow(model, options.question, options.row);\n this.editItem(model, creator, options.question, options.row, {\n description: getLocString(\"presets.items.newCategory\") + \" \" + this.getPageShortTitle(model),\n isNew: true\n });\n }\n }\n}\n\n","import { Action, FunctionFactory, Helpers, IAction, MatrixDynamicRowModel, QuestionMatrixDynamicModel, Serializer, SurveyModel } from \"survey-core\";\nimport { CreatorPresetEditableBase, ICreatorPresetEditorSetup } from \"./presets-editable-base\";\nimport { QuestionToolboxCategory, QuestionToolboxItem, SurveyCreatorModel, editorLocalization, getLocString } from \"survey-creator-core\";\nimport { ICreatorPresetToolboxItem } from \"survey-creator-core\";\nimport { CreatorPresetEditableCaregorizedListConfigurator } from \"./presets-editable-categorized\";\nimport { listComponentCss } from \"./presets-theme/list-theme\";\n\nconst LocCategoriesName = \"toolboxCategories\";\n\nfunction validateToolboxJson (params) {\n const value = params[0];\n if (!value || !value.type) return true;\n const obj = Serializer.createClass(value.type, value);\n return !!obj;\n}\nFunctionFactory.Instance.register(\"validateToolboxJson\", validateToolboxJson);\nexport class CreatorPresetEditableToolboxConfigurator extends CreatorPresetEditableCaregorizedListConfigurator {\n private allItems: ICreatorPresetToolboxItem[];\n protected defaultSubitems: any;\n private createItemsMatrixJSON(props: any, addSubitems: boolean): any {\n const defaultJSON = {\n type: \"matrixdynamic\",\n name: \"items\",\n title: \"Toolbox\",\n allowRowReorder: true,\n cellType: \"text\",\n showHeader: false,\n rowCount: 0,\n allowAddRows: false,\n addRowButtonLocation: \"top\",\n columns: [\n {\n \"name\": \"name\",\n visible: false\n },\n {\n \"name\": \"title\"\n }\n ],\n detailPanelMode: \"underRow\",\n detailElements: [\n {\n \"type\": \"panel\",\n \"name\": \"details\",\n \"maxWidth\": \"30%\",\n \"elements\": [\n { type: \"text\", name: \"name\", title: getLocString(\"presets.toolbox.categoryName\"), isUnique: true, visible: false, isRequired: true },\n { type: \"text\", name: \"title\", title: getLocString(\"presets.toolbox.categoryTitle\"), visible: false },\n { type: \"dropdown\", name: \"iconName\", title: getLocString(\"presets.toolbox.iconName\"), itemComponent: \"svc-presets-icon-item\", \"allowCustomChoices\": true, choices: this.iconList, visible: false },\n { type: \"text\", name: \"tooltip\", title: getLocString(\"presets.toolbox.tooltip\"), visible: false },\n ],\n visible: false\n },\n {\n type: \"presetjson\",\n name: \"json\",\n startWithNewLine: false,\n renderAs: \"default-comment\",\n title: getLocString(\"presets.toolbox.jsonObject\"),\n validators: [{\n type: \"expression\",\n text: \"JSON should be correct\",\n expression: \"validateToolboxJson({json})\"\n }],\n visible: false\n }\n ]\n };\n const newJson = { ...defaultJSON, ...props };\n if (addSubitems) {\n newJson.detailElements.push(this.createItemsMatrixJSON({\n allowAddRows: true,\n addRowText: getLocString(\"presets.toolbox.addNewSubitem\"),\n addRowButtonLocation: \"bottom\",\n name: this.nameSubitems,\n valueName: \"subitems\",\n titleLocation: \"hidden\",\n startWithNewLine: false\n }, false));\n }\n return newJson;\n }\n\n public createMainPageCore(): any {\n return {\n title: getLocString(\"presets.toolbox.title\"),\n description: getLocString(\"presets.toolbox.description\"),\n navigationTitle: getLocString(\"presets.toolbox.navigationTitle\"),\n elements: [\n {\n type: \"panel\",\n name: this.mainPanelName,\n elements: [\n {\n type: \"matrixdynamic\",\n name: this.nameCategories,\n title: getLocString(\"presets.toolbox.toolbox\"),\n visibleIf: this.getTextVisibleIf(this.nameCategoriesMode, \"categories\"),\n allowRowReorder: true,\n allowAddRows: true,\n addRowButtonLocation: \"top\",\n noRowsText: getLocString(\"presets.toolbox.noCategoriesText\"),\n addRowText: getLocString(\"presets.toolbox.addCustomCategory\"),\n showHeader: false,\n columns: [\n { cellType: \"text\", name: \"category\", isUnique: true, isRequired: true, visible: false },\n { cellType: \"text\", name: \"title\" }\n ],\n detailPanelMode: \"underRow\",\n detailElements: [\n { type: \"text\", name: \"category\", title: getLocString(\"presets.toolbox.categoryName\"), isRequired: true, visible: false },\n { type: \"text\", name: \"title\", title: getLocString(\"presets.toolbox.categoryTitle\"), visible: false },\n { type: \"text\", name: \"tooltip\", title: getLocString(\"presets.toolbox.tooltip\"), visible: false },\n this.createItemsMatrixJSON({\n name: this.nameInnerMatrix,\n titleLocation: \"hidden\",\n allowAddRows: true,\n addRowButtonLocation: \"bottom\",\n noRowsText: getLocString(\"presets.toolbox.noItemsText\"),\n addRowText: getLocString(\"presets.toolbox.addNewItem\"),\n valueName: \"items\"\n }, true)\n ]\n },\n this.createItemsMatrixJSON({\n name: this.nameItems,\n title: getLocString(\"presets.toolbox.toolbox\"),\n addRowButtonLocation: \"top\",\n noRowsText: getLocString(\"presets.toolbox.noItemsText\"),\n addRowText: getLocString(\"presets.toolbox.addCustomItem\"),\n startWithNewLine: false,\n visibleIf: this.getTextVisibleIf(this.nameCategoriesMode, \"items\"),\n }, true),\n this.createItemsMatrixJSON({\n allowAddRows: true,\n title: getLocString(\"presets.toolbox.hiddenItems\"),\n noRowsText: getLocString(\"presets.toolbox.noHiddenItemsText\"),\n descriptionLocation: \"underInput\",\n addRowButtonLocation: \"bottom\",\n addRowText: getLocString(\"presets.toolbox.addNewItem\"),\n startWithNewLine: false,\n name: this.nameMatrix\n }, true)]\n },\n {\n type: \"panel\",\n title: \" \",\n name: this.navigationPanelName,\n elements: [\n {\n type: \"boolean\",\n name: this.nameCategoriesMode,\n title: getLocString(\"presets.toolbox.enableGrouping\"),\n titleLocation: \"hidden\",\n defaultValue: \"categories\",\n valueTrue: \"categories\",\n valueFalse: \"items\",\n clearIfInvisible: \"onHidden\",\n renderAs: \"switch\"\n },\n {\n type: \"boolean\",\n name: this.nameShowCategoryTitles,\n title: getLocString(\"presets.toolbox.showCategoryTitles\"),\n defaultValue: false,\n useTitleAsLabel: true,\n visibleIf: this.getTextVisibleIf(this.nameCategoriesMode, \"categories\"),\n clearIfInvisible: \"onHidden\",\n renderAs: \"switch\"\n }\n ]\n }\n ]\n };\n }\n public get nameCategoriesMode() { return this.fullPath + \"_mode\"; }\n protected get nameItems() { return this.fullPath + \"_items\"; }\n protected get nameSubitems() { return \"subitems\"; }\n protected get nameShowCategoryTitles() { return this.fullPath + \"_showCategoryTitles\"; }\n public get questionNames() {\n return [this.nameCategories, this.nameItems, this.nameMatrix, this.nameShowCategoryTitles, this.nameCategoriesMode];\n }\n protected hasIcon(name: string) { return name !== this.nameCategories && name !== this.nameSubitems; }\n\n protected getDefaultItems(question?: QuestionMatrixDynamicModel) {\n return question?.name === this.nameCategories ? this.defaultCategories : [...this.defaultItems, ...this.defaultSubitems];\n }\n\n protected updateRowAction(question: QuestionMatrixDynamicModel, row: MatrixDynamicRowModel, rowData: any, keyColumn: string, action: IAction) {\n super.updateRowAction(question, row, rowData, keyColumn, action);\n if (action.id == \"show-detail\" && question.name != this.nameCategories) {\n action.visible = row.isDetailPanelShowing || !!rowData.subitems;\n }\n }\n\n private findItem(value: any, itemName: string, hasCategories: boolean) {\n return hasCategories ?\n value.map(c => c.items.filter(i => i.name == itemName)[0]).filter(i => !!i)[0] :\n value.filter(i => i.name == itemName)[0];\n }\n\n private moveToSubitems(model: SurveyModel, question: QuestionMatrixDynamicModel, row: MatrixDynamicRowModel, itemName: string, remove = false) {\n const rowData = this.ejectRowData(question, row, remove);\n const hasCategories = this.itemMenuCategoriesEnabled(model);\n const destination = hasCategories ? this.getQuestionCategories(model) : this.getQuestionItems(model);\n const destValue = JSON.parse(JSON.stringify(destination.value));\n const item = this.findItem(destValue, itemName, hasCategories);\n if (item) {\n if (!item.subitems) item.subitems = [];\n item.subitems.push(rowData);\n }\n destination.value = destValue;\n }\n\n protected getExistingKeys(model: SurveyModel, key: string) {\n const superItems = super.getExistingKeys(model, key);\n const items = model.getQuestionByName(this.nameItems).value || [];\n const rows = [...superItems, ...items];\n const subitems = (rows.map(r => r.subitems || []) as any).flat();\n return [...rows, ...subitems];\n }\n\n protected itemMenuCategoriesEnabled(model: SurveyModel) {\n return model.getValue(this.nameCategoriesMode) !== \"items\";\n }\n\n protected getItemMenuActionsCore(model: SurveyModel, question: QuestionMatrixDynamicModel, row: MatrixDynamicRowModel) {\n const categories = this.getQuestionCategories(model).value;\n const actions = super.getItemMenuActionsCore(model, question, row);\n const hasCategories = this.itemMenuCategoriesEnabled(model);\n const catActions = categories.map((c: any) => {\n const catAction = new Action({\n id: \"tosubitemcategory-\" + c.category,\n title: c.title\n });\n if (c.items) {\n const itemsActions = c.items.filter((i: any) => i.name != row.value?.name).map((i: any) => new Action({\n id: \"tosubitem-\" + i.name,\n title: i.title,\n action: () => {\n this.moveToSubitems(model, question, row, i.name, true);\n }\n }));\n this.setSubitemsToAction(catAction, itemsActions);\n }\n return catAction;\n }\n );\n const subItems = hasCategories ? catActions : catActions.map(a => a.items).flat();\n const rowDataIndex = question.visibleRows.indexOf(row);\n const rowData = question.value[rowDataIndex];\n if (!rowData[\"subitems\"]) {\n if (question.name == this.nameItems || question.name == this.nameInnerMatrix) {\n actions.push(new Action({\n id: \"subcategories\",\n title: getLocString(\"presets.toolbox.subitems\"),\n css: \"sps-list__item--label\",\n enabled: false,\n needSeparator: true\n }));\n actions.push(new Action({\n id: \"convert-to-subcategory\",\n title: getLocString(\"presets.toolbox.enableSubitems\"),\n action: () => {\n const destination = hasCategories ? this.getQuestionCategories(model) : this.getQuestionItems(model);\n const destValue = JSON.parse(JSON.stringify(destination.value));\n const item = this.findItem(destValue, rowData.name, hasCategories);\n if (item) {\n item.subitems = [];\n }\n destination.value = destValue;\n this.updateMatrixRowActions(model, question);\n row.showDetailPanel();\n }\n }));\n }\n const subitemsAction = new Action({\n id: \"move-as-subitem\",\n title: getLocString(\"presets.toolbox.moveAsSubitem\"),\n needSeparator: true\n });\n this.setSubitemsToAction(subitemsAction, subItems);\n actions.push(subitemsAction);\n }\n\n return actions;\n }\n\n public getJsonValueCore(model: SurveyModel, creator: SurveyCreatorModel, defaultJson: any): any {\n const res: any = {};\n const definition = this.getJsonItemsDefinition(model);\n if (definition) {\n res.definition = definition;\n }\n const mode = model.getValue(this.nameCategoriesMode);\n const toolbox = creator.toolbox;\n const toolboxCategories = defaultJson?.categories;\n if (mode === \"categories\") {\n const categories = this.getCategoriesJson(model);\n if (Array.isArray(categories) && categories.length > 0 && (!this.isCategoriesSame(categories, toolboxCategories))) {\n res.categories = this.getCategoriesJson(model);\n }\n } else {\n res.categories = [];\n }\n if (model.getValue(this.nameShowCategoryTitles)) {\n res.showCategoryTitles = true;\n }\n return Object.keys(res).length > 0 ? res : undefined;\n }\n protected getDefaultJsonValueCore(creator: SurveyCreatorModel): any {\n return {\n categories: creator.toolbox.categories.map(c => ({ category: c.name, title: c.title, items: c.items.map(i => i.name) }))\n };\n }\n private isCategoriesSame(categories: any, toolboxCategories: any): boolean {\n if (categories.length !== toolboxCategories.length) return false;\n for (let i = 0; i < categories.length; i++) {\n if (categories[i].category !== toolboxCategories[i].category) return false;\n //if (categories[i].title !== toolboxCategories[i].title) return false;\n const toolboxItems = toolboxCategories[i].items;\n const categoryItems = categories[i].items;\n if (!Helpers.isTwoValueEquals(categoryItems, toolboxItems)) return false;\n }\n return true;\n }\n\n private getCategoriesJson(model: SurveyModel): any {\n const categories = model.getValue(this.nameCategories);\n if (!Array.isArray(categories)) return undefined;\n return categories.map(c => ({ category: c.category, items: c.items?.map(i => i.name) }));\n }\n private cleanIfNotDiffers(item, defaultItem) {\n if (!defaultItem) return true;\n let differs = false;\n Object.keys({ ...item, ...defaultItem }).forEach(key => {\n if (!Helpers.isTwoValueEquals(item[key], defaultItem[key])) {\n differs = true;\n return;\n }\n if (key !== \"name\") delete item[key];\n });\n return differs;\n }\n private getJsonItemsDefinition(model: SurveyModel): any {\n const mode = model.getValue(this.nameCategoriesMode);\n const itemsRaw = (mode === \"items\") ? model.getValue(this.nameItems) : (model.getValue(this.nameCategories) || []).map(c => c.items).flat();\n const items = (itemsRaw || []).map(i => ({ ...i }));\n let differs = false;\n items.forEach(item => {\n const defaultItem = this.defaultItems.filter(i => i.name == item.name)[0];\n if (!item.subitems && defaultItem?.subitems) item.subitems = [];\n if (this.cleanIfNotDiffers(item, defaultItem)) differs = true;\n });\n if (!differs && !Helpers.isTwoValueEquals(items.map(i=>i.name), this.defaultItems.map(i=>i.name))) differs = true;\n return differs ? items : undefined;\n }\n protected isItemsMatrix(name: string): boolean {\n return name === this.nameItems || name === this.nameSubitems || super.isItemsMatrix(name);\n }\n public onMatrixRowRemoving(model: SurveyModel, creator: SurveyCreatorModel, options: any) {\n if (options.question.name == this.nameMatrix) {\n const mode = model.getValue(this.nameCategoriesMode);\n if (mode === \"items\") {\n this.restoreItems(this.getQuestionItems(model), options.question, options.rowIndex);\n }\n }\n super.onMatrixRowRemoving(model, creator, options);\n }\n\n protected setupOnCurrentPageCore(model: SurveyModel, creator: SurveyCreatorModel, active: boolean): void {\n creator.toolbox.forceCompact = !active;\n creator.toolbox.isCompact = !active;\n if (creator.readOnly != active) {\n creator.setPropertyValue(\"readOnly\", active);\n }\n creator.toolbox.items.forEach(i => i.enabled = active);\n creator.toolbox.enabled = active;\n }\n\n protected setupQuestionsCore(model: SurveyModel, creatorSetup: ICreatorPresetEditorSetup): void {\n super.setupQuestionsCore(model, creatorSetup);\n this.setupDefaults(model, creatorSetup.creator);\n }\n private setupDefaults(model: SurveyModel, creator: SurveyCreatorModel): void {\n const toolboxDefaultItems = creator.toolbox.getDefaultItems([], true, true, true);\n const toolboxDefaultCategories = creator.toolbox.getDefaultCategories();\n this.defaultItems = toolboxDefaultItems.map(i => this.createToolboxItemRow(i));\n this.defaultSubitems = [];\n toolboxDefaultItems.forEach(i => {\n if (i.items) {\n this.defaultSubitems.push(...i.items.map(si => this.createToolboxItemRow(si)));\n }\n });\n this.defaultCategories = toolboxDefaultCategories.map(i => this.createToolboxCategoryRow(i));\n }\n // private isItemValuesEqual(a: Array<ICreatorPresetToolboxItem>, b: Array<ICreatorPresetToolboxItem>): boolean {\n // if (!a || !b || a.length !== b.length) return false;\n // for (let i = 0; i < a.length; i++) {\n // if (a[i].name !== b[i].name || a[i].title !== b[i].title) return false;\n // }\n // return true;\n // }\n // private updateRankingLocalizationName(question: QuestionMatrixDynamicModel): void {\n // question.choices.forEach(item => {\n // item.locText.localizationName = \"qt.\" + item.value;\n // });\n // }\n protected setupQuestionsValueCore(model: SurveyModel, json: any, creator: SurveyCreatorModel): void {\n //this.setupQuestionsValueDefinition(model, json);\n const defaultItemsMap = this.defaultItems.reduce((acc: any, i: any) => { acc[i.name] = i; return acc; }, {});\n const defaultCategoriesMap = this.defaultCategoriesMap;\n\n this.defaultItems.filter(i => i.subitems).map(i => i.subitems.forEach(si => defaultItemsMap[si.name] = si));\n\n json = json || {};\n let itemsDefinition = (json[\"definition\"] || []).map(i => typeof i === \"string\" ? { name: i } : i);\n let categoriesDefinition = json[\"categories\"] || [];\n if (itemsDefinition.length === 0) {\n itemsDefinition = this.defaultItems;\n } else {\n itemsDefinition = itemsDefinition.map(i => ({ ...(defaultItemsMap[i.name] || {}), ...i }));\n }\n const itemsMap: any = {};\n itemsDefinition.forEach((i: any) => itemsMap[i.name] = { ...i, subitems: i.subitems && i.subitems.map(si => ({ ...(defaultItemsMap[si.name] || {}), ...si })) });\n if (categoriesDefinition.length === 0) {\n categoriesDefinition = this.defaultCategories;\n } else {\n categoriesDefinition = categoriesDefinition.map(c => ({\n ...defaultCategoriesMap[c.category],\n ...c,\n ...{ items: c.items.map(i => itemsMap[i]).filter(i => !!i) } }));\n }\n\n //categories.filter((c: any) => c.properties).forEach((c: any) => c.properties.forEach((p: any) => delete itemsMap[p.name]));\n //Object.keys(itemsMap).map(key => itemsMap[key]);\n categoriesDefinition.filter((c: any) => c.items).forEach((c: any) => c.items.forEach((p: any) => delete defaultItemsMap[p.name]));\n const hiddenItems = this.defaultItems.filter(t => defaultItemsMap[t.name]);\n\n model.setValue(this.nameMatrix, hiddenItems);\n model.setValue(this.nameCategories, categoriesDefinition);\n this.updateItemsFromCategories(model);\n this.updateShowCategoriesTitlesElements(model);\n }\n protected onLocaleChangedCore(model: SurveyModel, json: any, creator: SurveyCreatorModel): void {\n this.setupDefaults(model, creator);\n this.setupQuestionsValueCore(model, json, creator);\n }\n // private setupQuestionsValueDefinition(model: SurveyModel, json: any): void {\n // json = json || {};\n // const question = this.getMatrix(model);\n // const value = [];\n // const definition = json.definition || [];\n // definition.forEach(item => {\n // const val = {};\n // for (let key in item) {\n // val[key] = key === \"json\" ? JSON.stringify(item[key], null, 2) : item[key];\n // }\n // value.push(val);\n // });\n // question.value = value;\n // }\n private updateItemsFromCategories(model: SurveyModel) {\n this.getQuestionItems(model).value = this.getQuestionCategories(model).value.map(r => [...(r.items || [])]).flat();\n }\n\n private updateCategoriesFromItems(model: SurveyModel) {\n const categories = this.getQuestionCategories(model).value;\n const items = [...this.getQuestionItems(model).value];\n const itemsObject = items.reduce((acc, item) => {\n acc[item.name] = item;\n return acc;\n }, {});\n categories.forEach(category => {\n category.items = category.items.map(item => {\n const res = itemsObject[item.name];\n delete itemsObject[item.name];\n return res;\n }).filter(i => !!i);\n });\n const unsortedNames = Object.keys(itemsObject);\n if (unsortedNames.length > 0) {\n let generalCategory = this.findOrCreateCategory(categories, \"general\");\n generalCategory.items = generalCategory.items.concat(unsortedNames.map(name => this.createToolboxItemRow(itemsObject[name])));\n }\n this.getQuestionCategories(model).value = categories;\n }\n protected updateOnValueChangedCore(model: SurveyModel, name: string): void {\n super.updateOnValueChangedCore(model, name);\n if (name === this.nameCategoriesMode) {\n if (model.getValue(this.nameCategoriesMode) == \"items\") {\n this.updateItemsFromCategories(model);\n } else {\n this.updateCategoriesFromItems(model);\n }\n }\n if (name === this.nameShowCategoryTitles) {\n this.updateShowCategoriesTitlesElements(model);\n }\n }\n private updateShowCategoriesTitlesElements(model: SurveyModel): void {\n const val = model.getValue(this.nameShowCategoryTitles) === true;\n const matrix = this.getQuestionCategories(model);\n matrix.visibleRows.forEach(row => {\n const category = row.getValue(\"category\");\n const defaultTitle = this.getCategoryTitle(category);\n if (!!defaultTitle) {\n row.getQuestionByName(\"category\").readOnly = true;\n }\n const titleQuestion = row.getQuestionByName(\"title\");\n if (titleQuestion.isEmpty()) {\n titleQuestion.value = defaultTitle;\n }\n });\n }\n private getCategoryTitle(name: string): string {\n return editorLocalization.getString(LocCategoriesName + \".\" + name);\n }\n protected setJsonLocalizationStringsCore(model: SurveyModel, locStrs: any): void {\n function updateTextFromQuestion(matrix: QuestionMatrixDynamicModel, locStrs: any) {\n if (!matrix) return;\n const rows = matrix.visibleRows;\n rows.forEach(r => {\n CreatorPresetEditableBase.updateModifiedText(locStrs, r.getValue(\"title\"), \"qt.\" + r.getValue(\"name\"));\n });\n\n }\n updateTextFromQuestion(this.getQuestionItems(model), locStrs);\n\n const matrix = this.getQuestionCategories(model);\n const defaultCategoriesMap = this.defaultCategoriesMap;\n if (matrix.isVisible) {\n matrix.visibleRows.forEach(row => {\n const category = row.getValue(\"category\");\n if (row.getValue(\"title\") !== defaultCategoriesMap[category]?.title) {\n if (!locStrs[LocCategoriesName]) {\n locStrs[LocCategoriesName] = {};\n }\n locStrs[LocCategoriesName][category] = row.getValue(\"title\");\n }\n updateTextFromQuestion(<QuestionMatrixDynamicModel>row.getQuestionByName(\"items\"), locStrs);\n });\n }\n }\n private getQuestionItems(model: SurveyModel): QuestionMatrixDynamicModel {\n return <QuestionMatrixDynamicModel>model.getQuestionByName(this.nameItems);\n }\n private createToolboxItemRow(item: QuestionToolboxItem): ICreatorPresetToolboxItem {\n const obj:ICreatorPresetToolboxItem = {\n name: item.name,\n title: item.title,\n iconName: item.iconName,\n tooltip: item.tooltip,\n json: item.json,\n subitems: item.items?.map(i => this.createToolboxItemRow(i))\n };\n\n for (const key in obj) {\n if (obj[key] === undefined) {\n delete obj[key];\n }\n }\n return obj;\n }\n private createToolboxCategoryRow(item: QuestionToolboxCategory) {\n const obj = {\n category: item.name,\n title: item.title,\n items: item.items?.map(i => this.createToolboxItemRow(i))\n };\n\n for (const key in obj) {\n if (obj[key] === undefined) {\n delete obj[key];\n }\n }\n return obj;\n }\n}","import {\n JsonObjectProperty, ItemValue, QuestionDropdownModel,\n Base, Serializer, SurveyModel, matrixDropdownColumnTypes\n} from \"survey-core\";\nimport { ICreatorPresetEditorSetup } from \"./presets-editable-base\";\nimport {\n SurveyCreatorModel, defaultPropertyGridDefinition, ISurveyPropertyGridDefinition, ISurveyPropertiesDefinition,\n SurveyQuestionProperties, editorLocalization, PropertyGridModel, getLocString,\n settings } from \"survey-creator-core\";\n\nimport { CreatorPresetEditableCaregorizedListConfigurator } from \"./presets-editable-categorized\";\n\n// private allTypes: string[];\n// protected setupQuestionsCore(model: SurveyModel, creatorSetup: ICreatorPresetEditorSetup): void {\n// this.allTypes = ElementFactory.Instance.getAllToolboxTypes();\n// model.onGetDynamicPanelTabTitle.add(this.onGetDynamicPanelTabTitle);\n// this.getPanel(model).panelCount = this.allTypes.length;\n// }\n// private get nameSelector() { return this.fullPath + \"_selector\"; }\n// private getSelector(model: SurveyModel): QuestionDropdownModel { return <QuestionDropdownModel>model.getQuestionByName(this.nameSelector); }\n\n// protected setupQuestionsValueCore(model: SurveyModel, json: any, creator: SurveyCreatorModel): void {\n// //this.setupQuestionsValueDefinition(model, json);\n// //this.isModified = !!json;\n// if (!json) {\n// json = this.copyJson(defaultPropertyGridDefinition);\n// }\n// const currentJson = json;\n// currentJson.autoGenerateProperties = false;\n// this.currentProperties = new SurveyQuestionPresetPropertiesDetail(this.currentClassName, this.currentJson);\n// this.propCreator.JSON = this.updateCreatorJSON(this.currentProperties.propertyGrid.survey.toJSON());\n// const categories = creator.toolbox.categories.map(c => ({ category: c.name, items: c.items.map(i => this.createPropertyGridItemRow(i)) }));\n// model.setValue(this.nameCategories, categories);\n// }\n// }\nconst LocCategoriesName = \"tabs\";\nexport class SurveyQuestionPresetProperties extends SurveyQuestionProperties {\n constructor(obj: any, className: string, propertyGridDefinition: ISurveyPropertyGridDefinition) {\n super(obj, null, className, null, null, null, propertyGridDefinition);\n }\n protected getIsPropertyVisible(prop: JsonObjectProperty): boolean {\n return prop.visible !== false;\n }\n}\n\nconst presetPropertiesBaseClasses = [\"question\", \"matrixdropdownbase\", \"selectbase\", \"panelbase\", \"matrixdropdowncolumn@default\", \"matrixdropdowncolumn@selectbase\"];\n\nexport class SurveyQuestionPresetPropertiesDetail {\n private propertiesHash = {};\n public classes = new Array<string>();\n private properties: SurveyQuestionPresetProperties;\n private propertyGridValue: PropertyGridModel;\n private propertyGridDefaultValue: PropertyGridModel;\n private obj;\n constructor(private className: string, private currentJson: ISurveyPropertyGridDefinition) {\n const cls = {};\n const obj = this.createObj();\n this.obj = obj;\n this.properties = new SurveyQuestionPresetProperties(obj, className, currentJson);\n const allPropertiesNames = this.properties.getAllVisiblePropertiesNames(true);\n const objProps = {};\n Serializer.getPropertiesByObj(obj).forEach(prop => objProps[prop.name] = prop);\n allPropertiesNames.forEach(name => {\n const prop = objProps[name];\n if (prop) {\n const propClassName = this.getPropClassName(prop);\n this.propertiesHash[name] = propClassName;\n cls[propClassName] = true;\n }\n });\n for (let i = 0; i < presetPropertiesBaseClasses.length; i++) {\n const cl = presetPropertiesBaseClasses[i];\n if (cls[cl]) {\n this.classes.push(cl);\n }\n }\n if (this.classes.indexOf(className) < 0) {\n this.classes.push(className);\n }\n this.propertyGridValue = this.createPropertyGrid(obj, this.currentJson);\n this.propertyGridDefaultValue = this.createPropertyGrid(obj);\n }\n public getObj() {\n return this.obj;\n }\n private createPropertyGrid(obj: Base, json?: ISurveyPropertyGridDefinition): PropertyGridModel {\n const res = new PropertyGridModel(undefined, undefined, json);\n res.showOneCategoryInPropertyGrid = true;\n res.obj = obj;\n return res;\n }\n private createObj(): Base {\n if (this.className === \"survey\") return new SurveyModel();\n const ind = this.className.indexOf(\"@\");\n if (ind < 0) return Serializer.createClass(this.className);\n const clName = this.className.substring(0, ind);\n const postFix = this.className.substring(ind + 1);\n const res = Serializer.createClass(clName);\n if (res.cellType) {\n res.cellType = postFix;\n }\n return res;\n }\n public getInitialJson(useDefaults: boolean) {\n const propertyGrid = useDefaults ? this.propertyGridDefaultValue : this.propertyGridValue;\n const pgJSON = propertyGrid.survey.toJSON();\n return pgJSON.pages.filter(p => p.name != propertyGrid.placeholderPageName).map(p => {\n return {\n category: p.name,\n title: p.title,\n iconName: p.iconName,\n properties: p.elements?.filter(e => e.name && e.name.indexOf(\"overridingProperty\") == -1).map(e => {\n const property: any = {\n name: e.name,\n title: e.title\n };\n\n if (e.description !== undefined) {\n property.description = e.description;\n }\n\n return property;\n })\n };\n });\n }\n public get propertyGridDefault(): PropertyGridModel { return this.propertyGridDefaultValue; }\n public getPropertyClassName(propName: string): string {\n return this.propertiesHash[propName];\n }\n public updateCurrentJson(val: Array<any>): void {\n this.updateCurrentJsonCore(this.currentJson.classes, val);\n }\n private updateCurrentJsonCore(curJsonClasses: ISurveyPropertiesDefinition, val: Array<any>): void {\n if (!Array.isArray(val)) val = [];\n const tabNames = [];\n this.classes.forEach(cl => {\n this.updateCurrentJsonClass(curJsonClasses, val, cl, tabNames);\n });\n }\n private updateCurrentJsonClass(curJsonClasses: ISurveyPropertiesDefinition, val: Array<any>, clName: string, tabNames: Array<string>): void {\n const properties = [];\n const tabs: any = [];\n const tabStep = 100;\n\n val.forEach(tab => {\n const clVal = tab.items;\n if (Array.isArray(clVal)) {\n const classesIndeces: any = [];\n this.classes.forEach(cl => classesIndeces.push(0));\n const propertiesIndeces = {};\n for (let i = 0; i < clVal.length; i++) {\n const clName = this.propertiesHash[clVal[i]];\n let clIndex = this.classes.indexOf(clName);\n if (clIndex < 0) continue;\n const nextStep = 10000 / Math.pow(10, clIndex);\n let max = 0;\n for (let j = 0; j <= clIndex; j++) {\n if (classesIndeces[j] > max) max = classesIndeces[j];\n }\n const visIndex = max + nextStep;\n propertiesIndeces[clVal[i]] = visIndex;\n classesIndeces[clIndex] = visIndex;\n }\n clVal.forEach(propName => {\n if (this.propertiesHash[propName] === clName) {\n const tabName = tab.name;\n if (!!tabName && tabNames.indexOf(tab.name) < 0) {\n tabNames.push(tab.name);\n tabs.push({ name: tab.name, index: tabNames.length * tabStep, iconName: tab.iconName });\n }\n const item: any = { name: propName, index: propertiesIndeces[propName] };\n if (!!tabName) {\n item.tab = tabName;\n }\n properties.push(item);\n }\n });\n }\n });\n curJsonClasses[clName] = { properties: properties, tabs: tabs };\n }\n private getPropClassName(prop: JsonObjectProperty): string {\n const clName = prop.classInfo.name;\n for (let i = 1; i < presetPropertiesBaseClasses.length; i++) {\n const cl = presetPropertiesBaseClasses[i];\n if (clName === cl || Serializer.isDescendantOf(clName, cl)) return this.getClassName(cl);\n }\n if (clName === this.className) return this.className;\n return this.getClassName(\"question\");\n }\n private getClassName(className: string): string {\n const ind = this.className.indexOf(\"@\");\n if (ind < 0) return className;\n const clName = this.className.substring(0, ind);\n if (clName === className || className === \"question\") {\n className = \"default\";\n }\n return clName + \"@\" + className;\n }\n}\n\nexport class CreatorPresetEditablePropertyGrid extends CreatorPresetEditableCaregorizedListConfigurator {\n private currentJson: ISurveyPropertyGridDefinition;\n private localeStrings: any;\n private currentProperties?: SurveyQuestionPresetPropertiesDetail;\n private currentClassName: string;\n // private propCreatorValue: SurveyCreatorModel;\n private isModified: boolean;\n // public get propCreator(): SurveyCreatorModel { return this.propCreatorValue; }\n // public disposeCore(): void {\n // if (this.propCreator) {\n // this.propCreator.dispose();\n // this.propCreatorValue = undefined;\n // }\n // }\n protected get nameInnerMatrix() { return \"properties\"; }\n protected createItemsMatrixJSON(props: any): any {\n const defaultJSON = {\n type: \"matrixdynamic\",\n allowRowReorder: true,\n cellType: \"text\",\n showHeader: false,\n rowCount: 0,\n allowAddRows: false,\n addRowButtonLocation: \"top\",\n addRowText: \"Add Custom Item\",\n \"noRowsText\": \"There are no items\",\n columns: [\n {\n \"name\": \"name\",\n visible: false\n },\n {\n \"name\": \"title\"\n }\n ],\n detailPanelMode: \"underRow\",\n detailElements: [\n { type: \"text\", name: \"name\", title: getLocString(\"presets.propertyGrid.name\"), isUnique: true, isRequired: true, visible: false },\n { type: \"text\", name: \"title\", title: getLocString(\"presets.propertyGrid.titleField\"), isUnique: true, isRequired: true, visible: false },\n { type: \"comment\", name: \"description\", title: getLocString(\"presets.propertyGrid.descriptionField\"), visible: false }\n ]\n };\n return { ...defaultJSON, ...props };\n }\n\n public createMainPageCore(): any {\n return {\n title: getLocString(\"presets.propertyGrid.title\"),\n navigationTitle: getLocString(\"presets.propertyGrid.navigationTitle\"),\n description: getLocString(\"presets.propertyGrid.description\"),\n elements: [\n {\n type: \"dropdown\",\n name: this.nameSelector,\n allowClear: false,\n clearIfInvisible: \"onHidden\",\n title: getLocString(\"presets.propertyGrid.selectElement\")\n },\n {\n type: \"panel\",\n name: this.mainPanelName,\n visibleIf: this.getNotEmptyVisibleIf(this.nameSelector),\n elements: [\n {\n type: \"matrixdynamic\",\n name: this.nameCategories,\n title: getLocString(\"presets.propertyGrid.propertyGrid\"),\n allowRowReorder: true,\n addRowButtonLocation: \"top\",\n rowCount: 0,\n allowAddRows: true,\n noRowsText: getLocString(\"presets.propertyGrid.noCategoriesText\"),\n addRowText: getLocString(\"presets.propertyGrid.addCustomCategory\"),\n showHeader: false,\n columns: [\n { cellType: \"text\", name: \"category\", isUnique: true, isRequired: true, visible: false },\n { type: \"boolean\", name: \"isDefault\", visible: false },\n { cellType: \"text\", name: \"title\" },\n ],\n detailPanelMode: \"underRow\",\n detailElements: [\n { type: \"text\", name: \"category\", title: getLocString(\"presets.propertyGrid.categoryName\"), isRequired: true, visible: false },\n { type: \"text\", name: \"title\", title: getLocString(\"presets.propertyGrid.categoryTitle\"), visible: false },\n { type: \"dropdown\", name: \"iconName\", title: getLocString(\"presets.propertyGrid.iconName\"), itemComponent: \"svc-presets-icon-item\", \"allowCustomChoices\": true, choices: this.iconList, visible: false },\n this.createItemsMatrixJSON({\n name: this.nameInnerMatrix,\n noRowsText: getLocString(\"presets.propertyGrid.noItemsText\"),\n titleLocation: \"hidden\",\n })\n ]\n },\n this.createItemsMatrixJSON({\n title: getLocString(\"presets.propertyGrid.hiddenItems\"),\n name: this.nameMatrix,\n noRowsText: getLocString(\"presets.propertyGrid.noHiddenItemsText\"),\n descriptionLocation: \"underInput\",\n startWithNewLine: false,\n })\n ]\n },\n {\n type: \"panel\",\n title: \" \",\n name: this.navigationPanelName,\n elements: [\n {\n type: \"html\",\n html: \"&nbsp\"\n }\n ]\n }\n ]\n\n };\n }\n private propertyGrid: PropertyGridModel;\n protected propertyGridSetObj(obj: any) {\n const pageName = this.propertyGrid.survey.currentPage?.name;\n this.propertyGrid[\"setObj\"](obj);\n this.propertyGrid.survey.currentPage = this.propertyGrid.survey.getPageByName(pageName);\n }\n protected hasIcon(name: string) { return name == this.nameCategories; }\n\n protected restoreValuesFromDefault(model: SurveyModel) {\n this.isModified = false;\n this.currentJson = this.copyJson(defaultPropertyGridDefinition);\n this.updateMatrices(model);\n }\n\n public getJsonValueCore(model: SurveyModel, creator: SurveyCreatorModel, defaultJson: any): any {\n if (!this.isModified) return undefined;\n return { definition: this.currentJson };\n }\n protected setupPageQuestions(model: SurveyModel, creator: SurveyCreatorModel): void {\n this.getSelector(model).choices = this.getSelectorChoices(creator);\n const oldSearchValue = settings.propertyGrid.enableSearch;\n settings.propertyGrid.enableSearch = false;\n // this.propCreatorValue = creatorSetup.createCreator(options);\n // this.setupPropertyCreator();\n // this.getPropertyCreatorQuestion(model).embeddedCreator = this.propCreator;\n settings.propertyGrid.enableSearch = oldSearchValue;\n }\n protected setupQuestionsCore(model: SurveyModel, creatorSetup: ICreatorPresetEditorSetup): void {\n this.propertyGrid = creatorSetup.creator[\"designerPropertyGrid\"];\n super.setupQuestionsCore(model, creatorSetup);\n this.setupPageQuestions(model, creatorSetup.creator);\n }\n private setJSONForTitlesAndDescriptions(locStrs: any, name: string): void {\n const strs = this.localeStrings[name];\n if (Object.keys(strs).length > 0) {\n locStrs[name] = strs;\n }\n }\n protected onLocaleChangedCore(model: SurveyModel, json: any, creator: SurveyCreatorModel): void {\n this.setupPageQuestions(model, creator);\n this.setupQuestionsValueCore(model, json, creator);\n }\n protected setJsonLocalizationStringsCore(model: SurveyModel, locStrs: any): void {\n this.setJSONForTitlesAndDescriptions(locStrs, \"pe\");\n this.setJSONForTitlesAndDescriptions(locStrs, \"pehelp\");\n }\n protected updateJsonLocalizationStringsCore(locStrs: any): void {\n this.localeStrings = { pe: locStrs.pe || {}, pehelp: locStrs.pehelp || {} };\n }\n protected setupOnCurrentPageCore(model: SurveyModel, creator: SurveyCreatorModel, active: boolean): void {\n creator.setSidebarEnabled(active);\n this.propertyGridSetObj(active ? this.currentProperties?.getObj() : null);\n }\n\n // private isPropCreatorChanged: boolean;\n private firstTimeLoading = false;\n protected updateOnValueChangedCore(model: SurveyModel, name: string): void {\n super.updateOnValueChangedCore(model, name);\n if (name == this.nameCategories) {\n if (!this.firstTimeLoading)this.isModified = true;\n const matrix = this.getQuestionCategories(model);\n if (matrix.isVisible) {\n matrix.value?.forEach(row => {\n const category = row.category;\n const title = row.title;\n if (row.title !== editorLocalization.getString(\"pe.tabs.\" + category)) {\n this.ensureLocalizationPath(\"pe.tabs\");\n this.localeStrings.pe.tabs[category] = title;\n }\n row.properties?.forEach(p => {\n if (p.title !== editorLocalization.getString(\"pe.\" + p.name)) {\n this.changePropTitleAndDescription(\"pe\", p.name, p.title);\n }\n if (p.description !== editorLocalization.getString(\"pehelp.\" + p.name)) {\n this.changePropTitleAndDescription(\"pehelp\", p.name, p.description);\n }\n });\n });\n }\n if (!this.firstTimeLoading)this.updateCurrentJson(model);\n }\n // if ((<any>options.target)?.isQuestion) {\n // if (options.name === \"title\") {\n // this.changePropTitleAndDescription(\"pe\", name, options.newValue);\n // }\n // if (options.name === \"description\") {\n // this.changePropTitleAndDescription(\"pehelp\", name, options.newValue);\n // }\n // }\n // if ((<any>options.target)?.isPage) {\n // if (options.name === \"title\") {\n // this.ensureLocalizationPath(\"pe.tabs\");\n // this.localeStrings.pe.tabs[name] = options.newValue;\n // }\n // }\n\n if (name !== this.nameSelector) return;\n this.firstTimeLoading = true;\n if (this.currentProperties) {\n this.currentProperties = undefined;\n }\n const selQuestion = this.getSelector(model);\n this.currentClassName = selQuestion.value;\n this.updateMatrices(model);\n this.firstTimeLoading = false;\n //this.propCreator.JSON = this.updateCreatorJSON(this.currentProperties.propertyGrid.survey.toJSON());\n //this.setupCreatorToolbox(this.propCreator);\n }\n\n private updateMatrices(model: SurveyModel) {\n if (this.currentClassName) {\n this.currentProperties = new SurveyQuestionPresetPropertiesDetail(this.currentClassName, this.currentJson);\n this.setupDefaults(model);\n const categories = this.currentProperties.getInitialJson(false);\n model.setValue(this.nameCategories, categories);\n const items = this.getCurrentlyHiddenItems(categories);\n model.setValue(this.nameMatrix, items);\n this.propertyGridSetObj(this.currentProperties.getObj());\n }\n }\n\n private getCurrentlyHiddenItems(categories: any) {\n const hiddenProperties = [\"progressBarInheritWidthFrom\"];\n const itemsMap: any = {};\n this.defaultItems.forEach((i: any) => itemsMap[i.name] = i);\n categories.filter((c: any) => c.properties).forEach((c: any) => c.properties.forEach((p: any) => delete itemsMap[p.name]));\n return Object.keys(itemsMap).map(key => itemsMap[key]).filter(i => hiddenProperties.indexOf(i.name) == -1);\n }\n\n private setupDefaults(model: SurveyModel): void {\n const categories = this.currentProperties?.getInitialJson(true) || [];\n this.defaultCategories = [...categories];\n this.defaultItems = [];\n categories.forEach(c => this.defaultItems.push(...c.properties));\n }\n\n protected setupQuestionsValueCore(model: SurveyModel, json: any, creator: SurveyCreatorModel): void {\n this.getSelector(model).value = \"survey\";\n const defaultJson = creator.getPropertyGridDefinition();\n this.isModified = !!json?.definition || (defaultJson && (JSON.stringify(defaultJson) !== JSON.stringify(defaultPropertyGridDefinition)));\n this.currentJson = json?.definition || this.copyJson(defaultJson || defaultPropertyGridDefinition);\n this.currentJson.autoGenerateProperties = false;\n this.updateOnValueChangedCore(model, this.nameSelector);\n }\n private getSelector(model: SurveyModel): QuestionDropdownModel { return <QuestionDropdownModel>model.getQuestionByName(this.nameSelector); }\n // private getPropertyCreatorQuestion(model: SurveyModel): QuestionEmbeddedCreatorModel { return <QuestionEmbeddedCreatorModel>model.getQuestionByName(this.namePropertyCreator); }\n private get nameSelector() { return this.fullPath + \"_selector\"; }\n // private get namePropertyCreator() { return this.fullPath + \"_propcreator\"; }\n private getSelectorChoices(creator: SurveyCreatorModel): Array<ItemValue> {\n const classes = [\"survey\", \"page\"];\n creator.toolbox.getDefaultItems([], false, true, true).forEach(item => {\n classes.push(item.id);\n });\n\n const res: any[] = [];\n classes.forEach(str => res.push(new ItemValue(str, this.getSelectorItemTitle(str))));\n const columnPrefix = \"matrixdropdowncolumn@\";\n res.push(new ItemValue(columnPrefix + \"default\", this.getColumnItemTitle(\"\")));\n for (let key in matrixDropdownColumnTypes) {\n res.push(new ItemValue(columnPrefix + key, this.getColumnItemTitle(key)));\n }\n return res;\n }\n private getSelectorItemTitle(name: string): string {\n if (name === \"survey\") return editorLocalization.getString(\"ed.surveyTypeName\");\n if (name === \"page\") return editorLocalization.getString(\"ed.pageTypeName\");\n return editorLocalization.getString(\"qt.\" + name);\n }\n private getColumnItemTitle(name: string): string {\n const columnTitle = editorLocalization.getString(\"ed.columnTypeName\");\n const postFix = !name ? \"default\" : this.getSelectorItemTitle(name);\n return columnTitle + \": \" + postFix;\n }\n private updateCurrentJson(model: SurveyModel): void {\n //if (!this.isPropCreatorChanged) return;\n //this.isPropCreatorChanged = false;\n if (this.currentProperties) {\n this.currentProperties.updateCurrentJson(this.getPropertiesArray(model));\n }\n }\n private getPropertiesArray(model: SurveyModel): Array<any> {\n const categories = this.getQuestionCategories(model).value;\n return categories?.map(c => ({ name: c.category, items: c.properties?.map(p => p.name), iconName: c.iconName }));\n }\n private changePropTitleAndDescription(path: string, propName: string, val: string): void {\n this.ensureLocalizationPath(path);\n const strs = this.localeStrings[path];\n const className = this.currentProperties.getPropertyClassName(propName);\n if (!!className) {\n if (!strs[className]) {\n strs[className] = {};\n }\n strs[className][propName] = val;\n }\n }\n private ensureLocalizationPath(path: string): void {\n if (!this.localeStrings) {\n this.localeStrings = {};\n }\n const names = path.split(\".\");\n let strs = this.localeStrings;\n for (let i = 0; i < names.length; i++) {\n const name = names[i];\n if (!strs[name]) strs[name] = {};\n strs = strs[name];\n }\n }\n // private setupPropertyCreator(): void {\n // const creator = this.propCreator;\n // creator.maxNestedPanels = 0;\n // creator.showSaveButton = false;\n // creator.onModified.add((sender, options) => {\n // this.isPropCreatorChanged = true;\n // this.isModified = true;\n // if (options.type === \"PROPERTY_CHANGED\") {\n // const name = (<any>options.target).name;\n // if ((<any>options.target)?.isQuestion) {\n // if (options.name === \"title\") {\n // this.changePropTitleAndDescription(\"pe\", name, options.newValue);\n // }\n // if (options.name === \"description\") {\n // this.changePropTitleAndDescription(\"pehelp\", name, options.newValue);\n // }\n // }\n // if ((<any>options.target)?.isPage) {\n // if (options.name === \"title\") {\n // this.ensureLocalizationPath(\"pe.tabs\");\n // this.localeStrings.pe.tabs[name] = options.newValue;\n // }\n // }\n // }\n // });\n // creator.autoSaveEnabled = false;\n // creator.showTabsDefault = false;\n // creator.showToolbarDefault = false;\n // creator.allowCollapseSidebar = false;\n // creator.toolbar.setItems([]);\n // creator.showAddQuestionButton = false;\n // creator.toolbox.forceCompact = false;\n // creator.showSidebar = false;\n // creator.onSurveyInstanceSetupHandlers.add((sender, options) => {\n // if (options.area === \"designer-tab\") {\n // const model = options.survey;\n // model.onPageAdded.add((sender, options) => {\n // this.addCategoryNamePropIntoPage(options.page, creator);\n // });\n // }\n // });\n // creator.onSurveyInstanceCreated.add((sender, options) => {\n // if (options.area === \"designer-tab\") {\n // const model = options.survey;\n // model.onElementWrapperComponentName.add((sender, options) => {\n // const el = options.element;\n // if (this.isCategoryElement(el)) {\n // options.componentName = el.getType();\n // } else {\n // const compName = options.componentName;\n // if (el.isQuestion && (compName === \"svc-dropdown-question\" || compName === \"svc-question\")) {\n // options.componentName = \"svc-preset-question\";\n // }\n // if (el.isPage) {\n // options.componentName = \"svc-preset-page\";\n // }\n // }\n // });\n // const prev_getRendererContextForString = model.getRendererContextForString;\n // const prev_getRendererForString = model.getRendererForString;\n // model.getRendererForString = (element: Base, name: string): string => {\n // if (this.isCategoryElement(element)) return undefined;\n // return prev_getRendererForString.call(model, element, name);\n // };\n // model.getRendererContextForString = (element: Base, locStr: LocalizableString): any => {\n // if (this.isCategoryElement(element)) return locStr;\n // return prev_getRendererContextForString.call(model, element, locStr);\n // };\n // }\n // });\n // creator.onElementAllowOperations.add((sender, options) => {\n // options.allowChangeInputType = false;\n // options.allowChangeRequired = false;\n // options.allowChangeType = false;\n // options.allowCopy = false;\n // options.allowShowSettings = false;\n // options.allowDelete = true;\n // options.allowEdit = true;\n // });\n // creator.onCollectionItemAllowOperations.add((sender, options) => {\n // options.allowEdit = false;\n // options.allowAdd = false;\n // options.allowDelete = false;\n // });\n // creator.onModified.add((sender, options) => {\n // if (options.type === \"OBJECT_DELETED\") {\n // this.setupCreatorToolbox(sender);\n // }\n // });\n // creator.getElementAddornerCssCallback = (obj: Base, className: string): string => { return className + \" preset_pg_question\"; };\n // creator.onPageAdded.add((sender, options) => {\n // const page = options.page;\n // page.name = SurveyHelper.getNewName(creator.survey.pages, \"category\");\n // if (!page.title) {\n // page.title = \"New Category\";\n // }\n // page.updateRows();\n // });\n // creator.onQuestionAdded.add((sender, options) => {\n // this.setupCreatorToolbox(sender);\n // });\n // creator.onDragDropAllow.add((sender, options) => {\n // options.allowDropNextToAnother = false;\n // });\n // creator.onCanShowProperty.add((sender, options) => {\n // if (options.obj.isPage && options.propertyName === \"description\") {\n // options.canShow = false;\n // }\n // });\n // }\n // private isCategoryElement(el: any): boolean {\n // return el.isCategoryElement === true;\n // }\n // private updateCreatorJSON(json: any): any {\n // if (!json || !json.pages) return;\n // json.widthMode = \"static\";\n // json.width = \"800px\";\n // json.pages.forEach((page: any) => {\n // this.updateCreatorJSONElements(page.elements);\n // });\n // return json;\n // }\n // private updateCreatorJSONElements(elements: Array<any>): void {\n // if (!Array.isArray(elements)) return;\n // for (let i = elements.length - 1; i >= 0; i--) {\n // const el = elements[i];\n // if (!!el.name && el.name.indexOf(\"overridingProperty\") > -1) {\n // elements.splice(i, 1);\n // } else {\n // this.updateJSONElement(el);\n // }\n // }\n // }\n // private updateJSONElement(el: any): void {\n // if (Array.isArray(el.elements)) {\n // this.updateCreatorJSONElements(el.elements);\n // }\n // if (el.titleLocation === \"hidden\") {\n // delete el.titleLocation;\n // }\n // if (el.descriptionLocation === \"hidden\") {\n // delete el.descriptionLocation;\n // }\n // if (!!el.state) {\n // delete el.state;\n // }\n // const type = el.type;\n // if (type === \"textwithreset\") {\n // el.type = \"text\";\n // }\n // if (type === \"commentwithreset\") {\n // el.type = \"comment\";\n // }\n // }\n // private setupCreatorToolbox(creator: SurveyCreatorModel): void {\n // const elements: IQuestionToolboxItem[] = [];\n // const hiddenProperties = [\"progressBarInheritWidthFrom\"]; //TODO\n // const propGrid = this.currentProperties.propertyGridDefault.survey;\n // const survey = this.propCreator.survey;\n // const allProps = this.currentProperties.getAllPropertiesNames();\n // allProps.forEach(propName => {\n // if (!survey.getQuestionByName(propName) && propGrid.getQuestionByName(propName)\n // && hiddenProperties.indexOf(propName) < 0) {\n // const q = propGrid.getQuestionByName(propName);\n // const json = q.toJSON();\n // this.updateJSONElement(json);\n // json.name = propName;\n // json.type = q.getType();\n // elements.push({\n // name: propName,\n // title: q.title,\n // className: q.getType(),\n // iconName: \"icon-text\", //TODO\n // json: json\n // });\n // }\n // });\n\n// creator.toolbox.addItems(elements, true);\n// }\n// private addCategoryNamePropIntoPage(page: PageModel, creator: SurveyCreatorModel): void {\n// page.showDescription = false;\n// (<any>page).isPropertyGridCategory = true;\n// const qCategoryName: Question = Serializer.createClass(\"text\");\n// qCategoryName.name = \"page_categoryName\";\n// qCategoryName.value = page.name;\n// qCategoryName.valueChangedCallback = () => {\n// page.name = qCategoryName.value;\n// };\n// qCategoryName.title = \"Category Name\"; //TODO\n// qCategoryName.titleLocation = \"left\";\n// qCategoryName.readOnly = this.isDefaultCategoryName(page.name);\n// const qCatetoryIcon = Serializer.createClass(\"text\");\n// qCategoryName.name = \"page_categoryIcon\";\n// qCatetoryIcon.title = \"Category Icon\"; //TODO\n// qCatetoryIcon.titleLocation = \"left\";\n// qCatetoryIcon.startWithNewLine = false;\n// [qCategoryName, qCatetoryIcon].forEach(el => {\n// el.getSurvey = () => { return page.survey; };\n// Object.defineProperty(el, \"isDesignMode\", { get() { return false; } });\n// el.isCategoryElement = true;\n// el.onFirstRendering();\n// });\n// (<any>page)[\"getElementsForRows\"] = () => {\n// const res = [].concat(page.elements);\n// res.unshift(qCatetoryIcon);\n// res.unshift(qCategoryName);\n// return res;\n// };\n// }\n// private isDefaultCategoryName(name: string): boolean {\n// if (!name) return true;\n// return !!this.currentProperties.propertyGridDefault.survey.getPageByName(name);\n// }\n}\n","import { Helpers, ItemValue, QuestionMatrixDynamicModel, SurveyModel } from \"survey-core\";\nimport { CreatorPresetEditableBase, ICreatorPresetEditorSetup } from \"./presets-editable-base\";\nimport { SurveyCreatorModel, editorLocalization, getLocString } from \"survey-creator-core\";\nimport { CreatorPresetEditableList } from \"./presets-editable-list\";\n\nexport class CreatorPresetEditableTabs extends CreatorPresetEditableList {\n private createItemsMatrixJSON(props: any): any {\n const defaultJSON = {\n type: \"matrixdynamic\",\n name: \"items\",\n allowRowReorder: true,\n cellType: \"text\",\n showHeader: false,\n rowCount: 0,\n allowAddRows: false,\n addRowButtonLocation: \"top\",\n addRowText: \"Add Custom Item\",\n \"noRowsText\": \"There are no items\",\n columns: [\n {\n \"name\": \"name\",\n visible: false\n },\n {\n \"name\": \"title\"\n }\n ],\n detailPanelMode: \"underRow\",\n detailElements: [\n { type: \"text\", name: \"name\", title: getLocString(\"presets.tabs.name\"), isUnique: true, isRequired: true, readOnly: true, visible: false },\n { type: \"text\", name: \"title\", title: getLocString(\"presets.tabs.titleField\"), visible: false },\n { type: \"dropdown\", name: \"iconName\", title: getLocString(\"presets.tabs.iconName\"), itemComponent: \"svc-presets-icon-item\", \"allowCustomChoices\": true, choices: this.iconList, visible: false }\n ]\n };\n return { ...defaultJSON, ...props };\n }\n public createMainPageCore(): any {\n return {\n title: getLocString(\"presets.tabs.title\"),\n description: getLocString(\"presets.tabs.description\"),\n navigationTitle: getLocString(\"presets.tabs.navigationTitle\"),\n elements: [\n {\n type: \"panel\",\n name: this.mainPanelName,\n elements: [\n this.createItemsMatrixJSON({\n title: getLocString(\"presets.tabs.items\"),\n noRowsText: getLocString(\"presets.tabs.noItemsText\"),\n name: this.nameItems\n }),\n this.createItemsMatrixJSON({\n startWithNewLine: false,\n title: getLocString(\"presets.tabs.hiddenItems\"),\n noRowsText: getLocString(\"presets.tabs.noHiddenItemsText\"),\n name: this.nameMatrix,\n descriptionLocation: \"underInput\",\n }),\n ]\n },\n {\n type: \"panel\",\n name: \"panel_tabs_controls\",\n elements: [\n {\n type: \"dropdown\",\n name: this.nameActiveTab,\n allowClear: false,\n title: getLocString(\"presets.tabs.defaultTab\")\n }\n ]\n },\n {\n type: \"panel\",\n title: \" \",\n name: this.navigationPanelName,\n elements: [\n {\n type: \"html\",\n html: \"&nbsp\"\n }\n ]\n }\n ]\n };\n }\n\n public get questionNames() {\n return [this.nameItems, this.nameActiveTab];\n }\n\n private filterTabs(tabs: any) {\n return tabs.filter(t => t.name != \"presets\");\n }\n protected hasIcon(name: string) { return true; }\n protected getJsonValueCore(model: SurveyModel, creator: SurveyCreatorModel, defaultJson: any): any {\n let items = model.getQuestionByName(this.nameItems).value;\n if (!Array.isArray(items)) return undefined;\n const creatorDefaultTabs = this.filterTabs(defaultJson?.items || creator.getTabs());\n const tabsInfo = creator.getTabsInfo();\n let activeTabChoices = items.map(i => ({ name: i.name, iconName: i.iconName }));\n activeTabChoices.forEach(i => {\n if (!i.iconName || i.iconName == tabsInfo[i.name]?.iconName) {\n delete i.iconName;\n }\n });\n if (Helpers.isArraysEqual(activeTabChoices, creatorDefaultTabs, false)) {\n activeTabChoices = undefined;\n }\n let activeTab = model.getValue(this.nameActiveTab);\n if (!activeTabChoices && activeTab === (defaultJson?.activeTab || creator.activeTab)) {\n activeTab = undefined;\n }\n if (!activeTabChoices && !activeTab) return undefined;\n const val: any = { };\n if (!!activeTabChoices) {\n val.items = activeTabChoices;\n }\n if (!!activeTab) {\n val.activeTab = activeTab;\n }\n return val;\n }\n\n protected getDefaultJsonValueCore(creator: SurveyCreatorModel): any {\n return {\n activeTab: creator.activeTab,\n items: this.filterTabs(creator.getTabs()).map(i => ({ name: i.name })),\n };\n }\n\n private getQuestionItems(model: SurveyModel): QuestionMatrixDynamicModel {\n return <QuestionMatrixDynamicModel>model.getQuestionByName(this.nameItems);\n }\n\n public onMatrixRowRemoving(model: SurveyModel, creator: SurveyCreatorModel, options: any) {\n if (options.question.name === this.nameMatrix) {\n this.restoreItems(this.getQuestionItems(model), options.question, options.rowIndex);\n }\n super.onMatrixRowRemoving(model, creator, options);\n }\n\n protected isItemsMatrix(name: string): boolean {\n return name === this.nameItems || super.isItemsMatrix(name);\n }\n protected setJsonLocalizationStringsCore(model: SurveyModel, locStrs: any): void {\n const rows = this.getQuestionItems(model).visibleRows;\n rows.forEach(r => {\n CreatorPresetEditableBase.updateModifiedText(locStrs, r.getValue(\"title\"), \"tabs.\" + r.getValue(\"name\"));\n });\n }\n protected setupQuestionsCore(model: SurveyModel, creatorSetup: ICreatorPresetEditorSetup): void {\n this.setupPageQuestions(model, creatorSetup.creator);\n }\n\n private getAllTabs(creator: SurveyCreatorModel) {\n return this.filterTabs(creator.getAvailableTabs().map(t => ({ name: t.name, title: editorLocalization.getString(\"tabs.\" + t.name), iconName: t.iconName })));\n }\n\n protected setupOnCurrentPageCore(model: SurveyModel, creator: SurveyCreatorModel, active: boolean): void {\n creator.tabs.forEach(i => i.enabled = active);\n }\n\n protected setupQuestionsValueCore(model: SurveyModel, json: any, creator: SurveyCreatorModel): void {\n json = json || {};\n let items = (json[\"items\"] || []).map(i => typeof i === \"string\" ? { name: i } : i);\n const tabNames = creator.initialTabs();\n const allTabs = this.getAllTabs(creator);\n const defaultItems = allTabs.filter(t => tabNames.indexOf(t.name) >= 0);\n if (items.length === 0) {\n items = defaultItems;\n } else {\n for (let i = 0; i < items.length; i++) {\n const defaultItem = defaultItems.filter(di => di.name == items[i].name)[0];\n if (defaultItem) {\n items[i] = { ...defaultItem, ...items[i] };\n }\n }\n }\n const itemNames = items.map(i => i.name);\n const hiddenItems = allTabs.filter(t => itemNames.indexOf(t.name) < 0);\n model.setValue(this.nameItems, items);\n model.setValue(this.nameMatrix, hiddenItems);\n model.setValue(this.nameActiveTab, json[\"activeTab\"] || creator.activeTab);\n model.getQuestionByName(this.nameActiveTab).choices = items.map(v => new ItemValue(v.name, v.title));\n }\n protected onLocaleChangedCore(model: SurveyModel, json: any, creator: SurveyCreatorModel): void {\n this.setupPageQuestions(model, creator);\n this.setupQuestionsValueCore(model, json, creator);\n }\n protected setupPageQuestions(model: SurveyModel, creator: SurveyCreatorModel): void {\n this.defaultItems = this.getAllTabs(creator);\n const activeQ = model.getQuestionByName(this.nameActiveTab);\n activeQ.choices = this.defaultItems.map(t => new ItemValue(t.name, t.title));\n }\n protected updateOnValueChangedCore(model: SurveyModel, name: string): void {\n super.updateOnValueChangedCore(model, name);\n if (name === this.nameItems) {\n const val = model.getValue(name) || [];\n const activeTabQuestion = model.getQuestionByName(this.nameActiveTab);\n activeTabQuestion.choices = val.map(v => new ItemValue(v.name, v.title));\n if (!activeTabQuestion.selectedItem) {\n activeTabQuestion.selectItem(activeTabQuestion.choices[0]);\n }\n }\n }\n private get nameActiveTab() { return this.path + \"_activeTab\"; }\n}","import { Serializer, ItemValue, QuestionCheckboxModel, surveyLocalization, SurveyModel, Question } from \"survey-core\";\nimport { CreatorPresetEditableBase } from \"./presets-editable-base\";\nimport { getLocString, editorLocalization, SurveyCreatorModel } from \"survey-creator-core\";\nfunction searchItem(params) {\n const questionInstance = this.survey.getQuestionByName(params[0]);\n let itemvalue = params[1];\n let text = params[2];\n if (!text) return true;\n const item = questionInstance.choices.filter(c => c.value == itemvalue)[0];\n if (!item) return true;\n return item.text.toUpperCase().indexOf(text.toUpperCase()) != -1;\n}\nimport { FunctionFactory } from \"survey-core\";\nFunctionFactory.Instance.register(\"searchItem\", searchItem);\nexport class CreatorPresetEditableLanguages extends CreatorPresetEditableBase {\n public createMainPageCore(): any {\n return {\n title: getLocString(\"presets.languages.title\"),\n description: getLocString(\"presets.languages.description\"),\n navigationTitle: getLocString(\"presets.languages.navigationTitle\"),\n elements: [\n {\n type: \"dropdown\",\n title: getLocString(\"presets.languages.creatorUI\"),\n placeholder: editorLocalization.getLocaleName(\"\"),\n name: this.creatorLocaleName,\n searchEnabled: true,\n choices: this.getCreatorLocales()\n },\n {\n type: \"panel\",\n title: getLocString(\"presets.languages.surveyLanguages\"),\n elements: [\n {\n type: \"text\",\n name: this.searchLocalesName,\n placeholder: getLocString(\"presets.languages.searchPlaceholder\"),\n titleLocation: \"hidden\",\n textUpdateMode: \"onTyping\"\n }, {\n type: \"checkbox\",\n name: this.surveyLocalesName,\n titleLocation: \"hidden\",\n minSelectedChoices: 1,\n colCount: 3,\n showSelectAllItem: true,\n choices: this.getSurveyLocales(),\n choicesVisibleIf: \"searchItem('\" + this.surveyLocalesName + \"', {item}, {\" + this.searchLocalesName + \"}\"\n }]\n },\n {\n type: \"panel\",\n title: \" \",\n name: this.navigationPanelName,\n elements: [\n {\n type: \"boolean\",\n name: this.surveyUseEnglishNames,\n title: getLocString(\"presets.languages.translateToEnglish\"),\n titleLocation: \"hidden\",\n renderAs: \"switch\"\n }] }\n ] };\n }\n public getMainElementNames() : any { return [this.surveyLocalesName]; }\n public getCustomQuestionCssSuffix(question: Question) {\n return question.name === this.searchLocalesName ? \"search\" : \"\";\n }\n protected getJsonValueCore(model: SurveyModel, creator: SurveyCreatorModel, defaultJson: any): any {\n const creatorLocale = model.getValue(this.creatorLocaleName);\n const useEnglishNames = model.getValue(this.surveyUseEnglishNames) === true;\n const question = <QuestionCheckboxModel>model.getQuestionByName(this.surveyLocalesName);\n if (!creatorLocale && question.isAllSelected && !useEnglishNames) return undefined;\n const res: any = {};\n if (creatorLocale) {\n res.creator = creatorLocale;\n }\n if (useEnglishNames) {\n res.useEnglishNames = true;\n }\n if (!question.isAllSelected && Array.isArray(question.value)) {\n res.surveyLocales = [];\n question.value.forEach(val => res.surveyLocales.push(val));\n }\n return res;\n }\n protected setupQuestionsValueCore(model: SurveyModel, json: any, creator: SurveyCreatorModel): void {\n json = json || {};\n model.setValue(this.creatorLocaleName, json.creator);\n model.setValue(this.surveyUseEnglishNames, json.showInEnglish === true);\n this.updateLocaleNames(model);\n const question = <QuestionCheckboxModel>model.getQuestionByName(this.surveyLocalesName);\n const locales = json.surveyLocales;\n if (Array.isArray(locales) && locales.length > 0) {\n question.valule = locales; // TODO: sheck spell\n } else {\n question.selectAll();\n }\n }\n protected updateOnValueChangedCore(model: SurveyModel, name: string): void {\n if (name === this.surveyUseEnglishNames) {\n this.updateLocaleNames(model);\n }\n }\n private get creatorLocaleName() : string { return this.path + \"_creator\"; }\n private get surveyLocalesName(): string { return this.path + \"_surveyLocales\"; }\n private get searchLocalesName(): string { return this.path + \"_searchLocales\"; }\n private get surveyUseEnglishNames(): string { return this.path + \"_surveyUseEnglishNames\"; }\n\n public get questionNames() {\n return [this.creatorLocaleName, this.surveyLocalesName, this.surveyUseEnglishNames];\n }\n private getIsShowInEnglishSelected(model: SurveyModel): boolean { return model.getValue(this.surveyUseEnglishNames) === true; }\n private getCreatorLocales(): Array<ItemValue> {\n return this.getLocaleItemValues(editorLocalization.getLocales(), false);\n }\n private getSurveyLocales(): Array<ItemValue> {\n return this.getLocaleItemValues(surveyLocalization.getLocales(true), true);\n }\n private getLocaleItemValues(locales: Array<string>, addEnLocale: boolean): Array<ItemValue> {\n const res = [];\n locales.forEach(locale => {\n if (!locale || locale === \"en\") return;\n const name = editorLocalization.getLocaleName(locale);\n if (!!name && name !== locale) {\n res.push(new ItemValue(locale, name));\n }\n });\n if (addEnLocale) {\n res.unshift(new ItemValue(\"en\", editorLocalization.getLocaleName(\"en\")));\n }\n return res;\n }\n private updateLocaleNames(model: SurveyModel): void {\n const isShowInEnglish = this.getIsShowInEnglishSelected(model);\n const question = <QuestionCheckboxModel>model.getQuestionByName(this.surveyLocalesName);\n question.choices.forEach(item => {\n item.text = editorLocalization.getLocaleName(item.value, null, isShowInEnglish);\n });\n question.choicesOrder = \"none\";\n question.choicesOrder = \"asc\";\n }\n}","import { Serializer, ItemValue, QuestionCheckboxModel, surveyLocalization, SurveyModel, ComputedUpdater, Helpers } from \"survey-core\";\nimport { CreatorPresetEditableBase } from \"./presets-editable-base\";\nimport { getLocString, editorLocalization, SurveyCreatorModel } from \"survey-creator-core\";\n\nexport class CreatorPresetEditableOptions extends CreatorPresetEditableBase {\n private createElements() {\n return [\n { type: \"panel\", name: \"designer\", state: \"expanded\", elements: [\n { name: \"pageEditMode\", type: \"dropdown\", choices: [\n { value: \"standard\", text: \"Standard\" },\n { value: \"single\", text: \"Single\" },\n { value: \"bypage\", text: \"By Page\" }\n ] },\n { type: \"panel\", name: \"designerHeader\", elements: [\n { name: \"showSurveyHeader\", type: \"boolean\" },\n { name: \"showHeaderInEmptySurvey\", type: \"boolean\" },\n ] },\n { type: \"panel\", name: \"designerTitles\", elements: [\n { name: \"useElementTitles\", type: \"boolean\" },\n ] },\n { type: \"panel\", name: \"designerZoomDrag\", elements: [\n { name: \"allowDragPages\", type: \"boolean\" },\n { name: \"collapseOnDrag\", type: \"boolean\" },\n { name: \"allowZoom\", type: \"boolean\" },\n ] },\n { name: \"expandCollapseButtonVisibility\", type: \"dropdown\", choices: [\n { value: \"never\", text: \"Never\" },\n { value: \"onhover\", text: \"On Hover\" },\n { value: \"always\", text: \"Always\" }\n ] },\n { type: \"panel\", name: \"designerExpandCollapse\", elements: [\n { name: \"collapseQuestions\", type: \"boolean\" },\n { name: \"collapsePanels\", type: \"boolean\" },\n { name: \"collapsePages\", type: \"boolean\" },\n ] },\n { name: \"maxRows\", type: \"text\", inputType: \"number\" },\n { name: \"maxColumns\", type: \"text\", inputType: \"number\" },\n { type: \"panel\", name: \"designerChoices\", elements: [\n { name: \"inplaceEditChoiceValues\", type: \"boolean\" },\n ] },\n { name: \"minChoices\", type: \"text\", inputType: \"number\" },\n { name: \"maxChoices\", type: \"text\", inputType: \"number\" },\n { name: \"maxVisibleChoices\", type: \"text\", inputType: \"number\" },\n { name: \"maxRateValues\", type: \"text\", inputType: \"number\" },\n { name: \"forbiddenNestedElements\", type: \"text\" },\n { name: \"maxPanelNestingLevel\", type: \"text\", inputType: \"number\" }\n ] },\n { type: \"panel\", name: \"preview\", state: \"expanded\", elements: [\n { type: \"panel\", name: \"previewSimulateDevice\", elements: [\n { name: \"previewAllowSimulateDevice\", type: \"boolean\" },\n ] },\n\n { name: \"previewDevice\", type: \"dropdown\", choices: [\n { value: \"desktop\", text: \"Desktop\" },\n { value: \"iPhoneSE\", text: \"iPhone SE\" },\n { value: \"iPhone15\", text: \"iPhone 15\" },\n { value: \"iPhone15Plus\", text: \"iPhone 15 Plus\" },\n { value: \"iPad\", text: \"iPad\" },\n { value: \"iPadMini\", text: \"iPad Mini\" },\n { value: \"androidPhone\", text: \"Android Phone\" },\n { value: \"androidTablet\", text: \"Android Tablet\" },\n { value: \"microsoftSurface\", text: \"Microsoft Surface\" }\n ] },\n { name: \"previewOrientation\", type: \"dropdown\", choices: [\n { value: \"landscape\", text: \"Landscape\" },\n { value: \"portrait\", text: \"Portrait\" }\n ] },\n { type: \"panel\", name: \"previewAllowSelect\", elements: [\n { name: \"previewAllowSelectLanguage\", type: \"boolean\" },\n { name: \"previewAllowSelectPage\", type: \"boolean\" },\n ] },\n { name: \"previewAllowHiddenElements\", type: \"boolean\" },\n ] },\n { type: \"panel\", name: \"logic\", state: \"expanded\", elements: [\n { name: \"logicAllowTextEditExpressions\", type: \"boolean\" },\n { name: \"logicMaxItemsInCondition\", type: \"text\", inputType: \"number\" }\n ]\n },\n { type: \"panel\", name: \"translation\", state: \"expanded\", elements: [\n { name: \"clearTranslationsOnSourceTextChange\", type: \"boolean\" },\n ]\n }\n\n ];\n }\n\n private optionsList: string[] = [];\n private addPathToName(optionName: string): string {\n return this.fullPath + \"_\" + optionName;\n }\n private patchElements(elements: any[]): any[] {\n return elements.map(element => {\n if (element.type === \"panel\") {\n if (element.state == \"expanded\") {\n element.title = editorLocalization.getString(\"tabs.\" + element.name);\n }\n this.patchElements(element.elements);\n } else {\n this.optionsList.push(element.name);\n element.title = element.name;\n }\n if (element.type === \"boolean\") {\n element.renderAs = \"checkbox\";\n element.useTitleAsLabel = true;\n }\n if (element.type === \"dropdown\") {\n element.searchEnabled = false;\n }\n element.name = this.addPathToName(element.name);\n return element;\n });\n }\n public createMainPageCore(): any {\n this.optionsList = [];\n return {\n title: getLocString(\"presets.options.title\"),\n description: getLocString(\"presets.options.description\"),\n navigationTitle: getLocString(\"presets.options.navigationTitle\"),\n elements: this.patchElements(this.createElements())\n };\n }\n protected getDefaultJsonValueCore(creator: SurveyCreatorModel): any {\n return this.optionsList.reduce((acc: any, option) => { acc[option] = creator[option]; return acc; }, {});\n }\n protected getJsonValueCore(model: SurveyModel, creator: SurveyCreatorModel, defaultJson: any): any {\n const json: any = {};\n this.optionsList.forEach(option => {\n const question = model.getQuestionByName(this.addPathToName(option));\n if (!!question) {\n json[option] = question.value;\n }\n });\n if (Helpers.isTwoValueEquals(json, defaultJson)) return undefined;\n\n return json;\n }\n\n protected setupQuestionsValueCore(model: SurveyModel, json: any, creator: SurveyCreatorModel): void {\n this.optionsList.forEach(option => model.getQuestionByName(this.addPathToName(option)).value =\n (json ? json[option] : creator[option]));\n }\n\n public get questionNames() {\n return this.optionsList.map(option => this.addPathToName(option));\n }\n\n public onGetPanelTitleActions(model: SurveyModel, creator: SurveyCreatorModel, options: any): void {\n const prefix = this.fullPath + \"_\";\n if (options.panel.name.substring(0, prefix.length) !== prefix) return;\n const collapseIcon = \"icon-collapsepanel-16x16\";\n const expandIcon = \"icon-expandpanel-16x16\";\n options.actions = [{\n id: \"collapse\",\n css: \"sv-action-bar-item--collapse\",\n locTooltipName: new ComputedUpdater<string>(() => options.panel.isCollapsed ? \"ed.expandTooltip\" : \"ed.collapseTooltip\") as any,\n iconName: new ComputedUpdater<string>(() => options.panel.isCollapsed ? expandIcon : collapseIcon) as any,\n iconSize: \"auto\",\n action: () => {\n if (options.panel.isCollapsed) {\n options.panel.expand();\n } else {\n options.panel.collapse();\n }\n }\n }];\n }\n}","import { getLocaleStrings } from \"survey-creator-core\";\nexport const enStrings = {\n languages: {\n title: \"Languages\",\n navigationTitle: \"Languages\",\n description: \"Select the language of the Survey Creator UI and target\\nlanguages for the survey being configured.\",\n creatorUI: \"Survey Creator UI language\",\n surveyLanguages: \"Survey languages\",\n searchPlaceholder: \"Type to search...\",\n translateToEnglish: \"Translate language names to English\"\n },\n tabs: {\n title: \"Configure tabs\",\n navigationTitle: \"Tabs\",\n description: \"Select the tabs you want to show, reorder them, change their titles,\\nand choose the tab that will be active by default.\",\n items: \"Visible tabs\",\n hiddenItems: \"Hidden tabs\",\n defaultTab: \"Default tab\",\n noItemsText: \"Drag tabs here to show them\",\n noHiddenItemsText: \"Drag tabs here to hide them\",\n name: \"Name\",\n titleField: \"Title\",\n iconName: \"Icon name\"\n },\n toolbox: {\n title: \"Set up the Toolbox\",\n navigationTitle: \"Toolbox\",\n description: \"Select the toolbox items you want to show, group them into categories, \\nrename them, and change their order if required.\",\n toolbox: \"Toolbox\",\n categories: \"Categories\",\n noCategoriesText: \"No categories\",\n noItemsText: \"Drag items here to show them\",\n noHiddenItemsText: \"Drag items here to hide them\",\n hiddenItems: \"Hidden toolbox items\",\n enableGrouping: \"Enable grouping\",\n showCategoryTitles: \"Show category titles\",\n categoryName: \"Name\",\n categoryTitle: \"Title\",\n tooltip: \"Tooltip\",\n iconName: \"Icon name\",\n jsonObject: \"JSON object to apply when users select this toolbox item\",\n subitems: \"Subitems\",\n enableSubitems: \"Enable subitems for this question\",\n moveAsSubitem: \"Move as a subitem to...\",\n addToToolbox: \"Add to Toolbox\",\n deleteCustomItem: \"Delete Custom Item\",\n addCustomCategory: \"New Category\",\n addCustomItem: \"New Item\",\n addNewItem: \"Add a new item\",\n addNewSubitem: \"Add a new subitem\",\n noRowsText: \"There are no items\",\n newItem: \"New item in\",\n },\n propertyGrid: {\n title: \"Customize the Property Grid\",\n navigationTitle: \"Property Grid\",\n description: \"Hide, rename, reorder, or change property grouping in the Property Grid.\",\n selectElement: \"Select a survey element to customize\",\n propertyGrid: \"Property Grid\",\n noCategoriesText: \"No categories\",\n noItemsText: \"Drag properties here to show them\",\n noHiddenItemsText: \"Drag properties here to hide them\",\n hiddenItems: \"Hidden properties\",\n categoryName: \"Name\",\n categoryTitle: \"Title\",\n iconName: \"Icon name\",\n name: \"Name\",\n titleField: \"Title\",\n descriptionField: \"Helper text\",\n addCustomCategory: \"New Category\"\n },\n options: {\n title: \"Options\",\n navigationTitle: \"Options\",\n description: \"Detailed configuration settings for Survey Creator.\",\n },\n items: {\n addNewItem: \"Add a new item\",\n addNewSubitem: \"Add a new subitem\",\n newItem: \"New item in\",\n addCustomCategory: \"New Category\",\n newCategory: \"New category in\",\n moveToCategory: \"Move to category...\",\n moveToNewCategory: \"Move to new category\",\n categoriesLabel: \"Categories\",\n moveTo: \"Move To...\",\n removeFrom: \"Remove from {0}\",\n more: \"More\",\n restoreToDefault: \"Restore\",\n edit: \"Edit\",\n expand: \"Expand\",\n collapse: \"Collapse\",\n remove: \"Remove\",\n add: \"Add\",\n delete: \"Delete\"\n },\n editor: {\n title: \"Creator Presets\",\n presetJson: \"Preset JSON:\",\n copy: \"Copy\",\n download: \"Download\",\n load: \"Load\",\n saveExit: \"Save & Exit\",\n back: \"Back\",\n resetToDefault: \"Reset\",\n resetToDefaults: \"All settings restored to default\",\n resoredToDefault: \"resored to default\",\n itemRestoredToDefault: \"Item restored to default\",\n categoryRestoredToDefault: \"Category restored to default\",\n edit: \"Edit\",\n completeText: \"Save & Exit\",\n pagePrevText: \"Back\",\n required: \"Please enter a value.\",\n },\n plugin: {\n buttonTitle: \"UI Configuration Manager\",\n buttonDescription: \"Configure the Toolbox, Tabs, Property Grid, and other UI elements, and save the setup as a reusable preset.\",\n presetsTab: \"Presets\",\n creatorPresets: \"Creator Presets\",\n save: \"Save & Exit\",\n file: \"File\",\n import: \"Import\",\n export: \"Export\",\n edit: \"Edit\",\n resetLanguages: \"Reset Languages\",\n resetAll: \"Reset all changes\",\n resetConfirmation: \"Do you really want to reset the settings?\",\n resetConfirmationOk: \"Yes, reset the settings\",\n\n resetToDefaults: \"Reset {0}\",\n defaultSettings: \"Default Settings\",\n basic: \"Basic\",\n advanced: \"Advanced\",\n expert: \"Expert\",\n license: \"<a href='https://surveyjs.io/' target='_blank'>UI Preset Editor</a> is available only with a PRO license. To use it in your application, please <a href='https://surveyjs.io/manage#renewals-and-upgrades' target='_blank'>upgrade your license</a>.\",\n license2: \"Your maintenance subscription expired on {date}. You may continue using all <a href='https://surveyjs.io/stay-updated/release-notes' target='_blank'>versions released up to that date</a>. To remove this banner in the latest version, please <a href='https://surveyjs.io/manage#license-manager' target='_blank'>renew your subscription</a> and <a href='https://surveyjs.io/remove-alert-banner' target='_blank'>set up a new license key</a>. Please note <a href='https://surveyjs.io/' target='_blank'>UI Preset Editor</a> is available to all users with an active PRO license.\",\n licenseCreator: \"To use the Survey Creator plugin in your application, a <a href='https://surveyjs.io/licensing' target='_blank'>developer license</a> is required. If you have an active license, please <a href='https://surveyjs.io/remove-alert-banner' target='_blank'>set up your license key</a> and ensure you're using the <a href='https://surveyjs.io/stay-updated/release-notes' target='_blank'>latest version</a>. Please note <a href='https://surveyjs.io/' target='_blank'>UI Preset Editor</a> is included only in the PRO license tier.\",\n licenseCreator2: \"Your maintenance subscription expired on {date}. You may continue using all <a href='https://surveyjs.io/stay-updated/release-notes' target='_blank'>versions released up to that date</a>. To remove this banner in the latest version, please <a href='https://surveyjs.io/manage#license-manager' target='_blank'>renew your subscription</a> and <a href='https://surveyjs.io/remove-alert-banner' target='_blank'>set up a new license key</a>. Please note <a href='https://surveyjs.io/' target='_blank'>UI Preset Editor</a> is included only in the PRO license tier. To use it in your application, please also <a href='https://surveyjs.io/manage#renewals-and-upgrades' target='_blank'>upgrade your license</a>.\"\n }\n};\nconst locale = getLocaleStrings(\"en\");\nlocale.presets = enStrings;","import { SurveyCreatorModel, editorLocalization, ICreatorOptions, getLocString } from \"survey-creator-core\";\nimport { CreatorPreset, ICreatorPresetData } from \"survey-creator-core\";\nimport { Action, ActionContainer, Base, LocalizableString, Question, QuestionMatrixDropdownRenderedRow, QuestionMatrixDynamicModel, SurveyModel } from \"survey-core\";\nimport { CreatorPresetEditableBase, ICreatorPresetEditorSetup } from \"./presets-editable-base\";\nimport { CreatorPresetEditableToolboxConfigurator } from \"./presets-editable-toolbox\";\nimport { CreatorPresetEditablePropertyGrid } from \"./presets-editable-properties\";\nimport { CreatorPresetEditableTabs } from \"./presets-editable-tabs\";\nimport { CreatorPresetEditableLanguages } from \"./presets-editable-languages\";\nimport { CreatorPresetEditableOptions } from \"./presets-editable-options\";\nimport { presetsCss } from \"./presets-theme/presets\";\nexport { enStrings } from \"./localization/english\";\n\nexport class NavigationBar extends ActionContainer {\n constructor() {\n super();\n this.cssClasses = {\n root: \"presets-navigation-bar\",\n defaultSizeMode: \"\",\n smallSizeMode: \"\",\n item: \"presets-navigation-bar__item presets-navigation-bar-item\",\n itemWithTitle: \"\",\n itemAsIcon: \"\",\n itemActive: \"presets-navigation-bar-item--active\",\n itemPressed: \"presets-navigation-bar-item--pressed\",\n itemIcon: \"\",\n itemTitle: \"\",\n itemTitleWithIcon: \"\",\n };\n }\n}\n\nexport class CreatorPresetEditorModel extends Base implements ICreatorPresetEditorSetup {\n private presetValue: CreatorPreset;\n private modelValue: SurveyModel;\n private resultModelValue: SurveyModel;\n private navigationBarValue: NavigationBar;\n public locTitle: LocalizableString;\n private applying = false;\n constructor(json?: ICreatorPresetData, private creatorValue?: SurveyCreatorModel, private defaultJsonValue?: ICreatorPresetData) {\n super();\n editorLocalization.presetStrings = undefined;\n this.presetValue = new CreatorPreset(json);\n if (!this.creatorValue)this.creatorValue = this.createCreator({});\n this.modelValue = this.createModel();\n this.resultModelValue = this.createResultModel();\n this.locTitle = new LocalizableString(undefined, false);\n this.locTitle.text = getLocString(\"presets.editor.title\");\n this.navigationBarValue = new NavigationBar();\n const firstTabName = \"preset\";\n this.preset.setJson(this.getJsonFromSurveyModel());\n }\n public dispose(): void {\n super.dispose();\n //this.creator.dispose();\n this.disposeModel();\n }\n private disposeModel(): void {\n this.resetAllPages();\n this.model.editablePresets.forEach(preset => preset.dispose());\n this.model.dispose();\n }\n public get preset(): CreatorPreset { return this.presetValue; }\n public get creator(): SurveyCreatorModel { return this.creatorValue; }\n public get model(): SurveyModel { return this.modelValue; }\n public get resultModel(): SurveyModel {\n this.upldateResultJson();\n return this.resultModelValue;\n }\n public getLocale(): string { return editorLocalization.currentLocale || \"en\"; }\n public get json(): ICreatorPresetData {\n return this.preset.getJson();\n }\n public set json(val: ICreatorPresetData) {\n this.preset.setJson(val);\n this.updateDataFromJson(this.modelValue);\n this.upldateResultJson();\n }\n public get jsonText(): string {\n return JSON.stringify(this.json, null, 2);\n }\n public get defaultJson(): ICreatorPresetData {\n return this.defaultJsonValue;\n }\n public createCreator(options: ICreatorOptions): SurveyCreatorModel {\n return new SurveyCreatorModel(options);\n }\n\n private resetAllPages() {\n this.model.editablePresets.forEach(item => item.setupOnCurrentPage(this.model, this.creator, true));\n this.creator.readOnly = false;\n }\n\n public resetToDefaults(page?: string) {\n if (!page) {\n this.notify(getLocString(\"presets.editor.resetToDefaults\"));\n }\n this.model.editablePresets.forEach(item => {\n if (!page || item.pageName == page) item.resetToDefaults(this.model, !!page);\n });\n }\n\n private activatePage (model: SurveyModel, creator: SurveyCreatorModel, editablePresets: CreatorPresetEditableBase[]) {\n const inactivePresets = editablePresets.filter(item => model.currentPage.name !== item.pageName);\n const activePreset = editablePresets.filter(item => model.currentPage.name === item.pageName)[0];\n inactivePresets.forEach(item => item.setupOnCurrentPage(model, this.creator, false));\n activePreset.setupOnCurrentPage(model, this.creator, true);\n }\n\n private notify(message: string) {\n this.creator.notify(message);\n }\n\n protected updateDataFromJson(model: SurveyModel) {\n const json = this.preset.getJson() || {};\n editorLocalization.presetStrings = json.localization;\n model.editablePresets.forEach(item => item.setupQuestions(model, this));\n model.editablePresets.forEach(item => item.setupQuestionsValue(model, json[item.path], this.creator));\n this.updateJsonLocalizationStrings(model.editablePresets);\n return json;\n }\n\n public onLocaleChanged() {\n const json = this.preset.getJson();\n this.model.editablePresets.forEach(item => item.onLocaleChanged(this.model, json[item.path], this.creator));\n }\n\n protected createModel(): SurveyModel {\n const editablePresets = this.createEditablePresets();\n const model = new SurveyModel(this.getEditModelJson(editablePresets));\n model.css = presetsCss;\n model.editablePresets = editablePresets;\n model.keepIncorrectValues = true;\n model.showNavigationButtons = false;\n model.completeText = getLocString(\"presets.editor.completeText\");\n model.pagePrevText = getLocString(\"presets.editor.pagePrevText\");\n model.enterKeyAction = \"loseFocus\";\n\n editablePresets.forEach(item => item.notifyCallback = (message: string) => this.notify(message));\n if (!this.defaultJsonValue) {\n this.defaultJsonValue = {};\n editablePresets.forEach(item => this.defaultJsonValue[item.path] = item.getDefaultJsonValue(this.creator));\n }\n const json = this.updateDataFromJson(model);\n\n this.activatePage(model, this.creator, editablePresets);\n model.onCurrentPageChanged.add((sender, options) => {\n this.activatePage(model, this.creator, editablePresets);\n });\n const questionNames = editablePresets.map(preset => preset.questionNames).reduce((acc, current) => acc.concat(current), []);\n model.onValueChanged.add((sender, options) => {\n editablePresets.forEach(item => item.updateOnValueChanged(model, options.name));\n if (questionNames.indexOf(options.name) != -1 && !this.applying) {\n this.applyFromSurveyModel(false);\n this.activatePage(model, this.creator, editablePresets);\n }\n });\n model.onGetQuestionTitleActions.add((_, options) => {\n editablePresets.forEach(item => {\n if (options.question.name == item.getNavigationElementName()) {\n options.question.getTitleToolbar().isResponsivenessDisabled = true;\n options.actions = model.navigationBar.actions;\n }\n });\n });\n model.onGetPanelTitleActions.add((_, options) => {\n editablePresets.forEach(item => {\n if (options.panel.name == item.getNavigationElementName()) {\n options.panel.getTitleToolbar().isResponsivenessDisabled = true;\n options.actions = model.navigationBar.actions;\n }\n item.onGetPanelTitleActions(model, this.creator, options);\n });\n });\n function adjustMatrixAlignment(question: Question) {\n if (question.isDescendantOf(\"matrixdynamic\")) {\n question.onCreateDetailPanelRenderedRowCallback = (\n renderedRow: QuestionMatrixDropdownRenderedRow\n ) => {\n renderedRow.cells = [renderedRow.cells[1]];\n renderedRow.cells[0].colSpans += 2;\n };\n }\n }\n model.getAllQuestions().forEach(question => adjustMatrixAlignment(question));\n model.onQuestionCreated.add((_, options) => { adjustMatrixAlignment(options.question); });\n\n model.onMatrixDetailPanelVisibleChanged.add((sender, options) => {\n editablePresets.forEach(item => item.updateOnMatrixDetailPanelVisibleChanged(model, this.creator, options));\n });\n model.onGetMatrixRowActions.add((sender, options) => {\n editablePresets.forEach(item => item.onGetMatrixRowActions(model, this.creator, options));\n });\n model.onMatrixRowDragOver.add((sender, options) => {\n editablePresets.forEach(item => item.onMatrixRowDragOver(model, this.creator, options));\n });\n model.onMatrixRowRemoving.add((sender, options) => {\n editablePresets.forEach(item => item.onMatrixRowRemoving(model, this.creator, options));\n });\n model.onMatrixRowAdded.add((sender, options) => {\n editablePresets.forEach(item => item.onMatrixRowAdded(model, this.creator, options));\n });\n model.onMatrixCellValueChanged.add((sender, options) => {\n editablePresets.forEach(item => item.onMatrixCellValueChanged(model, this.creator, options));\n });\n model.onUpdateQuestionCssClasses.add(function(_, options) {\n editablePresets.forEach(item => {\n const suffix = item.getCustomQuestionCssSuffix(options.question);\n if (suffix) {\n options.cssClasses.mainRoot += \" sps-question--\" + suffix;\n }\n if (item.getMainElementNames().indexOf(options.question.name) >= 0) {\n options.cssClasses.mainRoot += \" sps-question--main\";\n options.cssClasses.row += \" sps-table__row--main\";\n options.cssClasses.buttonAdd += \" sps-matrixdynamic__add-btn--icon\";\n options.cssClasses.iconAdd = \"sps-matrixdynamic__add-btn-icon\";\n options.cssClasses.iconAddId = \"#icon-add-24x24\";\n }\n });\n });\n model.onUpdatePanelCssClasses.add(function(_, options) {\n editablePresets.forEach(item => {\n if (options.panel.name === item.getNavigationElementName()) {\n options.cssClasses.panel.container += \" sps-panel--navigation \";\n }\n });\n });\n model.onUpdatePageCssClasses.add(function(_, options) {\n editablePresets.forEach(item => {\n if (item.pageName === options.page.name) {\n options.cssClasses.page.root += \" sps-page--\" + item.fullPath;\n }\n });\n });\n\n return model;\n }\n protected createResultModel(): SurveyModel {\n const model = new SurveyModel({\n elements: [\n { type: \"html\", name: \"q1\", html: this.getResultHtml() },\n { type: \"comment\", name: \"json\", title: getLocString(\"presets.editor.presetJson\"), rows: 60, cols: 120, readOnly: true }\n ]\n });\n model.showPrevButton = false;\n model.showCompleteButton = false;\n model.showQuestionNumbers = false;\n model.width = \"900px\";\n model.onGetQuestionTitleActions.add((sender, options) => {\n if (options.question.name === \"json\") {\n const question = options.question;\n options.actions.push({\n id: \"json_copy\",\n iconName: \"icon-copy\",\n title: getLocString(\"presets.editor.copy\"),\n action: () => {\n navigator.clipboard.writeText(question.value);\n }\n });\n options.actions.push({\n id: \"json_download\",\n iconName: \"icon-download\",\n title: getLocString(\"presets.editor.download\"),\n action: () => {\n this.downloadJsonFile(question.value);\n }\n });\n options.actions.push({\n id: \"icon-load\",\n iconName: \"icon-load\",\n title: getLocString(\"presets.editor.load\"),\n action: () => {\n this.loadJsonFile();\n }\n });\n }\n });\n return model;\n }\n private getResultHtml(): string {\n return `<div>${getLocString(\"presets.editor.usageExample\")}</div>`;\n }\n public downloadJsonFile(text?: string): void {\n if (!text) text = this.jsonText;\n const jsonBlob = new Blob([text], { type: \"application/json\" });\n const elem = window.document.createElement(\"a\");\n elem.href = window.URL.createObjectURL(jsonBlob);\n elem.download = \"preset.json\";\n document.body.appendChild(elem);\n elem.click();\n document.body.removeChild(elem);\n }\n inputFileElement: HTMLInputElement;\n public loadJsonFile(): void {\n if (!this.inputFileElement) {\n this.inputFileElement = document.createElement(\"input\");\n this.inputFileElement.type = \"file\";\n this.inputFileElement.accept = \".json\";\n this.inputFileElement.style.display = \"none\";\n this.inputFileElement.onchange = () => {\n if (this.inputFileElement.files.length < 1) return;\n this.importFromFile(this.inputFileElement.files[0]);\n this.inputFileElement.value = \"\";\n };\n }\n this.inputFileElement.click();\n }\n private importFromFile(file: File) {\n let fileReader = new FileReader();\n fileReader.onload = (e) => {\n const surveyJSONText = fileReader.result as string;\n this.json = JSON.parse(surveyJSONText);\n };\n fileReader.readAsText(file);\n }\n private upldateResultJson(): void {\n this.resultModelValue.getQuestionByName(\"json\").value = this.jsonText;\n }\n public applyFromSurveyModel(validate = true): boolean {\n this.applying = true;\n if (validate && !this.validateEditableModel(this.model)) {\n this.applying = false;\n return false;\n }\n // if (reCreateCretor) {\n // const json = this.creator?.JSON || {};\n // this.creatorValue = this.createCreator({});\n // this.creator.JSON = json;\n // }\n this.preset.setJson(this.getJsonFromSurveyModel());\n this.model.setValue(\"json_result\", JSON.stringify(this.preset.getJson(), null, 2));\n this.preset.apply(this.creator, true);\n this.applying = false;\n return true;\n }\n public getJsonFromSurveyModel(): any {\n const res: ICreatorPresetData = {};\n this.model.editablePresets.forEach(preset => {\n const val = preset.getJsonValue(this.model, this.creator, this.defaultJsonValue?.[preset.path]);\n if (!!val) {\n res[preset.path] = val;\n }\n });\n this.getJsonLocalizationStrings(res);\n return res;\n }\n private getJsonLocalizationStrings(res: ICreatorPresetData): void {\n const locStrs: any = {};\n this.model.editablePresets.forEach(preset => {\n preset.setJsonLocalizationStrings(this.model, locStrs);\n });\n if (this.json && !!this.json.localization) {\n res.localization = JSON.parse(JSON.stringify(this.json.localization));\n }\n const locale = this.getLocale();\n if (Object.keys(locStrs).length > 0) {\n if (!res.localization) {\n res.localization = {};\n }\n res.localization[locale] = locStrs;\n } else {\n if (res.localization) {\n if (res.localization[locale]) {\n delete res.localization[locale];\n }\n if (Object.keys(res.localization).length === 0) {\n delete res.localization;\n }\n }\n }\n }\n private updateJsonLocalizationStrings(editablePresets: Array<CreatorPresetEditableBase>): void {\n const strs = this.json && !!this.json.localization ? JSON.parse(JSON.stringify(this.json.localization)) : {};\n const locale = this.getLocale();\n const locs = strs[locale] || {};\n editablePresets.forEach(preset => {\n preset.updateJsonLocalizationStrings(locs);\n });\n }\n private validateEditableModel(model: SurveyModel): boolean {\n if (!model.validate(true, true)) return false;\n const editablePresets = model.editablePresets;\n for (let i = 0; i < editablePresets.length; i ++) {\n if (!editablePresets[i].validate(model)) return false;\n }\n return true;\n }\n private createEditableCore(preset: CreatorPreset, fullPath: string): CreatorPresetEditableBase {\n if (fullPath === \"languages\") return new CreatorPresetEditableLanguages(preset);\n if (fullPath === \"tabs\") return new CreatorPresetEditableTabs(preset);\n if (fullPath === \"toolbox\") return new CreatorPresetEditableToolboxConfigurator(preset);\n if (fullPath === \"propertyGrid\") return new CreatorPresetEditablePropertyGrid(preset);\n if (fullPath === \"options\") return new CreatorPresetEditableOptions(preset);\n return undefined;\n }\n private createEditable(preset: CreatorPreset, parent: CreatorPresetEditableBase, fullPath: string): CreatorPresetEditableBase {\n const editable = this.createEditableCore(preset, fullPath);\n if (editable) {\n preset.children.forEach(item => {\n const child = this.createEditable(<CreatorPreset>item, editable, fullPath + \"_\" + item.getPath());\n if (child) {\n editable.children.push(child);\n child.parent = editable;\n }\n });\n }\n return editable;\n }\n private createEditablePresets(): Array<CreatorPresetEditableBase> {\n const res = [];\n this.preset.children.forEach(preset => {\n const editable = this.createEditable(<CreatorPreset>preset, undefined, preset.getPath());\n if (editable) {\n res.push(editable);\n }\n });\n return res;\n }\n private getEditModelJson(editablePresets: Array<CreatorPresetEditableBase>): any {\n const modelJson = { pages: [], showQuestionNumbers: false };\n editablePresets.forEach(preset => {\n const pages = preset.createPages();\n if (Array.isArray(pages)) {\n pages.forEach(page => modelJson.pages.push(page));\n }\n });\n return modelJson;\n }\n}","export * from \"./presets-editable-toolbox\";\nexport * from \"./presets-editor\";\nexport * from \"./presets-plugin\";\nexport * from \"./presets-editable-languages\";\nexport * from \"./presets-editable-tabs\";\nexport * from \"./presets-editable-options\";\nexport * from \"./presets-editable-base\";\nexport * from \"./preset-question-json\";\nimport { checkLibraryVersion } from \"survey-core\";\nimport \"../presets/presets-theme/presets.scss\";\nexport let Version: string;\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n//@ts-ignore\nVersion = `${process.env.VERSION}`;\ncheckLibraryVersion(Version, \"survey-creator-core-presets\");","export const basic = {\n \"tabs\": {\n \"items\": [\n {\n \"name\": \"designer\",\n \"iconName\": \"icon-config\"\n },\n {\n \"name\": \"preview\",\n \"iconName\": \"icon-preview\"\n },\n {\n \"name\": \"json\",\n \"iconName\": \"icon-codeeditor-24x24\"\n }\n ],\n \"activeTab\": \"designer\"\n },\n};\n","export const advanced = {\n \"tabs\": {\n \"items\": [\n {\n \"name\": \"designer\",\n \"iconName\": \"icon-config\"\n },\n {\n \"name\": \"preview\",\n \"iconName\": \"icon-preview\"\n },\n {\n \"name\": \"logic\",\n \"iconName\": \"icon-logic-24x24\"\n },\n {\n \"name\": \"json\",\n \"iconName\": \"icon-codeeditor-24x24\"\n }\n ],\n \"activeTab\": \"designer\"\n },\n};\n","export const expert = {\n};\n","import { createDropdownActionModel, IAction, ListModel, settings as libSettings, hasLicense, glc } from \"survey-core\";\nimport { ICreatorPlugin, SurveyCreatorModel, saveToFileHandler, getLocString } from \"survey-creator-core\";\nimport { CreatorPresetEditorModel } from \"./presets-editor\";\nimport { listComponentCss } from \"./presets-theme/list-theme\";\nimport { basic, advanced, expert } from \"./default-settings\";\nexport class TabPresetsPlugin implements ICreatorPlugin {\n public model: CreatorPresetEditorModel;\n public static iconName = \"icon-settings\";\n private activeTab;\n private currentPresetIndex = 0;\n private currentValue;\n private designerPlugin;\n private toolboxCompact;\n private defaultJson;\n\n private presetsList: ListModel;\n\n private showPresets() {\n this.activeTab = this.creator.activeTab;\n this.creator.activeTab = \"presets\";\n }\n\n private hidePresets() {\n this.creator.onActiveTabChanging.remove(this.preventTabSwitch);\n this.creator.activeTab = this.activeTab;\n }\n\n private confirmReset(onApply: ()=>void) {\n libSettings.confirmActionAsync(getLocString(\"presets.plugin.resetConfirmation\"),\n (confirm) => {\n if (confirm) {\n onApply();\n }\n },\n {\n applyTitle: getLocString(\"presets.plugin.resetConfirmationOk\"),\n locale: this.creator.locale,\n cssClass: \"sv-popup--confirm svc-creator-popup\"\n }\n );\n\n }\n\n constructor(private creator: SurveyCreatorModel) {\n creator.addTab({ name: \"presets\", title: getLocString(\"presets.plugin.presetsTab\"), plugin: this, iconName: TabPresetsPlugin.iconName });\n creator.tabs.filter(t => t.id == \"presets\")[0].css = \"svc-tabbed-menu-item-container--presets\";\n this.designerPlugin = creator.getPlugin(\"designer\");\n const settingsPage = this.creator.sidebar.getPageById(\"creatorTheme\");\n settingsPage.componentData.showPresets = () => this.showPresets();\n settingsPage.componentName = \"svc-presets-property-grid\";\n this.toolboxCompact = creator.toolbox.forceCompact;\n }\n\n public saveToFileHandler = saveToFileHandler;\n\n private preventTabSwitch = (_, options) => {\n options.allow = false;\n };\n\n public activate(): void {\n this.creator.onActiveTabChanging.add(this.preventTabSwitch);\n this.model = new CreatorPresetEditorModel({}, this.creator, this.defaultJson);\n this.defaultJson = { ...this.model.defaultJson };\n if (this.currentValue) {\n this.model.model.data = this.currentValue;\n }\n this.designerPlugin.activateSidebar();\n this.model.model.onComplete.add(() => this.hidePresets());\n\n //const presets = this.model?.model.editablePresets.map(p => <IAction>{ id: p.pageName, locTitleName: \"presets.\" + p.fullPath + \".navigationTitle\" });\n const presets = this.model?.model.pages.map(p => <IAction>{ id: p.name, title: p.navigationTitle });\n let settingsAction: IAction;\n\n const keep = (item: IAction) => {\n settingsAction.popupModel.show();\n };\n const tools = [\n { id: \"save\", title: getLocString(\"presets.plugin.save\"), markerIconName: \"check-24x24\", needSeparator: true, action: () => this.hidePresets() }, //locTitleName: \"presets.plugin.save\"\n { id: \"defaultSettings\", title: getLocString(\"presets.plugin.defaultSettings\"), needSeparator: true, css: \"sps-list__item--label\", enabled: false },\n { id: \"basic\", title: getLocString(\"presets.plugin.basic\"), action: (item: IAction) => { keep(item); this.model.json = basic; } },\n { id: \"advanced\", title: getLocString(\"presets.plugin.advanced\"), action: (item: IAction) => { keep(item); this.model.json = advanced; } },\n { id: \"expert\", title: getLocString(\"presets.plugin.expert\"), action: (item: IAction) => { keep(item); this.model.json = expert; } },\n { id: \"file\", title: getLocString(\"presets.plugin.file\"), needSeparator: true, css: \"sps-list__item--label\", enabled: false },\n { id: \"import\", title: getLocString(\"presets.plugin.import\"), markerIconName: \"import-24x24\", action: (item: IAction) => { keep(item); this.model?.loadJsonFile(); } },\n { id: \"export\", title: getLocString(\"presets.plugin.export\"), markerIconName: \"download-24x24\", action: (item: IAction) => { keep(item); this.model?.downloadJsonFile(); } },\n { id: \"edit\", title: getLocString(\"presets.plugin.edit\"), needSeparator: true, css: \"sps-list__item--label\", enabled: false },\n { id: \"reset-current\", title: getLocString(\"presets.plugin.resetLanguages\"), action: () => { this.confirmReset(()=>this.model?.resetToDefaults(\"page_languages\")); } },\n { id: \"reset\", title: getLocString(\"presets.plugin.resetAll\"), css: \"sps-list__item--alert\", action: () => { this.confirmReset(() => this.model?.resetToDefaults()); } },\n ];\n\n presets.forEach(p => {\n p.action = (item)=>{\n this.presetsList.selectedItem = item;\n keep(item);\n this.model.model.currentPage = this.model.model.getPageByName(item.id);\n };\n });\n settingsAction = createDropdownActionModel({\n id: \"presets-menu\",\n tooltip: getLocString(\"presets.plugin.creatorPresets\"),\n iconName: \"navmenu-24x24\",\n css: \"sps-menu-floating-action\",\n action: () => {\n if (settingsAction.popupModel.isVisible) {\n setTimeout(() => settingsAction.popupModel.hide(), 1);\n }\n }\n }, {\n items: [\n { id: \"creator-presets\", title: getLocString(\"presets.plugin.creatorPresets\"), css: \"sps-list__item--label\", enabled: false },\n ...presets,\n ...tools],\n showPointer: false,\n verticalPosition: \"top\",\n horizontalPosition: \"center\",\n searchEnabled: false,\n cssClass: \"sps-popup-menu sps-popup-menu--always-on-top\",\n cssClasses: listComponentCss,\n onHide: () => { settingsAction.iconName = \"navmenu-24x24\"; },\n onShow: () => { settingsAction.iconName = \"close-24x24\"; }\n }, this.model.model);\n const bottomActions = this.designerPlugin.tabControlModel.bottomToolbar.actions;\n bottomActions.forEach(a => a.visible = false);\n bottomActions.unshift(settingsAction);\n this.presetsList = settingsAction.popupModel.contentComponentData.model;\n const resetCurrentAction = this.presetsList.getActionById(\"reset-current\");\n this.presetsList.selectedItem = this.presetsList.actions[0];\n this.model.model.onCurrentPageChanged.add((_, options) => {\n this.presetsList.selectedItem = this.presetsList.actions[this.model.model.currentPageNo + 1];\n resetCurrentAction.title = getLocString(\"presets.plugin.resetToDefaults\").replace(\"{0}\", this.model.model.currentPage.navigationTitle);\n resetCurrentAction.action = () => { this.model?.resetToDefaults(this.presetsList.selectedItem.id); };\n });\n\n setTimeout(() => {\n presets[this.currentPresetIndex].action(presets[this.currentPresetIndex]);\n }, 100);\n }\n\n public deactivate(): boolean {\n this.creator.toolbox.forceCompact = this.toolboxCompact;\n this.currentValue = this.model?.model.data;\n const bottomActions = this.designerPlugin.tabControlModel.bottomToolbar.actions;\n bottomActions.forEach(a => a.visible = true);\n bottomActions.splice(0, 1);\n this.currentPresetIndex = this.model?.model.currentPageNo || 0;\n if (this.model) {\n this.model.dispose();\n }\n this.model = undefined;\n return true;\n }\n\n public onLocaleChanged() {\n //this.presetsList.actions.forEach(a => a.locStrsChanged());\n if (this.model) {\n this.model.onLocaleChanged();\n }\n }\n\n public getLicenseText(hasCreatorLicense: boolean, creatorLicenseDateString: string): string {\n if (!hasLicense?.(8)) {\n const presetsLicenseDateString = glc?.(8)?.toLocaleDateString?.();\n if (presetsLicenseDateString) {\n return getLocString(\"presets.plugin.license2\").replace(\"{date}\", presetsLicenseDateString);\n }\n if (hasCreatorLicense) return getLocString(\"presets.plugin.license\");\n return creatorLicenseDateString ?\n getLocString(\"presets.plugin.licenseCreator2\").replace(\"{date}\", creatorLicenseDateString) :\n getLocString(\"presets.plugin.licenseCreator\");\n }\n return \"\";\n }\n}","import { QuestionCommentModel, Serializer, ElementFactory, Helpers, RendererFactory, TextAreaModel, CustomError, SurveyError, JsonObject, Base, SurveyModel } from \"survey-core\";\nimport { SurveyJSON5 } from \"survey-creator-core\";\n\nexport class QuestionPresetJsonModel extends QuestionCommentModel {\n private jsonAreaModelValue: TextAreaModel;\n private jsonErrors: string[] = [];\n constructor(name: string) {\n super(name);\n }\n public getType(): string {\n return \"presetjson\";\n }\n protected getCssType(): string {\n return \"comment\";\n }\n public getTemplate(): string {\n return \"comment\";\n }\n public get textAreaModel(): TextAreaModel {\n if (!this.jsonAreaModelValue) {\n const options = this.getTextAreaOptions();\n const _this = this;\n const updateQuestionValue = (newValue: any) => {\n if (!Helpers.isTwoValueEquals(JSON.stringify(_this.value, null, 2), newValue, false, true, false)) {\n try {\n const value = new SurveyJSON5().parse(newValue);\n const valueToCheck = { ...value, name: \"temp\" };\n\n const jsonConverter = new JsonObject();\n jsonConverter.toObject({ elements: [valueToCheck] }, new SurveyModel());\n this.jsonErrors = jsonConverter.errors.map((err) => err.message);\n if (this.jsonErrors.length > 0) return;\n _this.value = value;\n } catch(error) {\n this.jsonErrors = [error.message];\n }\n } else {\n this.jsonErrors = [];\n }\n };\n options.getTextValue = () => JSON.stringify(this.value, null, 2);\n options.onTextAreaChange = (e) => { updateQuestionValue(e.target.value); };\n this.jsonAreaModelValue = new TextAreaModel(options);\n }\n return this.jsonAreaModelValue;\n }\n\n protected onCheckForErrors(errors: Array<SurveyError>, isOnValueChanged: boolean, fireCallback: boolean): void {\n super.onCheckForErrors(errors, isOnValueChanged, fireCallback);\n this.jsonErrors.forEach(errorMessage => {\n errors.push(new CustomError(errorMessage, this));\n });\n }\n\n}\nElementFactory.Instance.registerElement(\"presetjson\", (name) => {\n return new QuestionPresetJsonModel(name);\n}, false);\n\nSerializer.addClass(\"presetjson\",\n [],\n function () { return new QuestionPresetJsonModel(\"\"); },\n \"comment\"\n);\n\n"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE__156__","__WEBPACK_EXTERNAL_MODULE__982__","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","d","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","r","Symbol","toStringTag","value","extendStatics","b","setPrototypeOf","__proto__","Array","p","__extends","TypeError","String","__","constructor","create","__assign","assign","t","s","i","n","arguments","length","apply","__spreadArray","to","from","pack","ar","l","slice","concat","SuppressedError","preset","children","notifyCallback","message","path","getPath","getJsonPath","model","prefix","parent","fullPath","getPageTitle","getPageByName","pageName","title","getPageShortTitle","navigationTitle","getMainElementNames","mainPanelName","getMainPanelName","getCustomQuestionCssSuffix","question","createPages","res","mainPage","createMainPage","push","forEach","item","pages","isArray","page","validate","validateCore","createMainPageCore","name","getBoolVisibleIf","isTrue","getTextVisibleIf","val","getNotEmptyVisibleIf","getNavigationElementName","navigationPanelName","getJsonValue","creator","defaultJson","core","isVisible","getJsonValueCore","hasValue","getDefaultJsonValue","json","getDefaultJsonValueCore","setJsonLocalizationStrings","locStrs","setJsonLocalizationStringsCore","updateJsonLocalizationStrings","updateJsonLocalizationStringsCore","dispose","disposeCore","setupQuestions","creatorSetup","setupQuestionsCore","resetToDefaults","notify","restoreValuesFromDefault","getLocString","setupOnCurrentPage","active","setupOnCurrentPageCore","updateOnValueChanged","updateOnValueChangedCore","updateOnMatrixDetailPanelVisibleChanged","options","updateOnMatrixDetailPanelVisibleChangedCore","onGetMatrixRowActions","onGetMatrixRowActionsCore","onGetPanelTitleActions","onMatrixRowDragOver","onMatrixRowRemoving","onMatrixRowAdded","onMatrixCellValueChanged","setupQuestionsValue","setupQuestionsValueCore","saveValuesAsDefault","onLocaleChanged","onLocaleChangedCore","questionNames","getQuestionByName","defaultValue","getValue","JSON","parse","stringify","resetToDefaultsCore","copyJson","Helpers","getUnbindValue","updateModifiedText","text","localizationName","presetStrs","editorLocalization","presetStrings","getString","CreatorPresetEditableBase","saveTextInLocStrs","paths","split","presetsCss","container","header","body","bodyEmpty","footer","description","logo","logoImage","headerText","navigationButton","bodyNavigationButton","completedPage","navigation","complete","prev","next","start","preview","edit","list","listComponentCss","panel","withFrame","nested","expandableAnimating","titleBar","contentEnter","contentLeave","titleExpandable","titleExpanded","titleCollapsed","titleOnError","content","icon","iconExpanded","requiredMark","collapsed","expanded","paneldynamic","mainRoot","button","buttonRemove","buttonAdd","panelsContainer","panelWrapper","panelWrapperList","progressTop","progressBottom","buttonPrev","buttonNext","progressContainer","progress","progressBar","progressText","panelFooter","separator","footerButtonsContainer","progressTextInBar","pageTitle","pageDescription","row","rowEnter","rowLeave","rowDelayedEnter","rowMultiple","flowRoot","asCell","headerLeft","headerTop","headerBottom","contentLeft","titleLeftRoot","titleOnAnswer","number","descriptionUnderInput","comment","required","titleRequired","indent","formGroup","hasError","readOnly","confirmDialog","errorsContainerBottom","checkbox","itemSelectAll","itemNone","itemReadOnly","itemChecked","itemHover","itemInline","label","itemSvgIconId","labelChecked","itemControl","itemDecorator","controlLabel","materialDecorator","other","column","radiogroup","clearButton","boolean","rootCheckbox","checkboxItem","checkboxItemChecked","checkboxitemIndeterminate","checkboxItemReadOnly","svgIconId","checkboxLabel","controlCheckbox","checkboxControlLabel","checkboxItemDecorator","checkboxMaterialDecorator","controlReadOnly","small","remainingCharacterCounter","onError","dropdown","popup","control","controlEmpty","controlValue","filterStringInput","selectWrapper","chevronButtonIconId","cleanButton","hintPrefix","hintSuffix","matrix","tableWrapper","rowError","cell","headerCell","itemValue","cellText","cellTextSelected","cellTextReadOnly","matrixdropdown","emptyCell","matrixdynamic","rowDisabled","rowReadOnly","detailRow","detailButton","detailButtonExpanded","detailIcon","detailIconExpanded","detailIconExpandedId","detailIconId","detailPanelCell","actionsCell","iconAdd","iconRemove","dragElementDecorator","iconDragElement","iconDrag","dragDropGhostPositionTop","dragDropGhostPositionBottom","noRowsSection","noRowsText","cellQuestionWrapper","draggedRow","rowEmpty","actionBar","itemPressed","itemAsIcon","itemIcon","itemTitle","defaultIcon","hasIcon","_","nameItems","keys","SvgRegistry","icons","map","getMatrixKeyColumnName","getDefaultItems","defaultItems","getDefaultItem","keyColumn","filter","needToSetActions","updateMatrixRowActions","renderedTable","rows","iconActions","cells","actions","updateRowActions","rowData","a","updateRowAction","action","id","iconName","enabled","isTwoValueEquals","createResetAction","tooltip","location","visibleIndex","createEditAction","editItem","createIconAction","cssClass","innerCss","setupStandardActions","allowExpand","isItemsMatrix","ComputedUpdater","isDetailPanelShowing","visible","component","removeRowUI","survey","resetAction","itemKey","resetActionParams","css","defaultItem","data","Action","showDetailPanelInPopup","rootElement","removeOnCancel","isNew","onValueChanged","add","keyQuestion","resetItem","v","restoreItems","questionItems","questionHiddenItems","rowIndex","getMatrix","nameMatrix","detailElements","e","fromMatrix","toMatrix","allow","hiddenItems","getExistingKeys","items","unsorted","getDefaultValueForRow","SurveyHelper","getNewName","setDefaultValueForRow","renderedRow","find","index","visibleRows","findIndex","SurveyModel","elements","toJSON","fitToContainer","showNavigationButtons","enterKeyAction","questionErrorLocation","settings","showDialog","popupModel","componentName","onApply","newValue","getAllQuestions","q","newRowValue","onCancel","displayMode","startWithNewLine","width","footerToolbar","defaultActionBarCss","cssClasses","getActionById","unshift","getAllPanels","isRequired","requiredErrorText","itemsContainer","itemsContainerFiltering","emptyContainer","emptyText","filterIcon","filterInput","searchClearButtonIcon","loadingIndicator","itemSelected","itemGroup","itemGroupSelected","itemWithIcon","itemDisabled","itemFocused","itemHovered","itemTextWrap","itemMarkerIcon","itemSeparator","itemBody","defaultCategories","reduce","acc","category","nameCategories","setupCategoryActions","resetCategory","ejectRowData","remove","rowDataIndex","indexOf","splice","moveToCategory","categoryName","categories","getQuestionCategories","catValue","findOrCreateCategory","nameInnerMatrix","itemMenuCategoriesEnabled","setSubitemsToAction","setSubItems","markerIconName","getItemMenuActionsCore","categoriesQuestion","isUnsorted","hasCategories","removeRow","replace","currentCategory","c","moveToCategories","needSeparator","catGroup","newCatRow","getItemMenuActions","replaceRemoveAction","originalAction","addAction","createDropdownActionModel","showPointer","verticalPosition","horizontalPosition","searchEnabled","onVisibilityChanged","opt","listModel","contentComponentData","flushUpdates","hiddenItemsQuestion","hiddenValue","categoryRow","some","di","clearItemFromDefault","generalCategory","cats","flat","defaultCategory","CreatorPresetEditableList","LocCategoriesName","FunctionFactory","Instance","register","params","type","Serializer","createClass","createItemsMatrixJSON","props","addSubitems","defaultJSON","allowRowReorder","cellType","showHeader","rowCount","allowAddRows","addRowButtonLocation","columns","detailPanelMode","isUnique","itemComponent","choices","iconList","renderAs","validators","expression","newJson","addRowText","nameSubitems","valueName","titleLocation","visibleIf","nameCategoriesMode","descriptionLocation","valueTrue","valueFalse","clearIfInvisible","nameShowCategoryTitles","useTitleAsLabel","defaultSubitems","subitems","findItem","itemName","moveToSubitems","destination","getQuestionItems","destValue","superItems","catActions","catAction","itemsActions","subItems","showDetailPanel","subitemsAction","getJsonItemsDefinition","mode","toolboxCategories","toolbox","getCategoriesJson","isCategoriesSame","showCategoryTitles","toolboxItems","categoryItems","cleanIfNotDiffers","differs","forceCompact","isCompact","setPropertyValue","setupDefaults","toolboxDefaultItems","toolboxDefaultCategories","getDefaultCategories","createToolboxItemRow","si","createToolboxCategoryRow","defaultItemsMap","defaultCategoriesMap","itemsDefinition","categoriesDefinition","itemsMap","setValue","updateItemsFromCategories","updateShowCategoriesTitlesElements","updateCategoriesFromItems","itemsObject","unsortedNames","defaultTitle","getCategoryTitle","titleQuestion","isEmpty","updateTextFromQuestion","CreatorPresetEditableCaregorizedListConfigurator","className","propertyGridDefinition","getIsPropertyVisible","SurveyQuestionProperties","presetPropertiesBaseClasses","currentJson","propertiesHash","classes","cls","createObj","properties","SurveyQuestionPresetProperties","allPropertiesNames","getAllVisiblePropertiesNames","objProps","getPropertiesByObj","propClassName","getPropClassName","cl","propertyGridValue","createPropertyGrid","propertyGridDefaultValue","getObj","PropertyGridModel","showOneCategoryInPropertyGrid","ind","clName","substring","postFix","getInitialJson","useDefaults","propertyGrid","placeholderPageName","property","getPropertyClassName","propName","updateCurrentJson","updateCurrentJsonCore","curJsonClasses","tabNames","updateCurrentJsonClass","tabs","tab","clVal","clIndex","nextStep","Math","pow","max","j","visIndex","tabName","classInfo","isDescendantOf","getClassName","firstTimeLoading","nameSelector","allowClear","html","propertyGridSetObj","currentPage","isModified","defaultPropertyGridDefinition","updateMatrices","setupPageQuestions","getSelector","getSelectorChoices","oldSearchValue","enableSearch","setJSONForTitlesAndDescriptions","strs","localeStrings","pe","pehelp","setSidebarEnabled","currentProperties","ensureLocalizationPath","changePropTitleAndDescription","selQuestion","currentClassName","SurveyQuestionPresetPropertiesDetail","getCurrentlyHiddenItems","hiddenProperties","getPropertyGridDefinition","autoGenerateProperties","str","ItemValue","getSelectorItemTitle","columnPrefix","getColumnItemTitle","matrixDropdownColumnTypes","getPropertiesArray","names","nameActiveTab","filterTabs","creatorDefaultTabs","getTabs","tabsInfo","getTabsInfo","activeTabChoices","isArraysEqual","activeTab","getAllTabs","getAvailableTabs","initialTabs","allTabs","itemNames","activeTabQuestion","selectedItem","selectItem","questionInstance","itemvalue","toUpperCase","placeholder","getLocaleName","creatorLocaleName","getCreatorLocales","searchLocalesName","textUpdateMode","surveyLocalesName","minSelectedChoices","colCount","showSelectAllItem","getSurveyLocales","choicesVisibleIf","surveyUseEnglishNames","creatorLocale","useEnglishNames","isAllSelected","surveyLocales","showInEnglish","updateLocaleNames","locales","valule","selectAll","getIsShowInEnglishSelected","getLocaleItemValues","getLocales","surveyLocalization","addEnLocale","locale","isShowInEnglish","choicesOrder","optionsList","createElements","state","inputType","addPathToName","optionName","patchElements","element","option","locTooltipName","isCollapsed","iconSize","expand","collapse","enStrings","languages","creatorUI","surveyLanguages","searchPlaceholder","translateToEnglish","defaultTab","noItemsText","noHiddenItemsText","titleField","noCategoriesText","enableGrouping","categoryTitle","jsonObject","enableSubitems","moveAsSubitem","addToToolbox","deleteCustomItem","addCustomCategory","addCustomItem","addNewItem","addNewSubitem","newItem","selectElement","descriptionField","newCategory","moveToNewCategory","categoriesLabel","moveTo","removeFrom","more","restoreToDefault","delete","editor","presetJson","copy","download","load","saveExit","back","resetToDefault","resoredToDefault","itemRestoredToDefault","categoryRestoredToDefault","completeText","pagePrevText","plugin","buttonTitle","buttonDescription","presetsTab","creatorPresets","save","file","import","export","resetLanguages","resetAll","resetConfirmation","resetConfirmationOk","defaultSettings","basic","advanced","expert","license","license2","licenseCreator","licenseCreator2","getLocaleStrings","presets","Version","defaultSizeMode","smallSizeMode","itemWithTitle","itemActive","itemTitleWithIcon","ActionContainer","creatorValue","defaultJsonValue","applying","presetValue","CreatorPreset","createCreator","modelValue","createModel","resultModelValue","createResultModel","locTitle","LocalizableString","navigationBarValue","NavigationBar","setJson","getJsonFromSurveyModel","disposeModel","resetAllPages","editablePresets","upldateResultJson","getLocale","currentLocale","getJson","updateDataFromJson","SurveyCreatorModel","activatePage","inactivePresets","activePreset","localization","createEditablePresets","getEditModelJson","keepIncorrectValues","onCurrentPageChanged","sender","current","adjustMatrixAlignment","onCreateDetailPanelRenderedRowCallback","colSpans","applyFromSurveyModel","onGetQuestionTitleActions","getTitleToolbar","isResponsivenessDisabled","navigationBar","onQuestionCreated","onMatrixDetailPanelVisibleChanged","onUpdateQuestionCssClasses","suffix","iconAddId","onUpdatePanelCssClasses","onUpdatePageCssClasses","getResultHtml","cols","showPrevButton","showCompleteButton","showQuestionNumbers","navigator","clipboard","writeText","downloadJsonFile","loadJsonFile","jsonText","jsonBlob","Blob","elem","window","document","createElement","href","URL","createObjectURL","appendChild","click","removeChild","inputFileElement","accept","style","display","onchange","files","importFromFile","fileReader","FileReader","onload","surveyJSONText","result","readAsText","validateEditableModel","getJsonLocalizationStrings","locs","createEditableCore","CreatorPresetEditableLanguages","CreatorPresetEditableTabs","CreatorPresetEditableToolboxConfigurator","CreatorPresetEditablePropertyGrid","CreatorPresetEditableOptions","createEditable","editable","child","modelJson","Base","currentPresetIndex","saveToFileHandler","preventTabSwitch","addTab","TabPresetsPlugin","designerPlugin","getPlugin","settingsPage","sidebar","getPageById","componentData","showPresets","toolboxCompact","hidePresets","onActiveTabChanging","confirmReset","confirmActionAsync","confirm","applyTitle","activate","CreatorPresetEditorModel","currentValue","activateSidebar","onComplete","settingsAction","keep","show","tools","presetsList","setTimeout","hide","onHide","onShow","bottomActions","tabControlModel","bottomToolbar","resetCurrentAction","currentPageNo","deactivate","getLicenseText","hasCreatorLicense","creatorLicenseDateString","hasLicense","presetsLicenseDateString","glc","toLocaleDateString","jsonErrors","getType","getCssType","getTemplate","jsonAreaModelValue","getTextAreaOptions","getTextValue","onTextAreaChange","SurveyJSON5","valueToCheck","jsonConverter","JsonObject","toObject","errors","err","error","target","TextAreaModel","onCheckForErrors","isOnValueChanged","fireCallback","errorMessage","CustomError","QuestionCommentModel","ElementFactory","registerElement","QuestionPresetJsonModel","addClass","checkLibraryVersion"],"sourceRoot":""}